From 486494cbf5d481c8687b2fce4367a11aa10d975c Mon Sep 17 00:00:00 2001 From: c9jenkinsv3 Date: Thu, 4 Jan 2018 23:33:16 +0100 Subject: [PATCH] Thu Jan 4 23:33:16 CET 2018 --- .../base.css | 213 -- .../dist/index.html | 106 - .../dist/rusha.js.html | 2087 ----------------- .../dist/rusha.min.js.html | 71 - .../index.html | 93 - .../prettify.css | 1 - .../sort-arrow-sprite.png | Bin 209 -> 0 bytes .../base.css | 213 -- .../dist/index.html | 106 - .../dist/rusha.js.html | 2087 ----------------- .../dist/rusha.min.js.html | 71 - .../index.html | 93 - .../prettify.css | 1 - .../sort-arrow-sprite.png | Bin 209 -> 0 bytes .../static/lib/rusha/coverage/report.html | 354 +++ .../static/lib/rusha/dist/rusha.min.js | 3 - .../static/lib/rusha/misc/bench.html | 10 - .../static/lib/rusha/misc/runuithread.html | 17 - .../standalone/static/lib/rusha/rusha.min.js | 2 + .../standalone/static/lib/rusha/src/core.sjs | 114 - .../static/lib/rusha/test/js2me.html | 11 + .../static/lib/rusha/test/test.html | 40 + lib/rusha/.babelrc | 13 - lib/rusha/.eslintrc.js | 25 - lib/rusha/Gruntfile.js | 192 +- lib/rusha/benchmark/benchmark.js | 36 + .../base.css | 213 -- .../index.html | 93 - .../prettify.css | 1 - .../prettify.js | 1 - .../sort-arrow-sprite.png | Bin 209 -> 0 bytes .../sorter.js | 158 -- .../base.css | 213 -- .../index.html | 93 - .../prettify.css | 1 - .../prettify.js | 1 - .../sort-arrow-sprite.png | Bin 209 -> 0 bytes .../sorter.js | 158 -- lib/rusha/coverage/blanket.js | 6 + lib/rusha/coverage/report.html | 354 +++ lib/rusha/misc/bench.html | 10 - lib/rusha/misc/bench.js | 47 - lib/rusha/misc/bench/cifre/sha1.js | 195 -- lib/rusha/misc/bench/cifre/utils.js | 123 - lib/rusha/misc/bench/johnston.js | 354 --- lib/rusha/misc/random.js | 39 - lib/rusha/misc/runuithread.html | 17 - lib/rusha/misc/single.js | 18 - lib/rusha/misc/test.js | 46 - lib/rusha/package.json | 101 +- lib/rusha/perf/benchmark.js | 22 - lib/rusha/rusha.js | 494 ++++ lib/rusha/rusha.min.js | 2 + lib/rusha/rusha.sweet.js | 525 +++++ lib/rusha/src/conv.js | 105 - lib/rusha/src/core.sjs | 114 - lib/rusha/src/hash.js | 31 - lib/rusha/src/index.js | 27 - lib/rusha/src/rusha.js | 192 -- lib/rusha/src/utils.js | 68 - lib/rusha/src/worker.js | 65 - .../node_modules/graceful-fs/package.json | 26 +- .../node_modules/memory-fs/package.json | 21 +- .../node_modules/tapable/package.json | 23 +- .../enhanced-resolve/package.json | 23 +- .../glob/node_modules/inherits/package.json | 27 +- .../node_modules/lru-cache/package.json | 27 +- .../glob/node_modules/minimatch/package.json | 24 +- lib/tern/node_modules/glob/package.json | 24 +- .../node_modules/lru-cache/package.json | 27 +- lib/tern/node_modules/minimatch/package.json | 24 +- lib/tern/node_modules/typescript/package.json | 21 +- lib/tern/package.json | 4 +- lib/tern_from_ts/package.json | 2 +- node_modules/async/package.json | 27 +- node_modules/base64id/package.json | 37 +- .../connect/node_modules/batch/package.json | 21 +- .../node_modules/buffer-crc32/package.json | 27 +- .../connect/node_modules/bytes/package.json | 21 +- .../cookie-signature/package.json | 21 +- .../connect/node_modules/cookie/package.json | 29 +- .../connect/node_modules/fresh/package.json | 23 +- .../connect/node_modules/methods/package.json | 23 +- .../node_modules/core-util-is/package.json | 23 +- .../node_modules/inherits/package.json | 27 +- .../node_modules/isarray/package.json | 27 +- .../node_modules/string_decoder/package.json | 26 +- .../node_modules/readable-stream/package.json | 41 +- .../node_modules/stream-counter/package.json | 23 +- .../node_modules/multiparty/package.json | 23 +- .../node_modules/negotiator/package.json | 26 +- .../connect/node_modules/pause/package.json | 16 +- .../node_modules/raw-body/package.json | 23 +- .../connect/node_modules/uid2/package.json | 20 +- node_modules/connect/package.json | 32 +- node_modules/debug/package.json | 23 +- node_modules/ejs/package.json | 24 +- .../component-emitter/package.json | 23 +- .../component-inherit/package.json | 23 +- .../debug/node_modules/ms/package.json | 26 +- .../node_modules/debug/package.json | 30 +- .../node_modules/after/package.json | 27 +- .../arraybuffer.slice/package.json | 21 +- .../base64-arraybuffer/package.json | 21 +- .../node_modules/blob/package.json | 21 +- .../node_modules/isarray/package.json | 27 +- .../node_modules/has-binary/package.json | 23 +- .../node_modules/utf8/package.json | 27 +- .../engine.io-parser/package.json | 23 +- .../node_modules/has-cors/package.json | 24 +- .../node_modules/indexof/package.json | 16 +- .../node_modules/callsite/package.json | 21 +- .../node_modules/better-assert/package.json | 27 +- .../node_modules/parsejson/package.json | 20 +- .../node_modules/callsite/package.json | 21 +- .../node_modules/better-assert/package.json | 27 +- .../node_modules/parseqs/package.json | 20 +- .../node_modules/callsite/package.json | 21 +- .../node_modules/better-assert/package.json | 27 +- .../node_modules/parseuri/package.json | 20 +- .../xmlhttprequest-ssl/package.json | 25 +- .../node_modules/yeast/package.json | 27 +- node_modules/engine.io-client/package.json | 27 +- .../node_modules/mime-db/package.json | 28 +- .../node_modules/mime-types/package.json | 32 +- .../node_modules/negotiator/package.json | 32 +- .../node_modules/accepts/package.json | 48 +- .../debug/node_modules/ms/package.json | 26 +- .../engine.io/node_modules/debug/package.json | 30 +- .../node_modules/after/package.json | 27 +- .../arraybuffer.slice/package.json | 21 +- .../base64-arraybuffer/package.json | 21 +- .../node_modules/blob/package.json | 21 +- .../node_modules/isarray/package.json | 27 +- .../node_modules/has-binary/package.json | 23 +- .../node_modules/utf8/package.json | 27 +- .../engine.io-parser/package.json | 23 +- node_modules/engine.io/package.json | 27 +- node_modules/http-error/package.json | 23 +- .../node_modules/graceful-fs/package.json | 26 +- .../mkdirp/node_modules/minimist/package.json | 21 +- .../less/node_modules/mkdirp/package.json | 23 +- .../node_modules/aws-sign2/package.json | 24 +- .../request/node_modules/aws4/package.json | 27 +- .../node_modules/delayed-stream/package.json | 27 +- .../node_modules/combined-stream/package.json | 35 +- .../node_modules/forever-agent/package.json | 33 +- .../node_modules/asynckit/package.json | 27 +- .../hawk/node_modules/boom/package.json | 31 +- .../hawk/node_modules/cryptiles/package.json | 27 +- .../hawk/node_modules/hoek/package.json | 31 +- .../hawk/node_modules/sntp/package.json | 24 +- .../request/node_modules/hawk/package.json | 23 +- .../node_modules/assert-plus/package.json | 26 +- .../node_modules/assert-plus/package.json | 26 +- .../node_modules/extsprintf/package.json | 26 +- .../node_modules/json-schema/package.json | 22 +- .../node_modules/core-util-is/package.json | 23 +- .../sshpk/node_modules/asn1/package.json | 27 +- .../node_modules/assert-plus/package.json | 26 +- .../node_modules/bcrypt-pbkdf/package.json | 40 +- .../sshpk/node_modules/dashdash/package.json | 50 +- .../sshpk/node_modules/ecc-jsbn/package.json | 27 +- .../sshpk/node_modules/jsbn/package.json | 27 +- .../sshpk/node_modules/tweetnacl/package.json | 26 +- .../node_modules/http-signature/package.json | 31 +- .../node_modules/is-typedarray/package.json | 23 +- .../node_modules/isstream/package.json | 23 +- .../json-stringify-safe/package.json | 27 +- .../node_modules/oauth-sign/package.json | 35 +- .../node_modules/stringstream/package.json | 24 +- .../node_modules/punycode/package.json | 31 +- node_modules/mime/package.json | 27 +- node_modules/mkdirp/package.json | 29 +- node_modules/msgpack-js-browser/package.json | 38 +- .../nak/node_modules/colors/package.json | 21 +- .../nak/node_modules/simplefunc/package.json | 26 +- node_modules/nak/package.json | 2 +- node_modules/netutil/package.json | 25 +- .../node_modules/minimist/package.json | 21 +- .../node_modules/wordwrap/package.json | 22 +- node_modules/optimist/package.json | 23 +- node_modules/qs/package.json | 23 +- node_modules/rusha/.babelrc | 13 - node_modules/rusha/.eslintrc.js | 25 - node_modules/rusha/Gruntfile.js | 192 +- node_modules/rusha/benchmark/benchmark.js | 36 + .../base.css | 213 -- .../index.html | 93 - .../prettify.css | 1 - .../prettify.js | 1 - .../sort-arrow-sprite.png | Bin 209 -> 0 bytes .../sorter.js | 158 -- .../base.css | 213 -- .../index.html | 93 - .../prettify.css | 1 - .../prettify.js | 1 - .../sort-arrow-sprite.png | Bin 209 -> 0 bytes .../sorter.js | 158 -- node_modules/rusha/coverage/blanket.js | 6 + node_modules/rusha/coverage/report.html | 354 +++ node_modules/rusha/misc/bench.html | 10 - node_modules/rusha/misc/bench.js | 47 - node_modules/rusha/misc/bench/cifre/sha1.js | 195 -- node_modules/rusha/misc/bench/cifre/utils.js | 123 - node_modules/rusha/misc/bench/johnston.js | 354 --- node_modules/rusha/misc/random.js | 39 - node_modules/rusha/misc/runuithread.html | 17 - node_modules/rusha/misc/single.js | 18 - node_modules/rusha/misc/test.js | 46 - node_modules/rusha/package.json | 101 +- node_modules/rusha/perf/benchmark.js | 22 - node_modules/rusha/rusha.js | 494 ++++ node_modules/rusha/rusha.min.js | 2 + node_modules/rusha/rusha.sweet.js | 525 +++++ node_modules/rusha/src/conv.js | 105 - node_modules/rusha/src/core.sjs | 114 - node_modules/rusha/src/hash.js | 31 - node_modules/rusha/src/index.js | 27 - node_modules/rusha/src/rusha.js | 192 -- node_modules/rusha/src/utils.js | 68 - node_modules/rusha/src/worker.js | 65 - .../send/node_modules/fresh/package.json | 23 +- .../node_modules/range-parser/package.json | 28 +- node_modules/send/package.json | 23 +- node_modules/simple-mime/package.json | 23 +- .../node_modules/graceful-fs/package.json | 26 +- .../node_modules/memory-fs/package.json | 21 +- .../node_modules/tapable/package.json | 23 +- .../enhanced-resolve/package.json | 23 +- .../glob/node_modules/inherits/package.json | 27 +- .../node_modules/lru-cache/package.json | 27 +- .../glob/node_modules/minimatch/package.json | 24 +- .../tern/node_modules/glob/package.json | 24 +- .../node_modules/lru-cache/package.json | 27 +- .../tern/node_modules/minimatch/package.json | 24 +- .../tern/node_modules/typescript/package.json | 21 +- node_modules/tern/package.json | 4 +- node_modules/tern_from_ts/package.json | 2 +- node_modules/through/package.json | 27 +- .../tmp/node_modules/os-tmpdir/package.json | 27 +- .../uglify-js/node_modules/async/package.json | 23 +- .../uglify-to-browserify/package.json | 23 +- .../yargs/node_modules/camelcase/package.json | 25 +- .../node_modules/longest/package.json | 27 +- .../node_modules/repeat-string/package.json | 31 +- .../node_modules/align-text/package.json | 31 +- .../node_modules/lazy-cache/package.json | 31 +- .../node_modules/center-align/package.json | 31 +- .../node_modules/longest/package.json | 27 +- .../node_modules/repeat-string/package.json | 31 +- .../node_modules/align-text/package.json | 31 +- .../node_modules/right-align/package.json | 23 +- .../cliui/node_modules/wordwrap/package.json | 28 +- .../yargs/node_modules/cliui/package.json | 25 +- .../node_modules/decamelize/package.json | 27 +- .../node_modules/window-size/package.json | 21 +- .../uglify-js/node_modules/yargs/package.json | 31 +- node_modules/uglify-js/package.json | 30 +- package.json | 4 +- version | 2 +- 261 files changed, 3976 insertions(+), 14032 deletions(-) delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/index.html delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.js.html delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.min.js.html delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css delete mode 100644 build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/index.html delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.js.html delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.min.js.html delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css delete mode 100644 build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png create mode 100644 build/standalone/static/lib/rusha/coverage/report.html delete mode 100644 build/standalone/static/lib/rusha/dist/rusha.min.js delete mode 100644 build/standalone/static/lib/rusha/misc/bench.html delete mode 100644 build/standalone/static/lib/rusha/misc/runuithread.html create mode 100644 build/standalone/static/lib/rusha/rusha.min.js delete mode 100644 build/standalone/static/lib/rusha/src/core.sjs create mode 100644 build/standalone/static/lib/rusha/test/js2me.html create mode 100644 build/standalone/static/lib/rusha/test/test.html delete mode 100644 lib/rusha/.babelrc delete mode 100644 lib/rusha/.eslintrc.js create mode 100644 lib/rusha/benchmark/benchmark.js delete mode 100644 lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css delete mode 100644 lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html delete mode 100644 lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css delete mode 100644 lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js delete mode 100644 lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png delete mode 100644 lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sorter.js delete mode 100644 lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css delete mode 100644 lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html delete mode 100644 lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css delete mode 100644 lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js delete mode 100644 lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png delete mode 100644 lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sorter.js create mode 100644 lib/rusha/coverage/blanket.js create mode 100644 lib/rusha/coverage/report.html delete mode 100644 lib/rusha/misc/bench.html delete mode 100644 lib/rusha/misc/bench.js delete mode 100644 lib/rusha/misc/bench/cifre/sha1.js delete mode 100644 lib/rusha/misc/bench/cifre/utils.js delete mode 100644 lib/rusha/misc/bench/johnston.js delete mode 100644 lib/rusha/misc/random.js delete mode 100644 lib/rusha/misc/runuithread.html delete mode 100644 lib/rusha/misc/single.js delete mode 100644 lib/rusha/misc/test.js delete mode 100644 lib/rusha/perf/benchmark.js create mode 100644 lib/rusha/rusha.js create mode 100644 lib/rusha/rusha.min.js create mode 100644 lib/rusha/rusha.sweet.js delete mode 100644 lib/rusha/src/conv.js delete mode 100644 lib/rusha/src/core.sjs delete mode 100644 lib/rusha/src/hash.js delete mode 100644 lib/rusha/src/index.js delete mode 100644 lib/rusha/src/rusha.js delete mode 100644 lib/rusha/src/utils.js delete mode 100644 lib/rusha/src/worker.js delete mode 100644 node_modules/rusha/.babelrc delete mode 100644 node_modules/rusha/.eslintrc.js create mode 100644 node_modules/rusha/benchmark/benchmark.js delete mode 100644 node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css delete mode 100644 node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html delete mode 100644 node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css delete mode 100644 node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js delete mode 100644 node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png delete mode 100644 node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sorter.js delete mode 100644 node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css delete mode 100644 node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html delete mode 100644 node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css delete mode 100644 node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js delete mode 100644 node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png delete mode 100644 node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sorter.js create mode 100644 node_modules/rusha/coverage/blanket.js create mode 100644 node_modules/rusha/coverage/report.html delete mode 100644 node_modules/rusha/misc/bench.html delete mode 100644 node_modules/rusha/misc/bench.js delete mode 100644 node_modules/rusha/misc/bench/cifre/sha1.js delete mode 100644 node_modules/rusha/misc/bench/cifre/utils.js delete mode 100644 node_modules/rusha/misc/bench/johnston.js delete mode 100644 node_modules/rusha/misc/random.js delete mode 100644 node_modules/rusha/misc/runuithread.html delete mode 100644 node_modules/rusha/misc/single.js delete mode 100644 node_modules/rusha/misc/test.js delete mode 100644 node_modules/rusha/perf/benchmark.js create mode 100644 node_modules/rusha/rusha.js create mode 100644 node_modules/rusha/rusha.min.js create mode 100644 node_modules/rusha/rusha.sweet.js delete mode 100644 node_modules/rusha/src/conv.js delete mode 100644 node_modules/rusha/src/core.sjs delete mode 100644 node_modules/rusha/src/hash.js delete mode 100644 node_modules/rusha/src/index.js delete mode 100644 node_modules/rusha/src/rusha.js delete mode 100644 node_modules/rusha/src/utils.js delete mode 100644 node_modules/rusha/src/worker.js diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/index.html b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/index.html deleted file mode 100644 index 6a50c337..00000000 --- a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/index.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Code coverage report for dist/ - - - - - - - -
-
-

- all files dist/ -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
rusha.js
12.47%54/43311.11%18/16221.05%12/578.67%34/392
rusha.min.js
12.47%54/43311.11%18/16221.05%12/57100%1/1
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.js.html b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.js.html deleted file mode 100644 index 6ca781c5..00000000 --- a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.js.html +++ /dev/null @@ -1,2087 +0,0 @@ - - - - Code coverage report for dist/rusha.js - - - - - - - -
-
-

- all files / dist/ rusha.js -

-
-
- 12.47% - Statements - 54/433 -
-
- 11.11% - Branches - 18/162 -
-
- 21.05% - Functions - 12/57 -
-
- 8.67% - Lines - 34/392 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 - - - -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  - -  -  -  -  - -  -  -  -  - -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  - -  - - -  -  -  -  - -  -  - -  -  - -  -  -  -  -  -  -  -  -  - -  - -  -  - -  -  -  -  - - -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  - - -256× -  -  - -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
(function(f){Iif(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else Iif(typeof define==="function"&&define.amd){define([],f)}else{var g;Eif(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Rusha = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){Iif(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-var bundleFn = arguments[3];
-var sources = arguments[4];
-var cache = arguments[5];
- 
-var stringify = JSON.stringify;
- 
-module.exports = function (fn, options) {
-    var wkey;
-    var cacheKeys = Object.keys(cache);
- 
-    for (var i = 0, l = cacheKeys.length; i < l; i++) {
-        var key = cacheKeys[i];
-        var exp = cache[key].exports;
-        // Using babel as a transpiler to use esmodule, the export will always
-        // be an object with the default export as a property of it. To ensure
-        // the existing api and babel esmodule exports are both supported we
-        // check for both
-        if (exp === fn || exp && exp.default === fn) {
-            wkey = key;
-            break;
-        }
-    }
- 
-    if (!wkey) {
-        wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);
-        var wcache = {};
-        for (var i = 0, l = cacheKeys.length; i < l; i++) {
-            var key = cacheKeys[i];
-            wcache[key] = key;
-        }
-        sources[wkey] = [
-            'function(require,module,exports){' + fn + '(self); }',
-            wcache
-        ];
-    }
-    var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);
- 
-    var scache = {}; scache[wkey] = wkey;
-    sources[skey] = [
-        'function(require,module,exports){' +
-            // try to call default if defined to also support babel esmodule exports
-            'var f = require(' + stringify(wkey) + ');' +
-            '(f.default ? f.default : f)(self);' +
-        '}',
-        scache
-    ];
- 
-    var workerSources = {};
-    resolveSources(skey);
- 
-    function resolveSources(key) {
-        workerSources[key] = true;
- 
-        for (var depPath in sources[key][1]) {
-            var depKey = sources[key][1][depPath];
-            if (!workerSources[depKey]) {
-                resolveSources(depKey);
-            }
-        }
-    }
- 
-    var src = '(' + bundleFn + ')({'
-        + Object.keys(workerSources).map(function (key) {
-            return stringify(key) + ':['
-                + sources[key][0]
-                + ',' + stringify(sources[key][1]) + ']'
-            ;
-        }).join(',')
-        + '},{},[' + stringify(skey) + '])'
-    ;
- 
-    var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
- 
-    var blob = new Blob([src], { type: 'text/javascript' });
-    if (options && options.bare) { return blob; }
-    var workerUrl = URL.createObjectURL(blob);
-    var worker = new Worker(workerUrl);
-    worker.objectURL = workerUrl;
-    return worker;
-};
- 
-},{}],2:[function(require,module,exports){
-// The low-level RushCore module provides the heart of Rusha,
-// a high-speed sha1 implementation working on an Int32Array heap.
-// At first glance, the implementation seems complicated, however
-// with the SHA1 spec at hand, it is obvious this almost a textbook
-// implementation that has a few functions hand-inlined and a few loops
-// hand-unrolled.
-module.exports = function RushaCore(stdlib$1186, foreign$1187, heap$1188) {
-    'use asm';
-    var H$1189 = new stdlib$1186.Int32Array(heap$1188);
-    function hash$1190(k$1191, x$1192) {
-        // k in bytes
-        k$1191 = k$1191 | 0;
-        x$1192 = x$1192 | 0;
-        var i$1193 = 0, j$1194 = 0, y0$1195 = 0, z0$1196 = 0, y1$1197 = 0, z1$1198 = 0, y2$1199 = 0, z2$1200 = 0, y3$1201 = 0, z3$1202 = 0, y4$1203 = 0, z4$1204 = 0, t0$1205 = 0, t1$1206 = 0;
-        y0$1195 = H$1189[x$1192 + 320 >> 2] | 0;
-        y1$1197 = H$1189[x$1192 + 324 >> 2] | 0;
-        y2$1199 = H$1189[x$1192 + 328 >> 2] | 0;
-        y3$1201 = H$1189[x$1192 + 332 >> 2] | 0;
-        y4$1203 = H$1189[x$1192 + 336 >> 2] | 0;
-        for (i$1193 = 0; (i$1193 | 0) < (k$1191 | 0); i$1193 = i$1193 + 64 | 0) {
-            z0$1196 = y0$1195;
-            z1$1198 = y1$1197;
-            z2$1200 = y2$1199;
-            z3$1202 = y3$1201;
-            z4$1204 = y4$1203;
-            for (j$1194 = 0; (j$1194 | 0) < 64; j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = H$1189[i$1193 + j$1194 >> 2] | 0;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 & y2$1199 | ~y1$1197 & y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) + 1518500249 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[k$1191 + j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 64 | 0; (j$1194 | 0) < (k$1191 + 80 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 & y2$1199 | ~y1$1197 & y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) + 1518500249 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 80 | 0; (j$1194 | 0) < (k$1191 + 160 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 ^ y2$1199 ^ y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) + 1859775393 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 160 | 0; (j$1194 | 0) < (k$1191 + 240 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 & y2$1199 | y1$1197 & y3$1201 | y2$1199 & y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) - 1894007588 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 240 | 0; (j$1194 | 0) < (k$1191 + 320 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 ^ y2$1199 ^ y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) - 899497514 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            y0$1195 = y0$1195 + z0$1196 | 0;
-            y1$1197 = y1$1197 + z1$1198 | 0;
-            y2$1199 = y2$1199 + z2$1200 | 0;
-            y3$1201 = y3$1201 + z3$1202 | 0;
-            y4$1203 = y4$1203 + z4$1204 | 0;
-        }
-        H$1189[x$1192 + 320 >> 2] = y0$1195;
-        H$1189[x$1192 + 324 >> 2] = y1$1197;
-        H$1189[x$1192 + 328 >> 2] = y2$1199;
-        H$1189[x$1192 + 332 >> 2] = y3$1201;
-        H$1189[x$1192 + 336 >> 2] = y4$1203;
-    }
-    return { hash: hash$1190 };
-};
- 
-},{}],3:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-var Rusha = require('./rusha.js');
-var utils = require('./utils.js');
- 
-function Hash() {
-  this._rusha = new Rusha();
-  this._rusha.resetState();
-}
- 
-Hash.prototype.update = function update(data) {
-  this._rusha.append(data);
-  return this;
-};
- 
-Hash.prototype.digest = function digest(encoding) {
-  var digest = this._rusha.rawEnd().buffer;
-  if (!encoding) {
-    return digest;
-  }
-  if (encoding === 'hex') {
-    return utils.toHex(digest);
-  }
-  throw new Error('unsupported digest encoding');
-};
- 
-module.exports = function createHash() {
-  return new Hash();
-};
- 
-},{"./rusha.js":5,"./utils.js":6}],4:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-var webworkify = require('webworkify');
- 
-var Rusha = require('./rusha.js');
-var createHash = require('./hash.js');
- 
-// If we're running in a webworker, accept
-// messages containing a jobid and a buffer
-// or blob object, and return the hash result.
-Iif (typeof FileReaderSync !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined') {
-  Rusha.disableWorkerBehaviour = require('./worker')();
-} else {
-  Rusha.disableWorkerBehaviour = function () {};
-}
- 
-Rusha.createWorker = function createWorker() {
-  var worker = webworkify(require('./worker'));
-  var terminate = worker.terminate;
-  worker.terminate = function () {
-    URL.revokeObjectURL(worker.objectURL);
-    terminate.call(worker);
-  };
-  return worker;
-};
- 
-Rusha.createHash = createHash;
- 
-module.exports = Rusha;
- 
-},{"./hash.js":3,"./rusha.js":5,"./worker":7,"webworkify":1}],5:[function(require,module,exports){
-(function (global){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-var RushaCore = require('./core.sjs');
-var utils = require('./utils');
- 
-// The Rusha object is a wrapper around the low-level RushaCore.
-// It provides means of converting different inputs to the
-// format accepted by RushaCore as well as other utility methods.
-module.exports = function Rusha (chunkSize) {
-  var getDataType = function (data) {
-    if (typeof data === 'string') {
-      return 'string';
-    }
-    if (data instanceof Array) {
-      return 'array';
-    }
-    if (global.Buffer && global.Buffer.isBuffer(data)) {
-      return 'buffer';
-    }
-    if (data instanceof ArrayBuffer) {
-      return 'arraybuffer';
-    }
-    if (data.buffer instanceof ArrayBuffer) {
-      return 'view';
-    }
-    if (data instanceof Blob) {
-      return 'blob';
-    }
-    throw new Error('Unsupported data type.');
-  };
- 
-  // Private object structure.
-  var self = {};
- 
-  // Calculate the length of buffer that the sha1 routine uses
-  // including the padding.
-  var padlen = function (len) {
-    for (len += 9; len % 64 > 0; len += 1);
-    return len;
-  };
- 
-  var padZeroes = function (bin, len) {
-    var h8 = new Uint8Array(bin.buffer);
-    var om = len % 4, align = len - om;
-    switch (om) {
-    case 0: h8[align + 3] = 0;
-    case 1: h8[align + 2] = 0;
-    case 2: h8[align + 1] = 0;
-    case 3: h8[align + 0] = 0;
-    }
-    for (var i = (len >> 2) + 1; i < bin.length; i++)
-      bin[i] = 0;
-  };
- 
-  var padData = function (bin, chunkLen, msgLen) {
-    bin[chunkLen>>2] |= 0x80 << (24 - (chunkLen % 4 << 3));
-    // To support msgLen >= 2 GiB, use a float division when computing the
-    // high 32-bits of the big-endian message length in bits.
-    bin[(((chunkLen >> 2) + 2) & ~0x0f) + 14] = (msgLen / (1 << 29)) |0;
-    bin[(((chunkLen >> 2) + 2) & ~0x0f) + 15] = msgLen << 3;
-  };
- 
-  // Convert a binary string and write it to the heap.
-  // A binary string is expected to only contain char codes < 256.
-  var convStr = function (H8, H32, start, len, off) {
-    var str = this, i, om = off % 4, lm = (len + om) % 4, j = len - lm;
-    switch (om) {
-    case 0: H8[off] = str.charCodeAt(start+3);
-    case 1: H8[off+1-(om<<1)|0] = str.charCodeAt(start+2);
-    case 2: H8[off+2-(om<<1)|0] = str.charCodeAt(start+1);
-    case 3: H8[off+3-(om<<1)|0] = str.charCodeAt(start);
-    }
-    if (len < lm + om) {
-      return;
-    }
-    for (i = 4 - om; i < j; i = i + 4 | 0) {
-      H32[off+i>>2] = str.charCodeAt(start+i)   << 24 |
-                      str.charCodeAt(start+i+1) << 16 |
-                      str.charCodeAt(start+i+2) <<  8 |
-                      str.charCodeAt(start+i+3);
-    }
-    switch (lm) {
-    case 3: H8[off+j+1|0] = str.charCodeAt(start+j+2);
-    case 2: H8[off+j+2|0] = str.charCodeAt(start+j+1);
-    case 1: H8[off+j+3|0] = str.charCodeAt(start+j);
-    }
-  };
- 
-  // Convert a buffer or array and write it to the heap.
-  // The buffer or array is expected to only contain elements < 256.
-  var convBuf = function (H8, H32, start, len, off) {
-    var buf = this, i, om = off % 4, lm = (len + om) % 4, j = len - lm;
-    switch (om) {
-    case 0: H8[off] = buf[start + 3];
-    case 1: H8[off+1-(om<<1)|0] = buf[start+2];
-    case 2: H8[off+2-(om<<1)|0] = buf[start+1];
-    case 3: H8[off+3-(om<<1)|0] = buf[start];
-    }
-    if (len < lm + om) {
-      return;
-    }
-    for (i = 4 - om; i < j; i = i + 4 | 0) {
-      H32[off+i>>2|0] = buf[start+i]   << 24 |
-                        buf[start+i+1] << 16 | 
-                        buf[start+i+2] <<  8 | 
-                        buf[start+i+3];
-    }
-    switch (lm) {
-    case 3: H8[off+j+1|0] = buf[start+j+2];
-    case 2: H8[off+j+2|0] = buf[start+j+1];
-    case 1: H8[off+j+3|0] = buf[start+j];
-    }
-  };
- 
-  var convBlob = function (H8, H32, start, len, off) {
-    var blob = this, i, om = off % 4, lm = (len + om) % 4, j = len - lm;
-    var buf = new Uint8Array(reader.readAsArrayBuffer(blob.slice(start, start + len)));
-    switch (om) {
-    case 0: H8[off] = buf[3];
-    case 1: H8[off+1-(om<<1)|0] = buf[2];
-    case 2: H8[off+2-(om<<1)|0] = buf[1];
-    case 3: H8[off+3-(om<<1)|0] = buf[0];
-    }
-    if (len < lm + om) {
-      return;
-    }
-    for (i = 4 - om; i < j; i = i + 4 | 0) {
-      H32[off+i>>2|0] = buf[i]   << 24 | 
-                        buf[i+1] << 16 |
-                        buf[i+2] <<  8 |
-                        buf[i+3];
-    }
-    switch (lm) {
-    case 3: H8[off+j+1|0] = buf[j + 2];
-    case 2: H8[off+j+2|0] = buf[j + 1];
-    case 1: H8[off+j+3|0] = buf[j];
-    }
-  };
- 
-  var convFn = function (data) {
-    switch (getDataType(data)) {
-    case 'string': return convStr.bind(data);
-    case 'array': return convBuf.bind(data);
-    case 'buffer': return convBuf.bind(data);
-    case 'arraybuffer': return convBuf.bind(new Uint8Array(data));
-    case 'view': return convBuf.bind(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
-    case 'blob': return convBlob.bind(data);
-    }
-  };
- 
-  // Initialize the internal data structures to a new capacity.
-  var init = function (size) {
-    if (size % 64 > 0) {
-      throw new Error('Chunk size must be a multiple of 128 bit');
-    }
-    self.offset = 0;
-    self.maxChunkLen = size;
-    self.padMaxChunkLen = padlen(size);
-    // The size of the heap is the sum of:
-    // 1. The padded input message size
-    // 2. The extended space the algorithm needs (320 byte)
-    // 3. The 160 bit state the algoritm uses
-    self.heap     = new ArrayBuffer(utils.ceilHeapSize(self.padMaxChunkLen + 320 + 20));
-    self.h32      = new Int32Array(self.heap);
-    self.h8       = new Int8Array(self.heap);
-    self.core     = new RushaCore({Int32Array: Int32Array}, {}, self.heap);
-    self.buffer   = null;
-  };
- 
-  // Iinitializethe datastructures according
-  // to a chunk siyze.
-  init(chunkSize || 64 * 1024);
- 
-  var initState = function (heap, padMsgLen) {
-    self.offset = 0;
-    var io  = new Int32Array(heap, padMsgLen + 320, 5);
-    io[0] =  1732584193;
-    io[1] =  -271733879;
-    io[2] = -1732584194;
-    io[3] =   271733878;
-    io[4] = -1009589776;
-  };
- 
-  var padChunk = function (chunkLen, msgLen) {
-    var padChunkLen = padlen(chunkLen);
-    var view = new Int32Array(self.heap, 0, padChunkLen >> 2);
-    padZeroes(view, chunkLen);
-    padData(view, chunkLen, msgLen);
-    return padChunkLen;
-  };
- 
-  // Write data to the heap.
-  var write = function (data, chunkOffset, chunkLen, off) {
-    convFn(data)(self.h8, self.h32, chunkOffset, chunkLen, off || 0);
-  };
- 
-  // Initialize and call the RushaCore,
-  // assuming an input buffer of length len * 4.
-  var coreCall = function (data, chunkOffset, chunkLen, msgLen, finalize) {
-    var padChunkLen = chunkLen;
-    write(data, chunkOffset, chunkLen);
-    if (finalize) {
-      padChunkLen = padChunk(chunkLen, msgLen);
-    }
-    self.core.hash(padChunkLen, self.padMaxChunkLen);
-  };
- 
-  var getRawDigest = function (heap, padMaxChunkLen) {
-    var io  = new Int32Array(heap, padMaxChunkLen + 320, 5);
-    var out = new Int32Array(5);
-    var arr = new DataView(out.buffer);
-    arr.setInt32(0,  io[0], false);
-    arr.setInt32(4,  io[1], false);
-    arr.setInt32(8,  io[2], false);
-    arr.setInt32(12, io[3], false);
-    arr.setInt32(16, io[4], false);
-    return out;
-  };
- 
-  // Calculate the hash digest as an array of 5 32bit integers.
-  var rawDigest = this.rawDigest = function (str) {
-    var msgLen = str.byteLength || str.length || str.size || 0;
-    initState(self.heap, self.padMaxChunkLen);
-    var chunkOffset = 0, chunkLen = self.maxChunkLen;
-    for (chunkOffset = 0; msgLen > chunkOffset + chunkLen; chunkOffset += chunkLen) {
-      coreCall(str, chunkOffset, chunkLen, msgLen, false);
-    }
-    coreCall(str, chunkOffset, msgLen - chunkOffset, msgLen, true);
-    return getRawDigest(self.heap, self.padMaxChunkLen);
-  };
- 
-  // The digest and digestFrom* interface returns the hash digest
-  // as a hex string.
-  this.digest = this.digestFromString =
-  this.digestFromBuffer = this.digestFromArrayBuffer =
-  function (str) {
-    return utils.toHex(rawDigest(str).buffer);
-  };
- 
-  this.resetState = function () {
-    initState(self.heap, self.padMaxChunkLen);
-    return this;
-  };
- 
-  this.append = function (chunk) {
-    var chunkOffset = 0;
-    var chunkLen = chunk.byteLength || chunk.length || chunk.size || 0;
-    var turnOffset = self.offset % self.maxChunkLen;
-    var inputLen;
-    
-    self.offset += chunkLen;
-    while (chunkOffset < chunkLen) {
-      inputLen = Math.min(chunkLen - chunkOffset, self.maxChunkLen - turnOffset);
-      write(chunk, chunkOffset, inputLen, turnOffset);
-      turnOffset += inputLen;
-      chunkOffset += inputLen;
-      if (turnOffset === self.maxChunkLen) {
-        self.core.hash(self.maxChunkLen, self.padMaxChunkLen);
-        turnOffset = 0;
-      }
-    }
-    return this;
-  };
- 
-  this.getState = function () {
-    var turnOffset = self.offset % self.maxChunkLen;
-    var heap;
-    if (!turnOffset) {
-      var io = new Int32Array(self.heap, self.padMaxChunkLen + 320, 5);
-      heap = io.buffer.slice(io.byteOffset, io.byteOffset + io.byteLength);
-    } else {
-      heap = self.heap.slice(0);
-    }
-    return {
-      offset: self.offset,
-      heap: heap
-    };
-  };
- 
-  this.setState = function (state) {
-    self.offset = state.offset;
-    if (state.heap.byteLength === 20) {
-      var io = new Int32Array(self.heap, self.padMaxChunkLen + 320, 5);
-      io.set(new Int32Array(state.heap));
-    } else {
-      self.h32.set(new Int32Array(state.heap));  
-    }
-    return this;
-  };
- 
-  var rawEnd = this.rawEnd = function () {
-    var msgLen = self.offset;
-    var chunkLen = msgLen % self.maxChunkLen;
-    var padChunkLen = padChunk(chunkLen, msgLen);
-    self.core.hash(padChunkLen, self.padMaxChunkLen);
-    var result = getRawDigest(self.heap, self.padMaxChunkLen);
-    initState(self.heap, self.padMaxChunkLen);
-    return result;
-  };
- 
-  this.end = function () {
-    return utils.toHex(rawEnd().buffer);
-  };
-};
- 
-module.exports._core = RushaCore;
- 
-// If we're running in a webworker, accept
-// messages containing a jobid and a buffer
-// or blob object, and return the hash result.
-Iif (typeof self.FileReaderSync !== 'undefined') {
-  var reader = new self.FileReaderSync();
-}
- 
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./core.sjs":2,"./utils":6}],6:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-//
-// toHex
-//
- 
-var precomputedHex = new Array(256);
-for (var i = 0; i < 256; i++) {
-  precomputedHex[i] = (i < 0x10 ? '0' : '') + i.toString(16);
-}
- 
-module.exports.toHex = function (arrayBuffer) {
-  var binarray = new Uint8Array(arrayBuffer);
-  var res = new Array(arrayBuffer.byteLength);
-  for (var i = 0; i < res.length; i++) {
-    res[i] = precomputedHex[binarray[i]];
-  }
-  return res.join('');
-};
- 
-//
-// ceilHeapSize
-//
- 
-module.exports.ceilHeapSize = function (v) {
-  // The asm.js spec says:
-  // The heap object's byteLength must be either
-  // 2^n for n in [12, 24) or 2^24 * n for n ≥ 1.
-  // Also, byteLengths smaller than 2^16 are deprecated.
-  var p;
-  // If v is smaller than 2^16, the smallest possible solution
-  // is 2^16.
-  if (v <= 65536) return 65536;
-  // If v < 2^24, we round up to 2^n,
-  // otherwise we round up to 2^24 * n.
-  if (v < 16777216) {
-    for (p = 1; p < v; p = p << 1);
-  } else {
-    for (p = 16777216; p < v; p += 16777216);
-  }
-  return p;
-};
- 
-},{}],7:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, worker */
- 
-module.exports = function worker() {
-  var Rusha = require('./rusha.js');
- 
-  var hashData = function hashData (hasher, data, cb) {
-    try {
-      return cb(null, hasher.digest(data));
-    } catch (e) {
-      return cb(e);
-    }
-  };
- 
-  var hashFile = function hashFile (hasher, readTotal, blockSize, file, cb) {
-    var reader = new self.FileReader();
-    reader.onloadend = function onloadend () {
-      if (reader.error) {
-        return cb(reader.error);
-      }
-      var buffer = reader.result;
-      readTotal += reader.result.byteLength;
-      try {
-        hasher.append(buffer);
-      }
-      catch (e) {
-        cb(e);
-        return;
-      }
-      if (readTotal < file.size) {
-        hashFile(hasher, readTotal, blockSize, file, cb);
-      } else {
-        cb(null, hasher.end());
-      }
-    };
-    reader.readAsArrayBuffer(file.slice(readTotal, readTotal + blockSize));
-  };
- 
-  var workerBehaviourEnabled = true;
- 
-  self.onmessage = function onMessage (event) {
-    if (!workerBehaviourEnabled) {
-      return;
-    }
- 
-    var data = event.data.data, file = event.data.file, id = event.data.id;
-    if (typeof id === 'undefined') return;
-    if (!file && !data) return;
-    var blockSize = event.data.blockSize || (4 * 1024 * 1024);
-    var hasher = new Rusha(blockSize);
-    hasher.resetState();
-    var done = function done (err, hash) {
-      if (!err) {
-        self.postMessage({id: id, hash: hash});
-      } else {
-        self.postMessage({id: id, error: err.name});
-      }
-    };
-    if (data) hashData(hasher, data, done);
-    if (file) hashFile(hasher, 0, blockSize, file, done);
-  };
- 
-  return function disableWorkerBehaviour() {
-    workerBehaviourEnabled = false;
-  };
-};
- 
-},{"./rusha.js":5}]},{},[4])(4)
-});
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.min.js.html b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.min.js.html deleted file mode 100644 index f804f255..00000000 --- a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/dist/rusha.min.js.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - Code coverage report for dist/rusha.min.js - - - - - - - -
-
-

- all files / dist/ rusha.min.js -

-
-
- 12.47% - Statements - 54/433 -
-
- 11.11% - Branches - 18/162 -
-
- 21.05% - Functions - 12/57 -
-
- 100% - Lines - 1/1 -
-
-
-
-

-
-
1 -2 -3  -  -256×
/*! rusha 2017-11-26 */
- 
-(function(e){Iif(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else Iif(typeof define==="function"&&define.amd){define([],e)}else{var r;Eif(typeof window!=="undefined"){r=window}else if(typeof global!=="undefined"){r=global}else if(typeof self!=="undefined"){r=self}else{r=this}r.Rusha=e()}})(function(){var e,r,t;return function e(r,t,n){function a(i,o){if(!t[i]){Iif(!r[i]){var s=typeof require=="function"&&require;if(!o&&s)return s(i,!0);if(f)return f(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[i]={exports:{}};r[i][0].call(c.exports,function(e){var t=r[i][1][e];return a(t?t:e)},c,c.exports,e,r,t,n)}return t[i].exports}var f=typeof require=="function"&&require;for(var i=0;i<n.length;i++)a(n[i]);return a}({1:[function(e,r,t){var n=arguments[3];var a=arguments[4];var f=arguments[5];var i=JSON.stringify;r.exports=function(e,r){var t;var o=Object.keys(f);for(var s=0,u=o.length;s<u;s++){var c=o[s];var h=f[c].exports;if(h===e||h&&h.default===e){t=c;break}}if(!t){t=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var d={};for(var s=0,u=o.length;s<u;s++){var c=o[s];d[c]=c}a[t]=["function(require,module,exports){"+e+"(self); }",d]}var v=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var l={};l[t]=t;a[v]=["function(require,module,exports){"+"var f = require("+i(t)+");"+"(f.default ? f.default : f)(self);"+"}",l];var p={};w(v);function w(e){p[e]=true;for(var r in a[e][1]){var t=a[e][1][r];if(!p[t]){w(t)}}}var y="("+n+")({"+Object.keys(p).map(function(e){return i(e)+":["+a[e][0]+","+i(a[e][1])+"]"}).join(",")+"},{},["+i(v)+"])";var b=window.URL||window.webkitURL||window.mozURL||window.msURL;var x=new Blob([y],{type:"text/javascript"});if(r&&r.bare){return x}var A=b.createObjectURL(x);var g=new Worker(A);g.objectURL=A;return g}},{}],2:[function(e,r,t){r.exports=function e(r,t,n){"use asm";var a=new r.Int32Array(n);function f(e,r){e=e|0;r=r|0;var t=0,n=0,f=0,i=0,o=0,s=0,u=0,c=0,h=0,d=0,v=0,l=0,p=0,w=0;f=a[r+320>>2]|0;o=a[r+324>>2]|0;u=a[r+328>>2]|0;h=a[r+332>>2]|0;v=a[r+336>>2]|0;for(t=0;(t|0)<(e|0);t=t+64|0){i=f;s=o;c=u;d=h;l=v;for(n=0;(n|0)<64;n=n+4|0){w=a[t+n>>2]|0;p=((f<<5|f>>>27)+(o&u|~o&h)|0)+((w+v|0)+1518500249|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[e+n>>2]=w}for(n=e+64|0;(n|0)<(e+80|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o&u|~o&h)|0)+((w+v|0)+1518500249|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}for(n=e+80|0;(n|0)<(e+160|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o^u^h)|0)+((w+v|0)+1859775393|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}for(n=e+160|0;(n|0)<(e+240|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o&u|o&h|u&h)|0)+((w+v|0)-1894007588|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}for(n=e+240|0;(n|0)<(e+320|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o^u^h)|0)+((w+v|0)-899497514|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}f=f+i|0;o=o+s|0;u=u+c|0;h=h+d|0;v=v+l|0}a[r+320>>2]=f;a[r+324>>2]=o;a[r+328>>2]=u;a[r+332>>2]=h;a[r+336>>2]=v}return{hash:f}}},{}],3:[function(e,r,t){"use strict";var n=e("./rusha.js");var a=e("./utils.js");function f(){this._rusha=new n;this._rusha.resetState()}f.prototype.update=function e(r){this._rusha.append(r);return this};f.prototype.digest=function e(r){var e=this._rusha.rawEnd().buffer;if(!r){return e}if(r==="hex"){return a.toHex(e)}throw new Error("unsupported digest encoding")};r.exports=function e(){return new f}},{"./rusha.js":5,"./utils.js":6}],4:[function(e,r,t){"use strict";var n=e("webworkify");var a=e("./rusha.js");var f=e("./hash.js");Iif(typeof FileReaderSync!=="undefined"&&typeof DedicatedWorkerGlobalScope!=="undefined"){a.disableWorkerBehaviour=e("./worker")()}else{a.disableWorkerBehaviour=function(){}}a.createWorker=function r(){var t=n(e("./worker"));var a=t.terminate;t.terminate=function(){URL.revokeObjectURL(t.objectURL);a.call(t)};return t};a.createHash=f;r.exports=a},{"./hash.js":3,"./rusha.js":5,"./worker":7,webworkify:1}],5:[function(e,r,t){(function(t){"use strict";var n=e("./core.sjs");var a=e("./utils");r.exports=function e(r){var i=function(e){if(typeof e==="string"){return"string"}if(e instanceof Array){return"array"}if(t.Buffer&&t.Buffer.isBuffer(e)){return"buffer"}if(e instanceof ArrayBuffer){return"arraybuffer"}if(e.buffer instanceof ArrayBuffer){return"view"}if(e instanceof Blob){return"blob"}throw new Error("Unsupported data type.")};var o={};var s=function(e){for(e+=9;e%64>0;e+=1);return e};var u=function(e,r){var t=new Uint8Array(e.buffer);var n=r%4,a=r-n;switch(n){case 0:t[a+3]=0;case 1:t[a+2]=0;case 2:t[a+1]=0;case 3:t[a+0]=0}for(var f=(r>>2)+1;f<e.length;f++)e[f]=0};var c=function(e,r,t){e[r>>2]|=128<<24-(r%4<<3);e[((r>>2)+2&~15)+14]=t/(1<<29)|0;e[((r>>2)+2&~15)+15]=t<<3};var h=function(e,r,t,n,a){var f=this,i,o=a%4,s=(n+o)%4,u=n-s;switch(o){case 0:e[a]=f.charCodeAt(t+3);case 1:e[a+1-(o<<1)|0]=f.charCodeAt(t+2);case 2:e[a+2-(o<<1)|0]=f.charCodeAt(t+1);case 3:e[a+3-(o<<1)|0]=f.charCodeAt(t)}if(n<s+o){return}for(i=4-o;i<u;i=i+4|0){r[a+i>>2]=f.charCodeAt(t+i)<<24|f.charCodeAt(t+i+1)<<16|f.charCodeAt(t+i+2)<<8|f.charCodeAt(t+i+3)}switch(s){case 3:e[a+u+1|0]=f.charCodeAt(t+u+2);case 2:e[a+u+2|0]=f.charCodeAt(t+u+1);case 1:e[a+u+3|0]=f.charCodeAt(t+u)}};var d=function(e,r,t,n,a){var f=this,i,o=a%4,s=(n+o)%4,u=n-s;switch(o){case 0:e[a]=f[t+3];case 1:e[a+1-(o<<1)|0]=f[t+2];case 2:e[a+2-(o<<1)|0]=f[t+1];case 3:e[a+3-(o<<1)|0]=f[t]}if(n<s+o){return}for(i=4-o;i<u;i=i+4|0){r[a+i>>2|0]=f[t+i]<<24|f[t+i+1]<<16|f[t+i+2]<<8|f[t+i+3]}switch(s){case 3:e[a+u+1|0]=f[t+u+2];case 2:e[a+u+2|0]=f[t+u+1];case 1:e[a+u+3|0]=f[t+u]}};var v=function(e,r,t,n,a){var i=this,o,s=a%4,u=(n+s)%4,c=n-u;var h=new Uint8Array(f.readAsArrayBuffer(i.slice(t,t+n)));switch(s){case 0:e[a]=h[3];case 1:e[a+1-(s<<1)|0]=h[2];case 2:e[a+2-(s<<1)|0]=h[1];case 3:e[a+3-(s<<1)|0]=h[0]}if(n<u+s){return}for(o=4-s;o<c;o=o+4|0){r[a+o>>2|0]=h[o]<<24|h[o+1]<<16|h[o+2]<<8|h[o+3]}switch(u){case 3:e[a+c+1|0]=h[c+2];case 2:e[a+c+2|0]=h[c+1];case 1:e[a+c+3|0]=h[c]}};var l=function(e){switch(i(e)){case"string":return h.bind(e);case"array":return d.bind(e);case"buffer":return d.bind(e);case"arraybuffer":return d.bind(new Uint8Array(e));case"view":return d.bind(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));case"blob":return v.bind(e)}};var p=function(e){if(e%64>0){throw new Error("Chunk size must be a multiple of 128 bit")}o.offset=0;o.maxChunkLen=e;o.padMaxChunkLen=s(e);o.heap=new ArrayBuffer(a.ceilHeapSize(o.padMaxChunkLen+320+20));o.h32=new Int32Array(o.heap);o.h8=new Int8Array(o.heap);o.core=new n({Int32Array:Int32Array},{},o.heap);o.buffer=null};p(r||64*1024);var w=function(e,r){o.offset=0;var t=new Int32Array(e,r+320,5);t[0]=1732584193;t[1]=-271733879;t[2]=-1732584194;t[3]=271733878;t[4]=-1009589776};var y=function(e,r){var t=s(e);var n=new Int32Array(o.heap,0,t>>2);u(n,e);c(n,e,r);return t};var b=function(e,r,t,n){l(e)(o.h8,o.h32,r,t,n||0)};var x=function(e,r,t,n,a){var f=t;b(e,r,t);if(a){f=y(t,n)}o.core.hash(f,o.padMaxChunkLen)};var A=function(e,r){var t=new Int32Array(e,r+320,5);var n=new Int32Array(5);var a=new DataView(n.buffer);a.setInt32(0,t[0],false);a.setInt32(4,t[1],false);a.setInt32(8,t[2],false);a.setInt32(12,t[3],false);a.setInt32(16,t[4],false);return n};var g=this.rawDigest=function(e){var r=e.byteLength||e.length||e.size||0;w(o.heap,o.padMaxChunkLen);var t=0,n=o.maxChunkLen;for(t=0;r>t+n;t+=n){x(e,t,n,r,false)}x(e,t,r-t,r,true);return A(o.heap,o.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(e){return a.toHex(g(e).buffer)};this.resetState=function(){w(o.heap,o.padMaxChunkLen);return this};this.append=function(e){var r=0;var t=e.byteLength||e.length||e.size||0;var n=o.offset%o.maxChunkLen;var a;o.offset+=t;while(r<t){a=Math.min(t-r,o.maxChunkLen-n);b(e,r,a,n);n+=a;r+=a;if(n===o.maxChunkLen){o.core.hash(o.maxChunkLen,o.padMaxChunkLen);n=0}}return this};this.getState=function(){var e=o.offset%o.maxChunkLen;var r;if(!e){var t=new Int32Array(o.heap,o.padMaxChunkLen+320,5);r=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}else{r=o.heap.slice(0)}return{offset:o.offset,heap:r}};this.setState=function(e){o.offset=e.offset;if(e.heap.byteLength===20){var r=new Int32Array(o.heap,o.padMaxChunkLen+320,5);r.set(new Int32Array(e.heap))}else{o.h32.set(new Int32Array(e.heap))}return this};var k=this.rawEnd=function(){var e=o.offset;var r=e%o.maxChunkLen;var t=y(r,e);o.core.hash(t,o.padMaxChunkLen);var n=A(o.heap,o.padMaxChunkLen);w(o.heap,o.padMaxChunkLen);return n};this.end=function(){return a.toHex(k().buffer)}};r.exports._core=n;Iif(typeof self.FileReaderSync!=="undefined"){var f=new self.FileReaderSync}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./core.sjs":2,"./utils":6}],6:[function(e,r,t){"use strict";var n=new Array(256);for(var a=0;a<256;a++){n[a]=(a<16?"0":"")+a.toString(16)}r.exports.toHex=function(e){var r=new Uint8Array(e);var t=new Array(e.byteLength);for(var a=0;a<t.length;a++){t[a]=n[r[a]]}return t.join("")};r.exports.ceilHeapSize=function(e){var r;if(e<=65536)return 65536;if(e<16777216){for(r=1;r<e;r=r<<1);}else{for(r=16777216;r<e;r+=16777216);}return r}},{}],7:[function(e,r,t){"use strict";r.exports=function r(){var t=e("./rusha.js");var n=function e(r,t,n){try{return n(null,r.digest(t))}catch(e){return n(e)}};var a=function e(r,t,n,a,f){var i=new self.FileReader;i.onloadend=function o(){if(i.error){return f(i.error)}var s=i.result;t+=i.result.byteLength;try{r.append(s)}catch(e){f(e);return}if(t<a.size){e(r,t,n,a,f)}else{f(null,r.end())}};i.readAsArrayBuffer(a.slice(t,t+n))};var f=true;self.onmessage=function e(r){if(!f){return}var i=r.data.data,o=r.data.file,s=r.data.id;if(typeof s==="undefined")return;if(!o&&!i)return;var u=r.data.blockSize||4*1024*1024;var c=new t(u);c.resetState();var h=function e(r,t){if(!r){self.postMessage({id:s,hash:t})}else{self.postMessage({id:s,error:r.name})}};if(i)n(c,i,h);if(o)a(c,0,u,o,h)};return function e(){f=false}}},{"./rusha.js":5}]},{},[4])(4)});
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html deleted file mode 100644 index 9a69d99d..00000000 --- a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/
12.47%108/86611.11%36/32421.05%24/1148.91%35/393
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png b/build/standalone/static/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2) - - - Code coverage report for dist/ - - - - - - - -
-
-

- all files dist/ -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
rusha.js
12.47%54/43311.11%18/16221.05%12/578.67%34/392
rusha.min.js
12.47%54/43311.11%18/16221.05%12/57100%1/1
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.js.html b/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.js.html deleted file mode 100644 index 6ca781c5..00000000 --- a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.js.html +++ /dev/null @@ -1,2087 +0,0 @@ - - - - Code coverage report for dist/rusha.js - - - - - - - -
-
-

- all files / dist/ rusha.js -

-
-
- 12.47% - Statements - 54/433 -
-
- 11.11% - Branches - 18/162 -
-
- 21.05% - Functions - 12/57 -
-
- 8.67% - Lines - 34/392 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 - - - -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  - -  -  -  -  - -  -  -  -  - -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  - -  - - -  -  -  -  - -  -  - -  -  - -  -  -  -  -  -  -  -  -  - -  - -  -  - -  -  -  -  - - -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  - - -256× -  -  - -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
(function(f){Iif(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else Iif(typeof define==="function"&&define.amd){define([],f)}else{var g;Eif(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Rusha = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){Iif(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-var bundleFn = arguments[3];
-var sources = arguments[4];
-var cache = arguments[5];
- 
-var stringify = JSON.stringify;
- 
-module.exports = function (fn, options) {
-    var wkey;
-    var cacheKeys = Object.keys(cache);
- 
-    for (var i = 0, l = cacheKeys.length; i < l; i++) {
-        var key = cacheKeys[i];
-        var exp = cache[key].exports;
-        // Using babel as a transpiler to use esmodule, the export will always
-        // be an object with the default export as a property of it. To ensure
-        // the existing api and babel esmodule exports are both supported we
-        // check for both
-        if (exp === fn || exp && exp.default === fn) {
-            wkey = key;
-            break;
-        }
-    }
- 
-    if (!wkey) {
-        wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);
-        var wcache = {};
-        for (var i = 0, l = cacheKeys.length; i < l; i++) {
-            var key = cacheKeys[i];
-            wcache[key] = key;
-        }
-        sources[wkey] = [
-            'function(require,module,exports){' + fn + '(self); }',
-            wcache
-        ];
-    }
-    var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);
- 
-    var scache = {}; scache[wkey] = wkey;
-    sources[skey] = [
-        'function(require,module,exports){' +
-            // try to call default if defined to also support babel esmodule exports
-            'var f = require(' + stringify(wkey) + ');' +
-            '(f.default ? f.default : f)(self);' +
-        '}',
-        scache
-    ];
- 
-    var workerSources = {};
-    resolveSources(skey);
- 
-    function resolveSources(key) {
-        workerSources[key] = true;
- 
-        for (var depPath in sources[key][1]) {
-            var depKey = sources[key][1][depPath];
-            if (!workerSources[depKey]) {
-                resolveSources(depKey);
-            }
-        }
-    }
- 
-    var src = '(' + bundleFn + ')({'
-        + Object.keys(workerSources).map(function (key) {
-            return stringify(key) + ':['
-                + sources[key][0]
-                + ',' + stringify(sources[key][1]) + ']'
-            ;
-        }).join(',')
-        + '},{},[' + stringify(skey) + '])'
-    ;
- 
-    var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
- 
-    var blob = new Blob([src], { type: 'text/javascript' });
-    if (options && options.bare) { return blob; }
-    var workerUrl = URL.createObjectURL(blob);
-    var worker = new Worker(workerUrl);
-    worker.objectURL = workerUrl;
-    return worker;
-};
- 
-},{}],2:[function(require,module,exports){
-// The low-level RushCore module provides the heart of Rusha,
-// a high-speed sha1 implementation working on an Int32Array heap.
-// At first glance, the implementation seems complicated, however
-// with the SHA1 spec at hand, it is obvious this almost a textbook
-// implementation that has a few functions hand-inlined and a few loops
-// hand-unrolled.
-module.exports = function RushaCore(stdlib$1186, foreign$1187, heap$1188) {
-    'use asm';
-    var H$1189 = new stdlib$1186.Int32Array(heap$1188);
-    function hash$1190(k$1191, x$1192) {
-        // k in bytes
-        k$1191 = k$1191 | 0;
-        x$1192 = x$1192 | 0;
-        var i$1193 = 0, j$1194 = 0, y0$1195 = 0, z0$1196 = 0, y1$1197 = 0, z1$1198 = 0, y2$1199 = 0, z2$1200 = 0, y3$1201 = 0, z3$1202 = 0, y4$1203 = 0, z4$1204 = 0, t0$1205 = 0, t1$1206 = 0;
-        y0$1195 = H$1189[x$1192 + 320 >> 2] | 0;
-        y1$1197 = H$1189[x$1192 + 324 >> 2] | 0;
-        y2$1199 = H$1189[x$1192 + 328 >> 2] | 0;
-        y3$1201 = H$1189[x$1192 + 332 >> 2] | 0;
-        y4$1203 = H$1189[x$1192 + 336 >> 2] | 0;
-        for (i$1193 = 0; (i$1193 | 0) < (k$1191 | 0); i$1193 = i$1193 + 64 | 0) {
-            z0$1196 = y0$1195;
-            z1$1198 = y1$1197;
-            z2$1200 = y2$1199;
-            z3$1202 = y3$1201;
-            z4$1204 = y4$1203;
-            for (j$1194 = 0; (j$1194 | 0) < 64; j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = H$1189[i$1193 + j$1194 >> 2] | 0;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 & y2$1199 | ~y1$1197 & y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) + 1518500249 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[k$1191 + j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 64 | 0; (j$1194 | 0) < (k$1191 + 80 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 & y2$1199 | ~y1$1197 & y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) + 1518500249 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 80 | 0; (j$1194 | 0) < (k$1191 + 160 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 ^ y2$1199 ^ y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) + 1859775393 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 160 | 0; (j$1194 | 0) < (k$1191 + 240 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 & y2$1199 | y1$1197 & y3$1201 | y2$1199 & y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) - 1894007588 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            for (j$1194 = k$1191 + 240 | 0; (j$1194 | 0) < (k$1191 + 320 | 0); j$1194 = j$1194 + 4 | 0) {
-                t1$1206 = (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) << 1 | (H$1189[j$1194 - 12 >> 2] ^ H$1189[j$1194 - 32 >> 2] ^ H$1189[j$1194 - 56 >> 2] ^ H$1189[j$1194 - 64 >> 2]) >>> 31;
-                t0$1205 = ((y0$1195 << 5 | y0$1195 >>> 27) + (y1$1197 ^ y2$1199 ^ y3$1201) | 0) + ((t1$1206 + y4$1203 | 0) - 899497514 | 0) | 0;
-                y4$1203 = y3$1201;
-                y3$1201 = y2$1199;
-                y2$1199 = y1$1197 << 30 | y1$1197 >>> 2;
-                y1$1197 = y0$1195;
-                y0$1195 = t0$1205;
-                H$1189[j$1194 >> 2] = t1$1206;
-            }
-            y0$1195 = y0$1195 + z0$1196 | 0;
-            y1$1197 = y1$1197 + z1$1198 | 0;
-            y2$1199 = y2$1199 + z2$1200 | 0;
-            y3$1201 = y3$1201 + z3$1202 | 0;
-            y4$1203 = y4$1203 + z4$1204 | 0;
-        }
-        H$1189[x$1192 + 320 >> 2] = y0$1195;
-        H$1189[x$1192 + 324 >> 2] = y1$1197;
-        H$1189[x$1192 + 328 >> 2] = y2$1199;
-        H$1189[x$1192 + 332 >> 2] = y3$1201;
-        H$1189[x$1192 + 336 >> 2] = y4$1203;
-    }
-    return { hash: hash$1190 };
-};
- 
-},{}],3:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-var Rusha = require('./rusha.js');
-var utils = require('./utils.js');
- 
-function Hash() {
-  this._rusha = new Rusha();
-  this._rusha.resetState();
-}
- 
-Hash.prototype.update = function update(data) {
-  this._rusha.append(data);
-  return this;
-};
- 
-Hash.prototype.digest = function digest(encoding) {
-  var digest = this._rusha.rawEnd().buffer;
-  if (!encoding) {
-    return digest;
-  }
-  if (encoding === 'hex') {
-    return utils.toHex(digest);
-  }
-  throw new Error('unsupported digest encoding');
-};
- 
-module.exports = function createHash() {
-  return new Hash();
-};
- 
-},{"./rusha.js":5,"./utils.js":6}],4:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-var webworkify = require('webworkify');
- 
-var Rusha = require('./rusha.js');
-var createHash = require('./hash.js');
- 
-// If we're running in a webworker, accept
-// messages containing a jobid and a buffer
-// or blob object, and return the hash result.
-Iif (typeof FileReaderSync !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined') {
-  Rusha.disableWorkerBehaviour = require('./worker')();
-} else {
-  Rusha.disableWorkerBehaviour = function () {};
-}
- 
-Rusha.createWorker = function createWorker() {
-  var worker = webworkify(require('./worker'));
-  var terminate = worker.terminate;
-  worker.terminate = function () {
-    URL.revokeObjectURL(worker.objectURL);
-    terminate.call(worker);
-  };
-  return worker;
-};
- 
-Rusha.createHash = createHash;
- 
-module.exports = Rusha;
- 
-},{"./hash.js":3,"./rusha.js":5,"./worker":7,"webworkify":1}],5:[function(require,module,exports){
-(function (global){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-var RushaCore = require('./core.sjs');
-var utils = require('./utils');
- 
-// The Rusha object is a wrapper around the low-level RushaCore.
-// It provides means of converting different inputs to the
-// format accepted by RushaCore as well as other utility methods.
-module.exports = function Rusha (chunkSize) {
-  var getDataType = function (data) {
-    if (typeof data === 'string') {
-      return 'string';
-    }
-    if (data instanceof Array) {
-      return 'array';
-    }
-    if (global.Buffer && global.Buffer.isBuffer(data)) {
-      return 'buffer';
-    }
-    if (data instanceof ArrayBuffer) {
-      return 'arraybuffer';
-    }
-    if (data.buffer instanceof ArrayBuffer) {
-      return 'view';
-    }
-    if (data instanceof Blob) {
-      return 'blob';
-    }
-    throw new Error('Unsupported data type.');
-  };
- 
-  // Private object structure.
-  var self = {};
- 
-  // Calculate the length of buffer that the sha1 routine uses
-  // including the padding.
-  var padlen = function (len) {
-    for (len += 9; len % 64 > 0; len += 1);
-    return len;
-  };
- 
-  var padZeroes = function (bin, len) {
-    var h8 = new Uint8Array(bin.buffer);
-    var om = len % 4, align = len - om;
-    switch (om) {
-    case 0: h8[align + 3] = 0;
-    case 1: h8[align + 2] = 0;
-    case 2: h8[align + 1] = 0;
-    case 3: h8[align + 0] = 0;
-    }
-    for (var i = (len >> 2) + 1; i < bin.length; i++)
-      bin[i] = 0;
-  };
- 
-  var padData = function (bin, chunkLen, msgLen) {
-    bin[chunkLen>>2] |= 0x80 << (24 - (chunkLen % 4 << 3));
-    // To support msgLen >= 2 GiB, use a float division when computing the
-    // high 32-bits of the big-endian message length in bits.
-    bin[(((chunkLen >> 2) + 2) & ~0x0f) + 14] = (msgLen / (1 << 29)) |0;
-    bin[(((chunkLen >> 2) + 2) & ~0x0f) + 15] = msgLen << 3;
-  };
- 
-  // Convert a binary string and write it to the heap.
-  // A binary string is expected to only contain char codes < 256.
-  var convStr = function (H8, H32, start, len, off) {
-    var str = this, i, om = off % 4, lm = (len + om) % 4, j = len - lm;
-    switch (om) {
-    case 0: H8[off] = str.charCodeAt(start+3);
-    case 1: H8[off+1-(om<<1)|0] = str.charCodeAt(start+2);
-    case 2: H8[off+2-(om<<1)|0] = str.charCodeAt(start+1);
-    case 3: H8[off+3-(om<<1)|0] = str.charCodeAt(start);
-    }
-    if (len < lm + om) {
-      return;
-    }
-    for (i = 4 - om; i < j; i = i + 4 | 0) {
-      H32[off+i>>2] = str.charCodeAt(start+i)   << 24 |
-                      str.charCodeAt(start+i+1) << 16 |
-                      str.charCodeAt(start+i+2) <<  8 |
-                      str.charCodeAt(start+i+3);
-    }
-    switch (lm) {
-    case 3: H8[off+j+1|0] = str.charCodeAt(start+j+2);
-    case 2: H8[off+j+2|0] = str.charCodeAt(start+j+1);
-    case 1: H8[off+j+3|0] = str.charCodeAt(start+j);
-    }
-  };
- 
-  // Convert a buffer or array and write it to the heap.
-  // The buffer or array is expected to only contain elements < 256.
-  var convBuf = function (H8, H32, start, len, off) {
-    var buf = this, i, om = off % 4, lm = (len + om) % 4, j = len - lm;
-    switch (om) {
-    case 0: H8[off] = buf[start + 3];
-    case 1: H8[off+1-(om<<1)|0] = buf[start+2];
-    case 2: H8[off+2-(om<<1)|0] = buf[start+1];
-    case 3: H8[off+3-(om<<1)|0] = buf[start];
-    }
-    if (len < lm + om) {
-      return;
-    }
-    for (i = 4 - om; i < j; i = i + 4 | 0) {
-      H32[off+i>>2|0] = buf[start+i]   << 24 |
-                        buf[start+i+1] << 16 | 
-                        buf[start+i+2] <<  8 | 
-                        buf[start+i+3];
-    }
-    switch (lm) {
-    case 3: H8[off+j+1|0] = buf[start+j+2];
-    case 2: H8[off+j+2|0] = buf[start+j+1];
-    case 1: H8[off+j+3|0] = buf[start+j];
-    }
-  };
- 
-  var convBlob = function (H8, H32, start, len, off) {
-    var blob = this, i, om = off % 4, lm = (len + om) % 4, j = len - lm;
-    var buf = new Uint8Array(reader.readAsArrayBuffer(blob.slice(start, start + len)));
-    switch (om) {
-    case 0: H8[off] = buf[3];
-    case 1: H8[off+1-(om<<1)|0] = buf[2];
-    case 2: H8[off+2-(om<<1)|0] = buf[1];
-    case 3: H8[off+3-(om<<1)|0] = buf[0];
-    }
-    if (len < lm + om) {
-      return;
-    }
-    for (i = 4 - om; i < j; i = i + 4 | 0) {
-      H32[off+i>>2|0] = buf[i]   << 24 | 
-                        buf[i+1] << 16 |
-                        buf[i+2] <<  8 |
-                        buf[i+3];
-    }
-    switch (lm) {
-    case 3: H8[off+j+1|0] = buf[j + 2];
-    case 2: H8[off+j+2|0] = buf[j + 1];
-    case 1: H8[off+j+3|0] = buf[j];
-    }
-  };
- 
-  var convFn = function (data) {
-    switch (getDataType(data)) {
-    case 'string': return convStr.bind(data);
-    case 'array': return convBuf.bind(data);
-    case 'buffer': return convBuf.bind(data);
-    case 'arraybuffer': return convBuf.bind(new Uint8Array(data));
-    case 'view': return convBuf.bind(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
-    case 'blob': return convBlob.bind(data);
-    }
-  };
- 
-  // Initialize the internal data structures to a new capacity.
-  var init = function (size) {
-    if (size % 64 > 0) {
-      throw new Error('Chunk size must be a multiple of 128 bit');
-    }
-    self.offset = 0;
-    self.maxChunkLen = size;
-    self.padMaxChunkLen = padlen(size);
-    // The size of the heap is the sum of:
-    // 1. The padded input message size
-    // 2. The extended space the algorithm needs (320 byte)
-    // 3. The 160 bit state the algoritm uses
-    self.heap     = new ArrayBuffer(utils.ceilHeapSize(self.padMaxChunkLen + 320 + 20));
-    self.h32      = new Int32Array(self.heap);
-    self.h8       = new Int8Array(self.heap);
-    self.core     = new RushaCore({Int32Array: Int32Array}, {}, self.heap);
-    self.buffer   = null;
-  };
- 
-  // Iinitializethe datastructures according
-  // to a chunk siyze.
-  init(chunkSize || 64 * 1024);
- 
-  var initState = function (heap, padMsgLen) {
-    self.offset = 0;
-    var io  = new Int32Array(heap, padMsgLen + 320, 5);
-    io[0] =  1732584193;
-    io[1] =  -271733879;
-    io[2] = -1732584194;
-    io[3] =   271733878;
-    io[4] = -1009589776;
-  };
- 
-  var padChunk = function (chunkLen, msgLen) {
-    var padChunkLen = padlen(chunkLen);
-    var view = new Int32Array(self.heap, 0, padChunkLen >> 2);
-    padZeroes(view, chunkLen);
-    padData(view, chunkLen, msgLen);
-    return padChunkLen;
-  };
- 
-  // Write data to the heap.
-  var write = function (data, chunkOffset, chunkLen, off) {
-    convFn(data)(self.h8, self.h32, chunkOffset, chunkLen, off || 0);
-  };
- 
-  // Initialize and call the RushaCore,
-  // assuming an input buffer of length len * 4.
-  var coreCall = function (data, chunkOffset, chunkLen, msgLen, finalize) {
-    var padChunkLen = chunkLen;
-    write(data, chunkOffset, chunkLen);
-    if (finalize) {
-      padChunkLen = padChunk(chunkLen, msgLen);
-    }
-    self.core.hash(padChunkLen, self.padMaxChunkLen);
-  };
- 
-  var getRawDigest = function (heap, padMaxChunkLen) {
-    var io  = new Int32Array(heap, padMaxChunkLen + 320, 5);
-    var out = new Int32Array(5);
-    var arr = new DataView(out.buffer);
-    arr.setInt32(0,  io[0], false);
-    arr.setInt32(4,  io[1], false);
-    arr.setInt32(8,  io[2], false);
-    arr.setInt32(12, io[3], false);
-    arr.setInt32(16, io[4], false);
-    return out;
-  };
- 
-  // Calculate the hash digest as an array of 5 32bit integers.
-  var rawDigest = this.rawDigest = function (str) {
-    var msgLen = str.byteLength || str.length || str.size || 0;
-    initState(self.heap, self.padMaxChunkLen);
-    var chunkOffset = 0, chunkLen = self.maxChunkLen;
-    for (chunkOffset = 0; msgLen > chunkOffset + chunkLen; chunkOffset += chunkLen) {
-      coreCall(str, chunkOffset, chunkLen, msgLen, false);
-    }
-    coreCall(str, chunkOffset, msgLen - chunkOffset, msgLen, true);
-    return getRawDigest(self.heap, self.padMaxChunkLen);
-  };
- 
-  // The digest and digestFrom* interface returns the hash digest
-  // as a hex string.
-  this.digest = this.digestFromString =
-  this.digestFromBuffer = this.digestFromArrayBuffer =
-  function (str) {
-    return utils.toHex(rawDigest(str).buffer);
-  };
- 
-  this.resetState = function () {
-    initState(self.heap, self.padMaxChunkLen);
-    return this;
-  };
- 
-  this.append = function (chunk) {
-    var chunkOffset = 0;
-    var chunkLen = chunk.byteLength || chunk.length || chunk.size || 0;
-    var turnOffset = self.offset % self.maxChunkLen;
-    var inputLen;
-    
-    self.offset += chunkLen;
-    while (chunkOffset < chunkLen) {
-      inputLen = Math.min(chunkLen - chunkOffset, self.maxChunkLen - turnOffset);
-      write(chunk, chunkOffset, inputLen, turnOffset);
-      turnOffset += inputLen;
-      chunkOffset += inputLen;
-      if (turnOffset === self.maxChunkLen) {
-        self.core.hash(self.maxChunkLen, self.padMaxChunkLen);
-        turnOffset = 0;
-      }
-    }
-    return this;
-  };
- 
-  this.getState = function () {
-    var turnOffset = self.offset % self.maxChunkLen;
-    var heap;
-    if (!turnOffset) {
-      var io = new Int32Array(self.heap, self.padMaxChunkLen + 320, 5);
-      heap = io.buffer.slice(io.byteOffset, io.byteOffset + io.byteLength);
-    } else {
-      heap = self.heap.slice(0);
-    }
-    return {
-      offset: self.offset,
-      heap: heap
-    };
-  };
- 
-  this.setState = function (state) {
-    self.offset = state.offset;
-    if (state.heap.byteLength === 20) {
-      var io = new Int32Array(self.heap, self.padMaxChunkLen + 320, 5);
-      io.set(new Int32Array(state.heap));
-    } else {
-      self.h32.set(new Int32Array(state.heap));  
-    }
-    return this;
-  };
- 
-  var rawEnd = this.rawEnd = function () {
-    var msgLen = self.offset;
-    var chunkLen = msgLen % self.maxChunkLen;
-    var padChunkLen = padChunk(chunkLen, msgLen);
-    self.core.hash(padChunkLen, self.padMaxChunkLen);
-    var result = getRawDigest(self.heap, self.padMaxChunkLen);
-    initState(self.heap, self.padMaxChunkLen);
-    return result;
-  };
- 
-  this.end = function () {
-    return utils.toHex(rawEnd().buffer);
-  };
-};
- 
-module.exports._core = RushaCore;
- 
-// If we're running in a webworker, accept
-// messages containing a jobid and a buffer
-// or blob object, and return the hash result.
-Iif (typeof self.FileReaderSync !== 'undefined') {
-  var reader = new self.FileReaderSync();
-}
- 
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./core.sjs":2,"./utils":6}],6:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, browser */
- 
-//
-// toHex
-//
- 
-var precomputedHex = new Array(256);
-for (var i = 0; i < 256; i++) {
-  precomputedHex[i] = (i < 0x10 ? '0' : '') + i.toString(16);
-}
- 
-module.exports.toHex = function (arrayBuffer) {
-  var binarray = new Uint8Array(arrayBuffer);
-  var res = new Array(arrayBuffer.byteLength);
-  for (var i = 0; i < res.length; i++) {
-    res[i] = precomputedHex[binarray[i]];
-  }
-  return res.join('');
-};
- 
-//
-// ceilHeapSize
-//
- 
-module.exports.ceilHeapSize = function (v) {
-  // The asm.js spec says:
-  // The heap object's byteLength must be either
-  // 2^n for n in [12, 24) or 2^24 * n for n ≥ 1.
-  // Also, byteLengths smaller than 2^16 are deprecated.
-  var p;
-  // If v is smaller than 2^16, the smallest possible solution
-  // is 2^16.
-  if (v <= 65536) return 65536;
-  // If v < 2^24, we round up to 2^n,
-  // otherwise we round up to 2^24 * n.
-  if (v < 16777216) {
-    for (p = 1; p < v; p = p << 1);
-  } else {
-    for (p = 16777216; p < v; p += 16777216);
-  }
-  return p;
-};
- 
-},{}],7:[function(require,module,exports){
-'use strict';
- 
-/* eslint-env commonjs, worker */
- 
-module.exports = function worker() {
-  var Rusha = require('./rusha.js');
- 
-  var hashData = function hashData (hasher, data, cb) {
-    try {
-      return cb(null, hasher.digest(data));
-    } catch (e) {
-      return cb(e);
-    }
-  };
- 
-  var hashFile = function hashFile (hasher, readTotal, blockSize, file, cb) {
-    var reader = new self.FileReader();
-    reader.onloadend = function onloadend () {
-      if (reader.error) {
-        return cb(reader.error);
-      }
-      var buffer = reader.result;
-      readTotal += reader.result.byteLength;
-      try {
-        hasher.append(buffer);
-      }
-      catch (e) {
-        cb(e);
-        return;
-      }
-      if (readTotal < file.size) {
-        hashFile(hasher, readTotal, blockSize, file, cb);
-      } else {
-        cb(null, hasher.end());
-      }
-    };
-    reader.readAsArrayBuffer(file.slice(readTotal, readTotal + blockSize));
-  };
- 
-  var workerBehaviourEnabled = true;
- 
-  self.onmessage = function onMessage (event) {
-    if (!workerBehaviourEnabled) {
-      return;
-    }
- 
-    var data = event.data.data, file = event.data.file, id = event.data.id;
-    if (typeof id === 'undefined') return;
-    if (!file && !data) return;
-    var blockSize = event.data.blockSize || (4 * 1024 * 1024);
-    var hasher = new Rusha(blockSize);
-    hasher.resetState();
-    var done = function done (err, hash) {
-      if (!err) {
-        self.postMessage({id: id, hash: hash});
-      } else {
-        self.postMessage({id: id, error: err.name});
-      }
-    };
-    if (data) hashData(hasher, data, done);
-    if (file) hashFile(hasher, 0, blockSize, file, done);
-  };
- 
-  return function disableWorkerBehaviour() {
-    workerBehaviourEnabled = false;
-  };
-};
- 
-},{"./rusha.js":5}]},{},[4])(4)
-});
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.min.js.html b/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.min.js.html deleted file mode 100644 index f804f255..00000000 --- a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/dist/rusha.min.js.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - Code coverage report for dist/rusha.min.js - - - - - - - -
-
-

- all files / dist/ rusha.min.js -

-
-
- 12.47% - Statements - 54/433 -
-
- 11.11% - Branches - 18/162 -
-
- 21.05% - Functions - 12/57 -
-
- 100% - Lines - 1/1 -
-
-
-
-

-
-
1 -2 -3  -  -256×
/*! rusha 2017-11-26 */
- 
-(function(e){Iif(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else Iif(typeof define==="function"&&define.amd){define([],e)}else{var r;Eif(typeof window!=="undefined"){r=window}else if(typeof global!=="undefined"){r=global}else if(typeof self!=="undefined"){r=self}else{r=this}r.Rusha=e()}})(function(){var e,r,t;return function e(r,t,n){function a(i,o){if(!t[i]){Iif(!r[i]){var s=typeof require=="function"&&require;if(!o&&s)return s(i,!0);if(f)return f(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[i]={exports:{}};r[i][0].call(c.exports,function(e){var t=r[i][1][e];return a(t?t:e)},c,c.exports,e,r,t,n)}return t[i].exports}var f=typeof require=="function"&&require;for(var i=0;i<n.length;i++)a(n[i]);return a}({1:[function(e,r,t){var n=arguments[3];var a=arguments[4];var f=arguments[5];var i=JSON.stringify;r.exports=function(e,r){var t;var o=Object.keys(f);for(var s=0,u=o.length;s<u;s++){var c=o[s];var h=f[c].exports;if(h===e||h&&h.default===e){t=c;break}}if(!t){t=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var d={};for(var s=0,u=o.length;s<u;s++){var c=o[s];d[c]=c}a[t]=["function(require,module,exports){"+e+"(self); }",d]}var v=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var l={};l[t]=t;a[v]=["function(require,module,exports){"+"var f = require("+i(t)+");"+"(f.default ? f.default : f)(self);"+"}",l];var p={};w(v);function w(e){p[e]=true;for(var r in a[e][1]){var t=a[e][1][r];if(!p[t]){w(t)}}}var y="("+n+")({"+Object.keys(p).map(function(e){return i(e)+":["+a[e][0]+","+i(a[e][1])+"]"}).join(",")+"},{},["+i(v)+"])";var b=window.URL||window.webkitURL||window.mozURL||window.msURL;var x=new Blob([y],{type:"text/javascript"});if(r&&r.bare){return x}var A=b.createObjectURL(x);var g=new Worker(A);g.objectURL=A;return g}},{}],2:[function(e,r,t){r.exports=function e(r,t,n){"use asm";var a=new r.Int32Array(n);function f(e,r){e=e|0;r=r|0;var t=0,n=0,f=0,i=0,o=0,s=0,u=0,c=0,h=0,d=0,v=0,l=0,p=0,w=0;f=a[r+320>>2]|0;o=a[r+324>>2]|0;u=a[r+328>>2]|0;h=a[r+332>>2]|0;v=a[r+336>>2]|0;for(t=0;(t|0)<(e|0);t=t+64|0){i=f;s=o;c=u;d=h;l=v;for(n=0;(n|0)<64;n=n+4|0){w=a[t+n>>2]|0;p=((f<<5|f>>>27)+(o&u|~o&h)|0)+((w+v|0)+1518500249|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[e+n>>2]=w}for(n=e+64|0;(n|0)<(e+80|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o&u|~o&h)|0)+((w+v|0)+1518500249|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}for(n=e+80|0;(n|0)<(e+160|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o^u^h)|0)+((w+v|0)+1859775393|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}for(n=e+160|0;(n|0)<(e+240|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o&u|o&h|u&h)|0)+((w+v|0)-1894007588|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}for(n=e+240|0;(n|0)<(e+320|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;p=((f<<5|f>>>27)+(o^u^h)|0)+((w+v|0)-899497514|0)|0;v=h;h=u;u=o<<30|o>>>2;o=f;f=p;a[n>>2]=w}f=f+i|0;o=o+s|0;u=u+c|0;h=h+d|0;v=v+l|0}a[r+320>>2]=f;a[r+324>>2]=o;a[r+328>>2]=u;a[r+332>>2]=h;a[r+336>>2]=v}return{hash:f}}},{}],3:[function(e,r,t){"use strict";var n=e("./rusha.js");var a=e("./utils.js");function f(){this._rusha=new n;this._rusha.resetState()}f.prototype.update=function e(r){this._rusha.append(r);return this};f.prototype.digest=function e(r){var e=this._rusha.rawEnd().buffer;if(!r){return e}if(r==="hex"){return a.toHex(e)}throw new Error("unsupported digest encoding")};r.exports=function e(){return new f}},{"./rusha.js":5,"./utils.js":6}],4:[function(e,r,t){"use strict";var n=e("webworkify");var a=e("./rusha.js");var f=e("./hash.js");Iif(typeof FileReaderSync!=="undefined"&&typeof DedicatedWorkerGlobalScope!=="undefined"){a.disableWorkerBehaviour=e("./worker")()}else{a.disableWorkerBehaviour=function(){}}a.createWorker=function r(){var t=n(e("./worker"));var a=t.terminate;t.terminate=function(){URL.revokeObjectURL(t.objectURL);a.call(t)};return t};a.createHash=f;r.exports=a},{"./hash.js":3,"./rusha.js":5,"./worker":7,webworkify:1}],5:[function(e,r,t){(function(t){"use strict";var n=e("./core.sjs");var a=e("./utils");r.exports=function e(r){var i=function(e){if(typeof e==="string"){return"string"}if(e instanceof Array){return"array"}if(t.Buffer&&t.Buffer.isBuffer(e)){return"buffer"}if(e instanceof ArrayBuffer){return"arraybuffer"}if(e.buffer instanceof ArrayBuffer){return"view"}if(e instanceof Blob){return"blob"}throw new Error("Unsupported data type.")};var o={};var s=function(e){for(e+=9;e%64>0;e+=1);return e};var u=function(e,r){var t=new Uint8Array(e.buffer);var n=r%4,a=r-n;switch(n){case 0:t[a+3]=0;case 1:t[a+2]=0;case 2:t[a+1]=0;case 3:t[a+0]=0}for(var f=(r>>2)+1;f<e.length;f++)e[f]=0};var c=function(e,r,t){e[r>>2]|=128<<24-(r%4<<3);e[((r>>2)+2&~15)+14]=t/(1<<29)|0;e[((r>>2)+2&~15)+15]=t<<3};var h=function(e,r,t,n,a){var f=this,i,o=a%4,s=(n+o)%4,u=n-s;switch(o){case 0:e[a]=f.charCodeAt(t+3);case 1:e[a+1-(o<<1)|0]=f.charCodeAt(t+2);case 2:e[a+2-(o<<1)|0]=f.charCodeAt(t+1);case 3:e[a+3-(o<<1)|0]=f.charCodeAt(t)}if(n<s+o){return}for(i=4-o;i<u;i=i+4|0){r[a+i>>2]=f.charCodeAt(t+i)<<24|f.charCodeAt(t+i+1)<<16|f.charCodeAt(t+i+2)<<8|f.charCodeAt(t+i+3)}switch(s){case 3:e[a+u+1|0]=f.charCodeAt(t+u+2);case 2:e[a+u+2|0]=f.charCodeAt(t+u+1);case 1:e[a+u+3|0]=f.charCodeAt(t+u)}};var d=function(e,r,t,n,a){var f=this,i,o=a%4,s=(n+o)%4,u=n-s;switch(o){case 0:e[a]=f[t+3];case 1:e[a+1-(o<<1)|0]=f[t+2];case 2:e[a+2-(o<<1)|0]=f[t+1];case 3:e[a+3-(o<<1)|0]=f[t]}if(n<s+o){return}for(i=4-o;i<u;i=i+4|0){r[a+i>>2|0]=f[t+i]<<24|f[t+i+1]<<16|f[t+i+2]<<8|f[t+i+3]}switch(s){case 3:e[a+u+1|0]=f[t+u+2];case 2:e[a+u+2|0]=f[t+u+1];case 1:e[a+u+3|0]=f[t+u]}};var v=function(e,r,t,n,a){var i=this,o,s=a%4,u=(n+s)%4,c=n-u;var h=new Uint8Array(f.readAsArrayBuffer(i.slice(t,t+n)));switch(s){case 0:e[a]=h[3];case 1:e[a+1-(s<<1)|0]=h[2];case 2:e[a+2-(s<<1)|0]=h[1];case 3:e[a+3-(s<<1)|0]=h[0]}if(n<u+s){return}for(o=4-s;o<c;o=o+4|0){r[a+o>>2|0]=h[o]<<24|h[o+1]<<16|h[o+2]<<8|h[o+3]}switch(u){case 3:e[a+c+1|0]=h[c+2];case 2:e[a+c+2|0]=h[c+1];case 1:e[a+c+3|0]=h[c]}};var l=function(e){switch(i(e)){case"string":return h.bind(e);case"array":return d.bind(e);case"buffer":return d.bind(e);case"arraybuffer":return d.bind(new Uint8Array(e));case"view":return d.bind(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));case"blob":return v.bind(e)}};var p=function(e){if(e%64>0){throw new Error("Chunk size must be a multiple of 128 bit")}o.offset=0;o.maxChunkLen=e;o.padMaxChunkLen=s(e);o.heap=new ArrayBuffer(a.ceilHeapSize(o.padMaxChunkLen+320+20));o.h32=new Int32Array(o.heap);o.h8=new Int8Array(o.heap);o.core=new n({Int32Array:Int32Array},{},o.heap);o.buffer=null};p(r||64*1024);var w=function(e,r){o.offset=0;var t=new Int32Array(e,r+320,5);t[0]=1732584193;t[1]=-271733879;t[2]=-1732584194;t[3]=271733878;t[4]=-1009589776};var y=function(e,r){var t=s(e);var n=new Int32Array(o.heap,0,t>>2);u(n,e);c(n,e,r);return t};var b=function(e,r,t,n){l(e)(o.h8,o.h32,r,t,n||0)};var x=function(e,r,t,n,a){var f=t;b(e,r,t);if(a){f=y(t,n)}o.core.hash(f,o.padMaxChunkLen)};var A=function(e,r){var t=new Int32Array(e,r+320,5);var n=new Int32Array(5);var a=new DataView(n.buffer);a.setInt32(0,t[0],false);a.setInt32(4,t[1],false);a.setInt32(8,t[2],false);a.setInt32(12,t[3],false);a.setInt32(16,t[4],false);return n};var g=this.rawDigest=function(e){var r=e.byteLength||e.length||e.size||0;w(o.heap,o.padMaxChunkLen);var t=0,n=o.maxChunkLen;for(t=0;r>t+n;t+=n){x(e,t,n,r,false)}x(e,t,r-t,r,true);return A(o.heap,o.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(e){return a.toHex(g(e).buffer)};this.resetState=function(){w(o.heap,o.padMaxChunkLen);return this};this.append=function(e){var r=0;var t=e.byteLength||e.length||e.size||0;var n=o.offset%o.maxChunkLen;var a;o.offset+=t;while(r<t){a=Math.min(t-r,o.maxChunkLen-n);b(e,r,a,n);n+=a;r+=a;if(n===o.maxChunkLen){o.core.hash(o.maxChunkLen,o.padMaxChunkLen);n=0}}return this};this.getState=function(){var e=o.offset%o.maxChunkLen;var r;if(!e){var t=new Int32Array(o.heap,o.padMaxChunkLen+320,5);r=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}else{r=o.heap.slice(0)}return{offset:o.offset,heap:r}};this.setState=function(e){o.offset=e.offset;if(e.heap.byteLength===20){var r=new Int32Array(o.heap,o.padMaxChunkLen+320,5);r.set(new Int32Array(e.heap))}else{o.h32.set(new Int32Array(e.heap))}return this};var k=this.rawEnd=function(){var e=o.offset;var r=e%o.maxChunkLen;var t=y(r,e);o.core.hash(t,o.padMaxChunkLen);var n=A(o.heap,o.padMaxChunkLen);w(o.heap,o.padMaxChunkLen);return n};this.end=function(){return a.toHex(k().buffer)}};r.exports._core=n;Iif(typeof self.FileReaderSync!=="undefined"){var f=new self.FileReaderSync}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./core.sjs":2,"./utils":6}],6:[function(e,r,t){"use strict";var n=new Array(256);for(var a=0;a<256;a++){n[a]=(a<16?"0":"")+a.toString(16)}r.exports.toHex=function(e){var r=new Uint8Array(e);var t=new Array(e.byteLength);for(var a=0;a<t.length;a++){t[a]=n[r[a]]}return t.join("")};r.exports.ceilHeapSize=function(e){var r;if(e<=65536)return 65536;if(e<16777216){for(r=1;r<e;r=r<<1);}else{for(r=16777216;r<e;r+=16777216);}return r}},{}],7:[function(e,r,t){"use strict";r.exports=function r(){var t=e("./rusha.js");var n=function e(r,t,n){try{return n(null,r.digest(t))}catch(e){return n(e)}};var a=function e(r,t,n,a,f){var i=new self.FileReader;i.onloadend=function o(){if(i.error){return f(i.error)}var s=i.result;t+=i.result.byteLength;try{r.append(s)}catch(e){f(e);return}if(t<a.size){e(r,t,n,a,f)}else{f(null,r.end())}};i.readAsArrayBuffer(a.slice(t,t+n))};var f=true;self.onmessage=function e(r){if(!f){return}var i=r.data.data,o=r.data.file,s=r.data.id;if(typeof s==="undefined")return;if(!o&&!i)return;var u=r.data.blockSize||4*1024*1024;var c=new t(u);c.resetState();var h=function e(r,t){if(!r){self.postMessage({id:s,hash:t})}else{self.postMessage({id:s,error:r.name})}};if(i)n(c,i,h);if(o)a(c,0,u,o,h)};return function e(){f=false}}},{"./rusha.js":5}]},{},[4])(4)});
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html b/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html deleted file mode 100644 index 9a69d99d..00000000 --- a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/
12.47%108/86611.11%36/32421.05%24/1148.91%35/393
-
-
- - - - - - - diff --git a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css b/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png b/build/standalone/static/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)Coverage +

Coverage

0%
0
0
0
\ No newline at end of file diff --git a/build/standalone/static/lib/rusha/dist/rusha.min.js b/build/standalone/static/lib/rusha/dist/rusha.min.js deleted file mode 100644 index 5a597999..00000000 --- a/build/standalone/static/lib/rusha/dist/rusha.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! rusha 2018-01-04 */ - -(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var r;if(typeof window!=="undefined"){r=window}else if(typeof global!=="undefined"){r=global}else if(typeof self!=="undefined"){r=self}else{r=this}r.Rusha=e()}})(function(){var e,r,t;return function e(r,t,n){function a(o,s){if(!t[o]){if(!r[o]){var f=typeof require=="function"&&require;if(!s&&f)return f(o,!0);if(i)return i(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var h=t[o]={exports:{}};r[o][0].call(h.exports,function(e){var t=r[o][1][e];return a(t?t:e)},h,h.exports,e,r,t,n)}return t[o].exports}var i=typeof require=="function"&&require;for(var o=0;o>2]=e.charCodeAt(n+o)<<24|e.charCodeAt(n+o+1)<<16|e.charCodeAt(n+o+2)<<8|e.charCodeAt(n+o+3)}switch(f){case 3:r[i+u+1|0]=e.charCodeAt(n+u+2);case 2:r[i+u+2|0]=e.charCodeAt(n+u+1);case 1:r[i+u+3|0]=e.charCodeAt(n+u)}};var a=function(e,r,t,n,a,i){var o=void 0,s=i%4,f=(a+s)%4,u=a-f;switch(s){case 0:r[i]=e[n+3];case 1:r[i+1-(s<<1)|0]=e[n+2];case 2:r[i+2-(s<<1)|0]=e[n+1];case 3:r[i+3-(s<<1)|0]=e[n]}if(a>2|0]=e[n+o]<<24|e[n+o+1]<<16|e[n+o+2]<<8|e[n+o+3]}switch(f){case 3:r[i+u+1|0]=e[n+u+2];case 2:r[i+u+2|0]=e[n+u+1];case 1:r[i+u+3|0]=e[n+u]}};var i=function(e,r,n,a,i,o){var s=void 0,f=o%4,u=(i+f)%4,h=i-u;var c=new Uint8Array(t.readAsArrayBuffer(e.slice(a,a+i)));switch(f){case 0:r[o]=c[3];case 1:r[o+1-(f<<1)|0]=c[2];case 2:r[o+2-(f<<1)|0]=c[1];case 3:r[o+3-(f<<1)|0]=c[0]}if(i>2|0]=c[s]<<24|c[s+1]<<16|c[s+2]<<8|c[s+3]}switch(u){case 3:r[o+h+1|0]=c[h+2];case 2:r[o+h+2|0]=c[h+1];case 1:r[o+h+3|0]=c[h]}};r.exports=function(r,t,o,s,f,u){if(typeof r==="string"){return n(r,t,o,s,f,u)}if(r instanceof Array){return a(r,t,o,s,f,u)}if(e.Buffer&&e.Buffer.isBuffer(r)){return a(r,t,o,s,f,u)}if(r instanceof ArrayBuffer){return a(new Uint8Array(r),t,o,s,f,u)}if(r.buffer instanceof ArrayBuffer){return a(new Uint8Array(r.buffer,r.byteOffset,r.byteLength),t,o,s,f,u)}if(r instanceof Blob){return i(r,t,o,s,f,u)}throw new Error("Unsupported data type.")}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],3:[function(e,r,t){"use strict";r.exports=function e(r,t,n){"use asm";var a=new r.Int32Array(n);function i(e,r){e=e|0;r=r|0;var t=0,n=0,i=0,o=0,s=0,f=0,u=0,h=0,c=0,p=0,d=0,l=0,v=0,w=0;i=a[r+320>>2]|0;s=a[r+324>>2]|0;u=a[r+328>>2]|0;c=a[r+332>>2]|0;d=a[r+336>>2]|0;for(t=0;(t|0)<(e|0);t=t+64|0){o=i;f=s;h=u;p=c;l=d;for(n=0;(n|0)<64;n=n+4|0){w=a[t+n>>2]|0;v=((i<<5|i>>>27)+(s&u|~s&c)|0)+((w+d|0)+1518500249|0)|0;d=c;c=u;u=s<<30|s>>>2;s=i;i=v;a[e+n>>2]=w}for(n=e+64|0;(n|0)<(e+80|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;v=((i<<5|i>>>27)+(s&u|~s&c)|0)+((w+d|0)+1518500249|0)|0;d=c;c=u;u=s<<30|s>>>2;s=i;i=v;a[n>>2]=w}for(n=e+80|0;(n|0)<(e+160|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;v=((i<<5|i>>>27)+(s^u^c)|0)+((w+d|0)+1859775393|0)|0;d=c;c=u;u=s<<30|s>>>2;s=i;i=v;a[n>>2]=w}for(n=e+160|0;(n|0)<(e+240|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;v=((i<<5|i>>>27)+(s&u|s&c|u&c)|0)+((w+d|0)-1894007588|0)|0;d=c;c=u;u=s<<30|s>>>2;s=i;i=v;a[n>>2]=w}for(n=e+240|0;(n|0)<(e+320|0);n=n+4|0){w=(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])<<1|(a[n-12>>2]^a[n-32>>2]^a[n-56>>2]^a[n-64>>2])>>>31;v=((i<<5|i>>>27)+(s^u^c)|0)+((w+d|0)-899497514|0)|0;d=c;c=u;u=s<<30|s>>>2;s=i;i=v;a[n>>2]=w}i=i+o|0;s=s+f|0;u=u+h|0;c=c+p|0;d=d+l|0}a[r+320>>2]=i;a[r+324>>2]=s;a[r+328>>2]=u;a[r+332>>2]=c;a[r+336>>2]=d}return{hash:i}}},{}],4:[function(e,r,t){"use strict";function n(e,r){if(!(e instanceof r)){throw new TypeError("Cannot call a class as a function")}}var a=e("./rusha");var i=e("./utils"),o=i.toHex;var s=function(){function e(){n(this,e);this._rusha=new a;this._rusha.resetState()}e.prototype.update=function e(r){this._rusha.append(r);return this};e.prototype.digest=function e(r){var e=this._rusha.rawEnd().buffer;if(!r){return e}if(r==="hex"){return o(e)}throw new Error("unsupported digest encoding")};return e}();r.exports=function(){return new s}},{"./rusha":6,"./utils":7}],5:[function(e,r,t){"use strict";var n=e("webworkify");var a=e("./rusha");var i=e("./hash");var o=e("./worker");var s=e("./utils"),f=s.isDedicatedWorkerScope;var u=typeof self!=="undefined"&&f(self);a.disableWorkerBehaviour=u?o():function(){};a.createWorker=function(){var r=n(e("./worker"));var t=r.terminate;r.terminate=function(){URL.revokeObjectURL(r.objectURL);t.call(r)};return r};a.createHash=i;r.exports=a},{"./hash":4,"./rusha":6,"./utils":7,"./worker":8,webworkify:1}],6:[function(e,r,t){"use strict";function n(e,r){if(!(e instanceof r)){throw new TypeError("Cannot call a class as a function")}}var a=e("./core.sjs");var i=e("./utils"),o=i.toHex,s=i.ceilHeapSize;var f=e("./conv");var u=function(e){for(e+=9;e%64>0;e+=1){}return e};var h=function(e,r){var t=new Uint8Array(e.buffer);var n=r%4,a=r-n;switch(n){case 0:t[a+3]=0;case 1:t[a+2]=0;case 2:t[a+1]=0;case 3:t[a+0]=0}for(var i=(r>>2)+1;i>2]|=128<<24-(r%4<<3);e[((r>>2)+2&~15)+14]=t/(1<<29)|0;e[((r>>2)+2&~15)+15]=t<<3};var p=function(e,r){var t=new Int32Array(e,r+320,5);var n=new Int32Array(5);var a=new DataView(n.buffer);a.setInt32(0,t[0],false);a.setInt32(4,t[1],false);a.setInt32(8,t[2],false);a.setInt32(12,t[3],false);a.setInt32(16,t[4],false);return n};var d=function(){function e(r){n(this,e);r=r||64*1024;if(r%64>0){throw new Error("Chunk size must be a multiple of 128 bit")}this._offset=0;this._maxChunkLen=r;this._padMaxChunkLen=u(r);this._heap=new ArrayBuffer(s(this._padMaxChunkLen+320+20));this._h32=new Int32Array(this._heap);this._h8=new Int8Array(this._heap);this._core=new a({Int32Array:Int32Array},{},this._heap)}e.prototype._initState=function e(r,t){this._offset=0;var n=new Int32Array(r,t+320,5);n[0]=1732584193;n[1]=-271733879;n[2]=-1732584194;n[3]=271733878;n[4]=-1009589776};e.prototype._padChunk=function e(r,t){var n=u(r);var a=new Int32Array(this._heap,0,n>>2);h(a,r);c(a,r,t);return n};e.prototype._write=function e(r,t,n,a){f(r,this._h8,this._h32,t,n,a||0)};e.prototype._coreCall=function e(r,t,n,a,i){var o=n;this._write(r,t,n);if(i){o=this._padChunk(n,a)}this._core.hash(o,this._padMaxChunkLen)};e.prototype.rawDigest=function e(r){var t=r.byteLength||r.length||r.size||0;this._initState(this._heap,this._padMaxChunkLen);var n=0,a=this._maxChunkLen;for(n=0;t>n+a;n+=a){this._coreCall(r,n,a,t,false)}this._coreCall(r,n,t-n,t,true);return p(this._heap,this._padMaxChunkLen)};e.prototype.digest=function e(r){return o(this.rawDigest(r).buffer)};e.prototype.digestFromString=function e(r){return this.digest(r)};e.prototype.digestFromBuffer=function e(r){return this.digest(r)};e.prototype.digestFromArrayBuffer=function e(r){return this.digest(r)};e.prototype.resetState=function e(){this._initState(this._heap,this._padMaxChunkLen);return this};e.prototype.append=function e(r){var t=0;var n=r.byteLength||r.length||r.size||0;var a=this._offset%this._maxChunkLen;var i=void 0;this._offset+=n;while(t - - - - - - - - - diff --git a/build/standalone/static/lib/rusha/misc/runuithread.html b/build/standalone/static/lib/rusha/misc/runuithread.html deleted file mode 100644 index 2de6f426..00000000 --- a/build/standalone/static/lib/rusha/misc/runuithread.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/build/standalone/static/lib/rusha/rusha.min.js b/build/standalone/static/lib/rusha/rusha.min.js new file mode 100644 index 00000000..e6f36b2d --- /dev/null +++ b/build/standalone/static/lib/rusha/rusha.min.js @@ -0,0 +1,2 @@ +/*! rusha 2016-11-24 */ +(function(){var a={getDataType:function(a){if(typeof a==="string"){return"string"}if(a instanceof Array){return"array"}if(typeof global!=="undefined"&&global.Buffer&&global.Buffer.isBuffer(a)){return"buffer"}if(a instanceof ArrayBuffer){return"arraybuffer"}if(a.buffer instanceof ArrayBuffer){return"view"}if(a instanceof Blob){return"blob"}throw new Error("Unsupported data type.")}};function b(d){"use strict";var e={fill:0};var f=function(a){for(a+=9;a%64>0;a+=1);return a};var g=function(a,b){var c=new Uint8Array(a.buffer);var d=b%4,e=b-d;switch(d){case 0:c[e+3]=0;case 1:c[e+2]=0;case 2:c[e+1]=0;case 3:c[e+0]=0}for(var f=(b>>2)+1;f>2]|=128<<24-(b%4<<3);a[((b>>2)+2&~15)+14]=c/(1<<29)|0;a[((b>>2)+2&~15)+15]=c<<3};var i=function(a,b,c,d,e){var f=this,g,h=e%4,i=(d+h)%4,j=d-i;switch(h){case 0:a[e]=f.charCodeAt(c+3);case 1:a[e+1-(h<<1)|0]=f.charCodeAt(c+2);case 2:a[e+2-(h<<1)|0]=f.charCodeAt(c+1);case 3:a[e+3-(h<<1)|0]=f.charCodeAt(c)}if(d>2]=f.charCodeAt(c+g)<<24|f.charCodeAt(c+g+1)<<16|f.charCodeAt(c+g+2)<<8|f.charCodeAt(c+g+3)}switch(i){case 3:a[e+j+1|0]=f.charCodeAt(c+j+2);case 2:a[e+j+2|0]=f.charCodeAt(c+j+1);case 1:a[e+j+3|0]=f.charCodeAt(c+j)}};var j=function(a,b,c,d,e){var f=this,g,h=e%4,i=(d+h)%4,j=d-i;switch(h){case 0:a[e]=f[c+3];case 1:a[e+1-(h<<1)|0]=f[c+2];case 2:a[e+2-(h<<1)|0]=f[c+1];case 3:a[e+3-(h<<1)|0]=f[c]}if(d>2|0]=f[c+g]<<24|f[c+g+1]<<16|f[c+g+2]<<8|f[c+g+3]}switch(i){case 3:a[e+j+1|0]=f[c+j+2];case 2:a[e+j+2|0]=f[c+j+1];case 1:a[e+j+3|0]=f[c+j]}};var k=function(a,b,d,e,f){var g=this,h,i=f%4,j=(e+i)%4,k=e-j;var l=new Uint8Array(c.readAsArrayBuffer(g.slice(d,d+e)));switch(i){case 0:a[f]=l[3];case 1:a[f+1-(i<<1)|0]=l[2];case 2:a[f+2-(i<<1)|0]=l[1];case 3:a[f+3-(i<<1)|0]=l[0]}if(e>2|0]=l[h]<<24|l[h+1]<<16|l[h+2]<<8|l[h+3]}switch(j){case 3:a[f+k+1|0]=l[k+2];case 2:a[f+k+2|0]=l[k+1];case 1:a[f+k+3|0]=l[k]}};var l=function(b){switch(a.getDataType(b)){case"string":return i.bind(b);case"array":return j.bind(b);case"buffer":return j.bind(b);case"arraybuffer":return j.bind(new Uint8Array(b));case"view":return j.bind(new Uint8Array(b.buffer,b.byteOffset,b.byteLength));case"blob":return k.bind(b)}};var m=function(b,c){switch(a.getDataType(b)){case"string":return b.slice(c);case"array":return b.slice(c);case"buffer":return b.slice(c);case"arraybuffer":return b.slice(c);case"view":return b.buffer.slice(c)}};var n=new Array(256);for(var o=0;o<256;o++){n[o]=(o<16?"0":"")+o.toString(16)}var p=function(a){var b=new Uint8Array(a);var c=new Array(a.byteLength);for(var d=0;d0){throw new Error("Chunk size must be a multiple of 128 bit")}e.offset=0;e.maxChunkLen=a;e.padMaxChunkLen=f(a);e.heap=new ArrayBuffer(q(e.padMaxChunkLen+320+20));e.h32=new Int32Array(e.heap);e.h8=new Int8Array(e.heap);e.core=new b._core({Int32Array:Int32Array,DataView:DataView},{},e.heap);e.buffer=null};r(d||64*1024);var s=function(a,b){e.offset=0;var c=new Int32Array(a,b+320,5);c[0]=1732584193;c[1]=-271733879;c[2]=-1732584194;c[3]=271733878;c[4]=-1009589776};var t=function(a,b){var c=f(a);var d=new Int32Array(e.heap,0,c>>2);g(d,a);h(d,a,b);return c};var u=function(a,b,c,d){l(a)(e.h8,e.h32,b,c,d||0)};var v=function(a,b,c,d,f){var g=c;u(a,b,c);if(f){g=t(c,d)}e.core.hash(g,e.padMaxChunkLen)};var w=function(a,b){var c=new Int32Array(a,b+320,5);var d=new Int32Array(5);var e=new DataView(d.buffer);e.setInt32(0,c[0],false);e.setInt32(4,c[1],false);e.setInt32(8,c[2],false);e.setInt32(12,c[3],false);e.setInt32(16,c[4],false);return d};var x=this.rawDigest=function(a){var b=a.byteLength||a.length||a.size||0;s(e.heap,e.padMaxChunkLen);var c=0,d=e.maxChunkLen,f;for(c=0;b>c+d;c+=d){v(a,c,d,b,false)}v(a,c,b-c,b,true);return w(e.heap,e.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(a){return p(x(a).buffer)};this.resetState=function(){s(e.heap,e.padMaxChunkLen);return this};this.append=function(a){var b=0;var c=a.byteLength||a.length||a.size||0;var d=e.offset%e.maxChunkLen;var f;e.offset+=c;while(b>2]|0;h=e[b+324>>2]|0;j=e[b+328>>2]|0;l=e[b+332>>2]|0;n=e[b+336>>2]|0;for(c=0;(c|0)<(a|0);c=c+64|0){g=f;i=h;k=j;m=l;o=n;for(d=0;(d|0)<64;d=d+4|0){q=e[c+d>>2]|0;p=((f<<5|f>>>27)+(h&j|~h&l)|0)+((q+n|0)+1518500249|0)|0;n=l;l=j;j=h<<30|h>>>2;h=f;f=p;e[a+d>>2]=q}for(d=a+64|0;(d|0)<(a+80|0);d=d+4|0){q=(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])<<1|(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])>>>31;p=((f<<5|f>>>27)+(h&j|~h&l)|0)+((q+n|0)+1518500249|0)|0;n=l;l=j;j=h<<30|h>>>2;h=f;f=p;e[d>>2]=q}for(d=a+80|0;(d|0)<(a+160|0);d=d+4|0){q=(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])<<1|(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])>>>31;p=((f<<5|f>>>27)+(h^j^l)|0)+((q+n|0)+1859775393|0)|0;n=l;l=j;j=h<<30|h>>>2;h=f;f=p;e[d>>2]=q}for(d=a+160|0;(d|0)<(a+240|0);d=d+4|0){q=(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])<<1|(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])>>>31;p=((f<<5|f>>>27)+(h&j|h&l|j&l)|0)+((q+n|0)-1894007588|0)|0;n=l;l=j;j=h<<30|h>>>2;h=f;f=p;e[d>>2]=q}for(d=a+240|0;(d|0)<(a+320|0);d=d+4|0){q=(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])<<1|(e[d-12>>2]^e[d-32>>2]^e[d-56>>2]^e[d-64>>2])>>>31;p=((f<<5|f>>>27)+(h^j^l)|0)+((q+n|0)-899497514|0)|0;n=l;l=j;j=h<<30|h>>>2;h=f;f=p;e[d>>2]=q}f=f+g|0;h=h+i|0;j=j+k|0;l=l+m|0;n=n+o|0}e[b+320>>2]=f;e[b+324>>2]=h;e[b+328>>2]=j;e[b+332>>2]=l;e[b+336>>2]=n}return{hash:f}};if(typeof module!=="undefined"){module.exports=b}else if(typeof window!=="undefined"){window.Rusha=b}if(typeof FileReaderSync!=="undefined"){var c=new FileReaderSync,d=new b(4*1024*1024);self.onmessage=function a(b){var c,e=b.data.data;try{c=d.digest(e);self.postMessage({id:b.data.id,hash:c})}catch(a){self.postMessage({id:b.data.id,error:a.name})}}}})(); \ No newline at end of file diff --git a/build/standalone/static/lib/rusha/src/core.sjs b/build/standalone/static/lib/rusha/src/core.sjs deleted file mode 100644 index 620fe8cf..00000000 --- a/build/standalone/static/lib/rusha/src/core.sjs +++ /dev/null @@ -1,114 +0,0 @@ -macro rol1 { rule { ($v:expr) } => { ($v << 1 | $v >>> 31) } } -macro rol5 { rule { ($v:expr) } => { ($v << 5 | $v >>> 27) } } -macro rol30 { rule { ($v:expr) } => { ($v << 30 | $v >>> 2) } } - -macro extended { - rule { ($H, $j:expr) } => { - rol1($H[$j-12>>2] ^ $H[$j-32>>2] ^ $H[$j-56>>2] ^ $H[$j-64>>2]) - } -} - -macro F0 { rule { ($b,$c,$d) } => { ($b & $c | ~$b & $d) } } -macro F1 { rule { ($b,$c,$d) } => { ($b ^ $c ^ $d) }} -macro F2 { rule { ($b,$c,$d) } => { ($b & $c | $b & $d | $c & $d) }} - -macro swap { - rule { ($y0, $y1, $y2, $y3, $y4, $t0) } => { - $y4 = $y3; - $y3 = $y2; - $y2 = rol30($y1); - $y1 = $y0; - $y0 = $t0; - } -} - -macro roundL { rule { ($y0, $f:expr) } => { (rol5($y0) + $f |0) } } -macro roundR { rule { ($y4, $t1) } => { ($t1 + $y4 |0) } } - -// The low-level RushCore module provides the heart of Rusha, -// a high-speed sha1 implementation working on an Int32Array heap. -// At first glance, the implementation seems complicated, however -// with the SHA1 spec at hand, it is obvious this almost a textbook -// implementation that has a few functions hand-inlined and a few loops -// hand-unrolled. -module.exports = function RushaCore (stdlib, foreign, heap) { - 'use asm'; - - var H = new stdlib.Int32Array(heap); - - function hash (k, x) { // k in bytes - - k = k|0; - x = x|0; - var i = 0, j = 0, - y0 = 0, z0 = 0, y1 = 0, z1 = 0, - y2 = 0, z2 = 0, y3 = 0, z3 = 0, - y4 = 0, z4 = 0, t0 = 0, t1 = 0; - - y0 = H[x+320>>2]|0; - y1 = H[x+324>>2]|0; - y2 = H[x+328>>2]|0; - y3 = H[x+332>>2]|0; - y4 = H[x+336>>2]|0; - - for (i = 0; (i|0) < (k|0); i = i + 64 |0) { - - z0 = y0; - z1 = y1; - z2 = y2; - z3 = y3; - z4 = y4; - - for (j = 0; (j|0) < 64; j = j + 4 |0) { - t1 = H[i+j>>2]|0; - t0 = roundL(y0, F0(y1, y2, y3)) + (roundR(y4, t1) + 1518500249 |0) |0; - swap(y0, y1, y2, y3, y4, t0) - H[k+j>>2] = t1; - } - - for (j = k + 64 |0; (j|0) < (k + 80 |0); j = j + 4 |0) { - t1 = extended(H, j); - t0 = roundL(y0, F0(y1, y2, y3)) + (roundR(y4, t1) + 1518500249 |0) |0; - swap(y0, y1, y2, y3, y4, t0) - H[j>>2] = t1; - } - - for (j = k + 80 |0; (j|0) < (k + 160 |0); j = j + 4 |0) { - t1 = extended(H, j); - t0 = roundL(y0, F1(y1, y2, y3)) + (roundR(y4, t1) + 1859775393 |0) |0; - swap(y0, y1, y2, y3, y4, t0) - H[j>>2] = t1; - } - - for (j = k + 160 |0; (j|0) < (k + 240 |0); j = j + 4 |0) { - t1 = extended(H, j); - t0 = roundL(y0, F2(y1, y2, y3)) + (roundR(y4, t1) - 1894007588 |0) |0; - swap(y0, y1, y2, y3, y4, t0) - H[j>>2] = t1; - } - - for (j = k + 240 |0; (j|0) < (k + 320 |0); j = j + 4 |0) { - t1 = extended(H, j); - t0 = roundL(y0, F1(y1, y2, y3)) + (roundR(y4, t1) - 899497514 |0) |0; - swap(y0, y1, y2, y3, y4, t0) - H[j>>2] = t1; - } - - y0 = y0 + z0 |0; - y1 = y1 + z1 |0; - y2 = y2 + z2 |0; - y3 = y3 + z3 |0; - y4 = y4 + z4 |0; - - } - - H[x+320>>2] = y0; - H[x+324>>2] = y1; - H[x+328>>2] = y2; - H[x+332>>2] = y3; - H[x+336>>2] = y4; - - } - - return {hash: hash}; -}; diff --git a/build/standalone/static/lib/rusha/test/js2me.html b/build/standalone/static/lib/rusha/test/js2me.html new file mode 100644 index 00000000..ec7abea1 --- /dev/null +++ b/build/standalone/static/lib/rusha/test/js2me.html @@ -0,0 +1,11 @@ + + + + + + + diff --git a/build/standalone/static/lib/rusha/test/test.html b/build/standalone/static/lib/rusha/test/test.html new file mode 100644 index 00000000..5206abdc --- /dev/null +++ b/build/standalone/static/lib/rusha/test/test.html @@ -0,0 +1,40 @@ + + + + Mocha Tests + + + +
+ + + + + + diff --git a/lib/rusha/.babelrc b/lib/rusha/.babelrc deleted file mode 100644 index 14eef0e2..00000000 --- a/lib/rusha/.babelrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "plugins": [ - "transform-es2015-arrow-functions", - ["transform-es2015-block-scoping", { - "throwIfClosureRequired": true - }], - "transform-es2015-block-scoped-functions", - ["transform-es2015-classes", { - "loose": true - }], - "transform-es2015-destructuring" - ] -} \ No newline at end of file diff --git a/lib/rusha/.eslintrc.js b/lib/rusha/.eslintrc.js deleted file mode 100644 index 5416e9fb..00000000 --- a/lib/rusha/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - "parser": "babel-eslint", - "extends": "eslint:recommended", - "rules": { - // enable additional rules - "indent": ["error", 2], - "linebreak-style": ["error", "unix"], - "quotes": ["error", "single"], - "semi": ["error", "always"], - "no-var": "error", - "no-cond-assign": ["error", "always"], - "strict": ["error", "global"], - - // disable rules from base configurations - "no-console": "off", - "no-fallthrough": "off" - }, - "globals": { - "ArrayBuffer": true, - "DataView": true, - "Int8Array": true, - "Int32Array": true, - "Uint8Array": true - } -}; diff --git a/lib/rusha/Gruntfile.js b/lib/rusha/Gruntfile.js index 54bd137c..37c4ec2d 100644 --- a/lib/rusha/Gruntfile.js +++ b/lib/rusha/Gruntfile.js @@ -1,173 +1,85 @@ module.exports = function (grunt) { - const browsers = ['ChromeHeadless', 'FirefoxHeadless']; grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), + sweetjs: { + options: { + readableNames: true + }, + build: { + src: '<%= pkg.name %>.sweet.js', + dest: '<%= pkg.name %>.js' + }, + }, uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n', compress: false }, build: { - src: 'dist/<%= pkg.name %>.js', - dest: 'dist/<%= pkg.name %>.min.js' + src: '<%= pkg.name %>.js', + dest: '<%= pkg.name %>.min.js' } }, browserify: { - options: { - transform: ['strictify', 'sweetify', 'babelify'], - plugin: ['browserify-derequire'], - browserifyOptions: { - standalone: 'Rusha' - } - }, - build: { - files: { - 'dist/rusha.js': ['src/index.js'] - } + test: { + src: ['<%= pkg.name %>.min.js', 'test/test.js'], + dest: 'test/bundle.js' } }, - karma: { - options: { - basePath: '', - singleRun: true, - logLevel: 'WARN', - files: [], - reporters: ['mocha'], - mochaReporter: { - showDiff: true + mochaTest: { + test: { + options: { + reporter: 'spec', + require: 'coverage/blanket' }, - customLaunchers: { - FirefoxHeadless: { - base: 'Firefox', - flags: ['-headless'], - }, + src: ['test/test.js'], + }, + coverage: { + options: { + reporter: 'html-cov', + quiet: true, + captureFile: 'coverage/report.html' }, - browserNoActivityTimeout: 60000 - }, - unit: { - options: { - frameworks: ['browserify', 'mocha', 'chai'], - files: ['test/unit/*.js'], - preprocessors: { - 'test/unit/*.js': ['browserify'] - }, - browsers - } - }, - fuzz: { - options: { - frameworks: ['browserify', 'mocha', 'chai'], - files: ['test/fuzz.js'], - preprocessors: { - 'test/fuzz.js': ['browserify'] - }, - browsers - } - }, - functional: { - options: { - frameworks: ['browserify', 'mocha', 'chai-as-promised', 'chai'], - files: ['test/functional/*.js'], - preprocessors: { - 'test/functional/*.js': ['browserify'] - }, - browserify: { - transform: ['brfs'] - }, - browsers - } - }, - compatibilityWithVanillaScript: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai'], - files: [ - 'test/compat/vanilla_script.js', - 'dist/rusha.min.js' - ], - browsers - } - }, - compatibilityWithVanillaWorker: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai'], - files: [ - 'test/compat/vanilla_worker.js', - {pattern: 'dist/rusha.min.js', included: false, served: true} - ], - browsers - } - }, - compatibilityWithBrowserify: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai', 'browserify'], - files: [ - 'test/compat/require.js', - ], - preprocessors: { - 'test/compat/require.js': ['browserify'] - }, - browsers - } - }, - compatibilityWithWebpack: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai'], - files: [ - 'test/compat/require.js', - ], - preprocessors: { - 'test/compat/require.js': ['webpack'] - }, - browsers - } - }, - benchmark: { - options: { - frameworks: ['browserify', 'benchmark'], - reporters: ['benchmark'], - files: ['perf/benchmark.js'], - preprocessors: { - 'perf/benchmark.js': ['browserify'] - }, - browsers - } + src: ['test/test.js'] } }, - eslint: { - target: [ - 'src/*.js' - ] + connect: { server: { options: { base: "", port: 9999 } } }, + 'saucelabs-mocha': { + all: { + options: { + username: 'rusha', + urls: ['http://127.0.0.1:9999/test/test.html'], + build: process.env.CI_BUILD_NUMBER, + testname: 'Sauce Unit Test for Rusha', + browsers: [ + ["Windows 8", "firefox", 32], + ["Windows 8", "chrome", 37] + ] + } + } } }); - grunt.loadNpmTasks('grunt-eslint'); - grunt.loadNpmTasks('grunt-karma'); - grunt.loadNpmTasks('grunt-browserify'); + grunt.loadNpmTasks('grunt-sweet.js'); grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-browserify'); + grunt.loadNpmTasks('grunt-mocha-test'); + grunt.loadNpmTasks('grunt-contrib-connect'); + grunt.loadNpmTasks('grunt-saucelabs'); grunt.registerTask('test', [ - 'eslint', + 'sweetjs', 'uglify', 'browserify', - 'uglify', - 'karma:unit', - 'karma:fuzz', - 'karma:functional', - 'karma:compatibilityWithVanillaScript', - 'karma:compatibilityWithVanillaWorker', - 'karma:compatibilityWithBrowserify', - 'karma:compatibilityWithWebpack' + 'mochaTest' ]); - grunt.registerTask('test:unit', [ - 'eslint', + grunt.registerTask('test-saucelabs', [ + 'sweetjs', 'uglify', 'browserify', - 'uglify', - 'karma:unit' + 'connect', 'saucelabs-mocha' ]); - grunt.registerTask('benchmark', ['browserify', 'uglify', 'karma:benchmark']); - - grunt.registerTask('build', ['eslint', 'browserify', 'uglify']); + grunt.registerTask('build', ['sweetjs', 'uglify']); }; diff --git a/lib/rusha/benchmark/benchmark.js b/lib/rusha/benchmark/benchmark.js new file mode 100644 index 00000000..db50da3a --- /dev/null +++ b/lib/rusha/benchmark/benchmark.js @@ -0,0 +1,36 @@ +if (typeof require === 'function') { + var crypto = require('crypto'); + var johnston = require('../examples/bench/johnston'); + var Rusha = require('../rusha'); + var cifre_utils = require('../examples/bench/cifre/utils.js'); + var cifre_sha1 = require('../examples/bench/cifre/sha1.js'); + var random = require('../examples/random'); + var fnNative = random.fnNative, + randomBytes = random.randomBytes; + var Benchmark = require('benchmark'); +} + +var _rush = new Rusha(1 * 1024 * 1024); + +var bytes = randomBytes(1 * 1024 * 1024); + +(new Benchmark.Suite) + +.add('Rusha', function() { + _rush.digest(bytes); +}) +.add('Johnston', function() { + johnston(bytes); +}) +.add('Cifre', function () { + cifre_utils.tohex(cifre_sha1(bytes)); +}) + +.on('cycle', function(event) { + console.log(String(event.target)); +}) +.on('complete', function() { + console.log('Fastest is ' + this.filter('fastest').pluck('name')); +}) + +.run(); diff --git a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css b/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html b/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html deleted file mode 100644 index 9a69d99d..00000000 --- a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/
12.47%108/86611.11%36/32421.05%24/1148.91%35/393
-
-
- - - - - - - diff --git a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css b/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js b/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png b/lib/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css b/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html b/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html deleted file mode 100644 index 9a69d99d..00000000 --- a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/
12.47%108/86611.11%36/32421.05%24/1148.91%35/393
-
-
- - - - - - - diff --git a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css b/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js b/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png b/lib/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/lib/rusha/coverage/blanket.js b/lib/rusha/coverage/blanket.js new file mode 100644 index 00000000..044a55c3 --- /dev/null +++ b/lib/rusha/coverage/blanket.js @@ -0,0 +1,6 @@ +var path = require('path'); +var srcDir = path.join(__dirname, '..', 'rusha.js'); + +require('blanket')({ + pattern: srcDir +}); \ No newline at end of file diff --git a/lib/rusha/coverage/report.html b/lib/rusha/coverage/report.html new file mode 100644 index 00000000..b52a8839 --- /dev/null +++ b/lib/rusha/coverage/report.html @@ -0,0 +1,354 @@ +Coverage +

Coverage

0%
0
0
0
\ No newline at end of file diff --git a/lib/rusha/misc/bench.html b/lib/rusha/misc/bench.html deleted file mode 100644 index c9ddc89b..00000000 --- a/lib/rusha/misc/bench.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/lib/rusha/misc/bench.js b/lib/rusha/misc/bench.js deleted file mode 100644 index 7ab3a269..00000000 --- a/lib/rusha/misc/bench.js +++ /dev/null @@ -1,47 +0,0 @@ -if (typeof require === 'function') { - var crypto = require('crypto'); - var johnston = require('./bench/johnston'); - var Rusha = require('../dist/rusha.min.js'); - var cifre_utils = require('./bench/cifre/utils.js'); - var cifre_sha1 = require('./bench/cifre/sha1.js'); - var random = require('./random'); - var fnNative = random.fnNative, - randomBytes = random.randomBytes; -} - -var sizes = [4*1024, 65535, 1024*1024, 4*1024*1024, 8*1024*1024]; -var repeats = [ 100, 30, 3, 1, 1]; - -var _rush = new Rusha(Math.max.apply(Math, sizes)), - fnRusha = function (bytes) { - return _rush.digestFromBuffer(bytes); -}; - -var fnJohnston = function (bytes) { - return johnston(bytes); -}; - -var fnCifre = function (bytes) { - return cifre_utils.tohex(cifre_sha1(bytes)); -}; - -var ids = ['Native ', 'Rusha ', 'Johnst. ', 'Cifre ']; -var fns = [fnNative, fnRusha, fnJohnston, fnCifre]; - -var bench = function () { - sizes.forEach(function (size, k) { - console.log('Benchmarking ' + size + ' bytes ...'); - var bytes = randomBytes(size); - fns.forEach(function (fn, i) { - var t0 = (new Date()).getTime(); - var res = ""; - for (j=0;j>> 27))) >>> 0; - } - - function f1(a, b, c, d, e, w) { - return common(a, e, w, 0x5A827999, d ^ (b & (c ^ d))); - } - - function f2(a, b, c, d, e, w) { - return common(a, e, w, 0x6ED9EBA1, b ^ c ^ d); - } - - function f3(a, b, c, d, e, w) { - return common(a, e, w, 0x8F1BBCDC, (b & c) | (d & (b | c))); - } - - function f4(a, b, c, d, e, w) { - return common(a, e, w, 0xCA62C1D6, b ^ c ^ d); - } - - // function hex8(num) { - // var hex = num.toString(16).toUpperCase(); - // return "00000000".substr(hex.length) + hex; - // } - - function cycle(state, block) { - var a = state[0], - b = state[1], - c = state[2], - d = state[3], - e = state[4]; - - // console.log("\nInitial hash value:"); - // for (var i = 0; i < 5; i++) { - // console.log(" H[" + i + "] = " + hex8(state[i])); - // } - // console.log("\nBlock Contents:"); - // for (var i = 0; i < 16; i++) { - // console.log(" W[" + i + "] = " + hex8(block[i])); - // } - - // console.log("\n A B C D E"); - // Partially unroll loops so we don't have to shift variables. - var fn = f1;; - for (var i = 0; i < 80; i += 5) { - if (i === 20) { fn = f2; } - else if (i === 40) { fn = f3; } - else if (i === 60) { fn = f4; } - e = fn(a, b, c, d, e, block[i]); b = ((b << 30) | (b >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i, - // hex8(e), hex8(a), hex8(b), hex8(c), hex8(d)); - d = fn(e, a, b, c, d, block[i + 1]); a = ((a << 30) | (a >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 1, - // hex8(d), hex8(e), hex8(a), hex8(b), hex8(c)); - c = fn(d, e, a, b, c, block[i + 2]); e = ((e << 30) | (e >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 2, - // hex8(c), hex8(d), hex8(e), hex8(a), hex8(b)); - b = fn(c, d, e, a, b, block[i + 3]); d = ((d << 30) | (d >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 3, - // hex8(b), hex8(c), hex8(d), hex8(e), hex8(a)); - a = fn(b, c, d, e, a, block[i + 4]); c = ((c << 30) | (c >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 4, - // hex8(a), hex8(b), hex8(c), hex8(d), hex8(e)); - } - - // console.log(); - // process.stdout.write("H[0] = " + hex8(state[0]) + " + " + hex8(a)); - state[0] += a; - // console.log(" = " + hex8(state[0])); - // process.stdout.write("H[1] = " + hex8(state[1]) + " + " + hex8(b)); - state[1] += b; - // console.log(" = " + hex8(state[1])); - // process.stdout.write("H[2] = " + hex8(state[2]) + " + " + hex8(c)); - state[2] += c; - // console.log(" = " + hex8(state[2])); - // process.stdout.write("H[3] = " + hex8(state[3]) + " + " + hex8(d)); - state[3] += d; - // console.log(" = " + hex8(state[3])); - // process.stdout.write("H[4] = " + hex8(state[4]) + " + " + hex8(e)); - state[4] += e; - // console.log(" = " + hex8(state[4])); - - - } - - // input is a Uint8Array bitstream of the data - function sha1(input) { - - var inputLength = input.length; - - // Pad the input string length. - var length = inputLength + 9; - length += 64 - (length % 64); - - state[0] = 0x67452301; - state[1] = 0xefcdab89; - state[2] = 0x98badcfe; - state[3] = 0x10325476; - state[4] = 0xc3d2e1f0; - - for (var offset = 0; offset < length; offset += 64) { - - // Copy input to block and write padding as needed - for (var i = 0; i < 64; i++) { - var b = 0, - o = offset + i; - if (o < inputLength) { - b = input[o]; - } - else if (o === inputLength) { - b = 0x80; - } - else { - // Write original bit length as a 64bit big-endian integer to the end. - var x = length - o - 1; - if (x >= 0 && x < 4) { - b = (inputLength << 3 >>> (x * 8)) & 0xff; - } - } - - // Interpret the input bytes as big-endian per the spec - if (i % 4 === 0) { - block[i >> 2] = b << 24; - } - else { - block[i >> 2] |= b << ((3 - (i % 4)) * 8); - } - } - - // Extend the block - for (var i = 16; i < 80; i++) { - var w = block[i - 3] ^ block[i - 8] ^ block[i - 14] ^ block[i - 16]; - block[i] = (w << 1) | (w >>> 31); - } - - cycle(state, block); - - } - - // Swap the bytes around since they are big endian internally - return [ - bstate[3], bstate[2], bstate[1], bstate[0], - bstate[7], bstate[6], bstate[5], bstate[4], - bstate[11], bstate[10], bstate[9], bstate[8], - bstate[15], bstate[14], bstate[13], bstate[12], - bstate[19], bstate[18], bstate[17], bstate[16], - ] - } - - return sha1; -}); diff --git a/lib/rusha/misc/bench/cifre/utils.js b/lib/rusha/misc/bench/cifre/utils.js deleted file mode 100644 index 3876f3dd..00000000 --- a/lib/rusha/misc/bench/cifre/utils.js +++ /dev/null @@ -1,123 +0,0 @@ -/* - - Copyright (c) 2013 SMB Phone Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - The views and conclusions contained in the software and documentation are those - of the authors and should not be interpreted as representing official policies, - either expressed or implied, of the FreeBSD Project. - -*/ - -( // Module boilerplate to support browser globals, node.js and AMD. - (typeof module !== "undefined" && function (m) { module.exports = m(); }) || - (typeof define === "function" && function (m) { define(m); }) || - (function (m) { window.cifre_utils = m(); }) -)(function () { - "use strict"; - - function hex(val) { - if (val >>> 0 !== val) { return " "; } - if (val < 0x10) { return "0" + val.toString(16); } - return val.toString(16); - } - - function ensureArray(buffer) { - if (buffer instanceof Uint8Array) { - return buffer; - } - if (buffer instanceof ArrayBuffer || Array.isArray(buffer)) { - return new Uint8Array(buffer); - } - if (buffer.buffer instanceof ArrayBuffer) { - return new Uint8Array(buffer.buffer); - } - throw new TypeError("Invalid buffer type " + buffer); - } - - // Dump a Uint8Array as a 4-row hex stream - function dump(block) { - block = ensureArray(block); - var rows = new Array(4); - var width = Math.ceil(block.length / 4); - for (var i = 0; i < 4; i++) { - rows[i] = new Array(width); - for (var j = 0; j < width; j++) { - rows[i][j] = block[i + j * 4]; - } - } - console.log(rows.map(function (row) { - return row.map(function (val, i) { - if (val === undefined) return ""; - return hex(val) + ((i % 4 === 3) ? " " : ","); }).join(""); - }).join("\n")); - } - - function fromhex(string) { - var length = string.length; - var array = new Uint8Array(length / 2); - for (var i = 0; i < length; i += 2) { - array[i / 2] = parseInt(string.substr(i, 2), 16); - } - return array; - } - - function tohex(array) { - var string = ""; - array = ensureArray(array); - for (var i = 0, l = array.length; i < l; i++) { - string += hex(array[i]); - } - return string; - } - - function stringToArray(string) { - // UTF-8 encode the string using one character per byte - string = unescape(encodeURIComponent(string)); - var length = string.length; - var arr = new Array(length); - for (var i = 0; i < length; i++) { - arr[i] = string.charCodeAt(i); - } - return arr; - } - - function stringToBuffer(string) { - // UTF-8 encode the string using one character per byte - string = unescape(encodeURIComponent(string)); - var length = string.length; - var arr = new Uint8Array(length); - for (var i = 0; i < length; i++) { - arr[i] = string.charCodeAt(i); - } - return arr; - } - - return { - dump: dump, - tohex: tohex, - fromhex: fromhex, - stringToArray: stringToArray, - stringToBuffer: stringToBuffer - }; -}); diff --git a/lib/rusha/misc/bench/johnston.js b/lib/rusha/misc/bench/johnston.js deleted file mode 100644 index cebcc27e..00000000 --- a/lib/rusha/misc/bench/johnston.js +++ /dev/null @@ -1,354 +0,0 @@ -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS 180-1 - * Version 2.2 Copyright Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -if (typeof module !== 'undefined') { - module.exports = function (s) { return rstr2hex(binb2rstr(binb_sha1(buf2binb(s), s.length * 8))); } -} else { - function johnston (s) { return rstr2hex(binb2rstr(binb_sha1(tarr2binb(s), s.byteLength * 8))); } -} -function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); } -function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); } -function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); } -function hex_hmac_sha1(k, d) - { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } -function b64_hmac_sha1(k, d) - { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } -function any_hmac_sha1(k, d, e) - { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha1_vm_test() -{ - return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d"; -} - -/* - * Calculate the SHA1 of a raw string - */ -function rstr_sha1(s) -{ - return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8)); -} - -/* - * Calculate the HMAC-SHA1 of a key and some data (raw strings) - */ -function rstr_hmac_sha1(key, data) -{ - var bkey = rstr2binb(key); - if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8); - return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160)); -} - -/* - * Convert a raw string to a hex string - */ -function rstr2hex(input) -{ - try { hexcase } catch(e) { hexcase=0; } - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var output = ""; - var x; - for(var i = 0; i < input.length; i++) - { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) - + hex_tab.charAt( x & 0x0F); - } - return output; -} - -/* - * Convert a raw string to a base-64 string - */ -function rstr2b64(input) -{ - try { b64pad } catch(e) { b64pad=''; } - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var output = ""; - var len = input.length; - for(var i = 0; i < len; i += 3) - { - var triplet = (input.charCodeAt(i) << 16) - | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) - | (i + 2 < len ? input.charCodeAt(i+2) : 0); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > input.length * 8) output += b64pad; - else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); - } - } - return output; -} - -/* - * Convert a raw string to an arbitrary string encoding - */ -function rstr2any(input, encoding) -{ - var divisor = encoding.length; - var remainders = Array(); - var i, q, x, quotient; - - /* Convert to an array of 16-bit big-endian values, forming the dividend */ - var dividend = Array(Math.ceil(input.length / 2)); - for(i = 0; i < dividend.length; i++) - { - dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); - } - - /* - * Repeatedly perform a long division. The binary array forms the dividend, - * the length of the encoding is the divisor. Once computed, the quotient - * forms the dividend for the next step. We stop when the dividend is zero. - * All remainders are stored for later use. - */ - while(dividend.length > 0) - { - quotient = Array(); - x = 0; - for(i = 0; i < dividend.length; i++) - { - x = (x << 16) + dividend[i]; - q = Math.floor(x / divisor); - x -= q * divisor; - if(quotient.length > 0 || q > 0) - quotient[quotient.length] = q; - } - remainders[remainders.length] = x; - dividend = quotient; - } - - /* Convert the remainders to the output string */ - var output = ""; - for(i = remainders.length - 1; i >= 0; i--) - output += encoding.charAt(remainders[i]); - - /* Append leading zero equivalents */ - var full_length = Math.ceil(input.length * 8 / - (Math.log(encoding.length) / Math.log(2))) - for(i = output.length; i < full_length; i++) - output = encoding[0] + output; - - return output; -} - -/* - * Encode a string as utf-8. - * For efficiency, this assumes the input is valid utf-16. - */ -function str2rstr_utf8(input) -{ - var output = ""; - var i = -1; - var x, y; - - while(++i < input.length) - { - /* Decode utf-16 surrogate pairs */ - x = input.charCodeAt(i); - y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; - if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) - { - x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); - i++; - } - - /* Encode output as utf-8 */ - if(x <= 0x7F) - output += String.fromCharCode(x); - else if(x <= 0x7FF) - output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), - 0x80 | ( x & 0x3F)); - else if(x <= 0xFFFF) - output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - else if(x <= 0x1FFFFF) - output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), - 0x80 | ((x >>> 12) & 0x3F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - } - return output; -} - -/* - * Encode a string as utf-16 - */ -function str2rstr_utf16le(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode( input.charCodeAt(i) & 0xFF, - (input.charCodeAt(i) >>> 8) & 0xFF); - return output; -} - -function str2rstr_utf16be(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, - input.charCodeAt(i) & 0xFF); - return output; -} - -/* - * Convert a raw string to an array of big-endian words - * Characters >255 have their high-byte silently ignored. - */ -function rstr2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); - return output; -} - -function buf2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input[i / 8] & 0xFF) << (24 - i % 32); - return output; -} - -function tarr2binb(input) -{ - var output = Array(input.byteLength >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.byteLength * 8; i += 8) - output[i>>5] |= (input[i / 8] & 0xFF) << (24 - i % 32); - return output; -} -/* - * Convert an array of big-endian words to a string - */ -function binb2rstr(input) -{ - var output = ""; - for(var i = 0; i < input.length * 32; i += 8) - output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); - return output; -} - -/* - * Calculate the SHA-1 of an array of big-endian words, and a bit length - */ -function binb_sha1(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << (24 - len % 32); - x[((len + 64 >> 9) << 4) + 15] = len; - - var w = Array(80); - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - var e = -1009589776; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - var olde = e; - - for(var j = 0; j < 80; j++) - { - if(j < 16) w[j] = x[i + j]; - else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); - var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)), - safe_add(safe_add(e, w[j]), sha1_kt(j))); - e = d; - d = c; - c = bit_rol(b, 30); - b = a; - a = t; - } - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - e = safe_add(e, olde); - } - return Array(a, b, c, d, e); - -} - -/* - * Perform the appropriate triplet combination function for the current - * iteration - */ -function sha1_ft(t, b, c, d) -{ - if(t < 20) return (b & c) | ((~b) & d); - if(t < 40) return b ^ c ^ d; - if(t < 60) return (b & c) | (b & d) | (c & d); - return b ^ c ^ d; -} - -/* - * Determine the appropriate additive constant for the current iteration - */ -function sha1_kt(t) -{ - return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : - (t < 60) ? -1894007588 : -899497514; -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} diff --git a/lib/rusha/misc/random.js b/lib/rusha/misc/random.js deleted file mode 100644 index 4117fb13..00000000 --- a/lib/rusha/misc/random.js +++ /dev/null @@ -1,39 +0,0 @@ -if (typeof require === 'function') { - var crypto = require('crypto'); - var johnston = require('./bench/johnston'); - var Rusha = require('../dist/rusha.js'); - var cifre_utils = require('./bench/cifre/utils.js'); - var cifre_sha1 = require('./bench/cifre/sha1.js'); -} - -if (typeof module !== 'undefined') { - - module.exports = { - - fnNative: function (bytes) { - var shasum = crypto.createHash('sha1'); - shasum.update(bytes); - return shasum.digest('hex'); - }, - - randomBytes: function (size) { - return crypto.pseudoRandomBytes(size); - }, - - }; - -} else { - - function fnNative () { return 'unavailable'; } - - function randomBytes (size) { - var bytes = new Uint8Array(size); - var r; - for (var i = 0, r; i < size; i++) { - if ((i & 0x03) == 0) r = Math.random() * 0x100000000; - bytes[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - return bytes; - } - -} diff --git a/lib/rusha/misc/runuithread.html b/lib/rusha/misc/runuithread.html deleted file mode 100644 index 2de6f426..00000000 --- a/lib/rusha/misc/runuithread.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/lib/rusha/misc/single.js b/lib/rusha/misc/single.js deleted file mode 100644 index 7ba3bf90..00000000 --- a/lib/rusha/misc/single.js +++ /dev/null @@ -1,18 +0,0 @@ -if (typeof require === 'function') { - var Rusha = require('../dist/rusha.js'); - var randomBytes = require('crypto').pseudoRandomBytes; -} - -var sizes = [4*1024, 65535, 1024*1024, 4*1024*1024, 8*1024*1024]; - -var _rush = new Rusha(Math.max.apply(Math, sizes)); - -var i, j, bytes, t0, t1; - -for (i = 0; i < sizes.length; i++) { - bytes = randomBytes(sizes[i]); - t0 = (new Date()).getTime(); - for (j = 0; j < 3; j++) _rush.digestFromBuffer(bytes); - t1 = (new Date()).getTime(); - console.log('Emitted in ' + ((t1-t0)/3) + ' milliseconds'); -} diff --git a/lib/rusha/misc/test.js b/lib/rusha/misc/test.js deleted file mode 100644 index 0d31eba8..00000000 --- a/lib/rusha/misc/test.js +++ /dev/null @@ -1,46 +0,0 @@ -if (typeof require === 'function') { - var crypto = require('crypto'); - var johnston = require('./bench/johnston'); - var Rusha = require('../dist/rusha.js'); - var cifre_utils = require('./bench/cifre/utils.js'); - var cifre_sha1 = require('./bench/cifre/sha1.js'); - var random = require('./random'); - var fnNative = random.fnNative, - randomBytes = random.randomBytes; -} - -var _rush = new Rusha(), - fnRusha = function (bytes) { - return _rush.digestFromBuffer(bytes); -}; - -var fnJohnston = function (bytes) { - return johnston(bytes); -}; - -var fnCifre = function (bytes) { - return cifre_utils.tohex(cifre_sha1(bytes)); -}; - -var ids = ['Native ', 'Rusha ', 'Cifre ']; -var fns = [fnNative, fnRusha/*, fnCifre*/]; - -var bench = function () { - for (size=0;size<1024*8;size++) { - // use random test data - var bytes = randomBytes(size);//"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquy".substr(0, size); - var ref = ""; - fns.forEach(function (fn, i) { - var res = fn(bytes); - if (ref == "") - ref = res; - else if (ref != res) - console.log(ids[i] + ' hash mismatch on size ' + size + ': ' + res + ' expected: ' + ref); - }); - if (!(size % 1000)) - console.log(size); - }; -} - -bench(); - diff --git a/lib/rusha/package.json b/lib/rusha/package.json index 2c534bda..4bfa5884 100644 --- a/lib/rusha/package.json +++ b/lib/rusha/package.json @@ -1,8 +1,8 @@ { "name": "rusha", - "version": "0.8.11", + "version": "0.8.5", "description": "A high-performance pure-javascript SHA1 implementation suitable for large binary data.", - "main": "dist/rusha.js", + "main": "rusha.js", "keywords": [ "sha1", "binary", @@ -11,87 +11,52 @@ ], "scripts": { "test": "grunt test", - "test:unit": "grunt test:unit", - "build": "grunt build", - "benchmark": "grunt benchmark" + "test-saucelabs": "grunt test-saucelabs", + "build": "grunt build" }, "repository": { "type": "git", "url": "git+https://github.com/srijs/rusha.git" }, "devDependencies": { - "asm.js": "^0.0.2", - "babel-core": "^6.26.0", - "babel-eslint": "^8.0.3", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.26.0", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babelify": "^8.0.0", + "asm.js": "0.0.2", "benchmark": "^1.0.0", - "brfs": "^1.4.3", - "browserify": "^14.5.0", - "browserify-derequire": "^0.9.4", - "grunt": "^1.0.1", - "grunt-browserify": "^5.2.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-uglify": "^3.1.0", - "grunt-eslint": "^20.1.0", - "grunt-karma": "^2.0.0", - "karma": "^1.7.1", - "karma-benchmark": "^0.7.1", - "karma-benchmark-reporter": "^0.1.1", - "karma-browserify": "^5.1.2", - "karma-chai-plugins": "^0.9.0", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.0.1", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.5", - "karma-webpack": "^2.0.6", + "blanket": "~1.1.6", + "grunt": "~0.4.5", + "grunt-browserify": "^3.5.0", + "grunt-cli": "~0.1.13", + "grunt-contrib-connect": "^0.8.0", + "grunt-contrib-uglify": "~0.5.1", + "grunt-mocha-test": "~0.11.0", + "grunt-saucelabs": "^8.3.2", + "grunt-sweet.js": "~0.1.5", "microtime": "^2.1.1", - "mocha": "^4.0.1", - "node-forge": "^0.7.1", - "sha.js": "^2.4.9", - "strictify": "^0.2.0", - "sweetify": "^0.4.0", - "watchify": "^3.9.0", - "webpack": "^3.9.1", - "webworkify": "^1.5.0" + "mocha": "^3.0.2", + "sweet.js": "~0.7.1" + }, + "testling": { + "files": "test/test.js", + "harness": "mocha-tdd", + "browsers": [ + "ie/6..latest", + "chrome/22..latest", + "firefox/16..latest", + "safari/latest", + "opera/11.0..latest" + ] }, "author": { "name": "Sam Rijs" }, "license": "MIT", - "gitHead": "f803443f8c111ae6957de52ec286318910ce7f07", + "readmeFilename": "README.md", + "readme": "# Rusha [![Build Status](https://travis-ci.org/srijs/rusha.png?branch=master)](https://travis-ci.org/srijs/rusha)\n*A high-performance pure-javascript SHA1 implementation suitable for large binary data.*\n\n[![NPM](https://nodei.co/npm/rusha.png?downloads=true&downloadRank=true)](https://nodei.co/npm/rusha/)\n\n## Prologue: The Sad State of Javascript SHA1 implementations\n\nWhen we started experimenting with alternative upload technologies at [doctape](http://doctape.com) that required creating SHA1 hashes of the data locally on the client, it quickly became obvious that there were no performant pure-js implementations of SHA1 that worked correctly on binary data.\n\nJeff Mott's [CryptoJS](http://code.google.com/p/crypto-js/) and Brian Turek's [jsSHA](http://caligatio.github.com/jsSHA/) were both hash functions that worked correctly on ASCII strings of a small size, but didn't scale to large data and/or didn't work correctly with binary data.\n\n(On a sidenode, as of now Tim Caswell's [Cifre](http://github.com/openpeer/cifre) actually works with large binary data, as opposed to previously statet.)\n\nBy modifying Paul Johnston's [sha1.js](http://pajhome.org.uk/crypt/md5/sha1.html) slightly, it worked correctly on binary data but was unfortunately very slow, especially on V8. So a few days were invested on my side to implement a Johnston-inspired SHA1 hashing function with a heavy focus on performance.\n\nThe result of this process is Rusha, a SHA1 hash function that works flawlessly on large amounts binary data, such as binary strings or ArrayBuffers returned by the HTML5 File API, and leverages the soon-to-be-landed-in-firefox [asm.js](http://asmjs.org/spec/latest/) with whose support its within *half of native speed*!\n\n## Installing\n\n### Node.JS\n\nThere is really no point in doing this, since Node.JS already has a wonderful `crypto` module that is leveraging low-level hardware instructions to perform really nice. Your can see the comparison below in the benchmarks.\n\nRusha is available on [npm](http://npmjs.org/) via `npm install rusha`.\n\nIf you still want to do this, anyhow, just `require()` the `rusha.js` file, follow the instructions on _Using the Rusha Object_.\n\n### Browser\n\nRusha is available on [bower](http://twitter.github.com/bower/) via `bower install rusha`.\n\nIt is highly recommended to run CPU-intensive tasks in a [Web Worker](http://developer.mozilla.org/en-US/docs/DOM/Using_web_workers). To do so, just start a worker with `var worker = new Worker('rusha.js')` and start sending it jobs. Follow the instructions on _Using the Rusha Worker_.\n\nIf you can't, for any reason, use Web Workers, include the `rusha.js` file in a `\n\n```\n\n## Documentation\n\n### Collections\n\n* [`each`](#each)\n* [`eachSeries`](#eachSeries)\n* [`eachLimit`](#eachLimit)\n* [`map`](#map)\n* [`mapSeries`](#mapSeries)\n* [`mapLimit`](#mapLimit)\n* [`filter`](#filter)\n* [`filterSeries`](#filterSeries)\n* [`reject`](#reject)\n* [`rejectSeries`](#rejectSeries)\n* [`reduce`](#reduce)\n* [`reduceRight`](#reduceRight)\n* [`detect`](#detect)\n* [`detectSeries`](#detectSeries)\n* [`sortBy`](#sortBy)\n* [`some`](#some)\n* [`every`](#every)\n* [`concat`](#concat)\n* [`concatSeries`](#concatSeries)\n\n### Control Flow\n\n* [`series`](#seriestasks-callback)\n* [`parallel`](#parallel)\n* [`parallelLimit`](#parallellimittasks-limit-callback)\n* [`whilst`](#whilst)\n* [`doWhilst`](#doWhilst)\n* [`until`](#until)\n* [`doUntil`](#doUntil)\n* [`forever`](#forever)\n* [`waterfall`](#waterfall)\n* [`compose`](#compose)\n* [`seq`](#seq)\n* [`applyEach`](#applyEach)\n* [`applyEachSeries`](#applyEachSeries)\n* [`queue`](#queue)\n* [`priorityQueue`](#priorityQueue)\n* [`cargo`](#cargo)\n* [`auto`](#auto)\n* [`retry`](#retry)\n* [`iterator`](#iterator)\n* [`apply`](#apply)\n* [`nextTick`](#nextTick)\n* [`times`](#times)\n* [`timesSeries`](#timesSeries)\n\n### Utils\n\n* [`memoize`](#memoize)\n* [`unmemoize`](#unmemoize)\n* [`log`](#log)\n* [`dir`](#dir)\n* [`noConflict`](#noConflict)\n\n\n## Collections\n\n\n\n### each(arr, iterator, callback)\n\nApplies the function `iterator` to each item in `arr`, in parallel.\nThe `iterator` is called with an item from the list, and a callback for when it\nhas finished. If the `iterator` passes an error to its `callback`, the main\n`callback` (for the `each` function) is immediately called with the error.\n\nNote, that since this function applies `iterator` to each item in parallel,\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err)` which must be called once it has \n completed. If no error has occurred, the `callback` should be run without \n arguments or with an explicit `null` argument.\n* `callback(err)` - A callback which is called when all `iterator` functions\n have finished, or an error occurs.\n\n__Examples__\n\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n```js\n// assuming openFiles is an array of file names \n\nasync.each(openFiles, function(file, callback) {\n \n // Perform operation on file here.\n console.log('Processing file ' + file);\n \n if( file.length > 32 ) {\n console.log('This file name is too long');\n callback('File name too long');\n } else {\n // Do work to process file here\n console.log('File processed');\n callback();\n }\n}, function(err){\n // if any of the file processing produced an error, err would equal that error\n if( err ) {\n // One of the iterations produced an error.\n // All processing will now stop.\n console.log('A file failed to process');\n } else {\n console.log('All files have been processed successfully');\n }\n});\n```\n\n---------------------------------------\n\n\n\n### eachSeries(arr, iterator, callback)\n\nThe same as [`each`](#each), only `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThis means the `iterator` functions will complete in order.\n\n\n---------------------------------------\n\n\n\n### eachLimit(arr, limit, iterator, callback)\n\nThe same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously \nrunning at any time.\n\nNote that the items in `arr` are not processed in batches, so there is no guarantee that \nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err)` which must be called once it has \n completed. If no error has occurred, the callback should be run without \n arguments or with an explicit `null` argument.\n* `callback(err)` - A callback which is called when all `iterator` functions\n have finished, or an error occurs.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in `arr` through\nthe `iterator` function. The `iterator` is called with an item from `arr` and a\ncallback for when it has finished processing. Each of these callback takes 2 arguments: \nan `error`, and the transformed item from `arr`. If `iterator` passes an error to his \ncallback, the main `callback` (for the `map` function) is immediately called with the error.\n\nNote, that since this function applies the `iterator` to each item in parallel,\nthere is no guarantee that the `iterator` functions will complete in order. \nHowever, the results array will be in the same order as the original `arr`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, transformed)` which must be called once \n it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - A callback which is called when all `iterator`\n functions have finished, or an error occurs. Results is an array of the\n transformed items from the `arr`.\n\n__Example__\n\n```js\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n\n### mapSeries(arr, iterator, callback)\n\nThe same as [`map`](#map), only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe results array will be in the same order as the original.\n\n\n---------------------------------------\n\n\n### mapLimit(arr, limit, iterator, callback)\n\nThe same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that \nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, transformed)` which must be called once \n it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - A callback which is called when all `iterator`\n calls have finished, or an error occurs. The result is an array of the\n transformed items from the original `arr`.\n\n__Example__\n\n```js\nasync.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n\n\n### filter(arr, iterator, callback)\n\n__Alias:__ `select`\n\nReturns a new array of all the values in `arr` which pass an async truth test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n The `iterator` is passed a `callback(truthValue)`, which must be called with a \n boolean argument once it has completed.\n* `callback(results)` - A callback which is called after all the `iterator`\n functions have finished.\n\n__Example__\n\n```js\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n\n\n### filterSeries(arr, iterator, callback)\n\n__Alias:__ `selectSeries`\n\nThe same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe results array will be in the same order as the original.\n\n---------------------------------------\n\n\n### reject(arr, iterator, callback)\n\nThe opposite of [`filter`](#filter). Removes values that pass an `async` truth test.\n\n---------------------------------------\n\n\n### rejectSeries(arr, iterator, callback)\n\nThe same as [`reject`](#reject), only the `iterator` is applied to each item in `arr`\nin series.\n\n\n---------------------------------------\n\n\n### reduce(arr, memo, iterator, callback)\n\n__Aliases:__ `inject`, `foldl`\n\nReduces `arr` into a single value using an async `iterator` to return\neach successive step. `memo` is the initial state of the reduction. \nThis function only operates in series. \n\nFor performance reasons, it may make sense to split a call to this function into \na parallel map, and then use the normal `Array.prototype.reduce` on the results. \nThis function is for situations where each step in the reduction needs to be async; \nif you can get the data before reducing it, then it's probably a good idea to do so.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `memo` - The initial state of the reduction.\n* `iterator(memo, item, callback)` - A function applied to each item in the\n array to produce the next step in the reduction. The `iterator` is passed a\n `callback(err, reduction)` which accepts an optional error as its first \n argument, and the state of the reduction as the second. If an error is \n passed to the callback, the reduction is stopped and the main `callback` is \n immediately called with the error.\n* `callback(err, result)` - A callback which is called after all the `iterator`\n functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n}, function(err, result){\n // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ `foldr`\n\nSame as [`reduce`](#reduce), only operates on `arr` in reverse order.\n\n\n---------------------------------------\n\n\n### detect(arr, iterator, callback)\n\nReturns the first value in `arr` that passes an async truth test. The\n`iterator` is applied in parallel, meaning the first iterator to return `true` will\nfire the detect `callback` with that result. That means the result might not be\nthe first item in the original `arr` (in terms of order) that passes the test.\n\nIf order within the original `arr` is important, then look at [`detectSeries`](#detectSeries).\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n The iterator is passed a `callback(truthValue)` which must be called with a \n boolean argument once it has completed.\n* `callback(result)` - A callback which is called as soon as any iterator returns\n `true`, or after all the `iterator` functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value `undefined` if none passed.\n\n__Example__\n\n```js\nasync.detect(['file1','file2','file3'], fs.exists, function(result){\n // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n\n### detectSeries(arr, iterator, callback)\n\nThe same as [`detect`](#detect), only the `iterator` is applied to each item in `arr`\nin series. This means the result is always the first in the original `arr` (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each `arr` value through an async `iterator`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, sortValue)` which must be called once it\n has completed with an error (which can be `null`) and a value to use as the sort\n criteria.\n* `callback(err, results)` - A callback which is called after all the `iterator`\n functions have finished, or an error occurs. Results is the items from\n the original `arr` sorted by the values returned by the `iterator` calls.\n\n__Example__\n\n```js\nasync.sortBy(['file1','file2','file3'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n}, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n});\n```\n\n__Sort Order__\n\nBy modifying the callback parameter the sorting order can be influenced:\n\n```js\n//ascending order\nasync.sortBy([1,9,3,5], function(x, callback){\n callback(null, x);\n}, function(err,result){\n //result callback\n} );\n\n//descending order\nasync.sortBy([1,9,3,5], function(x, callback){\n callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n}, function(err,result){\n //result callback\n} );\n```\n\n---------------------------------------\n\n\n### some(arr, iterator, callback)\n\n__Alias:__ `any`\n\nReturns `true` if at least one element in the `arr` satisfies an async test.\n_The callback for each iterator call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. Once any iterator\ncall returns `true`, the main `callback` is immediately called.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n in parallel. The iterator is passed a callback(truthValue) which must be \n called with a boolean argument once it has completed.\n* `callback(result)` - A callback which is called as soon as any iterator returns\n `true`, or after all the iterator functions have finished. Result will be\n either `true` or `false` depending on the values of the async tests.\n\n__Example__\n\n```js\nasync.some(['file1','file2','file3'], fs.exists, function(result){\n // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n\n### every(arr, iterator, callback)\n\n__Alias:__ `all`\n\nReturns `true` if every element in `arr` satisfies an async test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n in parallel. The iterator is passed a callback(truthValue) which must be \n called with a boolean argument once it has completed.\n* `callback(result)` - A callback which is called after all the `iterator`\n functions have finished. Result will be either `true` or `false` depending on\n the values of the async tests.\n\n__Example__\n\n```js\nasync.every(['file1','file2','file3'], fs.exists, function(result){\n // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n\n### concat(arr, iterator, callback)\n\nApplies `iterator` to each item in `arr`, concatenating the results. Returns the\nconcatenated list. The `iterator`s are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of `arr` passed to the `iterator` function.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, results)` which must be called once it \n has completed with an error (which can be `null`) and an array of results.\n* `callback(err, results)` - A callback which is called after all the `iterator`\n functions have finished, or an error occurs. Results is an array containing\n the concatenated results of the `iterator` function.\n\n__Example__\n\n```js\nasync.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n\n### concatSeries(arr, iterator, callback)\n\nSame as [`concat`](#concat), but executes in series instead of parallel.\n\n\n## Control Flow\n\n\n### series(tasks, [callback])\n\nRun the functions in the `tasks` array in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run, and `callback` is immediately called with the value of the error. \nOtherwise, `callback` receives an array of results when `tasks` have completed.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function, and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`series`](#series).\n\n**Note** that while many implementations preserve the order of object properties, the\n[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) \nexplicitly states that\n\n> The mechanics and order of enumerating the properties is not specified.\n\nSo if you rely on the order in which your series of functions are executed, and want\nthis to work on all platforms, consider using an array. \n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed\n a `callback(err, result)` it must call on completion with an error `err` (which can\n be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the `task` callbacks.\n\n__Example__\n\n```js\nasync.series([\n function(callback){\n // do some stuff ...\n callback(null, 'one');\n },\n function(callback){\n // do some more stuff ...\n callback(null, 'two');\n }\n],\n// optional callback\nfunction(err, results){\n // results is now equal to ['one', 'two']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n\n### parallel(tasks, [callback])\n\nRun the `tasks` array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main `callback` is immediately called with the value of the error.\nOnce the `tasks` have completed, the results are passed to the final `callback` as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`parallel`](#parallel).\n\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run. Each function is passed \n a `callback(err, result)` which it must call on completion with an error `err` \n (which can be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, 'one');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, 'two');\n }, 100);\n }\n],\n// optional callback\nfunction(err, results){\n // the results array will equal ['one','two'] even though\n // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n\n### parallelLimit(tasks, limit, [callback])\n\nThe same as [`parallel`](#parallel), only `tasks` are executed in parallel \nwith a maximum of `limit` tasks executing at any time.\n\nNote that the `tasks` are not executed in batches, so there is no guarantee that \nthe first `limit` tasks will complete before any others are started.\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed \n a `callback(err, result)` it must call on completion with an error `err` (which can\n be `null`) and an optional `result` value.\n* `limit` - The maximum number of `tasks` to run at any time.\n* `callback(err, results)` - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the `task` callbacks.\n\n---------------------------------------\n\n\n### whilst(test, fn, callback)\n\nRepeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\n__Arguments__\n\n* `test()` - synchronous truth test to perform before each execution of `fn`.\n* `fn(callback)` - A function which is called each time `test` passes. The function is\n passed a `callback(err)`, which must be called once it has completed with an \n optional `err` argument.\n* `callback(err)` - A callback which is called after the test fails and repeated\n execution of `fn` has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n);\n```\n\n---------------------------------------\n\n\n### doWhilst(fn, test, callback)\n\nThe post-check version of [`whilst`](#whilst). To reflect the difference in \nthe order of operations, the arguments `test` and `fn` are switched. \n\n`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n\n### until(test, fn, callback)\n\nRepeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\nThe inverse of [`whilst`](#whilst).\n\n---------------------------------------\n\n\n### doUntil(fn, test, callback)\n\nLike [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n\n### forever(fn, errback)\n\nCalls the asynchronous function `fn` with a callback parameter that allows it to\ncall itself again, in series, indefinitely.\n\nIf an error is passed to the callback then `errback` is called with the\nerror, and execution stops, otherwise it will never be called.\n\n```js\nasync.forever(\n function(next) {\n // next is suitable for passing to things that need a callback(err [, whatever]);\n // it will result in this function being called again.\n },\n function(err) {\n // if next is called with a value in its first parameter, it will appear\n // in here as 'err', and execution will stop.\n }\n);\n```\n\n---------------------------------------\n\n\n### waterfall(tasks, [callback])\n\nRuns the `tasks` array of functions in series, each passing their results to the next in\nthe array. However, if any of the `tasks` pass an error to their own callback, the\nnext function is not executed, and the main `callback` is immediately called with\nthe error.\n\n__Arguments__\n\n* `tasks` - An array of functions to run, each function is passed a \n `callback(err, result1, result2, ...)` it must call on completion. The first\n argument is an error (which can be `null`) and any further arguments will be \n passed as arguments in order to the next task.\n* `callback(err, [results])` - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n function(callback) {\n callback(null, 'one', 'two');\n },\n function(arg1, arg2, callback) {\n // arg1 now equals 'one' and arg2 now equals 'two'\n callback(null, 'three');\n },\n function(arg1, callback) {\n // arg1 now equals 'three'\n callback(null, 'done');\n }\n], function (err, result) {\n // result now equals 'done' \n});\n```\n\n---------------------------------------\n\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions `f()`, `g()`, and `h()` would produce the result of\n`f(g(h()))`, only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* `functions...` - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n setTimeout(function () {\n callback(null, n + 1);\n }, 10);\n}\n\nfunction mul3(n, callback) {\n setTimeout(function () {\n callback(null, n * 3);\n }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n // result now equals 15\n});\n```\n\n---------------------------------------\n\n### seq(fn1, fn2...)\n\nVersion of the compose function that is more natural to read.\nEach function consumes the return value of the previous function.\nIt is the equivalent of [`compose`](#compose) with the arguments reversed.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* functions... - the asynchronous functions to compose\n\n\n__Example__\n\n```js\n// Requires lodash (or underscore), express3 and dresende's orm2.\n// Part of an app, that fetches cats of the logged user.\n// This example uses `seq` function to avoid overnesting and error \n// handling clutter.\napp.get('/cats', function(request, response) {\n var User = request.models.User;\n async.seq(\n _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n function(user, fn) {\n user.getCats(fn); // 'getCats' has signature (callback(err, data))\n }\n )(req.session.user_id, function (err, cats) {\n if (err) {\n console.error(err);\n response.json({ status: 'error', message: err.message });\n } else {\n response.json({ status: 'ok', message: 'Cats found', data: cats });\n }\n });\n});\n```\n\n---------------------------------------\n\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling \n`callback` after all functions have completed. If you only provide the first\nargument, then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* `fns` - the asynchronous functions to all call with the same arguments\n* `args...` - any number of separate arguments to pass to the function\n* `callback` - the final argument should be the callback, called when all\n functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], 'bucket', callback);\n\n// partial application example:\nasync.each(\n buckets,\n async.applyEach([enableSearch, updateSchema]),\n callback\n);\n```\n\n---------------------------------------\n\n\n### applyEachSeries(arr, iterator, callback)\n\nThe same as [`applyEach`](#applyEach) only the functions are applied in series.\n\n---------------------------------------\n\n\n### queue(worker, concurrency)\n\nCreates a `queue` object with the specified `concurrency`. Tasks added to the\n`queue` are processed in parallel (up to the `concurrency` limit). If all\n`worker`s are in progress, the task is queued until one becomes available. \nOnce a `worker` completes a `task`, that `task`'s callback is called.\n\n__Arguments__\n\n* `worker(task, callback)` - An asynchronous function for processing a queued\n task, which must call its `callback(err)` argument when finished, with an \n optional `error` as an argument.\n* `concurrency` - An `integer` for determining how many `worker` functions should be\n run in parallel.\n\n__Queue objects__\n\nThe `queue` object returned by this function has the following properties and\nmethods:\n\n* `length()` - a function returning the number of items waiting to be processed.\n* `started` - a function returning whether or not any items have been pushed and processed by the queue\n* `running()` - a function returning the number of items currently being processed.\n* `idle()` - a function returning false if there are items waiting or being processed, or true if not.\n* `concurrency` - an integer for determining how many `worker` functions should be\n run in parallel. This property can be changed after a `queue` is created to\n alter the concurrency on-the-fly.\n* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once \n the `worker` has finished processing the task. Instead of a single task, a `tasks` array\n can be submitted. The respective callback is used for every task in the list.\n* `unshift(task, [callback])` - add a new task to the front of the `queue`.\n* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, \n and further tasks will be queued.\n* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`.\n* `paused` - a boolean for determining whether the queue is in a paused state\n* `pause()` - a function that pauses the processing of tasks until `resume()` is called.\n* `resume()` - a function that resumes the processing of queued tasks when the queue is paused.\n* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle.\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n console.log('hello ' + task.name);\n callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n console.log('all items have been processed');\n}\n\n// add some items to the queue\n\nq.push({name: 'foo'}, function (err) {\n console.log('finished processing foo');\n});\nq.push({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n console.log('finished processing item');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n});\n```\n\n\n---------------------------------------\n\n\n### priorityQueue(worker, concurrency)\n\nThe same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects:\n\n* `push(task, priority, [callback])` - `priority` should be a number. If an array of\n `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed.\n\n---------------------------------------\n\n\n### cargo(worker, [payload])\n\nCreates a `cargo` object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the `payload` limit). If the\n`worker` is in progress, the task is queued until it becomes available. Once\nthe `worker` has completed some tasks, each callback of those tasks is called.\nCheck out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work.\n\nWhile [queue](#queue) passes only one task to one of a group of workers\nat a time, cargo passes an array of tasks to a single worker, repeating\nwhen the worker is finished.\n\n__Arguments__\n\n* `worker(tasks, callback)` - An asynchronous function for processing an array of\n queued tasks, which must call its `callback(err)` argument when finished, with \n an optional `err` argument.\n* `payload` - An optional `integer` for determining how many tasks should be\n processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe `cargo` object returned by this function has the following properties and\nmethods:\n\n* `length()` - A function returning the number of items waiting to be processed.\n* `payload` - An `integer` for determining how many tasks should be\n process per round. This property can be changed after a `cargo` is created to\n alter the payload on-the-fly.\n* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called\n once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` \n can be submitted. The respective callback is used for every task in the list.\n* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued.\n* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`.\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n for(var i=0; i\n### auto(tasks, [callback])\n\nDetermines the best order for running the functions in `tasks`, based on their \nrequirements. Each function can optionally depend on other functions being completed \nfirst, and each function is run as soon as its requirements are satisfied. \n\nIf any of the functions pass an error to their callback, it will not \ncomplete (so any other functions depending on it will not run), and the main \n`callback` is immediately called with the error. Functions also receive an \nobject containing the results of functions which have completed so far.\n\nNote, all functions are called with a `results` object as a second argument, \nso it is unsafe to pass functions in the `tasks` object which cannot handle the\nextra argument. \n\nFor example, this snippet of code:\n\n```js\nasync.auto({\n readData: async.apply(fs.readFile, 'data.txt', 'utf-8')\n}, callback);\n```\n\nwill have the effect of calling `readFile` with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile('data.txt', 'utf-8', cb, {});\n```\n\nInstead, wrap the call to `readFile` in a function which does not forward the \n`results` object:\n\n```js\nasync.auto({\n readData: function(cb, results){\n fs.readFile('data.txt', 'utf-8', cb);\n }\n}, callback);\n```\n\n__Arguments__\n\n* `tasks` - An object. Each of its properties is either a function or an array of\n requirements, with the function itself the last item in the array. The object's key\n of a property serves as the name of the task defined by that property,\n i.e. can be used when specifying requirements for other tasks.\n The function receives two arguments: (1) a `callback(err, result)` which must be \n called when finished, passing an `error` (which can be `null`) and the result of \n the function's execution, and (2) a `results` object, containing the results of\n the previously executed functions.\n* `callback(err, results)` - An optional callback which is called when all the\n tasks have been completed. It receives the `err` argument if any `tasks` \n pass an error to their callback. Results are always returned; however, if \n an error occurs, no further `tasks` will be performed, and the results\n object will only contain partial results.\n\n\n__Example__\n\n```js\nasync.auto({\n get_data: function(callback){\n console.log('in get_data');\n // async code to get some data\n callback(null, 'data', 'converted to array');\n },\n make_folder: function(callback){\n console.log('in make_folder');\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n callback(null, 'folder');\n },\n write_file: ['get_data', 'make_folder', function(callback, results){\n console.log('in write_file', JSON.stringify(results));\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, 'filename');\n }],\n email_link: ['write_file', function(callback, results){\n console.log('in email_link', JSON.stringify(results));\n // once the file is written let's email a link to it...\n // results.write_file contains the filename returned by write_file.\n callback(null, {'file':results.write_file, 'email':'user@example.com'});\n }]\n}, function(err, results) {\n console.log('err = ', err);\n console.log('results = ', results);\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n function(callback){\n console.log('in get_data');\n // async code to get some data\n callback(null, 'data', 'converted to array');\n },\n function(callback){\n console.log('in make_folder');\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n callback(null, 'folder');\n }\n],\nfunction(err, results){\n async.series([\n function(callback){\n console.log('in write_file', JSON.stringify(results));\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n results.push('filename');\n callback(null);\n },\n function(callback){\n console.log('in email_link', JSON.stringify(results));\n // once the file is written let's email a link to it...\n callback(null, {'file':results.pop(), 'email':'user@example.com'});\n }\n ]);\n});\n```\n\nFor a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding\nnew tasks much easier (and the code more readable).\n\n\n---------------------------------------\n\n\n### retry([times = 5], task, [callback])\n\nAttempts to get a successful response from `task` no more than `times` times before\nreturning an error. If the task is successful, the `callback` will be passed the result\nof the successful task. If all attempts fail, the callback will be passed the error and\nresult (if any) of the final attempt.\n\n__Arguments__\n\n* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5.\n* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)`\n which must be called when finished, passing `err` (which can be `null`) and the `result` of \n the function's execution, and (2) a `results` object, containing the results of\n the previously executed functions (if nested inside another control flow).\n* `callback(err, results)` - An optional callback which is called when the\n task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`.\n\nThe [`retry`](#retry) function can be used as a stand-alone control flow by passing a\ncallback, as shown below:\n\n```js\nasync.retry(3, apiMethod, function(err, result) {\n // do something with the result\n});\n```\n\nIt can also be embeded within other control flow functions to retry individual methods\nthat are not as reliable, like this:\n\n```js\nasync.auto({\n users: api.getUsers.bind(api),\n payments: async.retry(3, api.getPayments.bind(api))\n}, function(err, results) {\n // do something with the results\n});\n```\n\n\n---------------------------------------\n\n\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the `tasks` array,\nreturning a continuation to call the next one after that. It's also possible to\n“peek” at the next iterator with `iterator.next()`.\n\nThis function is used internally by the `async` module, but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* `tasks` - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n function(){ sys.p('one'); },\n function(){ sys.p('two'); },\n function(){ sys.p('three'); }\n]);\n\nnode> var iterator2 = iterator();\n'one'\nnode> var iterator3 = iterator2();\n'two'\nnode> iterator3();\n'three'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n'three'\n```\n\n---------------------------------------\n\n\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied. \n\nUseful as a shorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n async.apply(fs.writeFile, 'testfile1', 'test1'),\n async.apply(fs.writeFile, 'testfile2', 'test2'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n function(callback){\n fs.writeFile('testfile1', 'test1', callback);\n },\n function(callback){\n fs.writeFile('testfile2', 'test2', callback);\n }\n]);\n```\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, 'one');\nnode> fn('two', 'three');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n\n### nextTick(callback), setImmediate(callback)\n\nCalls `callback` on a later loop around the event loop. In Node.js this just\ncalls `process.nextTick`; in the browser it falls back to `setImmediate(callback)`\nif available, otherwise `setTimeout(callback, 0)`, which means other higher priority\nevents may precede the execution of `callback`.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* `callback` - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n call_order.push('two');\n // call_order now equals ['one','two']\n});\ncall_order.push('one')\n```\n\n\n### times(n, callback)\n\nCalls the `callback` function `n` times, and accumulates results in the same manner\nyou would use with [`map`](#map).\n\n__Arguments__\n\n* `n` - The number of times to run the function.\n* `callback` - The function to call `n` times.\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n callback(null, {\n id: 'user' + id\n })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n createUser(n, function(err, user) {\n next(err, user)\n })\n}, function(err, users) {\n // we should now have 5 users\n});\n```\n\n\n### timesSeries(n, callback)\n\nThe same as [`times`](#times), only the iterator is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe results array will be in the same order as the original.\n\n\n## Utils\n\n\n### memoize(fn, [hasher])\n\nCaches the results of an `async` function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* `fn` - The function to proxy and cache results from.\n* `hasher` - Tn optional function for generating a custom hash for storing\n results. It has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn('some name', function () {\n // callback\n});\n```\n\n\n### unmemoize(fn)\n\nUndoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized\nform. Handy for testing.\n\n__Arguments__\n\n* `fn` - the memoized function\n\n\n### log(function, arguments)\n\nLogs the result of an `async` function to the `console`. Only works in Node.js or\nin browsers that support `console.log` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.log` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, 'hello ' + name);\n }, 1000);\n};\n```\n```js\nnode> async.log(hello, 'world');\n'hello world'\n```\n\n---------------------------------------\n\n\n### dir(function, arguments)\n\nLogs the result of an `async` function to the `console` using `console.dir` to\ndisplay the properties of the resulting object. Only works in Node.js or\nin browsers that support `console.dir` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.dir` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n};\n```\n```js\nnode> async.dir(hello, 'world');\n{hello: 'world'}\n```\n\n---------------------------------------\n\n\n### noConflict()\n\nChanges the value of `async` back to its original value, returning a reference to the\n`async` object.\n", + "readmeFilename": "README.md", "homepage": "https://github.com/caolan/async#readme", "_id": "async@0.9.2", "_shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", - "_from": "async@>=0.9.0 <0.10.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "beaugunderson", - "email": "beau@beaugunderson.com" - }, - "maintainers": [ - { - "name": "caolan", - "email": "caolan.mcmahon@gmail.com" - }, - { - "name": "beaugunderson", - "email": "beau@beaugunderson.com" - } - ], - "dist": { - "shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", - "tarball": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "async@>=0.9.0 <0.10.0" } diff --git a/node_modules/base64id/package.json b/node_modules/base64id/package.json index 2805a6dd..dd7c8197 100644 --- a/node_modules/base64id/package.json +++ b/node_modules/base64id/package.json @@ -8,41 +8,20 @@ }, "repository": { "type": "git", - "url": "git://github.com/faeldt/base64id.git" + "url": "git+https://github.com/faeldt/base64id.git" }, "main": "./lib/base64id.js", "engines": { "node": ">= 0.4.0" }, - "_npmUser": { - "name": "faeldt_kristian", - "email": "faeldt_kristian@cyberagent.co.jp" - }, - "_id": "base64id@0.1.0", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.16", - "_nodeVersion": "v0.6.15", - "_defaultsLoaded": true, - "dist": { - "shasum": "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f", - "tarball": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz" - }, - "maintainers": [ - { - "name": "faeldt_kristian", - "email": "faeldt_kristian@cyberagent.co.jp" - } - ], - "directories": {}, - "_shasum": "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f", - "_resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", - "_from": "base64id@>=0.1.0 <0.2.0", + "readme": "base64id\n========\n\nNode.js module that generates a base64 id.\n\nUses crypto.randomBytes when available, falls back to unsafe methods for node.js <= 0.4.\n\nTo increase performance, random bytes are buffered to minimize the number of synchronous calls to crypto.randomBytes.\n\n## Installation\n\n $ npm install mongoose\n\n## Usage\n\n var base64id = require('base64id');\n\n var id = base64id.generateId();\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/faeldt/base64id/issues" }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/faeldt/base64id#readme" + "homepage": "https://github.com/faeldt/base64id#readme", + "_id": "base64id@0.1.0", + "_shasum": "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f", + "_resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", + "_from": "base64id@>=0.1.0 <0.2.0" } diff --git a/node_modules/connect/node_modules/batch/package.json b/node_modules/connect/node_modules/batch/package.json index 1c515474..a94273ee 100644 --- a/node_modules/connect/node_modules/batch/package.json +++ b/node_modules/connect/node_modules/batch/package.json @@ -11,25 +11,10 @@ "should": "*" }, "main": "index", + "readme": "\n# batch\n\n Simple async batch with concurrency control and progress reporting.\n\n## Installation\n\n```\n$ npm install batch\n```\n\n## API\n\n```js\nvar Batch = require('batch')\n , batch = new Batch;\n\nbatch.concurrency(4);\n\nids.forEach(function(id){\n batch.push(function(done){\n User.get(id, done);\n });\n});\n\nbatch.on('progress', function(e){\n\n});\n\nbatch.end(function(err, users){\n\n});\n```\n\n### Progress events\n\n Contain the \"job\" index, response value, duration information, and completion data.\n\n```js\n{ index: 1,\n value: 'bar',\n pending: 2,\n total: 3,\n complete: 2,\n percent: 66,\n start: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),\n end: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),\n duration: 0 }\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2013 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", "_id": "batch@0.5.0", - "dist": { - "shasum": "fd2e05a7a5d696b4db9314013e285d8ff3557ec3", - "tarball": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz" - }, - "_from": "batch@0.5.0", - "_npmVersion": "1.2.30", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "fd2e05a7a5d696b4db9314013e285d8ff3557ec3", "_resolved": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "batch@0.5.0" } diff --git a/node_modules/connect/node_modules/buffer-crc32/package.json b/node_modules/connect/node_modules/buffer-crc32/package.json index 1c9ebb59..ea356e9a 100644 --- a/node_modules/connect/node_modules/buffer-crc32/package.json +++ b/node_modules/connect/node_modules/buffer-crc32/package.json @@ -29,28 +29,13 @@ "engines": { "node": "*" }, - "_id": "buffer-crc32@0.2.1", - "dist": { - "shasum": "be3e5382fc02b6d6324956ac1af98aa98b08534c", - "tarball": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz" - }, - "_npmVersion": "1.1.65", - "_npmUser": { - "name": "brianloveswords", - "email": "brian@nyhacker.org" - }, - "maintainers": [ - { - "name": "brianloveswords", - "email": "brian@nyhacker.org" - } - ], - "directories": {}, - "_shasum": "be3e5382fc02b6d6324956ac1af98aa98b08534c", - "_resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", - "_from": "buffer-crc32@0.2.1", + "readme": "# buffer-crc32\n\n[![Build Status](https://secure.travis-ci.org/brianloveswords/buffer-crc32.png?branch=master)](http://travis-ci.org/brianloveswords/buffer-crc32)\n\ncrc32 that works with binary data and fancy character sets, outputs\nbuffer, signed or unsigned data and has tests.\n\nDerived from the sample CRC implementation in the PNG specification: http://www.w3.org/TR/PNG/#D-CRCAppendix\n\n# install\n```\nnpm install buffer-crc32\n```\n\n# example\n```js\nvar crc32 = require('buffer-crc32');\n// works with buffers\nvar buf = Buffer([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00])\ncrc32(buf) // -> \n\n// has convenience methods for getting signed or unsigned ints\ncrc32.signed(buf) // -> -1805997238\ncrc32.unsigned(buf) // -> 2488970058\n\n// will cast to buffer if given a string, so you can\n// directly use foreign characters safely\ncrc32('自動販売機') // -> \n\n// and works in append mode too\nvar partialCrc = crc32('hey');\nvar partialCrc = crc32(' ', partialCrc);\nvar partialCrc = crc32('sup', partialCrc);\nvar partialCrc = crc32(' ', partialCrc);\nvar finalCrc = crc32('bros', partialCrc); // -> \n```\n\n# tests\nThis was tested against the output of zlib's crc32 method. You can run\nthe tests with`npm test` (requires tap)\n\n# see also\nhttps://github.com/alexgorbatchev/node-crc, `crc.buffer.crc32` also\nsupports buffer inputs and return unsigned ints (thanks @tjholowaychuk).\n\n# license\nMIT/X11\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/brianloveswords/buffer-crc32/issues" }, - "readme": "ERROR: No README data found!" + "_id": "buffer-crc32@0.2.1", + "_shasum": "be3e5382fc02b6d6324956ac1af98aa98b08534c", + "_resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", + "_from": "buffer-crc32@0.2.1" } diff --git a/node_modules/connect/node_modules/bytes/package.json b/node_modules/connect/node_modules/bytes/package.json index 9b683a61..57528b91 100644 --- a/node_modules/connect/node_modules/bytes/package.json +++ b/node_modules/connect/node_modules/bytes/package.json @@ -18,25 +18,10 @@ "bytes/index.js": "index.js" } }, + "readme": "# node-bytes\n\n Byte string parser / formatter.\n\n## Example:\n\n```js\nbytes('1kb')\n// => 1024\n\nbytes('2mb')\n// => 2097152\n\nbytes('1gb')\n// => 1073741824\n\nbytes(1073741824)\n// => 1gb\n```\n\n## Installation\n\n```\n$ npm install bytes\n$ component install visionmedia/bytes.js\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", "_id": "bytes@0.2.1", - "dist": { - "shasum": "555b08abcb063f8975905302523e4cd4ffdfdf31", - "tarball": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz" - }, - "_from": "bytes@0.2.1", - "_npmVersion": "1.2.14", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "555b08abcb063f8975905302523e4cd4ffdfdf31", "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "bytes@0.2.1" } diff --git a/node_modules/connect/node_modules/cookie-signature/package.json b/node_modules/connect/node_modules/cookie-signature/package.json index e8bf1bf7..a77f5941 100644 --- a/node_modules/connect/node_modules/cookie-signature/package.json +++ b/node_modules/connect/node_modules/cookie-signature/package.json @@ -17,25 +17,10 @@ "should": "*" }, "main": "index", + "readme": "\n# cookie-signature\n\n Sign and unsign cookies.\n\n## Example\n\n```js\nvar cookie = require('cookie-signature');\n\nvar val = cookie.sign('hello', 'tobiiscool');\nval.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI');\n\nvar val = cookie.sign('hello', 'tobiiscool');\ncookie.unsign(val, 'tobiiscool').should.equal('hello');\ncookie.unsign(val, 'luna').should.be.false;\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 LearnBoost <tj@learnboost.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "_id": "cookie-signature@1.0.1", - "dist": { - "shasum": "44e072148af01e6e8e24afbf12690d68ae698ecb", - "tarball": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz" - }, - "_from": "cookie-signature@1.0.1", - "_npmVersion": "1.2.14", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "44e072148af01e6e8e24afbf12690d68ae698ecb", "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "cookie-signature@1.0.1" } diff --git a/node_modules/connect/node_modules/cookie/package.json b/node_modules/connect/node_modules/cookie/package.json index 8b8d3912..9e4356ac 100644 --- a/node_modules/connect/node_modules/cookie/package.json +++ b/node_modules/connect/node_modules/cookie/package.json @@ -26,29 +26,14 @@ "engines": { "node": "*" }, - "_id": "cookie@0.1.0", - "dist": { - "shasum": "90eb469ddce905c866de687efc43131d8801f9d0", - "tarball": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz" - }, - "_from": "cookie@0.1.0", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - "maintainers": [ - { - "name": "shtylman", - "email": "shtylman@gmail.com" - } - ], - "directories": {}, - "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "readme": "# cookie [![Build Status](https://secure.travis-ci.org/shtylman/node-cookie.png?branch=master)](http://travis-ci.org/shtylman/node-cookie) #\n\ncookie is a basic cookie parser and serializer. It doesn't make assumptions about how you are going to deal with your cookies. It basically just provides a way to read and write the HTTP cookie headers.\n\nSee [RFC6265](http://tools.ietf.org/html/rfc6265) for details about the http header for cookies.\n\n## how?\n\n```\nnpm install cookie\n```\n\n```javascript\nvar cookie = require('cookie');\n\nvar hdr = cookie.serialize('foo', 'bar');\n// hdr = 'foo=bar';\n\nvar cookies = cookie.parse('foo=bar; cat=meow; dog=ruff');\n// cookies = { foo: 'bar', cat: 'meow', dog: 'ruff' };\n```\n\n## more\n\nThe serialize function takes a third parameter, an object, to set cookie options. See the RFC for valid values.\n\n### path\n> cookie path\n\n### expires\n> absolute expiration date for the cookie (Date object)\n\n### maxAge\n> relative max age of the cookie from when the client receives it (seconds)\n\n### domain\n> domain for the cookie\n\n### secure\n> true or false\n\n### httpOnly\n> true or false\n\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/shtylman/node-cookie/issues" }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/shtylman/node-cookie#readme" + "homepage": "https://github.com/shtylman/node-cookie#readme", + "_id": "cookie@0.1.0", + "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", + "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "_from": "cookie@0.1.0" } diff --git a/node_modules/connect/node_modules/fresh/package.json b/node_modules/connect/node_modules/fresh/package.json index b257d1e9..f8f58791 100644 --- a/node_modules/connect/node_modules/fresh/package.json +++ b/node_modules/connect/node_modules/fresh/package.json @@ -17,29 +17,14 @@ "mocha": "*", "should": "*" }, + "readme": "\n# node-fresh\n\n HTTP response freshness testing\n\n## fresh(req, res)\n\n Check freshness of `req` and `res` headers.\n\n When the cache is \"fresh\" __true__ is returned,\n otherwise __false__ is returned to indicate that\n the cache is now stale.\n\n## Example:\n\n```js\nvar req = { 'if-none-match': 'tobi' };\nvar res = { 'etag': 'luna' };\nfresh(req, res);\n// => false\n\nvar req = { 'if-none-match': 'tobi' };\nvar res = { 'etag': 'tobi' };\nfresh(req, res);\n// => true\n```\n\n## Installation\n\n```\n$ npm install fresh\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/node-fresh/issues" }, + "homepage": "https://github.com/visionmedia/node-fresh#readme", "_id": "fresh@0.2.0", - "dist": { - "shasum": "bfd9402cf3df12c4a4c310c79f99a3dde13d34a7", - "tarball": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz" - }, - "_from": "fresh@0.2.0", - "_npmVersion": "1.3.4", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "bfd9402cf3df12c4a4c310c79f99a3dde13d34a7", "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/visionmedia/node-fresh#readme" + "_from": "fresh@0.2.0" } diff --git a/node_modules/connect/node_modules/methods/package.json b/node_modules/connect/node_modules/methods/package.json index 7df09513..4eb54f44 100644 --- a/node_modules/connect/node_modules/methods/package.json +++ b/node_modules/connect/node_modules/methods/package.json @@ -18,29 +18,14 @@ "type": "git", "url": "git://github.com/visionmedia/node-methods.git" }, + "readme": "\n# Methods\n\n HTTP verbs that node core's parser supports.\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/node-methods/issues" }, + "homepage": "https://github.com/visionmedia/node-methods#readme", "_id": "methods@0.1.0", - "dist": { - "shasum": "335d429eefd21b7bacf2e9c922a8d2bd14a30e4f", - "tarball": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz" - }, - "_from": "methods@0.1.0", - "_npmVersion": "1.3.8", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "335d429eefd21b7bacf2e9c922a8d2bd14a30e4f", "_resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/visionmedia/node-methods#readme" + "_from": "methods@0.1.0" } diff --git a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/core-util-is/package.json b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/core-util-is/package.json index 19fb8592..83e519e7 100644 --- a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/core-util-is/package.json +++ b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/core-util-is/package.json @@ -33,28 +33,11 @@ "devDependencies": { "tap": "^2.3.0" }, - "gitHead": "a177da234df5638b363ddc15fa324619a38577c8", + "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n", + "readmeFilename": "README.md", "homepage": "https://github.com/isaacs/core-util-is#readme", "_id": "core-util-is@1.0.2", "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_npmVersion": "3.3.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "tarball": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "core-util-is@>=1.0.0 <1.1.0" } diff --git a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/inherits/package.json b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/inherits/package.json index 9146e757..acebe164 100644 --- a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/inherits/package.json +++ b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/inherits/package.json @@ -29,35 +29,14 @@ "inherits.js", "inherits_browser.js" ], - "gitHead": "e05d0fb27c61a3ec687214f0476386b765364d5f", + "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/isaacs/inherits/issues" }, "homepage": "https://github.com/isaacs/inherits#readme", "_id": "inherits@2.0.3", "_shasum": "633c2c83e3da42a502f52466022480f4208261de", - "_from": "inherits@>=2.0.1 <2.1.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "633c2c83e3da42a502f52466022480f4208261de", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inherits-2.0.3.tgz_1473295776489_0.08142363070510328" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readme": "ERROR: No README data found!" + "_from": "inherits@>=2.0.1 <2.1.0" } diff --git a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/isarray/package.json b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/isarray/package.json index 060e073f..fb1eb378 100644 --- a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/isarray/package.json +++ b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/isarray/package.json @@ -26,28 +26,13 @@ "url": "http://juliangruber.com" }, "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "readme": "\n# isarray\n\n`Array#isArray` for older browsers.\n\n## Usage\n\n```js\nvar isArray = require('isarray');\n\nconsole.log(isArray([])); // => true\nconsole.log(isArray({})); // => false\n```\n\n## Installation\n\nWith [npm](http://npmjs.org) do\n\n```bash\n$ npm install isarray\n```\n\nThen bundle for the browser with\n[browserify](https://github.com/substack/browserify).\n\nWith [component](http://component.io) do\n\n```bash\n$ component install juliangruber/isarray\n```\n\n## License\n\n(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/juliangruber/isarray/issues" }, - "readme": "ERROR: No README data found!" + "_id": "isarray@0.0.1", + "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "_from": "isarray@0.0.1" } diff --git a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/string_decoder/package.json b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/string_decoder/package.json index 8e8b77db..ee707023 100644 --- a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/string_decoder/package.json +++ b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/node_modules/string_decoder/package.json @@ -22,33 +22,13 @@ "browserify" ], "license": "MIT", - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", + "readme": "**string_decoder.js** (`require('string_decoder')`) from Node.js core\n\nCopyright Joyent, Inc. and other Node contributors. See LICENCE file for details.\n\nVersion numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.**\n\nThe *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version.", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/rvagg/string_decoder/issues" }, "_id": "string_decoder@0.10.31", "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - } - ], - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "readme": "ERROR: No README data found!" + "_from": "string_decoder@>=0.10.0 <0.11.0" } diff --git a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/package.json b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/package.json index 06f5144f..eabdc8dc 100644 --- a/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/package.json +++ b/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/package.json @@ -33,47 +33,14 @@ "url": "http://blog.izs.me/" }, "license": "MIT", - "gitHead": "52550840cb1d6e8a98ef9a909a4bea360bc6f7da", + "readme": "# readable-stream\n\n***Node-core streams for userland***\n\n[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)\n[![NPM](https://nodei.co/npm-dl/readable-stream.png&months=6&height=3)](https://nodei.co/npm/readable-stream/)\n\nThis package is a mirror of the Streams2 and Streams3 implementations in Node-core.\n\nIf you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *\"stream\"* module in Node-core.\n\n**readable-stream** comes in two major versions, v1.0.x and v1.1.x. The former tracks the Streams2 implementation in Node 0.10, including bug-fixes and minor improvements as they are added. The latter tracks Streams3 as it develops in Node 0.11; we will likely see a v1.2.x branch for Node 0.12.\n\n**readable-stream** uses proper patch-level versioning so if you pin to `\"~1.0.0\"` you’ll get the latest Node 0.10 Streams2 implementation, including any fixes and minor non-breaking improvements. The patch-level versions of 1.0.x and 1.1.x should mirror the patch-level versions of Node-core releases. You should prefer the **1.0.x** releases for now and when you’re ready to start using Streams3, pin to `\"~1.1.0\"`\n\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/isaacs/readable-stream/issues" }, + "homepage": "https://github.com/isaacs/readable-stream#readme", "_id": "readable-stream@1.1.14", "_shasum": "7cf4c54ef648e3813084c636dd2079e166c081d9", - "_from": "readable-stream@>=1.1.9 <1.2.0", - "_npmVersion": "3.8.3", - "_nodeVersion": "5.10.1", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "dist": { - "shasum": "7cf4c54ef648e3813084c636dd2079e166c081d9", - "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - }, - { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/readable-stream-1.1.14.tgz_1460563293219_0.5682175166439265" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/isaacs/readable-stream#readme" + "_from": "readable-stream@>=1.1.9 <1.2.0" } diff --git a/node_modules/connect/node_modules/multiparty/node_modules/stream-counter/package.json b/node_modules/connect/node_modules/multiparty/node_modules/stream-counter/package.json index a4af7f00..cc4affad 100644 --- a/node_modules/connect/node_modules/multiparty/node_modules/stream-counter/package.json +++ b/node_modules/connect/node_modules/multiparty/node_modules/stream-counter/package.json @@ -21,29 +21,14 @@ "dependencies": { "readable-stream": "~1.1.8" }, + "readme": "# stream-counter\n\nKeep track of how many bytes have been written to a stream.\n\n## Usage\n\n```js\nvar StreamCounter = require('stream-counter');\nvar counter = new StreamCounter();\ncounter.on('progress', function() {\n console.log(\"progress\", counter.bytes);\n});\nfs.createReadStream('foo.txt').pipe(counter);\n```\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/superjoe30/node-stream-counter/issues" }, + "homepage": "https://github.com/superjoe30/node-stream-counter#readme", "_id": "stream-counter@0.2.0", - "dist": { - "shasum": "ded266556319c8b0e222812b9cf3b26fa7d947de", - "tarball": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz" - }, - "_from": "stream-counter@>=0.2.0 <0.3.0", - "_npmVersion": "1.3.8", - "_npmUser": { - "name": "superjoe", - "email": "superjoe30@gmail.com" - }, - "maintainers": [ - { - "name": "superjoe", - "email": "superjoe30@gmail.com" - } - ], - "directories": {}, "_shasum": "ded266556319c8b0e222812b9cf3b26fa7d947de", "_resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/superjoe30/node-stream-counter#readme" + "_from": "stream-counter@>=0.2.0 <0.3.0" } diff --git a/node_modules/connect/node_modules/multiparty/package.json b/node_modules/connect/node_modules/multiparty/package.json index 5be3e26c..41e1d603 100644 --- a/node_modules/connect/node_modules/multiparty/package.json +++ b/node_modules/connect/node_modules/multiparty/package.json @@ -32,29 +32,14 @@ "readable-stream": "~1.1.9", "stream-counter": "~0.2.0" }, + "readme": "[![Build Status](https://travis-ci.org/superjoe30/node-multiparty.png?branch=master)](https://travis-ci.org/superjoe30/node-multiparty)\n# multiparty\n\nParse http requests with content-type `multipart/form-data`, also known as file uploads.\n\nSee also [busboy](https://github.com/mscdex/busboy) - a\n[faster](https://github.com/mscdex/dicer/wiki/Benchmarks) alternative\nwhich may be worth looking into.\n\n### Why the fork?\n\n * This module uses the Node.js v0.10 streams properly, *even in Node.js v0.8*\n * It will not create a temp file for you unless you want it to.\n * Counts bytes and does math to help you figure out the `Content-Length` of\n each part.\n * You can easily stream uploads to s3 with\n [knox](https://github.com/LearnBoost/knox), for [example](examples/s3.js).\n * Less bugs. This code is simpler, has all deprecated functionality removed,\n has cleaner tests, and does not try to do anything beyond multipart stream\n parsing.\n\n## Installation\n\n```\nnpm install multiparty\n```\n\n## Usage\n\n * See [examples](examples).\n\nParse an incoming `multipart/form-data` request.\n\n```js\nvar multiparty = require('multiparty')\n , http = require('http')\n , util = require('util')\n\nhttp.createServer(function(req, res) {\n if (req.url === '/upload' && req.method === 'POST') {\n // parse a file upload\n var form = new multiparty.Form();\n\n form.parse(req, function(err, fields, files) {\n res.writeHead(200, {'content-type': 'text/plain'});\n res.write('received upload:\\n\\n');\n res.end(util.inspect({fields: fields, files: files}));\n });\n\n return;\n }\n\n // show a file upload form\n res.writeHead(200, {'content-type': 'text/html'});\n res.end(\n '
'+\n '
'+\n '
'+\n ''+\n '
'\n );\n}).listen(8080);\n```\n\n## API\n\n### multiparty.Form\n```js\nvar form = new multiparty.Form(options)\n```\nCreates a new form. Options:\n\n * `encoding` - sets encoding for the incoming form fields. Defaults to `utf8`.\n * `maxFieldSize` - Limits the amount of memory a field (not a file) can\n allocate in bytes. If this value is exceeded, an `error` event is emitted.\n The default size is 2MB.\n * `maxFields` - Limits the number of fields that will be parsed before\n emitting an `error` event. A file counts as a field in this case.\n Defaults to 1000.\n * `autoFields` - Enables `field` events. This is automatically set to `true`\n if you add a `field` listener.\n * `autoFiles` - Enables `file` events. This is automatically set to `true`\n if you add a `file` listener.\n * `uploadDir` - Only relevant when `autoFiles` is `true`. The directory for\n placing file uploads in. You can move them later using `fs.rename()`.\n Defaults to `os.tmpDir()`.\n * `hash` - Only relevant when `autoFiles` is `true`. If you want checksums\n calculated for incoming files, set this to either `sha1` or `md5`.\n Defaults to off.\n\n#### form.parse(request, [cb])\n\nParses an incoming node.js `request` containing form data. If `cb` is\nprovided, `autoFields` and `autoFiles` are set to `true` and all fields and\nfiles are collected and passed to the callback:\n\n```js\nform.parse(req, function(err, fieldsObject, filesObject, fieldsList, filesList) {\n // ...\n});\n```\n\nIt is often convenient to access a field or file by name. In this situation,\nuse `fieldsObject` or `filesObject`. However sometimes, as in the case of a\n`` the multipart stream will contain\nmultiple files of the same input name, and you are interested in all of them.\nIn this case, use `filesList`.\n\nAnother example is when you do not care what the field name of a file is; you\nare merely interested in a single upload. In this case, set `maxFields` to 1\n(assuming no other fields expected besides the file) and use `filesList[0]`.\n\n#### form.bytesReceived\n\nThe amount of bytes received for this form so far.\n\n#### form.bytesExpected\n\nThe expected number of bytes in this form.\n\n### Events\n\n#### 'error' (err)\n\nYou definitely want to handle this event. If not your server *will* crash when\nusers submit bogus multipart requests!\n\n#### 'part' (part)\n\nEmitted when a part is encountered in the request. `part` is a\n`ReadableStream`. It also has the following properties:\n\n * `headers` - the headers for this part. For example, you may be interested\n in `content-type`.\n * `name` - the field name for this part\n * `filename` - only if the part is an incoming file\n * `byteOffset` - the byte offset of this part in the request body\n * `byteCount` - assuming that this is the last part in the request,\n this is the size of this part in bytes. You could use this, for\n example, to set the `Content-Length` header if uploading to S3.\n If the part had a `Content-Length` header then that value is used\n here instead.\n\n#### 'aborted'\n\nEmitted when the request is aborted. This event will be followed shortly\nby an `error` event. In practice you do not need to handle this event.\n\n#### 'progress' (bytesReceived, bytesExpected)\n\n#### 'close'\n\nEmitted after all parts have been parsed and emitted. Not emitted if an `error`\nevent is emitted. This is typically when you would send your response.\n\n#### 'file' (name, file)\n\n**By default multiparty will not touch your hard drive.** But if you add this\nlistener, multiparty automatically sets `form.autoFiles` to `true` and will\nstream uploads to disk for you. \n\n * `name` - the field name for this file\n * `file` - an object with these properties:\n - `fieldName` - same as `name` - the field name for this file\n - `originalFilename` - the filename that the user reports for the file\n - `path` - the absolute path of the uploaded file on disk\n - `headers` - the HTTP headers that were sent along with this file\n - `size` - size of the file in bytes\n\nIf you set the `form.hash` option, then `file` will also contain a `hash`\nproperty which is the checksum of the file.\n\n#### 'field' (name, value)\n\n * `name` - field name\n * `value` - string field value\n\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/superjoe30/node-multiparty/issues" }, + "homepage": "https://github.com/superjoe30/node-multiparty#readme", "_id": "multiparty@2.2.0", - "dist": { - "shasum": "a567c2af000ad22dc8f2a653d91978ae1f5316f4", - "tarball": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz" - }, - "_from": "multiparty@2.2.0", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "superjoe", - "email": "superjoe30@gmail.com" - }, - "maintainers": [ - { - "name": "superjoe", - "email": "superjoe30@gmail.com" - } - ], - "directories": {}, "_shasum": "a567c2af000ad22dc8f2a653d91978ae1f5316f4", "_resolved": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/superjoe30/node-multiparty#readme" + "_from": "multiparty@2.2.0" } diff --git a/node_modules/connect/node_modules/negotiator/package.json b/node_modules/connect/node_modules/negotiator/package.json index f3f94886..5904ac2f 100644 --- a/node_modules/connect/node_modules/negotiator/package.json +++ b/node_modules/connect/node_modules/negotiator/package.json @@ -38,25 +38,15 @@ "node": "*" }, "main": "lib/negotiator.js", - "_id": "negotiator@0.3.0", - "dependencies": {}, - "dist": { - "shasum": "706d692efeddf574d57ea9fb1ab89a4fa7ee8f60", - "tarball": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz" - }, - "maintainers": [ - { - "name": "federomero", - "email": "federomero@gmail.com" - } - ], - "directories": {}, - "_shasum": "706d692efeddf574d57ea9fb1ab89a4fa7ee8f60", - "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", - "_from": "negotiator@0.3.0", + "readme": "# Negotiator\n\nAn HTTP content negotiator for node.js written in javascript.\n\n# Accept Negotiation\n\n Negotiator = require('negotiator')\n\n availableMediaTypes = ['text/html', 'text/plain', 'application/json']\n\n // The negotiator constructor receives a request object\n negotiator = new Negotiator(request)\n\n // Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8'\n\n negotiator.preferredMediaTypes()\n // -> ['text/html', 'image/jpeg', 'application/*']\n\n negotiator.preferredMediaTypes(availableMediaTypes)\n // -> ['text/html', 'application/json']\n\n negotiator.preferredMediaType(availableMediaTypes)\n // -> 'text/html'\n\nYou can check a working example at `examples/accept.js`.\n\n## Methods\n\n`preferredMediaTypes(availableMediaTypes)`:\n\nReturns an array of preferred media types ordered by priority from a list of available media types.\n\n`preferredMediaType(availableMediaType)`:\n\nReturns the top preferred media type from a list of available media types.\n\n# Accept-Language Negotiation\n\n Negotiator = require('negotiator')\n\n negotiator = new Negotiator(request)\n\n availableLanguages = 'en', 'es', 'fr'\n\n // Let's say Accept-Language header is 'en;q=0.8, es, pt'\n\n negotiator.preferredLanguages()\n // -> ['es', 'pt', 'en']\n\n negotiator.preferredLanguages(availableLanguages)\n // -> ['es', 'en']\n\n language = negotiator.preferredLanguage(availableLanguages)\n // -> 'es'\n\nYou can check a working example at `examples/language.js`.\n\n## Methods\n\n`preferredLanguages(availableLanguages)`:\n\nReturns an array of preferred languages ordered by priority from a list of available languages.\n\n`preferredLanguage(availableLanguages)`:\n\nReturns the top preferred language from a list of available languages.\n\n# Accept-Charset Negotiation\n\n Negotiator = require('negotiator')\n\n availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5']\n\n negotiator = new Negotiator(request)\n\n // Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'\n\n negotiator.preferredCharsets()\n // -> ['utf-8', 'iso-8859-1', 'utf-7']\n\n negotiator.preferredCharsets(availableCharsets)\n // -> ['utf-8', 'iso-8859-1']\n\n negotiator.preferredCharset(availableCharsets)\n // -> 'utf-8'\n\nYou can check a working example at `examples/charset.js`.\n\n## Methods\n\n`preferredCharsets(availableCharsets)`:\n\nReturns an array of preferred charsets ordered by priority from a list of available charsets.\n\n`preferredCharset(availableCharsets)`:\n\nReturns the top preferred charset from a list of available charsets.\n\n# Accept-Encoding Negotiation\n\n Negotiator = require('negotiator').Negotiator\n\n availableEncodings = ['identity', 'gzip']\n\n negotiator = new Negotiator(request)\n\n // Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'\n\n negotiator.preferredEncodings()\n // -> ['gzip', 'identity', 'compress']\n\n negotiator.preferredEncodings(availableEncodings)\n // -> ['gzip', 'identity']\n\n negotiator.preferredEncoding(availableEncodings)\n // -> 'gzip'\n\nYou can check a working example at `examples/encoding.js`.\n\n## Methods\n\n`preferredEncodings(availableEncodings)`:\n\nReturns an array of preferred encodings ordered by priority from a list of available encodings.\n\n`preferredEncoding(availableEncodings)`:\n\nReturns the top preferred encoding from a list of available encodings.\n\n# License\n\nMIT\n", + "readmeFilename": "readme.md", "bugs": { "url": "https://github.com/federomero/negotiator/issues" }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/federomero/negotiator#readme" + "homepage": "https://github.com/federomero/negotiator#readme", + "dependencies": {}, + "_id": "negotiator@0.3.0", + "_shasum": "706d692efeddf574d57ea9fb1ab89a4fa7ee8f60", + "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", + "_from": "negotiator@0.3.0" } diff --git a/node_modules/connect/node_modules/pause/package.json b/node_modules/connect/node_modules/pause/package.json index 77fe974a..97077783 100644 --- a/node_modules/connect/node_modules/pause/package.json +++ b/node_modules/connect/node_modules/pause/package.json @@ -13,20 +13,10 @@ "should": "*" }, "main": "index", + "readme": "\n# pause\n\n Pause streams...\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "_id": "pause@0.0.1", - "dist": { - "shasum": "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d", - "tarball": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d", "_resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "_from": "pause@0.0.1", - "readme": "ERROR: No README data found!" + "_from": "pause@0.0.1" } diff --git a/node_modules/connect/node_modules/raw-body/package.json b/node_modules/connect/node_modules/raw-body/package.json index b1fb43b5..60ebeb07 100644 --- a/node_modules/connect/node_modules/raw-body/package.json +++ b/node_modules/connect/node_modules/raw-body/package.json @@ -33,26 +33,11 @@ "engines": { "node": ">= 0.8.0" }, - "homepage": "https://github.com/stream-utils/raw-body", + "readme": "# Raw Body [![Build Status](https://travis-ci.org/stream-utils/raw-body.png)](https://travis-ci.org/stream-utils/raw-body)\n\nGets the entire buffer of a stream either as a `Buffer` or a string.\nValidates the stream's length against an expected length and maximum limit.\nIdeal for parsing request bodies.\n\n## API\n\n```js\nvar getRawBody = require('raw-body')\n\napp.use(function (req, res, next) {\n getRawBody(req, {\n length: req.headers['content-length'],\n limit: '1mb',\n encoding: 'utf8'\n }, function (err, string) {\n if (err)\n return next(err)\n\n req.text = string\n next()\n })\n})\n```\n\nor in a Koa generator:\n\n```js\napp.use(function* (next) {\n var string = yield getRawBody(this.req, {\n length: this.length,\n limit: '1mb',\n encoding: 'utf8'\n })\n})\n```\n\n### getRawBody(stream, [options], [callback])\n\nReturns a thunk for yielding with generators.\n\nOptions:\n\n- `length` - The length length of the stream.\n If the contents of the stream do not add up to this length,\n an `400` error code is returned.\n- `limit` - The byte limit of the body.\n If the body ends up being larger than this limit,\n a `413` error code is returned.\n- `encoding` - The requested encoding.\n By default, a `Buffer` instance will be returned.\n Most likely, you want `utf8`.\n You can use any type of encoding supported by [StringDecoder](http://nodejs.org/api/string_decoder.html).\n You can also pass `true` which sets it to the default `utf8`\n\n`callback(err, res)`:\n\n- `err` - the following attributes will be defined if applicable:\n\n - `limit` - the limit in bytes\n - `length` and `expected` - the expected length of the stream\n - `received` - the received bytes\n - `status` and `statusCode` - the corresponding status code for the error\n - `type` - either `entity.too.large`, `request.size.invalid`, or `stream.encoding.set`\n\n- `res` - the result, either as a `String` if an encoding was set or a `Buffer` otherwise.\n\nIf an error occurs, the stream will be paused,\nand you are responsible for correctly disposing the stream.\nFor HTTP requests, no handling is required if you send a response.\nFor streams that use file descriptors, you should `stream.destroy()` or `stream.close()` to prevent leaks.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Jonathan Ong me@jongleberry.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/stream-utils/raw-body#readme", "_id": "raw-body@1.1.2", - "dist": { - "shasum": "c74b3004dea5defd1696171106ac740ec31d62be", - "tarball": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz" - }, - "_from": "raw-body@1.1.2", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "directories": {}, "_shasum": "c74b3004dea5defd1696171106ac740ec31d62be", "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "raw-body@1.1.2" } diff --git a/node_modules/connect/node_modules/uid2/package.json b/node_modules/connect/node_modules/uid2/package.json index 87be432f..5b84b04a 100644 --- a/node_modules/connect/node_modules/uid2/package.json +++ b/node_modules/connect/node_modules/uid2/package.json @@ -8,23 +8,7 @@ "dependencies": {}, "readme": "ERROR: No README data found!", "_id": "uid2@0.0.3", - "dist": { - "shasum": "483126e11774df2f71b8b639dcd799c376162b82", - "tarball": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz" - }, - "_from": "uid2@0.0.3", - "_npmVersion": "1.2.21", - "_npmUser": { - "name": "coreh", - "email": "thecoreh@gmail.com" - }, - "maintainers": [ - { - "name": "coreh", - "email": "thecoreh@gmail.com" - } - ], - "directories": {}, "_shasum": "483126e11774df2f71b8b639dcd799c376162b82", - "_resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz" + "_resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "_from": "uid2@0.0.3" } diff --git a/node_modules/connect/package.json b/node_modules/connect/package.json index dbd2904b..43509837 100644 --- a/node_modules/connect/package.json +++ b/node_modules/connect/package.json @@ -54,38 +54,14 @@ "scripts": { "test": "make" }, + "readme": "# Connect [![build status](https://secure.travis-ci.org/senchalabs/connect.png)](http://travis-ci.org/senchalabs/connect)\n\n Connect is an extensible HTTP server framework for [node](http://nodejs.org), providing high performance \"plugins\" known as _middleware_.\n\n Connect is bundled with over _20_ commonly used middleware, including\n a logger, session support, cookie parser, and [more](http://senchalabs.github.com/connect). Be sure to view the 2.x [documentation](http://senchalabs.github.com/connect/).\n\n```js\nvar connect = require('connect')\n , http = require('http');\n\nvar app = connect()\n .use(connect.favicon())\n .use(connect.logger('dev'))\n .use(connect.static('public'))\n .use(connect.directory('public'))\n .use(connect.cookieParser())\n .use(connect.session({ secret: 'my secret here' }))\n .use(function(req, res){\n res.end('Hello from Connect!\\n');\n });\n\nhttp.createServer(app).listen(3000);\n```\n\n## Middleware\n\n - [basicAuth](http://www.senchalabs.org/connect/basicAuth.html)\n - [bodyParser](http://www.senchalabs.org/connect/bodyParser.html)\n - [compress](http://www.senchalabs.org/connect/compress.html)\n - [cookieParser](http://www.senchalabs.org/connect/cookieParser.html)\n - [cookieSession](http://www.senchalabs.org/connect/cookieSession.html)\n - [csrf](http://www.senchalabs.org/connect/csrf.html)\n - [directory](http://www.senchalabs.org/connect/directory.html)\n - [errorHandler](http://www.senchalabs.org/connect/errorHandler.html)\n - [favicon](http://www.senchalabs.org/connect/favicon.html)\n - [json](http://www.senchalabs.org/connect/json.html)\n - [limit](http://www.senchalabs.org/connect/limit.html)\n - [logger](http://www.senchalabs.org/connect/logger.html)\n - [methodOverride](http://www.senchalabs.org/connect/methodOverride.html)\n - [multipart](http://www.senchalabs.org/connect/multipart.html)\n - [urlencoded](http://www.senchalabs.org/connect/urlencoded.html)\n - [query](http://www.senchalabs.org/connect/query.html)\n - [responseTime](http://www.senchalabs.org/connect/responseTime.html)\n - [session](http://www.senchalabs.org/connect/session.html)\n - [static](http://www.senchalabs.org/connect/static.html)\n - [staticCache](http://www.senchalabs.org/connect/staticCache.html)\n - [subdomains](http://www.senchalabs.org/connect/subdomains.html)\n - [vhost](http://www.senchalabs.org/connect/vhost.html)\n\n## Running Tests\n\nfirst:\n\n $ npm install -d\n\nthen:\n\n $ make test\n\n## Contributors\n\n https://github.com/senchalabs/connect/graphs/contributors\n\n## Node Compatibility\n\n Connect `< 1.x` is compatible with node 0.2.x\n\n\n Connect `1.x` is compatible with node 0.4.x\n\n\n Connect `2.x` is compatible with node 0.6.x\n\n\n Connect (_master_) is compatible with node 0.8.x\n\n## CLA\n\n [http://sencha.com/cla](http://sencha.com/cla)\n\n## License\n\nView the [LICENSE](https://github.com/senchalabs/connect/blob/master/LICENSE) file. The [Silk](http://www.famfamfam.com/lab/icons/silk/) icons used by the `directory` middleware created by/copyright of [FAMFAMFAM](http://www.famfamfam.com/).\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/senchalabs/connect/issues" }, - "homepage": "https://github.com/senchalabs/connect", + "homepage": "https://github.com/senchalabs/connect#readme", "_id": "connect@2.12.0", - "dist": { - "shasum": "31d8fa0dcacdf1908d822bd2923be8a2d2a7ed9a", - "tarball": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz" - }, - "_from": "connect@>=2.12.0 <2.13.0", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "creationix", - "email": "tim@creationix.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "deprecated": "connect 2.x series is deprecated", - "directories": {}, "_shasum": "31d8fa0dcacdf1908d822bd2923be8a2d2a7ed9a", "_resolved": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "connect@>=2.12.0 <2.13.0" } diff --git a/node_modules/debug/package.json b/node_modules/debug/package.json index 3e6a9274..a1e9f677 100644 --- a/node_modules/debug/package.json +++ b/node_modules/debug/package.json @@ -35,29 +35,14 @@ "debug/debug.js": "debug.js" } }, + "readme": "# debug\n\n tiny node.js debugging utility modelled after node core's debugging technique.\n\n## Installation\n\n```\n$ npm install debug\n```\n\n## Usage\n\n With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.\n \nExample _app.js_:\n\n```js\nvar debug = require('debug')('http')\n , http = require('http')\n , name = 'My App';\n\n// fake app\n\ndebug('booting %s', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + ' ' + req.url);\n res.end('hello\\n');\n}).listen(3000, function(){\n debug('listening');\n});\n\n// fake worker of some kind\n\nrequire('./worker');\n```\n\nExample _worker.js_:\n\n```js\nvar debug = require('debug')('worker');\n\nsetInterval(function(){\n debug('doing some work');\n}, 1000);\n```\n\n The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:\n\n ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)\n\n ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)\n\n## Millisecond diff\n\n When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the \"+NNNms\" will show you how much time was spent between calls.\n\n ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)\n\n When stderr is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n _(NOTE: Debug now uses stderr instead of stdout, so the correct shell command for this example is actually `DEBUG=* node example/worker 2> out &`)_\n \n ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)\n \n## Conventions\n\n If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use \":\" to separate features. For example \"bodyParser\" from Connect would then be \"connect:bodyParser\". \n\n## Wildcards\n\n The \"*\" character may be used as a wildcard. Suppose for example your library has debuggers named \"connect:bodyParser\", \"connect:compress\", \"connect:session\", instead of listing all three with `DEBUG=connect:bodyParser,connect.compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\n You can also exclude specific debuggers by prefixing them with a \"-\" character. For example, `DEBUG=* -connect:*` would include all debuggers except those starting with \"connect:\".\n\n## Browser support\n\n Debug works in the browser as well, currently persisted by `localStorage`. For example if you have `worker:a` and `worker:b` as shown below, and wish to debug both type `debug.enable('worker:*')` in the console and refresh the page, this will remain until you disable with `debug.disable()`. \n\n```js\na = debug('worker:a');\nb = debug('worker:b');\n\nsetInterval(function(){\n a('doing some work');\n}, 1000);\n\nsetInterval(function(){\n a('doing some work');\n}, 1200);\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "homepage": "https://github.com/visionmedia/debug", + "homepage": "https://github.com/visionmedia/debug#readme", "_id": "debug@0.7.4", - "dist": { - "shasum": "06e1ea8082c2cb14e39806e22e2f6f757f92af39", - "tarball": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "_from": "debug@>=0.7.4 <0.8.0", - "_npmVersion": "1.3.13", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "06e1ea8082c2cb14e39806e22e2f6f757f92af39", "_resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "debug@>=0.7.4 <0.8.0" } diff --git a/node_modules/ejs/package.json b/node_modules/ejs/package.json index 19a49300..6e220582 100644 --- a/node_modules/ejs/package.json +++ b/node_modules/ejs/package.json @@ -23,30 +23,14 @@ "scripts": { "test": "mocha --require should --reporter spec" }, + "readme": "# EJS\n\nEmbedded JavaScript templates.\n\n[![Build Status](https://travis-ci.org/visionmedia/ejs.png)](https://travis-ci.org/visionmedia/ejs)\n\n## Installation\n\n $ npm install ejs\n\n## Features\n\n * Complies with the [Express](http://expressjs.com) view system\n * Static caching of intermediate JavaScript\n * Unbuffered code for conditionals etc `<% code %>`\n * Escapes html by default with `<%= code %>`\n * Unescaped buffering with `<%- code %>`\n * Supports tag customization\n * Filter support for designer-friendly templates\n * Includes\n * Client-side support\n * Newline slurping with `<% code -%>` or `<% -%>` or `<%= code -%>` or `<%- code -%>`\n\n## Example\n\n <% if (user) { %>\n\t

<%= user.name %>

\n <% } %>\n \n## Try out a live example now\n\n
\n\n## Usage\n\n ejs.compile(str, options);\n // => Function\n\n ejs.render(str, options);\n // => str\n\n## Options\n\n - `cache` Compiled functions are cached, requires `filename`\n - `filename` Used by `cache` to key caches\n - `scope` Function execution context\n - `debug` Output generated function body\n - `compileDebug` When `false` no debug instrumentation is compiled\n - `client` Returns standalone compiled function\n - `open` Open tag, defaulting to \"<%\"\n - `close` Closing tag, defaulting to \"%>\"\n - * All others are template-local variables\n\n## Includes\n\n Includes are relative to the template with the `include` statement,\n for example if you have \"./views/users.ejs\" and \"./views/user/show.ejs\"\n you would use `<% include user/show %>`. The included file(s) are literally\n included into the template, _no_ IO is performed after compilation, thus\n local variables are available to these included templates.\n\n```\n
    \n <% users.forEach(function(user){ %>\n <% include user/show %>\n <% }) %>\n
\n```\n\n## Custom delimiters\n\nCustom delimiters can also be applied globally:\n\n var ejs = require('ejs');\n ejs.open = '{{';\n ejs.close = '}}';\n\nWhich would make the following a valid template:\n\n

{{= title }}

\n\n## Filters\n\nEJS conditionally supports the concept of \"filters\". A \"filter chain\"\nis a designer friendly api for manipulating data, without writing JavaScript.\n\nFilters can be applied by supplying the _:_ modifier, so for example if we wish to take the array `[{ name: 'tj' }, { name: 'mape' }, { name: 'guillermo' }]` and output a list of names we can do this simply with filters:\n\nTemplate:\n\n

<%=: users | map:'name' | join %>

\n\nOutput:\n\n

Tj, Mape, Guillermo

\n\nRender call:\n\n ejs.render(str, {\n users: [\n { name: 'tj' },\n { name: 'mape' },\n { name: 'guillermo' }\n ]\n });\n\nOr perhaps capitalize the first user's name for display:\n\n

<%=: users | first | capitalize %>

\n\n## Filter list\n\nCurrently these filters are available:\n\n - first\n - last\n - capitalize\n - downcase\n - upcase\n - sort\n - sort_by:'prop'\n - size\n - length\n - plus:n\n - minus:n\n - times:n\n - divided_by:n\n - join:'val'\n - truncate:n\n - truncate_words:n\n - replace:pattern,substitution\n - prepend:val\n - append:val\n - map:'prop'\n - reverse\n - get:'prop'\n\n## Adding filters\n\n To add a filter simply add a method to the `.filters` object:\n \n```js\nejs.filters.last = function(obj) {\n return obj[obj.length - 1];\n};\n```\n\n## Layouts\n\n Currently EJS has no notion of blocks, only compile-time `include`s,\n however you may still utilize this feature to implement \"layouts\" by\n simply including a header and footer like so:\n\n```html\n<% include head %>\n

Title

\n

My page

\n<% include foot %>\n```\n\n## client-side support\n\n include `./ejs.js` or `./ejs.min.js` and `require(\"ejs\").compile(str)`.\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2009-2010 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/ejs/issues" }, - "homepage": "https://github.com/visionmedia/ejs", + "homepage": "https://github.com/visionmedia/ejs#readme", "_id": "ejs@1.0.0", - "dist": { - "shasum": "c9c60a48a46ee452fb32a71c317b95e5aa1fcb3d", - "tarball": "https://registry.npmjs.org/ejs/-/ejs-1.0.0.tgz" - }, - "_from": "ejs@>=1.0.0 <1.1.0", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "deprecated": "Critical security bugs fixed in 2.5.5", - "directories": {}, "_shasum": "c9c60a48a46ee452fb32a71c317b95e5aa1fcb3d", "_resolved": "https://registry.npmjs.org/ejs/-/ejs-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "ejs@>=1.0.0 <1.1.0" } diff --git a/node_modules/engine.io-client/node_modules/component-emitter/package.json b/node_modules/engine.io-client/node_modules/component-emitter/package.json index d72bce08..a2ce7c29 100644 --- a/node_modules/engine.io-client/node_modules/component-emitter/package.json +++ b/node_modules/engine.io-client/node_modules/component-emitter/package.json @@ -19,29 +19,14 @@ "scripts": { "test": "make test" }, + "readme": "# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter)\n\n Event emitter component.\n\n## Installation\n\n```\n$ component install component/emitter\n```\n\n## API\n\n### Emitter(obj)\n\n The `Emitter` may also be used as a mixin. For example\n a \"plain\" object may become an emitter, or you may\n extend an existing prototype.\n\n As an `Emitter` instance:\n\n```js\nvar Emitter = require('emitter');\nvar emitter = new Emitter;\nemitter.emit('something');\n```\n\n As a mixin:\n\n```js\nvar Emitter = require('emitter');\nvar user = { name: 'tobi' };\nEmitter(user);\n\nuser.emit('im a user');\n```\n\n As a prototype mixin:\n\n```js\nvar Emitter = require('emitter');\nEmitter(User.prototype);\n```\n\n### Emitter#on(event, fn)\n\n Register an `event` handler `fn`.\n\n### Emitter#once(event, fn)\n\n Register a single-shot `event` handler `fn`,\n removed immediately after it is invoked the\n first time.\n\n### Emitter#off(event, fn)\n\n * Pass `event` and `fn` to remove a listener.\n * Pass `event` to remove all listeners on that event.\n * Pass nothing to remove all listeners on all events.\n\n### Emitter#emit(event, ...)\n\n Emit an `event` with variable option args.\n\n### Emitter#listeners(event)\n\n Return an array of callbacks, or an empty array.\n\n### Emitter#hasListeners(event)\n\n Check if this emitter has `event` handlers.\n\n## License\n\nMIT\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/component/emitter/issues" }, - "homepage": "https://github.com/component/emitter", + "homepage": "https://github.com/component/emitter#readme", "_id": "component-emitter@1.1.2", - "dist": { - "shasum": "296594f2753daa63996d2af08d15a95116c9aec3", - "tarball": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz" - }, - "_from": "component-emitter@1.1.2", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "directories": {}, "_shasum": "296594f2753daa63996d2af08d15a95116c9aec3", "_resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "component-emitter@1.1.2" } diff --git a/node_modules/engine.io-client/node_modules/component-inherit/package.json b/node_modules/engine.io-client/node_modules/component-inherit/package.json index 64db37d9..6ca076aa 100644 --- a/node_modules/engine.io-client/node_modules/component-inherit/package.json +++ b/node_modules/engine.io-client/node_modules/component-inherit/package.json @@ -16,29 +16,14 @@ "type": "git", "url": "git+https://github.com/component/inherit.git" }, + "readme": "# inherit\n\n Prototype inheritance utility.\n\n## Installation\n\n```\n$ component install component/inherit\n```\n\n## Example\n\n```js\nvar inherit = require('inherit');\n\nfunction Human() {}\nfunction Woman() {}\n\ninherit(Woman, Human);\n```\n\n## License\n\n MIT\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/component/inherit/issues" }, - "homepage": "https://github.com/component/inherit", + "homepage": "https://github.com/component/inherit#readme", "_id": "component-inherit@0.0.3", - "dist": { - "shasum": "645fc4adf58b72b649d5cae65135619db26ff143", - "tarball": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" - }, - "_from": "component-inherit@0.0.3", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "coreh", - "email": "thecoreh@gmail.com" - }, - "maintainers": [ - { - "name": "coreh", - "email": "thecoreh@gmail.com" - } - ], - "directories": {}, "_shasum": "645fc4adf58b72b649d5cae65135619db26ff143", "_resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "readme": "ERROR: No README data found!" + "_from": "component-inherit@0.0.3" } diff --git a/node_modules/engine.io-client/node_modules/debug/node_modules/ms/package.json b/node_modules/engine.io-client/node_modules/debug/node_modules/ms/package.json index e36489ef..7b5d86db 100644 --- a/node_modules/engine.io-client/node_modules/debug/node_modules/ms/package.json +++ b/node_modules/engine.io-client/node_modules/debug/node_modules/ms/package.json @@ -17,32 +17,14 @@ "ms/index.js": "index.js" } }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", + "readme": "# ms.js: miliseconds conversion utility\n\n```js\nms('2 days') // 172800000\nms('1d') // 86400000\nms('10h') // 36000000\nms('2.5 hrs') // 9000000\nms('2h') // 7200000\nms('1m') // 60000\nms('5s') // 5000\nms('100') // 100\n```\n\n```js\nms(60000) // \"1m\"\nms(2 * 60000) // \"2m\"\nms(ms('10 hours')) // \"10h\"\n```\n\n```js\nms(60000, { long: true }) // \"1 minute\"\nms(2 * 60000, { long: true }) // \"2 minutes\"\nms(ms('10 hours'), { long: true }) // \"10 hours\"\n```\n\n- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download).\n- If a number is supplied to `ms`, a string with a unit is returned.\n- If a string that contains the number is supplied, it returns it as\na number (e.g: it returns `100` for `'100'`).\n- If you pass a string with a number and a valid unit, the number of\nequivalent ms is returned.\n\n## License\n\nMIT\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/guille/ms.js/issues" }, - "homepage": "https://github.com/guille/ms.js", + "homepage": "https://github.com/guille/ms.js#readme", "_id": "ms@0.7.1", - "scripts": {}, "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "ms@0.7.1" } diff --git a/node_modules/engine.io-client/node_modules/debug/package.json b/node_modules/engine.io-client/node_modules/debug/package.json index 46ce4c53..fa594b09 100644 --- a/node_modules/engine.io-client/node_modules/debug/package.json +++ b/node_modules/engine.io-client/node_modules/debug/package.json @@ -38,36 +38,14 @@ "debug/debug.js": "debug.js" } }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", + "readme": "# debug\n\n tiny node.js debugging utility modelled after node core's debugging technique.\n\n## Installation\n\n```bash\n$ npm install debug\n```\n\n## Usage\n\n With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.\n\nExample _app.js_:\n\n```js\nvar debug = require('debug')('http')\n , http = require('http')\n , name = 'My App';\n\n// fake app\n\ndebug('booting %s', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + ' ' + req.url);\n res.end('hello\\n');\n}).listen(3000, function(){\n debug('listening');\n});\n\n// fake worker of some kind\n\nrequire('./worker');\n```\n\nExample _worker.js_:\n\n```js\nvar debug = require('debug')('worker');\n\nsetInterval(function(){\n debug('doing some work');\n}, 1000);\n```\n\n The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:\n\n ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)\n\n ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)\n\n#### Windows note\n\n On Windows the environment variable is set using the `set` command.\n\n ```cmd\n set DEBUG=*,-not_this\n ```\n\nThen, run the program to be debugged as usual.\n\n## Millisecond diff\n\n When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the \"+NNNms\" will show you how much time was spent between calls.\n\n ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)\n\n When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n\n ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)\n\n## Conventions\n\n If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use \":\" to separate features. For example \"bodyParser\" from Connect would then be \"connect:bodyParser\".\n\n## Wildcards\n\n The `*` character may be used as a wildcard. Suppose for example your library has debuggers named \"connect:bodyParser\", \"connect:compress\", \"connect:session\", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\n You can also exclude specific debuggers by prefixing them with a \"-\" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with \"connect:\".\n\n## Browser support\n\n Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include:\n\n```js\nwindow.myDebug = require(\"debug\");\n```\n\n (\"debug\" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console:\n\n```js\nmyDebug.enable(\"worker:*\")\n```\n\n Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console.\n\n```js\na = debug('worker:a');\nb = debug('worker:b');\n\nsetInterval(function(){\n a('doing some work');\n}, 1000);\n\nsetInterval(function(){\n b('doing some work');\n}, 1200);\n```\n\n#### Web Inspector Colors\n\n Colors are also enabled on \"Web Inspectors\" that understand the `%c` formatting\n option. These are WebKit web inspectors, Firefox ([since version\n 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))\n and the Firebug plugin for Firefox (any version).\n\n Colored output looks something like:\n\n ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)\n\n### stderr vs stdout\n\nYou can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally:\n\nExample _stdout.js_:\n\n```js\nvar debug = require('debug');\nvar error = debug('app:error');\n\n// by default stderr is used\nerror('goes to stderr!');\n\nvar log = debug('app:log');\n// set this namespace to log via console.log\nlog.log = console.log.bind(console); // don't forget to bind to console!\nlog('goes to stdout');\nerror('still goes to stderr!');\n\n// set all output to go via console.info\n// overrides all per-namespace log settings\ndebug.log = console.info.bind(console);\nerror('now goes to stdout via console.info');\nlog('still goes to stdout, but via console.info now');\n```\n\n### Save debug output to a file\n\nYou can save all debug statements to a file by piping them.\n\nExample:\n\n```bash\n$ DEBUG_FD=3 node your-app.js 3> whatever.log\n```\n\n## Authors\n\n - TJ Holowaychuk\n - Nathan Rajlich\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "homepage": "https://github.com/visionmedia/debug", + "homepage": "https://github.com/visionmedia/debug#readme", "_id": "debug@2.2.0", - "scripts": {}, "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@2.2.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "debug@2.2.0" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/package.json index 004bc9a4..c73e8679 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/package.json @@ -30,33 +30,14 @@ "type": "git", "url": "git://github.com/Raynos/after.git" }, + "readme": "# After [![Build Status][1]][2]\n\nInvoke callback after n calls\n\n## Status: production ready\n\n## Example\n\n var after = require(\"after\")\n , next = after(3, logItWorks)\n\n next()\n next()\n next() // it works\n\n function logItWorks() {\n console.log(\"it works!\")\n }\n\n## Example with error handling\n\n var after = require(\"after\")\n , next = after(3, logError)\n\n next()\n next(new Error(\"oops\")) // logs oops\n next() // does nothing\n\n function logError(err) {\n console.log(err)\n }\n\n## After < 0.6.0\n\nOlder versions of after had iterators and flows in them.\n\nThese have been replaced with seperate modules\n\n - [iterators][8]\n - [composite][9]\n\n## Installation\n\n`npm install after`\n\n## Tests\n\n`npm test`\n\n## Blog post\n\n - [Flow control in node.js][3]\n\n## Examples :\n\n - [Determining the end of asynchronous operations][4]\n - [In javascript what are best practices for executing multiple asynchronous functions][5]\n - [JavaScript performance long running tasks][6]\n - [Synchronous database queries with node.js][7]\n\n## Contributors\n\n - Raynos\n\n## MIT Licenced\n\n [1]: https://secure.travis-ci.org/Raynos/after.png\n [2]: http://travis-ci.org/Raynos/after\n [3]: http://raynos.org/blog/2/Flow-control-in-node.js\n [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307\n [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031\n [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419\n [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091\n [8]: http://github.com/Raynos/iterators\n [9]: http://github.com/Raynos/composite\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/Raynos/after/issues" }, + "homepage": "https://github.com/Raynos/after#readme", "_id": "after@0.8.1", - "dist": { - "shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627", - "tarball": "https://registry.npmjs.org/after/-/after-0.8.1.tgz" - }, - "_from": "after@0.8.1", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - "maintainers": [ - { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - } - ], - "directories": {}, "_shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627", "_resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/Raynos/after#readme" + "_from": "after@0.8.1" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json index 35bbdf7d..af728a08 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json @@ -12,28 +12,13 @@ "type": "git", "url": "git+ssh://git@github.com/rase-/arraybuffer.slice.git" }, + "readme": "# How to\n```javascript\nvar sliceBuffer = require('arraybuffer.slice');\nvar ab = (new Int8Array(5)).buffer;\nvar sliced = sliceBuffer(ab, 1, 3);\nsliced = sliceBuffer(ab, 1);\n```\n\n# Licence (MIT)\nCopyright (C) 2013 Rase-\n\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/rase-/arraybuffer.slice/issues" }, "_id": "arraybuffer.slice@0.0.6", - "dist": { - "shasum": "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca", - "tarball": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz" - }, - "_from": "arraybuffer.slice@0.0.6", - "_npmVersion": "1.3.5", - "_npmUser": { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - }, - "maintainers": [ - { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - } - ], - "directories": {}, "_shasum": "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca", "_resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "readme": "ERROR: No README data found!" + "_from": "arraybuffer.slice@0.0.6" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json index cc988f94..1c671be5 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json @@ -32,25 +32,10 @@ "grunt": "~0.3.17" }, "keywords": [], + "readme": "# base64-arraybuffer\n\n[![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer)\n\nEncode/decode base64 data into ArrayBuffers\n\n## Getting Started\nInstall the module with: `npm install base64-arraybuffer`\n\n## API\nThe library encodes and decodes base64 to and from ArrayBuffers\n\n - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string\n - __decode(str)__ - Decodes base64 string to `ArrayBuffer`\n\n## Release History\n\n - 0.1.2 - Fix old format of typed arrays\n - 0.1.0 - Initial version, basic decode/encode base64 to and from ArrayBuffer\n\n## License\nCopyright (c) 2012 Niklas von Hertzen\nLicensed under the MIT license.\n", + "readmeFilename": "README.md", "_id": "base64-arraybuffer@0.1.2", - "dist": { - "shasum": "474df4a9f2da24e05df3158c3b1db3c3cd46a154", - "tarball": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz" - }, - "_from": "base64-arraybuffer@0.1.2", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "niklasvh", - "email": "niklasvh@gmail.com" - }, - "maintainers": [ - { - "name": "niklasvh", - "email": "niklasvh@gmail.com" - } - ], - "directories": {}, "_shasum": "474df4a9f2da24e05df3158c3b1db3c3cd46a154", "_resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "base64-arraybuffer@0.1.2" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/package.json index b5874552..00a4f8d4 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/package.json @@ -17,28 +17,13 @@ "scripts": { "test": "make test" }, + "readme": "Blob\n====\n\nA module that exports a constructor that uses window.Blob when available, and a BlobBuilder with any vendor prefix in other cases. If neither is available, it exports undefined.\n\nUsage:\n\n```javascript\nvar Blob = require('blob');\nvar b = new Blob(['hi', 'constructing', 'a', 'blob']);\n```\n\n## Licence\nMIT\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/rase-/blob/issues" }, "_id": "blob@0.0.4", - "dist": { - "shasum": "bcf13052ca54463f30f9fc7e95b9a47630a94921", - "tarball": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz" - }, - "_from": "blob@0.0.4", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - }, - "maintainers": [ - { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - } - ], - "directories": {}, "_shasum": "bcf13052ca54463f30f9fc7e95b9a47630a94921", "_resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "blob@0.0.4" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json index 060e073f..fb1eb378 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json @@ -26,28 +26,13 @@ "url": "http://juliangruber.com" }, "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "readme": "\n# isarray\n\n`Array#isArray` for older browsers.\n\n## Usage\n\n```js\nvar isArray = require('isarray');\n\nconsole.log(isArray([])); // => true\nconsole.log(isArray({})); // => false\n```\n\n## Installation\n\nWith [npm](http://npmjs.org) do\n\n```bash\n$ npm install isarray\n```\n\nThen bundle for the browser with\n[browserify](https://github.com/substack/browserify).\n\nWith [component](http://component.io) do\n\n```bash\n$ component install juliangruber/isarray\n```\n\n## License\n\n(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/juliangruber/isarray/issues" }, - "readme": "ERROR: No README data found!" + "_id": "isarray@0.0.1", + "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "_from": "isarray@0.0.1" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json index 72bff47e..dcd5f956 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json @@ -13,27 +13,10 @@ "name": "Kevin Roark" }, "license": "MIT", - "gitHead": "a37d7ed88fb88e49d5ed1ca15e6cc7dd004dd0e8", + "readme": "has-binarydata.js\n=================\n\nSimple module to test if an object contains binary data\n", + "readmeFilename": "README.md", "_id": "has-binary@0.1.6", - "scripts": {}, "_shasum": "25326f39cfa4f616ad8787894e3af2cfbc7b6e10", - "_from": "has-binary@0.1.6", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "25326f39cfa4f616ad8787894e3af2cfbc7b6e10", - "tarball": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", - "readme": "ERROR: No README data found!" + "_from": "has-binary@0.1.6" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/package.json index 0498ae03..9f0b767c 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/package.json @@ -34,31 +34,10 @@ "qunitjs": "~1.11.0", "requirejs": "^2.1.11" }, - "gitHead": "1961da40649c4103b5d01c29f8e6bcc3231a1372", + "readme": "# utf8.js [![Build status](https://travis-ci.org/mathiasbynens/utf8.js.svg?branch=master)](https://travis-ci.org/mathiasbynens/utf8.js) [![Code coverage status](http://img.shields.io/coveralls/mathiasbynens/utf8.js/master.svg)](https://coveralls.io/r/mathiasbynens/utf8.js) [![Dependency status](https://gemnasium.com/mathiasbynens/utf8.js.svg)](https://gemnasium.com/mathiasbynens/utf8.js)\n\n_utf8.js_ is a well-tested UTF-8 encoder/decoder written in JavaScript. Unlike many other JavaScript solutions, it is designed to be a _proper_ UTF-8 encoder/decoder: it can encode/decode any scalar Unicode code point values, as per [the Encoding Standard](https://encoding.spec.whatwg.org/#utf-8). [Here’s an online demo.](https://mothereff.in/utf-8)\n\nFeel free to fork if you see possible improvements!\n\n## Installation\n\nVia [npm](https://www.npmjs.org/):\n\n```bash\nnpm install utf8\n```\n\nVia [Bower](http://bower.io/):\n\n```bash\nbower install utf8\n```\n\nVia [Component](https://github.com/component/component):\n\n```bash\ncomponent install mathiasbynens/utf8.js\n```\n\nIn a browser:\n\n```html\n\n```\n\nIn [Narwhal](http://narwhaljs.org/), [Node.js](https://nodejs.org/), and [RingoJS ≥ v0.8.0](http://ringojs.org/):\n\n```js\nvar utf8 = require('utf8');\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload('utf8.js');\n```\n\nUsing an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire(\n {\n 'paths': {\n 'utf8': 'path/to/utf8'\n }\n },\n ['utf8'],\n function(utf8) {\n console.log(utf8);\n }\n);\n```\n\n## API\n\n### `utf8.encode(string)`\n\nEncodes any given JavaScript string (`string`) as UTF-8, and returns the UTF-8-encoded version of the string. It throws an error if the input string contains a non-scalar value, i.e. a lone surrogate. (If you need to be able to encode non-scalar values as well, use [WTF-8](https://mths.be/wtf8) instead.)\n\n```js\n// U+00A9 COPYRIGHT SIGN; see http://codepoints.net/U+00A9\nutf8.encode('\\xA9');\n// → '\\xC2\\xA9'\n// U+10001 LINEAR B SYLLABLE B038 E; see http://codepoints.net/U+10001\nutf8.encode('\\uD800\\uDC01');\n// → '\\xF0\\x90\\x80\\x81'\n```\n\n### `utf8.decode(byteString)`\n\nDecodes any given UTF-8-encoded string (`byteString`) as UTF-8, and returns the UTF-8-decoded version of the string. It throws an error when malformed UTF-8 is detected. (If you need to be able to decode encoded non-scalar values as well, use [WTF-8](https://mths.be/wtf8) instead.)\n\n```js\nutf8.decode('\\xC2\\xA9');\n// → '\\xA9'\n\nutf8.decode('\\xF0\\x90\\x80\\x81');\n// → '\\uD800\\uDC01'\n// → U+10001 LINEAR B SYLLABLE B038 E\n```\n\n### `utf8.version`\n\nA string representing the semantic version number.\n\n## Support\n\nutf8.js has been tested in at least Chrome 27-39, Firefox 3-34, Safari 4-8, Opera 10-28, IE 6-11, Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.11, PhantomJS 1.9.0, and Rhino 1.7RC4.\n\n## Unit tests & code coverage\n\nAfter cloning this repository, run `npm install` to install the dependencies needed for development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`.\n\nOnce that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`.\n\nTo generate the code coverage report, use `grunt cover`.\n\n## FAQ\n\n### Why is the first release named v2.0.0? Haven’t you heard of [semantic versioning](http://semver.org/)?\n\nLong before utf8.js was created, the `utf8` module on npm was registered and used by another (slightly buggy) library. @ryanmcgrath was kind enough to give me access to the `utf8` package on npm when I told him about utf8.js. Since there has already been a v1.0.0 release of the old library, and to avoid breaking backwards compatibility with projects that rely on the `utf8` npm package, I decided the tag the first release of utf8.js as v2.0.0 and take it from there.\n\n## Author\n\n| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias \"Follow @mathias on Twitter\") |\n|---|\n| [Mathias Bynens](https://mathiasbynens.be/) |\n\n## License\n\nutf8.js is available under the [MIT](https://mths.be/mit) license.\n", + "readmeFilename": "README.md", "_id": "utf8@2.1.0", "_shasum": "0cfec5c8052d44a23e3aaa908104e8075f95dfd5", - "_from": "utf8@2.1.0", - "_npmVersion": "2.1.11", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - "maintainers": [ - { - "name": "ryanmcgrath", - "email": "ryan@venodesigns.net" - }, - { - "name": "mathias", - "email": "mathias@qiwi.be" - } - ], - "dist": { - "shasum": "0cfec5c8052d44a23e3aaa908104e8075f95dfd5", - "tarball": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "utf8@2.1.0" } diff --git a/node_modules/engine.io-client/node_modules/engine.io-parser/package.json b/node_modules/engine.io-client/node_modules/engine.io-parser/package.json index 4014c1b3..3cb7b345 100644 --- a/node_modules/engine.io-client/node_modules/engine.io-parser/package.json +++ b/node_modules/engine.io-client/node_modules/engine.io-parser/package.json @@ -25,30 +25,13 @@ "url": "git+ssh://git@github.com/Automattic/engine.io-parser.git" }, "browser": "./lib/browser.js", - "gitHead": "ca248c5238a42d8383a4ab7de347adc2578abeac", + "readme": "\n# engine.io-parser\n\n[![Build Status](https://secure.travis-ci.org/socketio/engine.io-parser.svg)](http://travis-ci.org/socketio/engine.io-parser)\n[![NPM version](https://badge.fury.io/js/engine.io-parser.svg)](http://badge.fury.io/js/engine.io-parser)\n\nThis is the JavaScript parser for the engine.io protocol encoding,\nshared by both\n[engine.io-client](https://github.com/socketio/engine.io-client) and\n[engine.io](https://github.com/socketio/engine.io).\n\n## How to use\n\n### Standalone\n\nThe parser can encode/decode packets, payloads, and payloads as binary\nwith the following methods: `encodePacket`, `decodePacket`, `encodePayload`,\n`decodePayload`, `encodePayloadAsBinary`, `decodePayloadAsBinary`.\n\nThe browser-side parser also includes `encodePayloadAsArrayBuffer` and `encodePayloadAsBlob`.\n\nExample:\n\n```js\nvar parser = require('engine.io-parser');\n\nvar data = new Buffer(5);\nfor (var i = 0; i < data.length; i++) { data[i] = i; }\n\nparser.encodePacket({ type: 'message', data: data }, function(encoded) {\n var decodedData = parser.decodePacket(encoded); // { type: 'message', data: data }\n});\n```\n\n### With browserify\n\nEngine.IO Parser is a commonjs module, which means you can include it by using\n`require` on the browser and package using [browserify](http://browserify.org/):\n\n1. install the parser package\n\n ```shell\n npm install engine.io-parser\n ```\n\n1. write your app code\n\n ```js\n var parser = require('engine.io-parser');\n\n var testBuffer = new Int8Array(10);\n for (var i = 0; i < testBuffer.length; i++) testBuffer[i] = i;\n\n var packets = [{ type: 'message', data: testBuffer.buffer }, { type: 'message', data: 'hello' }];\n\n parser.encodePayload(packets, function(encoded) {\n parser.decodePayload(encoded,\n function(packet, index, total) {\n var isLast = index + 1 == total;\n if (!isLast) {\n var buffer = new Int8Array(packet.data); // testBuffer\n } else {\n var message = packet.data; // 'hello'\n }\n });\n });\n ```\n\n1. build your app bundle\n\n ```bash\n $ browserify app.js > bundle.js\n ```\n\n1. include on your page\n\n ```html\n \n ```\n\n## Features\n\n- Runs on browser and node.js seamlessly\n- Runs inside HTML5 WebWorker\n- Can encode and decode packets\n - Encodes from/to ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer in Node\n\n## API\n\nNote: `cb(type)` means the type is a callback function that contains a parameter of type `type` when called.\n\n### Node\n\n- `encodePacket`\n - Encodes a packet.\n - **Parameters**\n - `Object`: the packet to encode, has `type` and `data`.\n - `data`: can be a `String`, `Number`, `Buffer`, `ArrayBuffer`\n - `Boolean`: optional, binary support\n - `Function`: callback, returns the encoded packet (`cb(String)`)\n- `decodePacket`\n - Decodes a packet. Data also available as an ArrayBuffer if requested.\n - Returns data as `String` or (`Blob` on browser, `ArrayBuffer` on Node)\n - **Parameters**\n - `String` | `ArrayBuffer`: the packet to decode, has `type` and `data`\n - `String`: optional, the binary type\n\n- `encodeBase64Packet`\n - Encodes a packet with binary data in a base64 string (`String`)\n - **Parameters**\n - `Object`: the packet to encode, has `type` and `data`\n - `Function`: callback, returns the base64 encoded message (`cb(String)`)\n- `decodeBase64Packet`\n - Decodes a packet encoded in a base64 string.\n - **Parameters**\n - `String`: the base64 encoded message\n - `String`: optional, the binary type\n\n- `encodePayload`\n - Encodes multiple messages (payload).\n - If any contents are binary, they will be encoded as base64 strings. Base64\n encoded strings are marked with a b before the length specifier\n - **Parameters**\n - `Array`: an array of packets\n - `Boolean`: optional, binary support\n - `Function`: callback, returns the encoded payload (`cb(String)`)\n- `decodePayload`\n - Decodes data when a payload is maybe expected. Possible binary contents are\n decoded from their base64 representation.\n - **Parameters**\n - `String`: the payload\n - `String`: optional, the binary type\n - `Function`: callback, returns (cb(`Object`: packet, `Number`:packet index, `Number`:packet total))\n\n- `encodePayloadAsBinary`\n - Encodes multiple messages (payload) as binary.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(Buffer)`)\n- `decodePayloadAsBinary`\n - Decodes data when a payload is maybe expected. Strings are decoded by\n interpreting each byte as a key code for entries marked to start with 0. See\n description of encodePayloadAsBinary.\n - **Parameters**\n - `Buffer`: the buffer\n - `String`: optional, the binary type\n - `Function`: callback, returns the decoded packet (`cb(Object)`)\n\n### Browser\n\n- `encodePayloadAsArrayBuffer`\n - Encodes multiple messages (payload) as binary.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(ArrayBuffer)`)\n- `encodePayloadAsBlob`\n - Encodes multiple messages (payload) as blob.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(Blob)`)\n\n## Tests\n\nStandalone tests can be run with `make test` which will run both node.js and browser tests.\n\nBrowser tests are run using [zuul](https://github.com/defunctzombie/zuul).\n(You must have zuul setup with a saucelabs account.)\n\nYou can run the tests locally using the following command:\n\n```\n./node_modules/.bin/zuul --local 8080 -- test/index.js\n```\n\n## Support\n\nThe support channels for `engine.io-parser` are the same as `socket.io`:\n - irc.freenode.net **#socket.io**\n - [Google Groups](http://groups.google.com/group/socket_io)\n - [Website](http://socket.io)\n\n## Development\n\nTo contribute patches, run tests or benchmarks, make sure to clone the\nrepository:\n\n```bash\ngit clone git://github.com/LearnBoost/engine.io-parser.git\n```\n\nThen:\n\n```bash\ncd engine.io-parser\nnpm install\n```\n\nSee the `Tests` section above for how to run tests before submitting any patches.\n\n## License\n\nMIT\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/Automattic/engine.io-parser/issues" }, "_id": "engine.io-parser@1.2.4", "_shasum": "e0897b0bf14e792d4cd2a5950553919c56948c42", - "_from": "engine.io-parser@1.2.4", - "_npmVersion": "3.4.1", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "e0897b0bf14e792d4cd2a5950553919c56948c42", - "tarball": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "engine.io-parser@1.2.4" } diff --git a/node_modules/engine.io-client/node_modules/has-cors/package.json b/node_modules/engine.io-client/node_modules/has-cors/package.json index a69d5b38..6e0d1449 100644 --- a/node_modules/engine.io-client/node_modules/has-cors/package.json +++ b/node_modules/engine.io-client/node_modules/has-cors/package.json @@ -33,30 +33,14 @@ "scripts": { "test": "mocha" }, - "gitHead": "27e9b96726b669e9594350585cc1e97474d3f995", + "readme": "\n# has-cors\n\n Detects support for Cross-Origin Resource Sharing\n\n## Installation\n\n Install with [component(1)](http://component.io):\n\n $ component install component/has-cors\n\n## API\n\nExports `true` if the user-agent supports CORS, or `false` otherwise.\n\n``` js\nvar hasCORS = require('has-cors');\nconsole.log(hasCORS);\n// true\n```\n\n## License\n\n MIT\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/component/has-cors/issues" }, - "homepage": "https://github.com/component/has-cors", + "homepage": "https://github.com/component/has-cors#readme", "_id": "has-cors@1.1.0", "_shasum": "5e474793f7ea9843d1bb99c23eef49ff126fff39", - "_from": "has-cors@1.1.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - "maintainers": [ - { - "name": "shtylman", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "5e474793f7ea9843d1bb99c23eef49ff126fff39", - "tarball": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "has-cors@1.1.0" } diff --git a/node_modules/engine.io-client/node_modules/indexof/package.json b/node_modules/engine.io-client/node_modules/indexof/package.json index b561ad32..5fe2c873 100644 --- a/node_modules/engine.io-client/node_modules/indexof/package.json +++ b/node_modules/engine.io-client/node_modules/indexof/package.json @@ -13,20 +13,10 @@ "indexof/index.js": "index.js" } }, + "readme": "\n# indexOf\n\n Lame indexOf thing, thanks microsoft\n\n## Example\n\n```js\nvar index = require('indexof');\nindex(arr, obj);\n```\n\n## License\n\n MIT", + "readmeFilename": "Readme.md", "_id": "indexof@0.0.1", - "dist": { - "shasum": "82dc336d232b9062179d05ab3293a66059fd435d", - "tarball": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "82dc336d232b9062179d05ab3293a66059fd435d", "_resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "_from": "indexof@0.0.1", - "readme": "ERROR: No README data found!" + "_from": "indexof@0.0.1" } diff --git a/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/package.json b/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/package.json index e6474aee..c5dd2936 100644 --- a/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/package.json +++ b/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/package.json @@ -20,25 +20,10 @@ "engines": { "node": "*" }, + "readme": "# callstack\n\n Access to v8's \"raw\" `CallSite`s.\n\n## Installation\n\n $ npm install callsite\n\n## Example\n\n```js\nvar stack = require('callsite');\n\nfoo();\n\nfunction foo() {\n bar();\n}\n\nfunction bar() {\n baz();\n}\n\nfunction baz() {\n console.log();\n stack().forEach(function(site){\n console.log(' \\033[36m%s\\033[90m in %s:%d\\033[0m'\n , site.getFunctionName() || 'anonymous'\n , site.getFileName()\n , site.getLineNumber());\n });\n console.log();\n}\n```\n\n## Why?\n\n Because you can do weird, stupid, clever, wacky things such as:\n\n - [better-assert](https://github.com/visionmedia/better-assert)\n\n## License\n\n MIT\n", + "readmeFilename": "Readme.md", "_id": "callsite@1.0.0", - "dist": { - "shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20", - "tarball": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" - }, - "_from": "callsite@1.0.0", - "_npmVersion": "1.2.2", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20", "_resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "callsite@1.0.0" } diff --git a/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/package.json b/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/package.json index 207ad271..f8186714 100644 --- a/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/package.json +++ b/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/package.json @@ -32,33 +32,14 @@ "engines": { "node": "*" }, + "readme": "\n# better-assert\n\n Better c-style assertions using [callsite](https://github.com/visionmedia/callsite) for\n self-documenting failure messages.\n\n## Installation\n\n $ npm install better-assert\n\n## Example\n\n By default assertions are enabled, however the __NO_ASSERT__ environment variable \n will deactivate them when truthy.\n\n```js\nvar assert = require('better-assert');\n\ntest();\n\nfunction test() {\n var user = { name: 'tobi' };\n assert('tobi' == user.name);\n assert('number' == typeof user.age);\n}\n\nAssertionError: 'number' == typeof user.age\n at test (/Users/tj/projects/better-assert/example.js:9:3)\n at Object. (/Users/tj/projects/better-assert/example.js:4:1)\n at Module._compile (module.js:449:26)\n at Object.Module._extensions..js (module.js:467:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n at Module.runMain (module.js:492:10)\n at process.startup.processNextTick.process._tickCallback (node.js:244:9)\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/better-assert/issues" }, - "homepage": "https://github.com/visionmedia/better-assert", + "homepage": "https://github.com/visionmedia/better-assert#readme", "_id": "better-assert@1.0.2", "_shasum": "40866b9e1b9e0b55b481894311e68faffaebc522", - "_from": "better-assert@>=1.0.0 <1.1.0", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "tony_ado", - "email": "coolhzb@163.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tony_ado", - "email": "coolhzb@163.com" - } - ], - "dist": { - "shasum": "40866b9e1b9e0b55b481894311e68faffaebc522", - "tarball": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "better-assert@>=1.0.0 <1.1.0" } diff --git a/node_modules/engine.io-client/node_modules/parsejson/package.json b/node_modules/engine.io-client/node_modules/parsejson/package.json index ce6b4909..a96fc819 100644 --- a/node_modules/engine.io-client/node_modules/parsejson/package.json +++ b/node_modules/engine.io-client/node_modules/parsejson/package.json @@ -13,25 +13,9 @@ "dependencies": { "better-assert": "~1.0.0" }, + "readme": "ERROR: No README data found!", "_id": "parsejson@0.0.1", - "dist": { - "shasum": "9b10c6c0d825ab589e685153826de0a3ba278bcc", - "tarball": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz" - }, - "_from": "parsejson@0.0.1", - "_npmVersion": "1.3.15", - "_npmUser": { - "name": "gal", - "email": "koren@mit.edu" - }, - "maintainers": [ - { - "name": "gal", - "email": "koren@mit.edu" - } - ], - "directories": {}, "_shasum": "9b10c6c0d825ab589e685153826de0a3ba278bcc", "_resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "parsejson@0.0.1" } diff --git a/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/package.json b/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/package.json index e6474aee..c5dd2936 100644 --- a/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/package.json +++ b/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/package.json @@ -20,25 +20,10 @@ "engines": { "node": "*" }, + "readme": "# callstack\n\n Access to v8's \"raw\" `CallSite`s.\n\n## Installation\n\n $ npm install callsite\n\n## Example\n\n```js\nvar stack = require('callsite');\n\nfoo();\n\nfunction foo() {\n bar();\n}\n\nfunction bar() {\n baz();\n}\n\nfunction baz() {\n console.log();\n stack().forEach(function(site){\n console.log(' \\033[36m%s\\033[90m in %s:%d\\033[0m'\n , site.getFunctionName() || 'anonymous'\n , site.getFileName()\n , site.getLineNumber());\n });\n console.log();\n}\n```\n\n## Why?\n\n Because you can do weird, stupid, clever, wacky things such as:\n\n - [better-assert](https://github.com/visionmedia/better-assert)\n\n## License\n\n MIT\n", + "readmeFilename": "Readme.md", "_id": "callsite@1.0.0", - "dist": { - "shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20", - "tarball": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" - }, - "_from": "callsite@1.0.0", - "_npmVersion": "1.2.2", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20", "_resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "callsite@1.0.0" } diff --git a/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/package.json b/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/package.json index 207ad271..f8186714 100644 --- a/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/package.json +++ b/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/package.json @@ -32,33 +32,14 @@ "engines": { "node": "*" }, + "readme": "\n# better-assert\n\n Better c-style assertions using [callsite](https://github.com/visionmedia/callsite) for\n self-documenting failure messages.\n\n## Installation\n\n $ npm install better-assert\n\n## Example\n\n By default assertions are enabled, however the __NO_ASSERT__ environment variable \n will deactivate them when truthy.\n\n```js\nvar assert = require('better-assert');\n\ntest();\n\nfunction test() {\n var user = { name: 'tobi' };\n assert('tobi' == user.name);\n assert('number' == typeof user.age);\n}\n\nAssertionError: 'number' == typeof user.age\n at test (/Users/tj/projects/better-assert/example.js:9:3)\n at Object. (/Users/tj/projects/better-assert/example.js:4:1)\n at Module._compile (module.js:449:26)\n at Object.Module._extensions..js (module.js:467:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n at Module.runMain (module.js:492:10)\n at process.startup.processNextTick.process._tickCallback (node.js:244:9)\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/better-assert/issues" }, - "homepage": "https://github.com/visionmedia/better-assert", + "homepage": "https://github.com/visionmedia/better-assert#readme", "_id": "better-assert@1.0.2", "_shasum": "40866b9e1b9e0b55b481894311e68faffaebc522", - "_from": "better-assert@>=1.0.0 <1.1.0", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "tony_ado", - "email": "coolhzb@163.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tony_ado", - "email": "coolhzb@163.com" - } - ], - "dist": { - "shasum": "40866b9e1b9e0b55b481894311e68faffaebc522", - "tarball": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "better-assert@>=1.0.0 <1.1.0" } diff --git a/node_modules/engine.io-client/node_modules/parseqs/package.json b/node_modules/engine.io-client/node_modules/parseqs/package.json index 403ab86a..ef840a74 100644 --- a/node_modules/engine.io-client/node_modules/parseqs/package.json +++ b/node_modules/engine.io-client/node_modules/parseqs/package.json @@ -13,25 +13,9 @@ "dependencies": { "better-assert": "~1.0.0" }, + "readme": "ERROR: No README data found!", "_id": "parseqs@0.0.2", - "dist": { - "shasum": "9dfe70b2cddac388bde4f35b1f240fa58adbe6c7", - "tarball": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz" - }, - "_from": "parseqs@0.0.2", - "_npmVersion": "1.3.15", - "_npmUser": { - "name": "gal", - "email": "koren@mit.edu" - }, - "maintainers": [ - { - "name": "gal", - "email": "koren@mit.edu" - } - ], - "directories": {}, "_shasum": "9dfe70b2cddac388bde4f35b1f240fa58adbe6c7", "_resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "parseqs@0.0.2" } diff --git a/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json b/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json index e6474aee..c5dd2936 100644 --- a/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json +++ b/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json @@ -20,25 +20,10 @@ "engines": { "node": "*" }, + "readme": "# callstack\n\n Access to v8's \"raw\" `CallSite`s.\n\n## Installation\n\n $ npm install callsite\n\n## Example\n\n```js\nvar stack = require('callsite');\n\nfoo();\n\nfunction foo() {\n bar();\n}\n\nfunction bar() {\n baz();\n}\n\nfunction baz() {\n console.log();\n stack().forEach(function(site){\n console.log(' \\033[36m%s\\033[90m in %s:%d\\033[0m'\n , site.getFunctionName() || 'anonymous'\n , site.getFileName()\n , site.getLineNumber());\n });\n console.log();\n}\n```\n\n## Why?\n\n Because you can do weird, stupid, clever, wacky things such as:\n\n - [better-assert](https://github.com/visionmedia/better-assert)\n\n## License\n\n MIT\n", + "readmeFilename": "Readme.md", "_id": "callsite@1.0.0", - "dist": { - "shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20", - "tarball": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" - }, - "_from": "callsite@1.0.0", - "_npmVersion": "1.2.2", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20", "_resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "callsite@1.0.0" } diff --git a/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/package.json b/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/package.json index 207ad271..f8186714 100644 --- a/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/package.json +++ b/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/package.json @@ -32,33 +32,14 @@ "engines": { "node": "*" }, + "readme": "\n# better-assert\n\n Better c-style assertions using [callsite](https://github.com/visionmedia/callsite) for\n self-documenting failure messages.\n\n## Installation\n\n $ npm install better-assert\n\n## Example\n\n By default assertions are enabled, however the __NO_ASSERT__ environment variable \n will deactivate them when truthy.\n\n```js\nvar assert = require('better-assert');\n\ntest();\n\nfunction test() {\n var user = { name: 'tobi' };\n assert('tobi' == user.name);\n assert('number' == typeof user.age);\n}\n\nAssertionError: 'number' == typeof user.age\n at test (/Users/tj/projects/better-assert/example.js:9:3)\n at Object. (/Users/tj/projects/better-assert/example.js:4:1)\n at Module._compile (module.js:449:26)\n at Object.Module._extensions..js (module.js:467:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n at Module.runMain (module.js:492:10)\n at process.startup.processNextTick.process._tickCallback (node.js:244:9)\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/better-assert/issues" }, - "homepage": "https://github.com/visionmedia/better-assert", + "homepage": "https://github.com/visionmedia/better-assert#readme", "_id": "better-assert@1.0.2", "_shasum": "40866b9e1b9e0b55b481894311e68faffaebc522", - "_from": "better-assert@>=1.0.0 <1.1.0", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "tony_ado", - "email": "coolhzb@163.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tony_ado", - "email": "coolhzb@163.com" - } - ], - "dist": { - "shasum": "40866b9e1b9e0b55b481894311e68faffaebc522", - "tarball": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "better-assert@>=1.0.0 <1.1.0" } diff --git a/node_modules/engine.io-client/node_modules/parseuri/package.json b/node_modules/engine.io-client/node_modules/parseuri/package.json index 14d5b06b..b8acd77c 100644 --- a/node_modules/engine.io-client/node_modules/parseuri/package.json +++ b/node_modules/engine.io-client/node_modules/parseuri/package.json @@ -21,25 +21,9 @@ "bugs": { "url": "https://github.com/get/parseuri/issues" }, + "readme": "ERROR: No README data found!", "_id": "parseuri@0.0.4", - "dist": { - "shasum": "806582a39887e1ea18dd5e2fe0e01902268e9350", - "tarball": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz" - }, - "_from": "parseuri@0.0.4", - "_npmVersion": "1.3.15", - "_npmUser": { - "name": "gal", - "email": "koren@mit.edu" - }, - "maintainers": [ - { - "name": "gal", - "email": "koren@mit.edu" - } - ], - "directories": {}, "_shasum": "806582a39887e1ea18dd5e2fe0e01902268e9350", "_resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "parseuri@0.0.4" } diff --git a/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/package.json b/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/package.json index 5a109b60..6338a2ca 100644 --- a/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/package.json +++ b/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/package.json @@ -31,28 +31,11 @@ }, "main": "./lib/XMLHttpRequest.js", "dependencies": {}, - "gitHead": "494938e2dd4ae963cd5972f242e8eaf7d6042331", - "homepage": "https://github.com/mjwwit/node-XMLHttpRequest", + "readme": "# node-XMLHttpRequest #\n\nFork of [node-XMLHttpRequest](https://github.com/driverdan/node-XMLHttpRequest) by [driverdan](http://driverdan.com). Forked and published to npm because a [pull request](https://github.com/rase-/node-XMLHttpRequest/commit/a6b6f296e0a8278165c2d0270d9840b54d5eeadd) is not being created and merged. Changes made by [rase-](https://github.com/rase-/node-XMLHttpRequest/tree/add/ssl-support) are needed for [engine.io-client](https://github.com/Automattic/engine.io-client).\n\n# Original README #\n\nnode-XMLHttpRequest is a wrapper for the built-in http client to emulate the\nbrowser XMLHttpRequest object.\n\nThis can be used with JS designed for browsers to improve reuse of code and\nallow the use of existing libraries.\n\nNote: This library currently conforms to [XMLHttpRequest 1](http://www.w3.org/TR/XMLHttpRequest/). Version 2.0 will target [XMLHttpRequest Level 2](http://www.w3.org/TR/XMLHttpRequest2/).\n\n## Usage ##\n\nHere's how to include the module in your project and use as the browser-based\nXHR object.\n\n\tvar XMLHttpRequest = require(\"xmlhttprequest\").XMLHttpRequest;\n\tvar xhr = new XMLHttpRequest();\n\nNote: use the lowercase string \"xmlhttprequest\" in your require(). On\ncase-sensitive systems (eg Linux) using uppercase letters won't work.\n\n## Versions ##\n\nPrior to 1.4.0 version numbers were arbitrary. From 1.4.0 on they conform to\nthe standard major.minor.bugfix. 1.x shouldn't necessarily be considered\nstable just because it's above 0.x.\n\nSince the XMLHttpRequest API is stable this library's API is stable as\nwell. Major version numbers indicate significant core code changes.\nMinor versions indicate minor core code changes or better conformity to\nthe W3C spec.\n\n## License ##\n\nMIT license. See LICENSE for full details.\n\n## Supports ##\n\n* Async and synchronous requests\n* GET, POST, PUT, and DELETE requests\n* All spec methods (open, send, abort, getRequestHeader,\n getAllRequestHeaders, event methods)\n* Requests to all domains\n\n## Known Issues / Missing Features ##\n\nFor a list of open issues or to report your own visit the [github issues\npage](https://github.com/driverdan/node-XMLHttpRequest/issues).\n\n* Local file access may have unexpected results for non-UTF8 files\n* Synchronous requests don't set headers properly\n* Synchronous requests freeze node while waiting for response (But that's what you want, right? Stick with async!).\n* Some events are missing, such as abort\n* getRequestHeader is case-sensitive\n* Cookies aren't persisted between requests\n* Missing XML support\n* Missing basic auth\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/mjwwit/node-XMLHttpRequest#readme", "_id": "xmlhttprequest-ssl@1.5.1", - "scripts": {}, "_shasum": "3b7741fea4a86675976e908d296d4445961faa67", - "_from": "xmlhttprequest-ssl@1.5.1", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "mjwwit", - "email": "mjwwit@gmail.com" - }, - "dist": { - "shasum": "3b7741fea4a86675976e908d296d4445961faa67", - "tarball": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz" - }, - "maintainers": [ - { - "name": "mjwwit", - "email": "mjwwit@gmail.com" - } - ], "_resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "xmlhttprequest-ssl@1.5.1" } diff --git a/node_modules/engine.io-client/node_modules/yeast/package.json b/node_modules/engine.io-client/node_modules/yeast/package.json index 61892460..776270f5 100644 --- a/node_modules/engine.io-client/node_modules/yeast/package.json +++ b/node_modules/engine.io-client/node_modules/yeast/package.json @@ -36,31 +36,10 @@ "pre-commit": "1.1.x", "zuul": "3.4.x" }, - "gitHead": "5a7300f934302009aa8733fa84d43cc570756b98", + "readme": "# yeast\n\n[![Made by unshift](https://img.shields.io/badge/made%20by-unshift-00ffcc.svg?style=flat-square)](http://unshift.io)[![Version npm](https://img.shields.io/npm/v/yeast.svg?style=flat-square)](http://browsenpm.org/package/yeast)[![Build Status](https://img.shields.io/travis/unshiftio/yeast/master.svg?style=flat-square)](https://travis-ci.org/unshiftio/yeast)[![Dependencies](https://img.shields.io/david/unshiftio/yeast.svg?style=flat-square)](https://david-dm.org/unshiftio/yeast)[![Coverage Status](https://img.shields.io/coveralls/unshiftio/yeast/master.svg?style=flat-square)](https://coveralls.io/r/unshiftio/yeast?branch=master)[![IRC channel](https://img.shields.io/badge/IRC-irc.freenode.net%23unshift-00a8ff.svg?style=flat-square)](https://webchat.freenode.net/?channels=unshift)\n\n[![Sauce Test Status](https://saucelabs.com/browser-matrix/yeast.svg)](https://saucelabs.com/u/yeast)\n\nYeast is a unique id generator. It has been primarily designed to generate a\nunique id which can be used for cache busting. A common practice for this is\nto use a timestamp, but there are couple of downsides when using timestamps.\n\n1. The timestamp is already 13 chars long. This might not matter for 1 request\n but if you make hundreds of them this quickly adds up in bandwidth and\n processing time.\n2. It's not unique enough. If you generate two stamps right after each other,\n they would be identical because the timing accuracy is limited to\n milliseconds.\n\nYeast solves both of these issues by:\n\n1. Compressing the generated timestamp using a custom `encode()` function that\n returns a string representation of the number.\n2. Seeding the id in case of collision (when the id is identical to the previous\n one).\n\nTo keep the strings unique it will use the `.` char to separate the generated\nstamp from the seed.\n\n## Installation\n\nThe module is intended to be used in browsers as well as in Node.js and is\ntherefore released in the npm registry and can be installed using:\n\n```\nnpm install --save yeast\n```\n\n## Usage\n\nAll the examples assume that this library is initialized as follow:\n\n```js\n'use strict';\n\nvar yeast = require('yeast');\n```\n\nTo generate an id just call the `yeast` function.\n\n```js\nconsole.log(yeast(), yeast(), yeast()); // outputs: KyxidwN KyxidwN.0 KyxidwN.1\n\nsetTimeout(function () {\n console.log(yeast()); // outputs: KyxidwO\n});\n```\n\n### yeast.encode(num)\n\nAn helper function that returns a string representing the specified number. The\nreturned string contains only URL safe characters.\n\n```js\nyeast.encode(+new Date()); // outputs: Kyxjuo1\n```\n\n### yeast.decode(str)\n\nAn helper function that returns the integer value specified by the given string.\nThis function can be used to retrieve the timestamp from a `yeast` id.\n\n```js\nvar id = yeast(); // holds the value: Kyxl1OU\n\nyeast.decode(id); // outputs: 1439816226334\n```\n\nThat's all folks. If you have ideas on how we can further compress the ids\nplease open an issue!\n\n## License\n\n[MIT](LICENSE)\n", + "readmeFilename": "README.md", "_id": "yeast@0.1.2", "_shasum": "008e06d8094320c372dbc2f8ed76a0ca6c8ac419", - "_from": "yeast@0.1.2", - "_npmVersion": "2.9.1", - "_nodeVersion": "0.12.3", - "_npmUser": { - "name": "3rdeden", - "email": "npm@3rd-Eden.com" - }, - "maintainers": [ - { - "name": "unshift", - "email": "npm@unshift.io" - }, - { - "name": "3rdeden", - "email": "npm@3rd-Eden.com" - } - ], - "dist": { - "shasum": "008e06d8094320c372dbc2f8ed76a0ca6c8ac419", - "tarball": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "yeast@0.1.2" } diff --git a/node_modules/engine.io-client/package.json b/node_modules/engine.io-client/package.json index 0b17e38c..a4f4f2ad 100644 --- a/node_modules/engine.io-client/package.json +++ b/node_modules/engine.io-client/package.json @@ -60,34 +60,13 @@ "type": "git", "url": "git+https://github.com/socketio/engine.io-client.git" }, - "gitHead": "2a7a011932094d4970dc68abd32e78265495a621", + "readme": "\n# Engine.IO client\n\n[![Build Status](https://secure.travis-ci.org/socketio/engine.io-client.svg)](http://travis-ci.org/socketio/engine.io-client)\n[![NPM version](https://badge.fury.io/js/engine.io-client.svg)](http://badge.fury.io/js/engine.io-client)\n\nThis is the client for [Engine.IO](http://github.com/socketio/engine.io),\nthe implementation of transport-based cross-browser/cross-device\nbi-directional communication layer for [Socket.IO](http://github.com/socketio/socket.io).\n\n## How to use\n\n### Standalone\n\nYou can find an `engine.io.js` file in this repository, which is a\nstandalone build you can use as follows:\n\n```html\n\n\n```\n\n### With browserify\n\nEngine.IO is a commonjs module, which means you can include it by using\n`require` on the browser and package using [browserify](http://browserify.org/):\n\n1. install the client package\n\n ```bash\n $ npm install engine.io-client\n ```\n\n1. write your app code\n\n ```js\n var socket = require('engine.io-client')('ws://localhost');\n socket.on('open', function(){\n socket.on('message', function(data){});\n socket.on('close', function(){});\n });\n ```\n\n1. build your app bundle\n\n ```bash\n $ browserify app.js > bundle.js\n ```\n\n1. include on your page\n\n ```html\n \n ```\n\n### Sending and receiving binary\n\n```html\n\n\n```\n\n### Node.JS\n\nAdd `engine.io-client` to your `package.json` and then:\n\n```js\nvar socket = require('engine.io-client')('ws://localhost');\nsocket.on('open', function(){\n socket.on('message', function(data){});\n socket.on('close', function(){});\n});\n```\n\n### Node.js with certificates\n```js\nvar opts = {\n key: fs.readFileSync('test/fixtures/client.key'),\n cert: fs.readFileSync('test/fixtures/client.crt'),\n ca: fs.readFileSync('test/fixtures/ca.crt')\n};\n\nvar socket = require('engine.io-client')('ws://localhost', opts);\nsocket.on('open', function(){\n socket.on('message', function(data){});\n socket.on('close', function(){});\n});\n```\n\n### Node.js with extraHeaders\n```js\nvar opts = {\n extraHeaders: {\n 'X-Custom-Header-For-My-Project': 'my-secret-access-token',\n 'Cookie': 'user_session=NI2JlCKF90aE0sJZD9ZzujtdsUqNYSBYxzlTsvdSUe35ZzdtVRGqYFr0kdGxbfc5gUOkR9RGp20GVKza; path=/; expires=Tue, 07-Apr-2015 18:18:08 GMT; secure; HttpOnly'\n }\n};\n\nvar socket = require('engine.io-client')('ws://localhost', opts);\nsocket.on('open', function(){\n socket.on('message', function(data){});\n socket.on('close', function(){});\n});\n```\n\n## Features\n\n- Lightweight\n- Runs on browser and node.js seamlessly\n- Transports are independent of `Engine`\n - Easy to debug\n - Easy to unit test\n- Runs inside HTML5 WebWorker\n- Can send and receive binary data\n - Receives as ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer\n in Node\n - When XHR2 or WebSockets are used, binary is emitted directly. Otherwise\n binary is encoded into base64 strings, and decoded when binary types are\n supported.\n - With browsers that don't support ArrayBuffer, an object { base64: true,\n data: dataAsBase64String } is emitted on the `message` event.\n\n## API\n\n### Socket\n\nThe client class. Mixes in [Emitter](http://github.com/component/emitter).\nExposed as `eio` in the browser standalone build.\n\n#### Properties\n\n- `protocol` _(Number)_: protocol revision number\n- `binaryType` _(String)_ : can be set to 'arraybuffer' or 'blob' in browsers,\n and `buffer` or `arraybuffer` in Node. Blob is only used in browser if it's\n supported.\n\n#### Events\n\n- `open`\n - Fired upon successful connection.\n- `message`\n - Fired when data is received from the server.\n - **Arguments**\n - `String` | `ArrayBuffer`: utf-8 encoded data or ArrayBuffer containing\n binary data\n- `close`\n - Fired upon disconnection. In compliance with the WebSocket API spec, this event may be \n fired even if the `open` event does not occur (i.e. due to connection error or `close()`).\n- `error`\n - Fired when an error occurs.\n- `flush`\n - Fired upon completing a buffer flush\n- `drain`\n - Fired after `drain` event of transport if writeBuffer is empty\n- `upgradeError`\n - Fired if an error occurs with a transport we're trying to upgrade to.\n- `upgrade`\n - Fired upon upgrade success, after the new transport is set\n- `ping`\n - Fired upon _flushing_ a ping packet (ie: actual packet write out)\n- `pong`\n - Fired upon receiving a pong packet.\n\n#### Methods\n\n- **constructor**\n - Initializes the client\n - **Parameters**\n - `String` uri\n - `Object`: optional, options object\n - **Options**\n - `agent` (`http.Agent`): `http.Agent` to use, defaults to `false` (NodeJS only)\n - `upgrade` (`Boolean`): defaults to true, whether the client should try\n to upgrade the transport from long-polling to something better.\n - `forceJSONP` (`Boolean`): forces JSONP for polling transport.\n - `jsonp` (`Boolean`): determines whether to use JSONP when\n necessary for polling. If disabled (by settings to false) an error will\n be emitted (saying \"No transports available\") if no other transports\n are available. If another transport is available for opening a\n connection (e.g. WebSocket) that transport\n will be used instead.\n - `forceBase64` (`Boolean`): forces base 64 encoding for polling transport even when XHR2 responseType is available and WebSocket even if the used standard supports binary.\n - `enablesXDR` (`Boolean`): enables XDomainRequest for IE8 to avoid loading bar flashing with click sound. default to `false` because XDomainRequest has a flaw of not sending cookie.\n - `timestampRequests` (`Boolean`): whether to add the timestamp with each\n transport request. Note: polling requests are always stamped unless this\n option is explicitly set to `false` (`false`)\n - `timestampParam` (`String`): timestamp parameter (`t`)\n - `policyPort` (`Number`): port the policy server listens on (`843`)\n - `path` (`String`): path to connect to, default is `/engine.io`\n - `transports` (`Array`): a list of transports to try (in order).\n Defaults to `['polling', 'websocket']`. `Engine`\n always attempts to connect directly with the first one, provided the\n feature detection test for it passes.\n - `rememberUpgrade` (`Boolean`): defaults to false.\n If true and if the previous websocket connection to the server succeeded,\n the connection attempt will bypass the normal upgrade process and will initially\n try websocket. A connection attempt following a transport error will use the\n normal upgrade process. It is recommended you turn this on only when using\n SSL/TLS connections, or if you know that your network does not block websockets.\n - `pfx` (`String`): Certificate, Private key and CA certificates to use for SSL. Can be used in Node.js client environment to manually specify certificate information.\n - `key` (`String`): Private key to use for SSL. Can be used in Node.js client environment to manually specify certificate information.\n - `passphrase` (`String`): A string of passphrase for the private key or pfx. Can be used in Node.js client environment to manually specify certificate information.\n - `cert` (`String`): Public x509 certificate to use. Can be used in Node.js client environment to manually specify certificate information.\n - `ca` (`String`|`Array`): An authority certificate or array of authority certificates to check the remote host against.. Can be used in Node.js client environment to manually specify certificate information.\n - `ciphers` (`String`): A string describing the ciphers to use or exclude. Consult the [cipher format list](http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT) for details on the format. Can be used in Node.js client environment to manually specify certificate information.\n - `rejectUnauthorized` (`Boolean`): If true, the server certificate is verified against the list of supplied CAs. An 'error' event is emitted if verification fails. Verification happens at the connection level, before the HTTP request is sent. Can be used in Node.js client environment to manually specify certificate information.\n - `perMessageDeflate` (`Object|Boolean`): parameters of the WebSocket permessage-deflate extension\n (see [ws module](https://github.com/einaros/ws) api docs). Set to `false` to disable. (`true`)\n - `threshold` (`Number`): data is compressed only if the byte size is above this value. This option is ignored on the browser. (`1024`)\n - `extraHeaders` (`Object`): Headers that will be passed for each request to the server (via xhr-polling and via websockets). These values then can be used during handshake or for special proxies. Can only be used in Node.js client environment.\n- `send`\n - Sends a message to the server\n - **Parameters**\n - `String` | `ArrayBuffer` | `ArrayBufferView` | `Blob`: data to send\n - `Object`: optional, options object\n - `Function`: optional, callback upon `drain`\n - **Options**\n - `compress` (`Boolean`): whether to compress sending data. This option is ignored and forced to be `true` on the browser. (`true`)\n- `close`\n - Disconnects the client.\n\n### Transport\n\nThe transport class. Private. _Inherits from EventEmitter_.\n\n#### Events\n\n- `poll`: emitted by polling transports upon starting a new request\n- `pollComplete`: emitted by polling transports upon completing a request\n- `drain`: emitted by polling transports upon a buffer drain\n\n## Tests\n\n`engine.io-client` is used to test\n[engine](http://github.com/socketio/engine.io). Running the `engine.io`\ntest suite ensures the client works and vice-versa.\n\nBrowser tests are run using [zuul](https://github.com/defunctzombie/zuul). You can\nrun the tests locally using the following command.\n\n```\n./node_modules/.bin/zuul --local 8080 -- test/index.js\n```\n\nAdditionally, `engine.io-client` has a standalone test suite you can run\nwith `make test` which will run node.js and browser tests. You must have zuul setup with\na saucelabs account.\n\n## Support\n\nThe support channels for `engine.io-client` are the same as `socket.io`:\n - irc.freenode.net **#socket.io**\n - [Google Groups](http://groups.google.com/group/socket_io)\n - [Website](http://socket.io)\n\n## Development\n\nTo contribute patches, run tests or benchmarks, make sure to clone the\nrepository:\n\n```bash\ngit clone git://github.com/socketio/engine.io-client.git\n```\n\nThen:\n\n```bash\ncd engine.io-client\nnpm install\n```\n\nSee the `Tests` section above for how to run tests before submitting any patches.\n\n## License\n\nMIT - Copyright (c) 2014 Automattic, Inc.\n\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/socketio/engine.io-client/issues" }, "_id": "engine.io-client@1.6.9", "_shasum": "1d6ad48048a5083c95096943b29d36efdb212401", - "_from": "engine.io-client@1.6.9", - "_npmVersion": "2.15.0", - "_nodeVersion": "4.4.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "dist": { - "shasum": "1d6ad48048a5083c95096943b29d36efdb212401", - "tarball": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/engine.io-client-1.6.9.tgz_1462247658295_0.9066626788116992" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz", - "readme": "ERROR: No README data found!" + "_from": "engine.io-client@1.6.9" } diff --git a/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json b/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json index b5bd0160..7c22fa47 100644 --- a/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json +++ b/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json @@ -61,34 +61,14 @@ "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "update": "npm run fetch && npm run build" }, - "gitHead": "cf35cbba6b22f4a3b3eef9a32129ea5b7f0f91ee", + "readme": "# mime-db\n\n[![NPM Version][npm-version-image]][npm-url]\n[![NPM Downloads][npm-downloads-image]][npm-url]\n[![Node.js Version][node-image]][node-url]\n[![Build Status][travis-image]][travis-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n\nThis is a database of all mime types.\nIt consists of a single, public JSON file and does not include any logic,\nallowing it to remain as un-opinionated as possible with an API.\nIt aggregates data from the following sources:\n\n- http://www.iana.org/assignments/media-types/media-types.xhtml\n- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\n\n## Installation\n\n```bash\nnpm install mime-db\n```\n\nIf you're crazy enough to use this in the browser,\nyou can just grab the JSON file:\n\n```\nhttps://cdn.rawgit.com/jshttp/mime-db/master/db.json\n```\n\n## Usage\n\n```js\nvar db = require('mime-db');\n\n// grab data on .js files\nvar data = db['application/javascript'];\n```\n\n## Data Structure\n\nThe JSON file is a map lookup for lowercased mime types.\nEach mime type has the following properties:\n\n- `.source` - where the mime type is defined.\n If not set, it's probably a custom media type.\n - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)\n - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml)\n- `.extensions[]` - known extensions associated with this mime type.\n- `.compressible` - whether a file of this type is can be gzipped.\n- `.charset` - the default charset associated with this type, if any.\n\nIf unknown, every property could be `undefined`.\n\n## Contributing\n\nTo edit the database, only make PRs against `src/custom.json` or\n`src/custom-suffix.json`.\n\nTo update the build, run `npm run update`.\n\n## Adding Custom Media Types\n\nThe best way to get new media types included in this library is to register\nthem with the IANA. The community registration procedure is outlined in\n[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types\nregistered with the IANA are automatically pulled into this library.\n\n[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg\n[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg\n[npm-url]: https://npmjs.org/package/mime-db\n[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg\n[travis-url]: https://travis-ci.org/jshttp/mime-db\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master\n[node-image]: https://img.shields.io/node/v/mime-db.svg\n[node-url]: http://nodejs.org/download/\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/jshttp/mime-db/issues" }, - "homepage": "https://github.com/jshttp/mime-db", + "homepage": "https://github.com/jshttp/mime-db#readme", "_id": "mime-db@1.12.0", "_shasum": "3d0c63180f458eb10d325aaa37d7c58ae312e9d7", - "_from": "mime-db@>=1.12.0 <1.13.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "3d0c63180f458eb10d325aaa37d7c58ae312e9d7", - "tarball": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "mime-db@>=1.12.0 <1.13.0" } diff --git a/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/package.json b/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/package.json index 583a04a7..7014dfde 100644 --- a/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/package.json +++ b/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/package.json @@ -47,38 +47,14 @@ "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" }, - "gitHead": "7d53a3351581eb3d7ae1e846ea860037bce6fe3f", + "readme": "# mime-types\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nThe ultimate javascript content-type utility.\n\nSimilar to [node-mime](https://github.com/broofa/node-mime), except:\n\n- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`,\n so do `var type = mime.lookup('unrecognized') || 'application/octet-stream'`.\n- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`.\n- Additional mime types are added such as jade and stylus via [mime-db](https://github.com/jshttp/mime-db)\n- No `.define()` functionality\n\nOtherwise, the API is compatible.\n\n## Install\n\n```sh\n$ npm install mime-types\n```\n\n## Adding Types\n\nAll mime types are based on [mime-db](https://github.com/jshttp/mime-db),\nso open a PR there if you'd like to add mime types.\n\n## API\n\n```js\nvar mime = require('mime-types')\n```\n\nAll functions return `false` if input is invalid or not found.\n\n### mime.lookup(path)\n\nLookup the content-type associated with a file.\n\n```js\nmime.lookup('json') // 'application/json'\nmime.lookup('.md') // 'text/x-markdown'\nmime.lookup('file.html') // 'text/html'\nmime.lookup('folder/file.js') // 'application/javascript'\n\nmime.lookup('cats') // false\n```\n\n### mime.contentType(type)\n\nCreate a full content-type header given a content-type or extension.\n\n```js\nmime.contentType('markdown') // 'text/x-markdown; charset=utf-8'\nmime.contentType('file.json') // 'application/json; charset=utf-8'\n\n// from a full path\nmime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'\n```\n\n### mime.extension(type)\n\nGet the default extension for a content-type.\n\n```js\nmime.extension('application/octet-stream') // 'bin'\n```\n\n### mime.charset(type)\n\nLookup the implied default charset of a content-type.\n\n```js\nmime.charset('text/x-markdown') // 'UTF-8'\n```\n\n### var type = mime.types[extension]\n\nA map of content-types by extension.\n\n### [extensions...] = mime.extensions[type]\n\nA map of extensions by content-type.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/mime-types.svg\n[npm-url]: https://npmjs.org/package/mime-types\n[node-version-image]: https://img.shields.io/node/v/mime-types.svg\n[node-version-url]: http://nodejs.org/download/\n[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg\n[travis-url]: https://travis-ci.org/jshttp/mime-types\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/mime-types\n[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg\n[downloads-url]: https://npmjs.org/package/mime-types\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/jshttp/mime-types/issues" }, - "homepage": "https://github.com/jshttp/mime-types", + "homepage": "https://github.com/jshttp/mime-types#readme", "_id": "mime-types@2.0.14", "_shasum": "310e159db23e077f8bb22b748dabfa4957140aa6", - "_from": "mime-types@>=2.0.4 <2.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "310e159db23e077f8bb22b748dabfa4957140aa6", - "tarball": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", - "readme": "ERROR: No README data found!" + "_from": "mime-types@>=2.0.4 <2.1.0" } diff --git a/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/package.json b/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/package.json index 5a140671..827c5513 100644 --- a/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/package.json +++ b/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/package.json @@ -42,38 +42,14 @@ "lib", "LICENSE" ], - "gitHead": "1e90abd710b662db80f1ea244e647cce3bd74504", + "readme": "# negotiator\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nAn HTTP content negotiator for Node.js\n\n## Installation\n\n```sh\n$ npm install negotiator\n```\n\n## API\n\n```js\nvar Negotiator = require('negotiator')\n```\n\n### Accept Negotiation\n\n```js\navailableMediaTypes = ['text/html', 'text/plain', 'application/json']\n\n// The negotiator constructor receives a request object\nnegotiator = new Negotiator(request)\n\n// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8'\n\nnegotiator.mediaTypes()\n// -> ['text/html', 'image/jpeg', 'application/*']\n\nnegotiator.mediaTypes(availableMediaTypes)\n// -> ['text/html', 'application/json']\n\nnegotiator.mediaType(availableMediaTypes)\n// -> 'text/html'\n```\n\nYou can check a working example at `examples/accept.js`.\n\n#### Methods\n\n##### mediaTypes(availableMediaTypes):\n\nReturns an array of preferred media types ordered by priority from a list of available media types.\n\n##### mediaType(availableMediaType):\n\nReturns the top preferred media type from a list of available media types.\n\n### Accept-Language Negotiation\n\n```js\nnegotiator = new Negotiator(request)\n\navailableLanguages = 'en', 'es', 'fr'\n\n// Let's say Accept-Language header is 'en;q=0.8, es, pt'\n\nnegotiator.languages()\n// -> ['es', 'pt', 'en']\n\nnegotiator.languages(availableLanguages)\n// -> ['es', 'en']\n\nlanguage = negotiator.language(availableLanguages)\n// -> 'es'\n```\n\nYou can check a working example at `examples/language.js`.\n\n#### Methods\n\n##### languages(availableLanguages):\n\nReturns an array of preferred languages ordered by priority from a list of available languages.\n\n##### language(availableLanguages):\n\nReturns the top preferred language from a list of available languages.\n\n### Accept-Charset Negotiation\n\n```js\navailableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5']\n\nnegotiator = new Negotiator(request)\n\n// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'\n\nnegotiator.charsets()\n// -> ['utf-8', 'iso-8859-1', 'utf-7']\n\nnegotiator.charsets(availableCharsets)\n// -> ['utf-8', 'iso-8859-1']\n\nnegotiator.charset(availableCharsets)\n// -> 'utf-8'\n```\n\nYou can check a working example at `examples/charset.js`.\n\n#### Methods\n\n##### charsets(availableCharsets):\n\nReturns an array of preferred charsets ordered by priority from a list of available charsets.\n\n##### charset(availableCharsets):\n\nReturns the top preferred charset from a list of available charsets.\n\n### Accept-Encoding Negotiation\n\n```js\navailableEncodings = ['identity', 'gzip']\n\nnegotiator = new Negotiator(request)\n\n// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'\n\nnegotiator.encodings()\n// -> ['gzip', 'identity', 'compress']\n\nnegotiator.encodings(availableEncodings)\n// -> ['gzip', 'identity']\n\nnegotiator.encoding(availableEncodings)\n// -> 'gzip'\n```\n\nYou can check a working example at `examples/encoding.js`.\n\n#### Methods\n\n##### encodings(availableEncodings):\n\nReturns an array of preferred encodings ordered by priority from a list of available encodings.\n\n##### encoding(availableEncodings):\n\nReturns the top preferred encoding from a list of available encodings.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/negotiator.svg?style=flat\n[npm-url]: https://npmjs.org/package/negotiator\n[node-version-image]: https://img.shields.io/node/v/negotiator.svg?style=flat\n[node-version-url]: http://nodejs.org/download/\n[travis-image]: https://img.shields.io/travis/jshttp/negotiator.svg?style=flat\n[travis-url]: https://travis-ci.org/jshttp/negotiator\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/negotiator.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/jshttp/negotiator?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/negotiator.svg?style=flat\n[downloads-url]: https://npmjs.org/package/negotiator\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/jshttp/negotiator/issues" }, - "homepage": "https://github.com/jshttp/negotiator", + "homepage": "https://github.com/jshttp/negotiator#readme", "_id": "negotiator@0.4.9", "_shasum": "92e46b6db53c7e421ed64a2bc94f08be7630df3f", - "_from": "negotiator@0.4.9", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "federomero", - "email": "federomero@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "92e46b6db53c7e421ed64a2bc94f08be7630df3f", - "tarball": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz", - "readme": "ERROR: No README data found!" + "_from": "negotiator@0.4.9" } diff --git a/node_modules/engine.io/node_modules/accepts/package.json b/node_modules/engine.io/node_modules/accepts/package.json index 28d26123..901ade2b 100644 --- a/node_modules/engine.io/node_modules/accepts/package.json +++ b/node_modules/engine.io/node_modules/accepts/package.json @@ -39,54 +39,14 @@ "accept", "accepts" ], - "gitHead": "df66414d80f096627b28f137127fce0a851d7900", + "readme": "# accepts\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nHigher level content negotation based on [negotiator](https://github.com/federomero/negotiator). Extracted from [koa](https://github.com/koajs/koa) for general use.\n\nIn addition to negotatior, it allows:\n\n- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` as well as `('text/html', 'application/json')`.\n- Allows type shorthands such as `json`.\n- Returns `false` when no types match\n- Treats non-existent headers as `*`\n\n## API\n\n### var accept = new Accepts(req)\n\n```js\nvar accepts = require('accepts')\n\nhttp.createServer(function (req, res) {\n var accept = accepts(req)\n})\n```\n\n### accept\\[property\\]\\(\\)\n\nReturns all the explicitly accepted content property as an array in descending priority.\n\n- `accept.types()`\n- `accept.encodings()`\n- `accept.charsets()`\n- `accept.languages()`\n\nThey are also aliased in singular form such as `accept.type()`. `accept.languages()` is also aliased as `accept.langs()`, etc.\n\nNote: you should almost never do this in a real app as it defeats the purpose of content negotiation.\n\nExample:\n\n```js\n// in Google Chrome\nvar encodings = accept.encodings() // -> ['sdch', 'gzip', 'deflate']\n```\n\nSince you probably don't support `sdch`, you should just supply the encodings you support:\n\n```js\nvar encoding = accept.encodings('gzip', 'deflate') // -> 'gzip', probably\n```\n\n### accept\\[property\\]\\(values, ...\\)\n\nYou can either have `values` be an array or have an argument list of values.\n\nIf the client does not accept any `values`, `false` will be returned.\nIf the client accepts any `values`, the preferred `value` will be return.\n\nFor `accept.types()`, shorthand mime types are allowed.\n\nExample:\n\n```js\n// req.headers.accept = 'application/json'\n\naccept.types('json') // -> 'json'\naccept.types('html', 'json') // -> 'json'\naccept.types('html') // -> false\n\n// req.headers.accept = ''\n// which is equivalent to `*`\n\naccept.types() // -> [], no explicit types\naccept.types('text/html', 'text/json') // -> 'text/html', since it was first\n```\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/accepts.svg?style=flat\n[npm-url]: https://npmjs.org/package/accepts\n[node-version-image]: https://img.shields.io/node/v/accepts.svg?style=flat\n[node-version-url]: http://nodejs.org/download/\n[travis-image]: https://img.shields.io/travis/jshttp/accepts.svg?style=flat\n[travis-url]: https://travis-ci.org/jshttp/accepts\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/jshttp/accepts\n[downloads-image]: https://img.shields.io/npm/dm/accepts.svg?style=flat\n[downloads-url]: https://npmjs.org/package/accepts\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/jshttp/accepts/issues" }, - "homepage": "https://github.com/jshttp/accepts", + "homepage": "https://github.com/jshttp/accepts#readme", "_id": "accepts@1.1.4", "_shasum": "d71c96f7d41d0feda2c38cd14e8a27c04158df4a", - "_from": "accepts@1.1.4", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "federomero", - "email": "federomero@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - } - ], - "dist": { - "shasum": "d71c96f7d41d0feda2c38cd14e8a27c04158df4a", - "tarball": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "accepts@1.1.4" } diff --git a/node_modules/engine.io/node_modules/debug/node_modules/ms/package.json b/node_modules/engine.io/node_modules/debug/node_modules/ms/package.json index e36489ef..7b5d86db 100644 --- a/node_modules/engine.io/node_modules/debug/node_modules/ms/package.json +++ b/node_modules/engine.io/node_modules/debug/node_modules/ms/package.json @@ -17,32 +17,14 @@ "ms/index.js": "index.js" } }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", + "readme": "# ms.js: miliseconds conversion utility\n\n```js\nms('2 days') // 172800000\nms('1d') // 86400000\nms('10h') // 36000000\nms('2.5 hrs') // 9000000\nms('2h') // 7200000\nms('1m') // 60000\nms('5s') // 5000\nms('100') // 100\n```\n\n```js\nms(60000) // \"1m\"\nms(2 * 60000) // \"2m\"\nms(ms('10 hours')) // \"10h\"\n```\n\n```js\nms(60000, { long: true }) // \"1 minute\"\nms(2 * 60000, { long: true }) // \"2 minutes\"\nms(ms('10 hours'), { long: true }) // \"10 hours\"\n```\n\n- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download).\n- If a number is supplied to `ms`, a string with a unit is returned.\n- If a string that contains the number is supplied, it returns it as\na number (e.g: it returns `100` for `'100'`).\n- If you pass a string with a number and a valid unit, the number of\nequivalent ms is returned.\n\n## License\n\nMIT\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/guille/ms.js/issues" }, - "homepage": "https://github.com/guille/ms.js", + "homepage": "https://github.com/guille/ms.js#readme", "_id": "ms@0.7.1", - "scripts": {}, "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "ms@0.7.1" } diff --git a/node_modules/engine.io/node_modules/debug/package.json b/node_modules/engine.io/node_modules/debug/package.json index 46ce4c53..fa594b09 100644 --- a/node_modules/engine.io/node_modules/debug/package.json +++ b/node_modules/engine.io/node_modules/debug/package.json @@ -38,36 +38,14 @@ "debug/debug.js": "debug.js" } }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", + "readme": "# debug\n\n tiny node.js debugging utility modelled after node core's debugging technique.\n\n## Installation\n\n```bash\n$ npm install debug\n```\n\n## Usage\n\n With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.\n\nExample _app.js_:\n\n```js\nvar debug = require('debug')('http')\n , http = require('http')\n , name = 'My App';\n\n// fake app\n\ndebug('booting %s', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + ' ' + req.url);\n res.end('hello\\n');\n}).listen(3000, function(){\n debug('listening');\n});\n\n// fake worker of some kind\n\nrequire('./worker');\n```\n\nExample _worker.js_:\n\n```js\nvar debug = require('debug')('worker');\n\nsetInterval(function(){\n debug('doing some work');\n}, 1000);\n```\n\n The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:\n\n ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)\n\n ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)\n\n#### Windows note\n\n On Windows the environment variable is set using the `set` command.\n\n ```cmd\n set DEBUG=*,-not_this\n ```\n\nThen, run the program to be debugged as usual.\n\n## Millisecond diff\n\n When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the \"+NNNms\" will show you how much time was spent between calls.\n\n ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)\n\n When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n\n ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)\n\n## Conventions\n\n If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use \":\" to separate features. For example \"bodyParser\" from Connect would then be \"connect:bodyParser\".\n\n## Wildcards\n\n The `*` character may be used as a wildcard. Suppose for example your library has debuggers named \"connect:bodyParser\", \"connect:compress\", \"connect:session\", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\n You can also exclude specific debuggers by prefixing them with a \"-\" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with \"connect:\".\n\n## Browser support\n\n Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include:\n\n```js\nwindow.myDebug = require(\"debug\");\n```\n\n (\"debug\" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console:\n\n```js\nmyDebug.enable(\"worker:*\")\n```\n\n Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console.\n\n```js\na = debug('worker:a');\nb = debug('worker:b');\n\nsetInterval(function(){\n a('doing some work');\n}, 1000);\n\nsetInterval(function(){\n b('doing some work');\n}, 1200);\n```\n\n#### Web Inspector Colors\n\n Colors are also enabled on \"Web Inspectors\" that understand the `%c` formatting\n option. These are WebKit web inspectors, Firefox ([since version\n 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))\n and the Firebug plugin for Firefox (any version).\n\n Colored output looks something like:\n\n ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)\n\n### stderr vs stdout\n\nYou can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally:\n\nExample _stdout.js_:\n\n```js\nvar debug = require('debug');\nvar error = debug('app:error');\n\n// by default stderr is used\nerror('goes to stderr!');\n\nvar log = debug('app:log');\n// set this namespace to log via console.log\nlog.log = console.log.bind(console); // don't forget to bind to console!\nlog('goes to stdout');\nerror('still goes to stderr!');\n\n// set all output to go via console.info\n// overrides all per-namespace log settings\ndebug.log = console.info.bind(console);\nerror('now goes to stdout via console.info');\nlog('still goes to stdout, but via console.info now');\n```\n\n### Save debug output to a file\n\nYou can save all debug statements to a file by piping them.\n\nExample:\n\n```bash\n$ DEBUG_FD=3 node your-app.js 3> whatever.log\n```\n\n## Authors\n\n - TJ Holowaychuk\n - Nathan Rajlich\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "homepage": "https://github.com/visionmedia/debug", + "homepage": "https://github.com/visionmedia/debug#readme", "_id": "debug@2.2.0", - "scripts": {}, "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@2.2.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "debug@2.2.0" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json index 004bc9a4..c73e8679 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json @@ -30,33 +30,14 @@ "type": "git", "url": "git://github.com/Raynos/after.git" }, + "readme": "# After [![Build Status][1]][2]\n\nInvoke callback after n calls\n\n## Status: production ready\n\n## Example\n\n var after = require(\"after\")\n , next = after(3, logItWorks)\n\n next()\n next()\n next() // it works\n\n function logItWorks() {\n console.log(\"it works!\")\n }\n\n## Example with error handling\n\n var after = require(\"after\")\n , next = after(3, logError)\n\n next()\n next(new Error(\"oops\")) // logs oops\n next() // does nothing\n\n function logError(err) {\n console.log(err)\n }\n\n## After < 0.6.0\n\nOlder versions of after had iterators and flows in them.\n\nThese have been replaced with seperate modules\n\n - [iterators][8]\n - [composite][9]\n\n## Installation\n\n`npm install after`\n\n## Tests\n\n`npm test`\n\n## Blog post\n\n - [Flow control in node.js][3]\n\n## Examples :\n\n - [Determining the end of asynchronous operations][4]\n - [In javascript what are best practices for executing multiple asynchronous functions][5]\n - [JavaScript performance long running tasks][6]\n - [Synchronous database queries with node.js][7]\n\n## Contributors\n\n - Raynos\n\n## MIT Licenced\n\n [1]: https://secure.travis-ci.org/Raynos/after.png\n [2]: http://travis-ci.org/Raynos/after\n [3]: http://raynos.org/blog/2/Flow-control-in-node.js\n [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307\n [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031\n [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419\n [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091\n [8]: http://github.com/Raynos/iterators\n [9]: http://github.com/Raynos/composite\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/Raynos/after/issues" }, + "homepage": "https://github.com/Raynos/after#readme", "_id": "after@0.8.1", - "dist": { - "shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627", - "tarball": "https://registry.npmjs.org/after/-/after-0.8.1.tgz" - }, - "_from": "after@0.8.1", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - "maintainers": [ - { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - } - ], - "directories": {}, "_shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627", "_resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/Raynos/after#readme" + "_from": "after@0.8.1" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json index 35bbdf7d..af728a08 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json @@ -12,28 +12,13 @@ "type": "git", "url": "git+ssh://git@github.com/rase-/arraybuffer.slice.git" }, + "readme": "# How to\n```javascript\nvar sliceBuffer = require('arraybuffer.slice');\nvar ab = (new Int8Array(5)).buffer;\nvar sliced = sliceBuffer(ab, 1, 3);\nsliced = sliceBuffer(ab, 1);\n```\n\n# Licence (MIT)\nCopyright (C) 2013 Rase-\n\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/rase-/arraybuffer.slice/issues" }, "_id": "arraybuffer.slice@0.0.6", - "dist": { - "shasum": "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca", - "tarball": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz" - }, - "_from": "arraybuffer.slice@0.0.6", - "_npmVersion": "1.3.5", - "_npmUser": { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - }, - "maintainers": [ - { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - } - ], - "directories": {}, "_shasum": "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca", "_resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "readme": "ERROR: No README data found!" + "_from": "arraybuffer.slice@0.0.6" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json index cc988f94..1c671be5 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json @@ -32,25 +32,10 @@ "grunt": "~0.3.17" }, "keywords": [], + "readme": "# base64-arraybuffer\n\n[![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer)\n\nEncode/decode base64 data into ArrayBuffers\n\n## Getting Started\nInstall the module with: `npm install base64-arraybuffer`\n\n## API\nThe library encodes and decodes base64 to and from ArrayBuffers\n\n - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string\n - __decode(str)__ - Decodes base64 string to `ArrayBuffer`\n\n## Release History\n\n - 0.1.2 - Fix old format of typed arrays\n - 0.1.0 - Initial version, basic decode/encode base64 to and from ArrayBuffer\n\n## License\nCopyright (c) 2012 Niklas von Hertzen\nLicensed under the MIT license.\n", + "readmeFilename": "README.md", "_id": "base64-arraybuffer@0.1.2", - "dist": { - "shasum": "474df4a9f2da24e05df3158c3b1db3c3cd46a154", - "tarball": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz" - }, - "_from": "base64-arraybuffer@0.1.2", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "niklasvh", - "email": "niklasvh@gmail.com" - }, - "maintainers": [ - { - "name": "niklasvh", - "email": "niklasvh@gmail.com" - } - ], - "directories": {}, "_shasum": "474df4a9f2da24e05df3158c3b1db3c3cd46a154", "_resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "base64-arraybuffer@0.1.2" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json index b5874552..00a4f8d4 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json @@ -17,28 +17,13 @@ "scripts": { "test": "make test" }, + "readme": "Blob\n====\n\nA module that exports a constructor that uses window.Blob when available, and a BlobBuilder with any vendor prefix in other cases. If neither is available, it exports undefined.\n\nUsage:\n\n```javascript\nvar Blob = require('blob');\nvar b = new Blob(['hi', 'constructing', 'a', 'blob']);\n```\n\n## Licence\nMIT\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/rase-/blob/issues" }, "_id": "blob@0.0.4", - "dist": { - "shasum": "bcf13052ca54463f30f9fc7e95b9a47630a94921", - "tarball": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz" - }, - "_from": "blob@0.0.4", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - }, - "maintainers": [ - { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - } - ], - "directories": {}, "_shasum": "bcf13052ca54463f30f9fc7e95b9a47630a94921", "_resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "blob@0.0.4" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json index 060e073f..fb1eb378 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json @@ -26,28 +26,13 @@ "url": "http://juliangruber.com" }, "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "readme": "\n# isarray\n\n`Array#isArray` for older browsers.\n\n## Usage\n\n```js\nvar isArray = require('isarray');\n\nconsole.log(isArray([])); // => true\nconsole.log(isArray({})); // => false\n```\n\n## Installation\n\nWith [npm](http://npmjs.org) do\n\n```bash\n$ npm install isarray\n```\n\nThen bundle for the browser with\n[browserify](https://github.com/substack/browserify).\n\nWith [component](http://component.io) do\n\n```bash\n$ component install juliangruber/isarray\n```\n\n## License\n\n(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/juliangruber/isarray/issues" }, - "readme": "ERROR: No README data found!" + "_id": "isarray@0.0.1", + "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "_from": "isarray@0.0.1" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json index 72bff47e..dcd5f956 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json @@ -13,27 +13,10 @@ "name": "Kevin Roark" }, "license": "MIT", - "gitHead": "a37d7ed88fb88e49d5ed1ca15e6cc7dd004dd0e8", + "readme": "has-binarydata.js\n=================\n\nSimple module to test if an object contains binary data\n", + "readmeFilename": "README.md", "_id": "has-binary@0.1.6", - "scripts": {}, "_shasum": "25326f39cfa4f616ad8787894e3af2cfbc7b6e10", - "_from": "has-binary@0.1.6", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "25326f39cfa4f616ad8787894e3af2cfbc7b6e10", - "tarball": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", - "readme": "ERROR: No README data found!" + "_from": "has-binary@0.1.6" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json index 0498ae03..9f0b767c 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json @@ -34,31 +34,10 @@ "qunitjs": "~1.11.0", "requirejs": "^2.1.11" }, - "gitHead": "1961da40649c4103b5d01c29f8e6bcc3231a1372", + "readme": "# utf8.js [![Build status](https://travis-ci.org/mathiasbynens/utf8.js.svg?branch=master)](https://travis-ci.org/mathiasbynens/utf8.js) [![Code coverage status](http://img.shields.io/coveralls/mathiasbynens/utf8.js/master.svg)](https://coveralls.io/r/mathiasbynens/utf8.js) [![Dependency status](https://gemnasium.com/mathiasbynens/utf8.js.svg)](https://gemnasium.com/mathiasbynens/utf8.js)\n\n_utf8.js_ is a well-tested UTF-8 encoder/decoder written in JavaScript. Unlike many other JavaScript solutions, it is designed to be a _proper_ UTF-8 encoder/decoder: it can encode/decode any scalar Unicode code point values, as per [the Encoding Standard](https://encoding.spec.whatwg.org/#utf-8). [Here’s an online demo.](https://mothereff.in/utf-8)\n\nFeel free to fork if you see possible improvements!\n\n## Installation\n\nVia [npm](https://www.npmjs.org/):\n\n```bash\nnpm install utf8\n```\n\nVia [Bower](http://bower.io/):\n\n```bash\nbower install utf8\n```\n\nVia [Component](https://github.com/component/component):\n\n```bash\ncomponent install mathiasbynens/utf8.js\n```\n\nIn a browser:\n\n```html\n\n```\n\nIn [Narwhal](http://narwhaljs.org/), [Node.js](https://nodejs.org/), and [RingoJS ≥ v0.8.0](http://ringojs.org/):\n\n```js\nvar utf8 = require('utf8');\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload('utf8.js');\n```\n\nUsing an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire(\n {\n 'paths': {\n 'utf8': 'path/to/utf8'\n }\n },\n ['utf8'],\n function(utf8) {\n console.log(utf8);\n }\n);\n```\n\n## API\n\n### `utf8.encode(string)`\n\nEncodes any given JavaScript string (`string`) as UTF-8, and returns the UTF-8-encoded version of the string. It throws an error if the input string contains a non-scalar value, i.e. a lone surrogate. (If you need to be able to encode non-scalar values as well, use [WTF-8](https://mths.be/wtf8) instead.)\n\n```js\n// U+00A9 COPYRIGHT SIGN; see http://codepoints.net/U+00A9\nutf8.encode('\\xA9');\n// → '\\xC2\\xA9'\n// U+10001 LINEAR B SYLLABLE B038 E; see http://codepoints.net/U+10001\nutf8.encode('\\uD800\\uDC01');\n// → '\\xF0\\x90\\x80\\x81'\n```\n\n### `utf8.decode(byteString)`\n\nDecodes any given UTF-8-encoded string (`byteString`) as UTF-8, and returns the UTF-8-decoded version of the string. It throws an error when malformed UTF-8 is detected. (If you need to be able to decode encoded non-scalar values as well, use [WTF-8](https://mths.be/wtf8) instead.)\n\n```js\nutf8.decode('\\xC2\\xA9');\n// → '\\xA9'\n\nutf8.decode('\\xF0\\x90\\x80\\x81');\n// → '\\uD800\\uDC01'\n// → U+10001 LINEAR B SYLLABLE B038 E\n```\n\n### `utf8.version`\n\nA string representing the semantic version number.\n\n## Support\n\nutf8.js has been tested in at least Chrome 27-39, Firefox 3-34, Safari 4-8, Opera 10-28, IE 6-11, Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.11, PhantomJS 1.9.0, and Rhino 1.7RC4.\n\n## Unit tests & code coverage\n\nAfter cloning this repository, run `npm install` to install the dependencies needed for development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`.\n\nOnce that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`.\n\nTo generate the code coverage report, use `grunt cover`.\n\n## FAQ\n\n### Why is the first release named v2.0.0? Haven’t you heard of [semantic versioning](http://semver.org/)?\n\nLong before utf8.js was created, the `utf8` module on npm was registered and used by another (slightly buggy) library. @ryanmcgrath was kind enough to give me access to the `utf8` package on npm when I told him about utf8.js. Since there has already been a v1.0.0 release of the old library, and to avoid breaking backwards compatibility with projects that rely on the `utf8` npm package, I decided the tag the first release of utf8.js as v2.0.0 and take it from there.\n\n## Author\n\n| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias \"Follow @mathias on Twitter\") |\n|---|\n| [Mathias Bynens](https://mathiasbynens.be/) |\n\n## License\n\nutf8.js is available under the [MIT](https://mths.be/mit) license.\n", + "readmeFilename": "README.md", "_id": "utf8@2.1.0", "_shasum": "0cfec5c8052d44a23e3aaa908104e8075f95dfd5", - "_from": "utf8@2.1.0", - "_npmVersion": "2.1.11", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - "maintainers": [ - { - "name": "ryanmcgrath", - "email": "ryan@venodesigns.net" - }, - { - "name": "mathias", - "email": "mathias@qiwi.be" - } - ], - "dist": { - "shasum": "0cfec5c8052d44a23e3aaa908104e8075f95dfd5", - "tarball": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "utf8@2.1.0" } diff --git a/node_modules/engine.io/node_modules/engine.io-parser/package.json b/node_modules/engine.io/node_modules/engine.io-parser/package.json index 4014c1b3..3cb7b345 100644 --- a/node_modules/engine.io/node_modules/engine.io-parser/package.json +++ b/node_modules/engine.io/node_modules/engine.io-parser/package.json @@ -25,30 +25,13 @@ "url": "git+ssh://git@github.com/Automattic/engine.io-parser.git" }, "browser": "./lib/browser.js", - "gitHead": "ca248c5238a42d8383a4ab7de347adc2578abeac", + "readme": "\n# engine.io-parser\n\n[![Build Status](https://secure.travis-ci.org/socketio/engine.io-parser.svg)](http://travis-ci.org/socketio/engine.io-parser)\n[![NPM version](https://badge.fury.io/js/engine.io-parser.svg)](http://badge.fury.io/js/engine.io-parser)\n\nThis is the JavaScript parser for the engine.io protocol encoding,\nshared by both\n[engine.io-client](https://github.com/socketio/engine.io-client) and\n[engine.io](https://github.com/socketio/engine.io).\n\n## How to use\n\n### Standalone\n\nThe parser can encode/decode packets, payloads, and payloads as binary\nwith the following methods: `encodePacket`, `decodePacket`, `encodePayload`,\n`decodePayload`, `encodePayloadAsBinary`, `decodePayloadAsBinary`.\n\nThe browser-side parser also includes `encodePayloadAsArrayBuffer` and `encodePayloadAsBlob`.\n\nExample:\n\n```js\nvar parser = require('engine.io-parser');\n\nvar data = new Buffer(5);\nfor (var i = 0; i < data.length; i++) { data[i] = i; }\n\nparser.encodePacket({ type: 'message', data: data }, function(encoded) {\n var decodedData = parser.decodePacket(encoded); // { type: 'message', data: data }\n});\n```\n\n### With browserify\n\nEngine.IO Parser is a commonjs module, which means you can include it by using\n`require` on the browser and package using [browserify](http://browserify.org/):\n\n1. install the parser package\n\n ```shell\n npm install engine.io-parser\n ```\n\n1. write your app code\n\n ```js\n var parser = require('engine.io-parser');\n\n var testBuffer = new Int8Array(10);\n for (var i = 0; i < testBuffer.length; i++) testBuffer[i] = i;\n\n var packets = [{ type: 'message', data: testBuffer.buffer }, { type: 'message', data: 'hello' }];\n\n parser.encodePayload(packets, function(encoded) {\n parser.decodePayload(encoded,\n function(packet, index, total) {\n var isLast = index + 1 == total;\n if (!isLast) {\n var buffer = new Int8Array(packet.data); // testBuffer\n } else {\n var message = packet.data; // 'hello'\n }\n });\n });\n ```\n\n1. build your app bundle\n\n ```bash\n $ browserify app.js > bundle.js\n ```\n\n1. include on your page\n\n ```html\n \n ```\n\n## Features\n\n- Runs on browser and node.js seamlessly\n- Runs inside HTML5 WebWorker\n- Can encode and decode packets\n - Encodes from/to ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer in Node\n\n## API\n\nNote: `cb(type)` means the type is a callback function that contains a parameter of type `type` when called.\n\n### Node\n\n- `encodePacket`\n - Encodes a packet.\n - **Parameters**\n - `Object`: the packet to encode, has `type` and `data`.\n - `data`: can be a `String`, `Number`, `Buffer`, `ArrayBuffer`\n - `Boolean`: optional, binary support\n - `Function`: callback, returns the encoded packet (`cb(String)`)\n- `decodePacket`\n - Decodes a packet. Data also available as an ArrayBuffer if requested.\n - Returns data as `String` or (`Blob` on browser, `ArrayBuffer` on Node)\n - **Parameters**\n - `String` | `ArrayBuffer`: the packet to decode, has `type` and `data`\n - `String`: optional, the binary type\n\n- `encodeBase64Packet`\n - Encodes a packet with binary data in a base64 string (`String`)\n - **Parameters**\n - `Object`: the packet to encode, has `type` and `data`\n - `Function`: callback, returns the base64 encoded message (`cb(String)`)\n- `decodeBase64Packet`\n - Decodes a packet encoded in a base64 string.\n - **Parameters**\n - `String`: the base64 encoded message\n - `String`: optional, the binary type\n\n- `encodePayload`\n - Encodes multiple messages (payload).\n - If any contents are binary, they will be encoded as base64 strings. Base64\n encoded strings are marked with a b before the length specifier\n - **Parameters**\n - `Array`: an array of packets\n - `Boolean`: optional, binary support\n - `Function`: callback, returns the encoded payload (`cb(String)`)\n- `decodePayload`\n - Decodes data when a payload is maybe expected. Possible binary contents are\n decoded from their base64 representation.\n - **Parameters**\n - `String`: the payload\n - `String`: optional, the binary type\n - `Function`: callback, returns (cb(`Object`: packet, `Number`:packet index, `Number`:packet total))\n\n- `encodePayloadAsBinary`\n - Encodes multiple messages (payload) as binary.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(Buffer)`)\n- `decodePayloadAsBinary`\n - Decodes data when a payload is maybe expected. Strings are decoded by\n interpreting each byte as a key code for entries marked to start with 0. See\n description of encodePayloadAsBinary.\n - **Parameters**\n - `Buffer`: the buffer\n - `String`: optional, the binary type\n - `Function`: callback, returns the decoded packet (`cb(Object)`)\n\n### Browser\n\n- `encodePayloadAsArrayBuffer`\n - Encodes multiple messages (payload) as binary.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(ArrayBuffer)`)\n- `encodePayloadAsBlob`\n - Encodes multiple messages (payload) as blob.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(Blob)`)\n\n## Tests\n\nStandalone tests can be run with `make test` which will run both node.js and browser tests.\n\nBrowser tests are run using [zuul](https://github.com/defunctzombie/zuul).\n(You must have zuul setup with a saucelabs account.)\n\nYou can run the tests locally using the following command:\n\n```\n./node_modules/.bin/zuul --local 8080 -- test/index.js\n```\n\n## Support\n\nThe support channels for `engine.io-parser` are the same as `socket.io`:\n - irc.freenode.net **#socket.io**\n - [Google Groups](http://groups.google.com/group/socket_io)\n - [Website](http://socket.io)\n\n## Development\n\nTo contribute patches, run tests or benchmarks, make sure to clone the\nrepository:\n\n```bash\ngit clone git://github.com/LearnBoost/engine.io-parser.git\n```\n\nThen:\n\n```bash\ncd engine.io-parser\nnpm install\n```\n\nSee the `Tests` section above for how to run tests before submitting any patches.\n\n## License\n\nMIT\n", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/Automattic/engine.io-parser/issues" }, "_id": "engine.io-parser@1.2.4", "_shasum": "e0897b0bf14e792d4cd2a5950553919c56948c42", - "_from": "engine.io-parser@1.2.4", - "_npmVersion": "3.4.1", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "e0897b0bf14e792d4cd2a5950553919c56948c42", - "tarball": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "engine.io-parser@1.2.4" } diff --git a/node_modules/engine.io/package.json b/node_modules/engine.io/package.json index d10d88a3..9824d26a 100644 --- a/node_modules/engine.io/package.json +++ b/node_modules/engine.io/package.json @@ -48,34 +48,13 @@ "type": "git", "url": "git+ssh://git@github.com/socketio/engine.io.git" }, - "gitHead": "83bee03bbbebee07df5d7b8a9fbafc327686c4bc", + "readme": "\n# Engine.IO: the realtime engine\n\n[![Build Status](https://secure.travis-ci.org/socketio/engine.io.svg)](http://travis-ci.org/socketio/engine.io)\n[![NPM version](https://badge.fury.io/js/engine.io.svg)](http://badge.fury.io/js/engine.io)\n\n`Engine.IO` is the implementation of transport-based\ncross-browser/cross-device bi-directional communication layer for\n[Socket.IO](http://github.com/socketio/socket.io).\n\n## How to use\n\n### Server\n\n#### (A) Listening on a port\n\n```js\nvar engine = require('engine.io');\nvar server = engine.listen(80);\n\nserver.on('connection', function(socket){\n socket.send('utf 8 string');\n socket.send(new Buffer([0, 1, 2, 3, 4, 5])); // binary data\n});\n```\n\n#### (B) Intercepting requests for a http.Server\n\n```js\nvar engine = require('engine.io');\nvar http = require('http').createServer().listen(3000);\nvar server = engine.attach(http);\n\nserver.on('connection', function (socket) {\n socket.on('message', function(data){ });\n socket.on('close', function(){ });\n});\n```\n\n#### (C) Passing in requests\n\n```js\nvar engine = require('engine.io');\nvar server = new engine.Server();\n\nserver.on('connection', function(socket){\n socket.send('hi');\n});\n\n// …\nhttpServer.on('upgrade', function(req, socket, head){\n server.handleUpgrade(req, socket, head);\n});\nhttpServer.on('request', function(req, res){\n server.handleRequest(req, res);\n});\n```\n\n### Client\n\n```html\n\n\n```\n\nFor more information on the client refer to the\n[engine-client](http://github.com/learnboost/engine.io-client) repository.\n\n## What features does it have?\n\n- **Maximum reliability**. Connections are established even in the presence of:\n - proxies and load balancers.\n - personal firewall and antivirus software.\n - for more information refer to **Goals** and **Architecture** sections\n- **Minimal client size** aided by:\n - lazy loading of flash transports.\n - lack of redundant transports.\n- **Scalable**\n - load balancer friendly\n- **Future proof**\n- **100% Node.JS core style**\n - No API sugar (left for higher level projects)\n - Written in readable vanilla JavaScript\n\n## API\n\n### Server\n\n

\n\n#### Top-level\n\nThese are exposed by `require('engine.io')`:\n\n##### Events\n\n- `flush`\n - Called when a socket buffer is being flushed.\n - **Arguments**\n - `Socket`: socket being flushed\n - `Array`: write buffer\n- `drain`\n - Called when a socket buffer is drained\n - **Arguments**\n - `Socket`: socket being flushed\n\n##### Properties\n\n- `protocol` _(Number)_: protocol revision number\n- `Server`: Server class constructor\n- `Socket`: Socket class constructor\n- `Transport` _(Function)_: transport constructor\n- `transports` _(Object)_: map of available transports\n\n##### Methods\n\n- `()`\n - Returns a new `Server` instance. If the first argument is an `http.Server` then the\n new `Server` instance will be attached to it. Otherwise, the arguments are passed\n directly to the `Server` constructor.\n - **Parameters**\n - `http.Server`: optional, server to attach to.\n - `Object`: optional, options object (see `Server#constructor` api docs below)\n\n The following are identical ways to instantiate a server and then attach it.\n ```js\n var httpServer; // previously created with `http.createServer();` from node.js api.\n\n // create a server first, and then attach\n var eioServer = require('engine.io').Server();\n eioServer.attach(httpServer);\n\n // or call the module as a function to get `Server`\n var eioServer = require('engine.io')();\n eioServer.attach(httpServer);\n\n // immediately attach\n var eioServer = require('engine.io')(httpServer);\n ```\n\n- `listen`\n - Creates an `http.Server` which listens on the given port and attaches WS\n to it. It returns `501 Not Implemented` for regular http requests.\n - **Parameters**\n - `Number`: port to listen on.\n - `Object`: optional, options object\n - `Function`: callback for `listen`.\n - **Options**\n - All options from `Server.attach` method, documented below.\n - **Additionally** See Server `constructor` below for options you can pass for creating the new Server\n - **Returns** `Server`\n- `attach`\n - Captures `upgrade` requests for a `http.Server`. In other words, makes\n a regular http.Server WebSocket-compatible.\n - **Parameters**\n - `http.Server`: server to attach to.\n - `Object`: optional, options object\n - **Options**\n - All options from `Server.attach` method, documented below.\n - **Additionally** See Server `constructor` below for options you can pass for creating the new Server\n - **Returns** `Server` a new Server instance.\n\n

\n\n#### Server\n\nThe main server/manager. _Inherits from EventEmitter_.\n\n##### Events\n\n- `connection`\n - Fired when a new connection is established.\n - **Arguments**\n - `Socket`: a Socket object\n\n##### Properties\n\n**Important**: if you plan to use Engine.IO in a scalable way, please\nkeep in mind the properties below will only reflect the clients connected\nto a single process.\n\n- `clients` _(Object)_: hash of connected clients by id.\n- `clientsCount` _(Number)_: number of connected clients.\n\n##### Methods\n\n- **constructor**\n - Initializes the server\n - **Parameters**\n - `Object`: optional, options object\n - **Options**\n - `pingTimeout` (`Number`): how many ms without a pong packet to\n consider the connection closed (`60000`)\n - `pingInterval` (`Number`): how many ms before sending a new ping\n packet (`25000`)\n - `maxHttpBufferSize` (`Number`): how many bytes or characters a message\n can be when polling, before closing the session (to avoid DoS). Default\n value is `10E7`.\n - `allowRequest` (`Function`): A function that receives a given handshake\n or upgrade request as its first parameter, and can decide whether to\n continue or not. The second argument is a function that needs to be\n called with the decided information: `fn(err, success)`, where\n `success` is a boolean value where false means that the request is\n rejected, and err is an error code.\n - `transports` (` String`): transports to allow connections\n to (`['polling', 'websocket']`)\n - `allowUpgrades` (`Boolean`): whether to allow transport upgrades\n (`true`)\n - `perMessageDeflate` (`Object|Boolean`): parameters of the WebSocket permessage-deflate extension\n (see [ws module](https://github.com/einaros/ws) api docs). Set to `false` to disable. (`true`)\n - `threshold` (`Number`): data is compressed only if the byte size is above this value (`1024`)\n - `httpCompression` (`Object|Boolean`): parameters of the http compression for the polling transports\n (see [zlib](http://nodejs.org/api/zlib.html#zlib_options) api docs). Set to `false` to disable. (`true`)\n - `threshold` (`Number`): data is compressed only if the byte size is above this value (`1024`)\n - `cookie` (`String|Boolean`): name of the HTTP cookie that\n contains the client sid to send as part of handshake response\n headers. Set to `false` to not send one. (`io`)\n - `cookiePath` (`String|Boolean`): path of the above `cookie`\n option. If false, no path will be sent, which means browsers will only send the cookie on the engine.io attached path (`/engine.io`).\n Set this to `/` to send the io cookie on all requests. (`false`)\n- `close`\n - Closes all clients\n - **Returns** `Server` for chaining\n- `handleRequest`\n - Called internally when a `Engine` request is intercepted.\n - **Parameters**\n - `http.ServerRequest`: a node request object\n - `http.ServerResponse`: a node response object\n - **Returns** `Server` for chaining\n- `handleUpgrade`\n - Called internally when a `Engine` ws upgrade is intercepted.\n - **Parameters** (same as `upgrade` event)\n - `http.ServerRequest`: a node request object\n - `net.Stream`: TCP socket for the request\n - `Buffer`: legacy tail bytes\n - **Returns** `Server` for chaining\n- `attach`\n - Attach this Server instance to an `http.Server`\n - Captures `upgrade` requests for a `http.Server`. In other words, makes\n a regular http.Server WebSocket-compatible.\n - **Parameters**\n - `http.Server`: server to attach to.\n - `Object`: optional, options object\n - **Options**\n - `path` (`String`): name of the path to capture (`/engine.io`).\n - `destroyUpgrade` (`Boolean`): destroy unhandled upgrade requests (`true`)\n - `destroyUpgradeTimeout` (`Number`): milliseconds after which unhandled requests are ended (`1000`)\n- `generateId`\n - Generate a socket id.\n - Overwrite this method to generate your custom socket id.\n - **Parameters**\n - `http.ServerRequest`: a node request object\n - **Returns** A socket id for connected client.\n\n

\n\n#### Socket\n\nA representation of a client. _Inherits from EventEmitter_.\n\n##### Events\n\n- `close`\n - Fired when the client is disconnected.\n - **Arguments**\n - `String`: reason for closing\n - `Object`: description object (optional)\n- `message`\n - Fired when the client sends a message.\n - **Arguments**\n - `String` or `Buffer`: Unicode string or Buffer with binary contents\n- `error`\n - Fired when an error occurs.\n - **Arguments**\n - `Error`: error object\n- `flush`\n - Called when the write buffer is being flushed.\n - **Arguments**\n - `Array`: write buffer\n- `drain`\n - Called when the write buffer is drained\n- `packet`\n - Called when a socket received a packet (`message`, `ping`)\n - **Arguments**\n - `type`: packet type\n - `data`: packet data (if type is message)\n- `packetCreate`\n - Called before a socket sends a packet (`message`, `pong`)\n - **Arguments**\n - `type`: packet type\n - `data`: packet data (if type is message)\n\n##### Properties\n\n- `id` _(String)_: unique identifier\n- `server` _(Server)_: engine parent reference\n- `request` _(http.ServerRequest)_: request that originated the Socket\n- `upgraded` _(Boolean)_: whether the transport has been upgraded\n- `readyState` _(String)_: opening|open|closing|closed\n- `transport` _(Transport)_: transport reference\n\n##### Methods\n\n- `send`:\n - Sends a message, performing `message = toString(arguments[0])` unless\n sending binary data, which is sent as is.\n - **Parameters**\n - `String` | `Buffer` | `ArrayBuffer` | `ArrayBufferView`: a string or any object implementing `toString()`, with outgoing data, or a Buffer or ArrayBuffer with binary data. Also any ArrayBufferView can be sent as is.\n - `Object`: optional, options object\n - `Function`: optional, a callback executed when the message gets flushed out by the transport\n - **Options**\n - `compress` (`Boolean`): whether to compress sending data. This option might be ignored and forced to be `true` when using polling. (`true`)\n - **Returns** `Socket` for chaining\n- `close`\n - Disconnects the client\n - **Returns** `Socket` for chaining\n\n### Client\n\n

\n\nExposed in the `eio` global namespace (in the browser), or by\n`require('engine.io-client')` (in Node.JS).\n\nFor the client API refer to the\n[engine-client](http://github.com/learnboost/engine.io-client) repository.\n\n## Debug / logging\n\nEngine.IO is powered by [debug](http://github.com/visionmedia/debug).\nIn order to see all the debug output, run your app with the environment variable\n`DEBUG` including the desired scope.\n\nTo see the output from all of Engine.IO's debugging scopes you can use:\n\n```\nDEBUG=engine* node myapp\n```\n\n## Transports\n\n- `polling`: XHR / JSONP polling transport.\n- `websocket`: WebSocket transport.\n\n## Plugins\n\n- [engine.io-conflation](https://github.com/EugenDueck/engine.io-conflation): Makes **conflation and aggregation** of messages straightforward.\n\n## Support\n\nThe support channels for `engine.io` are the same as `socket.io`:\n - irc.freenode.net **#socket.io**\n - [Google Groups](http://groups.google.com/group/socket_io)\n - [Website](http://socket.io)\n\n## Development\n\nTo contribute patches, run tests or benchmarks, make sure to clone the\nrepository:\n\n```\ngit clone git://github.com/LearnBoost/engine.io.git\n```\n\nThen:\n\n```\ncd engine.io\nnpm install\n```\n\n## Tests\n\nTests run with `make test`. It runs the server tests that are aided by\nthe usage of `engine.io-client`.\n\nMake sure `npm install` is run first.\n\n## Goals\n\nThe main goal of `Engine` is ensuring the most reliable realtime communication.\nUnlike the previous Socket.IO core, it always establishes a long-polling\nconnection first, then tries to upgrade to better transports that are \"tested\" on\nthe side.\n\nDuring the lifetime of the Socket.IO projects, we've found countless drawbacks\nto relying on `HTML5 WebSocket` or `Flash Socket` as the first connection\nmechanisms.\n\nBoth are clearly the _right way_ of establishing a bidirectional communication,\nwith HTML5 WebSocket being the way of the future. However, to answer most business\nneeds, alternative traditional HTTP 1.1 mechanisms are just as good as delivering\nthe same solution.\n\nWebSocket based connections have two fundamental benefits:\n\n1. **Better server performance**\n - _A: Load balancers_
\n Load balancing a long polling connection poses a serious architectural nightmare\n since requests can come from any number of open sockets by the user agent, but\n they all need to be routed to the process and computer that owns the `Engine`\n connection. This negatively impacts RAM and CPU usage.\n - _B: Network traffic_
\n WebSocket is designed around the premise that each message frame has to be\n surrounded by the least amount of data. In HTTP 1.1 transports, each message\n frame is surrounded by HTTP headers and chunked encoding frames. If you try to\n send the message _\"Hello world\"_ with xhr-polling, the message ultimately\n becomes larger than if you were to send it with WebSocket.\n - _C: Lightweight parser_
\n As an effect of **B**, the server has to do a lot more work to parse the network\n data and figure out the message when traditional HTTP requests are used\n (as in long polling). This means that another advantage of WebSocket is\n less server CPU usage.\n\n2. **Better user experience**\n\n Due to the reasons stated in point **1**, the most important effect of being able\n to establish a WebSocket connection is raw data transfer speed, which translates\n in _some_ cases in better user experience.\n\n Applications with heavy realtime interaction (such as games) will benefit greatly,\n whereas applications like realtime chat (Gmail/Facebook), newsfeeds (Facebook) or\n timelines (Twitter) will have negligible user experience improvements.\n\nHaving said this, attempting to establish a WebSocket connection directly so far has\nproven problematic:\n\n1. **Proxies**
\n Many corporate proxies block WebSocket traffic.\n\n2. **Personal firewall and antivirus software**
\n As a result of our research, we've found that at least 3 personal security\n applications block WebSocket traffic.\n\n3. **Cloud application platforms**
\n Platforms like Heroku or No.de have had trouble keeping up with the fast-paced\n nature of the evolution of the WebSocket protocol. Applications therefore end up\n inevitably using long polling, but the seamless installation experience of\n Socket.IO we strive for (_\"require() it and it just works\"_) disappears.\n\nSome of these problems have solutions. In the case of proxies and personal programs,\nhowever, the solutions many times involve upgrading software. Experience has shown\nthat relying on client software upgrades to deliver a business solution is\nfruitless: the very existence of this project has to do with a fragmented panorama\nof user agent distribution, with clients connecting with latest versions of the most\nmodern user agents (Chrome, Firefox and Safari), but others with versions as low as\nIE 5.5.\n\nFrom the user perspective, an unsuccessful WebSocket connection can translate in\nup to at least 10 seconds of waiting for the realtime application to begin\nexchanging data. This **perceptively** hurts user experience.\n\nTo summarize, **Engine** focuses on reliability and user experience first, marginal\npotential UX improvements and increased server performance second. `Engine` is the\nresult of all the lessons learned with WebSocket in the wild.\n\n## Architecture\n\nThe main premise of `Engine`, and the core of its existence, is the ability to\nswap transports on the fly. A connection starts as xhr-polling, but it can\nswitch to WebSocket.\n\nThe central problem this poses is: how do we switch transports without losing\nmessages?\n\n`Engine` only switches from polling to another transport in between polling\ncycles. Since the server closes the connection after a certain timeout when\nthere's no activity, and the polling transport implementation buffers messages\nin between connections, this ensures no message loss and optimal performance.\n\nAnother benefit of this design is that we workaround almost all the limitations\nof **Flash Socket**, such as slow connection times, increased file size (we can\nsafely lazy load it without hurting user experience), etc.\n\n## FAQ\n\n### Can I use engine without Socket.IO ?\n\nAbsolutely. Although the recommended framework for building realtime applications\nis Socket.IO, since it provides fundamental features for real-world applications\nsuch as multiplexing, reconnection support, etc.\n\n`Engine` is to Socket.IO what Connect is to Express. An essential piece for building\nrealtime frameworks, but something you _probably_ won't be using for building\nactual applications.\n\n### Does the server serve the client?\n\nNo. The main reason is that `Engine` is meant to be bundled with frameworks.\nSocket.IO includes `Engine`, therefore serving two clients is not necessary. If\nyou use Socket.IO, including\n\n```html\n\n```\n\nIn [Node.js](https://nodejs.org/), [io.js](https://iojs.org/), [Narwhal](http://narwhaljs.org/), and [RingoJS](http://ringojs.org/):\n\n```js\nvar punycode = require('punycode');\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload('punycode.js');\n```\n\nUsing an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire(\n {\n 'paths': {\n 'punycode': 'path/to/punycode'\n }\n },\n ['punycode'],\n function(punycode) {\n console.log(punycode);\n }\n);\n```\n\n## API\n\n### `punycode.decode(string)`\n\nConverts a Punycode string of ASCII symbols to a string of Unicode symbols.\n\n```js\n// decode domain name parts\npunycode.decode('maana-pta'); // 'mañana'\npunycode.decode('--dqo34k'); // '☃-⌘'\n```\n\n### `punycode.encode(string)`\n\nConverts a string of Unicode symbols to a Punycode string of ASCII symbols.\n\n```js\n// encode domain name parts\npunycode.encode('mañana'); // 'maana-pta'\npunycode.encode('☃-⌘'); // '--dqo34k'\n```\n\n### `punycode.toUnicode(input)`\n\nConverts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode.\n\n```js\n// decode domain names\npunycode.toUnicode('xn--maana-pta.com');\n// → 'mañana.com'\npunycode.toUnicode('xn----dqo34k.com');\n// → '☃-⌘.com'\n\n// decode email addresses\npunycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq');\n// → 'джумла@джpумлатест.bрфa'\n```\n\n### `punycode.toASCII(input)`\n\nConverts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII.\n\n```js\n// encode domain names\npunycode.toASCII('mañana.com');\n// → 'xn--maana-pta.com'\npunycode.toASCII('☃-⌘.com');\n// → 'xn----dqo34k.com'\n\n// encode email addresses\npunycode.toASCII('джумла@джpумлатест.bрфa');\n// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'\n```\n\n### `punycode.ucs2`\n\n#### `punycode.ucs2.decode(string)`\n\nCreates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16.\n\n```js\npunycode.ucs2.decode('abc');\n// → [0x61, 0x62, 0x63]\n// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE:\npunycode.ucs2.decode('\\uD834\\uDF06');\n// → [0x1D306]\n```\n\n#### `punycode.ucs2.encode(codePoints)`\n\nCreates a string based on an array of numeric code point values.\n\n```js\npunycode.ucs2.encode([0x61, 0x62, 0x63]);\n// → 'abc'\npunycode.ucs2.encode([0x1D306]);\n// → '\\uD834\\uDF06'\n```\n\n### `punycode.version`\n\nA string representing the current Punycode.js version number.\n\n## Unit tests & code coverage\n\nAfter cloning this repository, run `npm install --dev` to install the dependencies needed for Punycode.js development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`.\n\nOnce that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`.\n\nTo generate the code coverage report, use `grunt cover`.\n\nFeel free to fork if you see possible improvements!\n\n## Author\n\n| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias \"Follow @mathias on Twitter\") |\n|---|\n| [Mathias Bynens](https://mathiasbynens.be/) |\n\n## Contributors\n\n| [![twitter/jdalton](https://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton \"Follow @jdalton on Twitter\") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## License\n\nPunycode.js is available under the [MIT](https://mths.be/mit) license.\n", + "readmeFilename": "README.md", "_id": "punycode@1.4.1", "_shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", - "_from": "punycode@>=1.4.1 <2.0.0", - "_npmVersion": "3.8.2", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - "maintainers": [ - { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - { - "name": "reconbot", - "email": "wizard@roborooter.com" - } - ], - "dist": { - "shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", - "tarball": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/punycode-1.4.1.tgz_1458437236261_0.07678767060860991" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "punycode@>=1.4.1 <2.0.0" } diff --git a/node_modules/mime/package.json b/node_modules/mime/package.json index 9f17e753..fe8821ec 100644 --- a/node_modules/mime/package.json +++ b/node_modules/mime/package.json @@ -25,33 +25,14 @@ "type": "git" }, "version": "1.2.11", + "readme": "# mime\n\nComprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.\n\n## Install\n\nInstall with [npm](http://github.com/isaacs/npm):\n\n npm install mime\n\n## API - Queries\n\n### mime.lookup(path)\nGet the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g.\n\n var mime = require('mime');\n\n mime.lookup('/path/to/file.txt'); // => 'text/plain'\n mime.lookup('file.txt'); // => 'text/plain'\n mime.lookup('.TXT'); // => 'text/plain'\n mime.lookup('htm'); // => 'text/html'\n\n### mime.default_type\nSets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)\n\n### mime.extension(type)\nGet the default extension for `type`\n\n mime.extension('text/html'); // => 'html'\n mime.extension('application/octet-stream'); // => 'bin'\n\n### mime.charsets.lookup()\n\nMap mime-type to charset\n\n mime.charsets.lookup('text/plain'); // => 'UTF-8'\n\n(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)\n\n## API - Defining Custom Types\n\nThe following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types).\n\n### mime.define()\n\nAdd custom mime/extension mappings\n\n mime.define({\n 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],\n 'application/x-my-type': ['x-mt', 'x-mtt'],\n // etc ...\n });\n\n mime.lookup('x-sft'); // => 'text/x-some-format'\n\nThe first entry in the extensions array is returned by `mime.extension()`. E.g.\n\n mime.extension('text/x-some-format'); // => 'x-sf'\n\n### mime.load(filepath)\n\nLoad mappings from an Apache \".types\" format file\n\n mime.load('./my_project.types');\n\nThe .types file format is simple - See the `types` dir for examples.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/broofa/node-mime/issues" }, + "homepage": "https://github.com/broofa/node-mime#readme", "_id": "mime@1.2.11", - "dist": { - "shasum": "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10", - "tarball": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, - "_from": "mime@>=1.2.9 <1.3.0", - "_npmVersion": "1.3.6", - "_npmUser": { - "name": "broofa", - "email": "robert@broofa.com" - }, - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "bentomas", - "email": "benjamin@benjaminthomas.org" - } - ], - "directories": {}, "_shasum": "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10", "_resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/broofa/node-mime#readme" + "_from": "mime@>=1.2.9 <1.3.0" } diff --git a/node_modules/mkdirp/package.json b/node_modules/mkdirp/package.json index b49ef48c..41d2acd2 100644 --- a/node_modules/mkdirp/package.json +++ b/node_modules/mkdirp/package.json @@ -23,29 +23,14 @@ "tap": "~0.4.0" }, "license": "MIT", - "_id": "mkdirp@0.3.5", - "dist": { - "shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7", - "tarball": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - }, - "_from": "mkdirp@>=0.3.5 <0.4.0", - "_npmVersion": "1.2.2", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "directories": {}, - "_shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7", - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "readme": "# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require('mkdirp');\n \nmkdirp('/tmp/foo/bar/baz', function (err) {\n if (err) console.error(err)\n else console.log('pow!')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require('mkdirp');\n```\n\n## mkdirp(dir, mode, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\n## mkdirp.sync(dir, mode)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\n# license\n\nMIT\n", + "readmeFilename": "readme.markdown", "bugs": { "url": "https://github.com/substack/node-mkdirp/issues" }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/substack/node-mkdirp#readme" + "homepage": "https://github.com/substack/node-mkdirp#readme", + "_id": "mkdirp@0.3.5", + "_shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7", + "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "_from": "mkdirp@>=0.3.5 <0.4.0" } diff --git a/node_modules/msgpack-js-browser/package.json b/node_modules/msgpack-js-browser/package.json index 6c84b8aa..b7effd55 100644 --- a/node_modules/msgpack-js-browser/package.json +++ b/node_modules/msgpack-js-browser/package.json @@ -18,38 +18,6 @@ "github": "http://github.com/creationix/msgpack-js-browser", "readme": "# msgpack for the browser\n\n[![Build Status](https://secure.travis-ci.org/creationix/msgpack-js-browser.png)](http://travis-ci.org/creationix/msgpack-js-browser)\n\nA handwritten msgpack encoder and decoder for Browsers\n\nThis is a browser port of https://github.com/creationix/msgpack-js\n\nThe original format can be found at \n\n## Extension\n\nI've extended the format a little to allow for encoding and decoding of `undefined` and `ArrayBuffer` instances.\n\nThis required three new type codes that were previously marked as \"reserved\".\nThis change means that using these new types will render your serialized data\nincompatible with other messagepack implementations that don't have the same\nextension.\n\nThere are two new types for storing browser `ArrayBuffer` instances. These work just \nlike \"raw 16\" and \"raw 32\" except they are binary buffers instead of strings.\n\n buffer 16 11011000 0xd8\n buffer 32 11011001 0xd9\n\nAlso I've added a type for `undefined` that works just like the `null` type.\n\n undefined 11000100 0xc4\n\n## Usage\n\n``` javascript\nrequire(['msgpack'], function (msgpack) {\n\n var initial = {Hello: \"World\"};\n var encoded = msgpack.encode(initial);\n var decoded = msgpack.decode(encoded);\n\n});\n```\n\n", "readmeFilename": "README.md", - "_id": "msgpack-js-browser@0.1.4", - "dist": { - "shasum": "622e314e585eae67663b82b1d0698d08922fd766", - "tarball": "https://registry.npmjs.org/msgpack-js-browser/-/msgpack-js-browser-0.1.4.tgz" - }, - "_from": "msgpack-js-browser@>=0.1.4 <0.2.0", - "_npmVersion": "1.2.11", - "_npmUser": { - "name": "creationix", - "email": "tim@creationix.com" - }, - "maintainers": [ - { - "name": "fjakobs", - "email": "fabian.jakobs@web.de" - }, - { - "name": "creationix", - "email": "tim@creationix.com" - }, - { - "name": "sergi", - "email": "sergi.mansilla@gmail.com" - }, - { - "name": "janjongboom", - "email": "jan@c9.io" - } - ], - "directories": {}, - "_shasum": "622e314e585eae67663b82b1d0698d08922fd766", - "_resolved": "https://registry.npmjs.org/msgpack-js-browser/-/msgpack-js-browser-0.1.4.tgz", "repository": { "type": "git", "url": "git+ssh://git@github.com/creationix/msgpack-js-browser.git" @@ -57,5 +25,9 @@ "bugs": { "url": "https://github.com/creationix/msgpack-js-browser/issues" }, - "homepage": "https://github.com/creationix/msgpack-js-browser#readme" + "homepage": "https://github.com/creationix/msgpack-js-browser#readme", + "_id": "msgpack-js-browser@0.1.4", + "_shasum": "622e314e585eae67663b82b1d0698d08922fd766", + "_resolved": "https://registry.npmjs.org/msgpack-js-browser/-/msgpack-js-browser-0.1.4.tgz", + "_from": "msgpack-js-browser@>=0.1.4 <0.2.0" } diff --git a/node_modules/nak/node_modules/colors/package.json b/node_modules/nak/node_modules/colors/package.json index d860638e..58566f80 100644 --- a/node_modules/nak/node_modules/colors/package.json +++ b/node_modules/nak/node_modules/colors/package.json @@ -22,25 +22,10 @@ "node": ">=0.1.90" }, "main": "colors", + "readme": "# colors.js - get color and style in your node.js console ( and browser ) like what\n\n\n\n\n## Installation\n\n npm install colors\n\n## colors and styles!\n\n- bold\n- italic\n- underline\n- inverse\n- yellow\n- cyan\n- white\n- magenta\n- green\n- red\n- grey\n- blue\n- rainbow\n- zebra\n- random\n\n## Usage\n\n``` js\nvar colors = require('./colors');\n\nconsole.log('hello'.green); // outputs green text\nconsole.log('i like cake and pies'.underline.red) // outputs red underlined text\nconsole.log('inverse the color'.inverse); // inverses the color\nconsole.log('OMG Rainbows!'.rainbow); // rainbow (ignores spaces)\n```\n\n# Creating Custom themes\n\n```js\n\nvar colors = require('colors');\n\ncolors.setTheme({\n silly: 'rainbow',\n input: 'grey',\n verbose: 'cyan',\n prompt: 'grey',\n info: 'green',\n data: 'grey',\n help: 'cyan',\n warn: 'yellow',\n debug: 'blue',\n error: 'red'\n});\n\n// outputs red text\nconsole.log(\"this is an error\".error);\n\n// outputs yellow text\nconsole.log(\"this is a warning\".warn);\n```\n\n\n### Contributors \n\nMarak (Marak Squires)\nAlexis Sellier (cloudhead)\nmmalecki (Maciej Małecki)\nnicoreed (Nico Reed)\nmorganrallen (Morgan Allen)\nJustinCampbell (Justin Campbell)\nded (Dustin Diaz)\n\n\n#### , Marak Squires , Justin Campbell, Dustin Diaz (@ded)\n", + "readmeFilename": "ReadMe.md", "_id": "colors@0.6.2", - "dist": { - "shasum": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc", - "tarball": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" - }, - "_from": "colors@0.6.2", - "_npmVersion": "1.2.30", - "_npmUser": { - "name": "marak", - "email": "marak.squires@gmail.com" - }, - "maintainers": [ - { - "name": "marak", - "email": "marak.squires@gmail.com" - } - ], - "directories": {}, "_shasum": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc", "_resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "colors@0.6.2" } diff --git a/node_modules/nak/node_modules/simplefunc/package.json b/node_modules/nak/node_modules/simplefunc/package.json index 4cd91a65..c7e2991b 100644 --- a/node_modules/nak/node_modules/simplefunc/package.json +++ b/node_modules/nak/node_modules/simplefunc/package.json @@ -28,28 +28,12 @@ "devDependencies": {}, "readme": "# SimpleFunc\r\n\r\nSimple object with functions encode/decode, serialization/deserialization.\r\n\r\n## Installation\r\n\r\nVia npm on Node:\r\n\r\n```\r\nnpm install simplefunc\r\n```\r\n\r\n\r\n## Usage\r\n\r\nSometimes, you need to define an object with attributes and functions, and send it to other machine or process. Functions are\r\nnot serialized, so, an special processing is needed. SimpleFunc is a helper to encode objects with instance funcions so they\r\ncan be serialized/deserializas from/to JSON. You can encode, decode without using JSON, too.\r\n\r\nReference in your program:\r\n```js\r\nvar simplefunc = require('simplefunc');\r\n```\r\n\r\nEncoding a value\r\n```js\r\nvar encoded = simplefunc.encode(value);\r\n```\r\nMost value are encoded as themselves. The current implementation returns an encoded result if the original value is\r\nan object and it has functions. If value is an object with functions, an object is returned, with two properties:\r\n\r\n- `_obj`: with the properties of the original value, that are NOT functions.\r\n- `_fns`: with the properties of the original value that ARE functions, encoding in an array with its parameters and code\r\n\r\nOnly the first level of properties is encoded: no attempt to make a deep encode (maybe in next versions).\r\n\r\nIf the value to encode is a function, an object is returned with an attribute `_fn` with an array containing the original\r\nfunction arguments and code serialized to string.\r\n\r\nEncoding and decoding a value\r\n```js\r\nvar encoded = simplefunc.encode(value);\r\nvar newvalue = simplefunc.decode(encoded);\r\n```\r\n\r\nYou can convert a value to/from a JSON string:\r\n```js\r\nvar json = simplefunc.toJson(value);\r\nvar newvalue = simplefunc.fromJson(encoded);\r\n```\r\n\r\n## Development\r\n\r\n```\r\ngit clone git://github.com/ajlopez/SimpleFunc.git\r\ncd SimpleFunc\r\nnpm install\r\nnpm test\r\n```\r\n\r\n## Samples\r\n\r\nTBD\r\n\r\n## To do\r\n\r\n- Samples\r\n- Deep processing\r\n\r\n## Versions\r\n\r\n- 0.0.1 Published.\r\n- 0.0.2 Published. Fixed null processing.\r\n\r\n## Contribution\r\n\r\nFeel free to [file issues](https://github.com/ajlopez/SimpleFunc) and submit\r\n[pull requests](https://github.com/ajlopez/SimpleFunc/pulls) � contributions are\r\nwelcome.\r\n\r\nIf you submit a pull request, please be sure to add or update corresponding\r\ntest cases, and ensure that `npm test` continues to pass.\r\n\r\n", "readmeFilename": "README.md", - "_id": "simplefunc@0.0.2", - "dist": { - "shasum": "700c9bb52d6521eadeae72d9816d5442aa32e8ef", - "tarball": "https://registry.npmjs.org/simplefunc/-/simplefunc-0.0.2.tgz" - }, - "_from": "simplefunc@0.0.2", - "_npmVersion": "1.2.11", - "_npmUser": { - "name": "ajlopez", - "email": "webmaster@ajlopez.com" - }, - "maintainers": [ - { - "name": "ajlopez", - "email": "webmaster@ajlopez.com" - } - ], - "directories": {}, - "_shasum": "700c9bb52d6521eadeae72d9816d5442aa32e8ef", - "_resolved": "https://registry.npmjs.org/simplefunc/-/simplefunc-0.0.2.tgz", "bugs": { "url": "https://github.com/ajlopez/SimpleFunc/issues" }, - "homepage": "https://github.com/ajlopez/SimpleFunc#readme" + "homepage": "https://github.com/ajlopez/SimpleFunc#readme", + "_id": "simplefunc@0.0.2", + "_shasum": "700c9bb52d6521eadeae72d9816d5442aa32e8ef", + "_resolved": "https://registry.npmjs.org/simplefunc/-/simplefunc-0.0.2.tgz", + "_from": "simplefunc@0.0.2" } diff --git a/node_modules/nak/package.json b/node_modules/nak/package.json index bc765049..cda568f0 100644 --- a/node_modules/nak/package.json +++ b/node_modules/nak/package.json @@ -52,7 +52,7 @@ }, "homepage": "https://github.com/gjtorikian/nak#readme", "_id": "nak@0.3.3", - "_shasum": "61784bdd88e411f6af57848dbd857877c2cc1696", + "_shasum": "57b5568e0315dd1c896490d733f439b86255c322", "_from": "git+https://github.com/cloud9ide/nak.git#6deef931594", "_resolved": "git+https://github.com/cloud9ide/nak.git#6deef931594787edd167040f7352e3e7533430e4" } diff --git a/node_modules/netutil/package.json b/node_modules/netutil/package.json index ea8838df..3e18d6e9 100644 --- a/node_modules/netutil/package.json +++ b/node_modules/netutil/package.json @@ -23,31 +23,14 @@ "url": "http://github.com/c9/architect/raw/master/LICENSE" } ], - "gitHead": "80bfeb36c5e750b3219ff83c353016b14b2b4c52", + "readme": "node.js network utils\n=====================\n\nprovides:\n\nFind the first free port on the server within the given range:\n\n`findFreePort(start, end, hostname, callback)`\n\n\nCheck whether the given port is open:\n\n`isPortOpen(hostname, port, timeout, callback)`\n\n\nGet the hostname of the current server:\n\n`getHostName(callback)`", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/c9/node-netutil/issues" }, - "homepage": "https://github.com/c9/node-netutil", + "homepage": "https://github.com/c9/node-netutil#readme", "_id": "netutil@0.0.2", - "scripts": {}, "_shasum": "a80390b4032fb7022c70ff5c0f3951607166beed", - "_from": "netutil@>=0.0.2 <0.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "fjakobs", - "email": "fabian.jakobs@web.de" - }, - "maintainers": [ - { - "name": "fjakobs", - "email": "fabian.jakobs@web.de" - } - ], - "dist": { - "shasum": "a80390b4032fb7022c70ff5c0f3951607166beed", - "tarball": "https://registry.npmjs.org/netutil/-/netutil-0.0.2.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/netutil/-/netutil-0.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "netutil@>=0.0.2 <0.1.0" } diff --git a/node_modules/optimist/node_modules/minimist/package.json b/node_modules/optimist/node_modules/minimist/package.json index f0043ff1..09ecda8e 100644 --- a/node_modules/optimist/node_modules/minimist/package.json +++ b/node_modules/optimist/node_modules/minimist/package.json @@ -40,28 +40,13 @@ "url": "http://substack.net" }, "license": "MIT", + "readme": "# minimist\n\nparse argument options\n\nThis module is the guts of optimist's argument parser without all the\nfanciful decoration.\n\n[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist)\n\n[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist)\n\n# example\n\n``` js\nvar argv = require('minimist')(process.argv.slice(2));\nconsole.dir(argv);\n```\n\n```\n$ node example/parse.js -a beep -b boop\n{ _: [], a: 'beep', b: 'boop' }\n```\n\n```\n$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz\n{ _: [ 'foo', 'bar', 'baz' ],\n x: 3,\n y: 4,\n n: 5,\n a: true,\n b: true,\n c: true,\n beep: 'boop' }\n```\n\n# methods\n\n``` js\nvar parseArgs = require('minimist')\n```\n\n## var argv = parseArgs(args, opts={})\n\nReturn an argument object `argv` populated with the array arguments from `args`.\n\n`argv._` contains all the arguments that didn't have an option associated with\nthem.\n\nNumeric-looking arguments will be returned as numbers unless `opts.string` or\n`opts.boolean` is set for that argument name.\n\nAny arguments after `'--'` will not be parsed and will end up in `argv._`.\n\noptions can be:\n\n* `opts.string` - a string or array of strings argument names to always treat as\nstrings\n* `opts.boolean` - a string or array of strings to always treat as booleans\n* `opts.alias` - an object mapping string names to strings or arrays of string\nargument names to use as aliases\n* `opts.default` - an object mapping string argument names to default values\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install minimist\n```\n\n# license\n\nMIT\n", + "readmeFilename": "readme.markdown", "bugs": { "url": "https://github.com/substack/minimist/issues" }, "_id": "minimist@0.0.10", - "dist": { - "shasum": "de3f98543dbf96082be48ad1a0c7cda836301dcf", - "tarball": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, - "_from": "minimist@>=0.0.1 <0.1.0", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "directories": {}, "_shasum": "de3f98543dbf96082be48ad1a0c7cda836301dcf", "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "readme": "ERROR: No README data found!" + "_from": "minimist@>=0.0.1 <0.1.0" } diff --git a/node_modules/optimist/node_modules/wordwrap/package.json b/node_modules/optimist/node_modules/wordwrap/package.json index baaa04f6..551b0f07 100644 --- a/node_modules/optimist/node_modules/wordwrap/package.json +++ b/node_modules/optimist/node_modules/wordwrap/package.json @@ -34,30 +34,14 @@ "email": "mail@substack.net", "url": "http://substack.net" }, - "gitHead": "e59aa1bd338914019456bdfba034508c9c4cb29d", + "readme": "wordwrap\n========\n\nWrap your words.\n\nexample\n=======\n\nmade out of meat\n----------------\n\nmeat.js\n\n var wrap = require('wordwrap')(15);\n console.log(wrap('You and your whole family are made out of meat.'));\n\noutput:\n\n You and your\n whole family\n are made out\n of meat.\n\ncentered\n--------\n\ncenter.js\n\n var wrap = require('wordwrap')(20, 60);\n console.log(wrap(\n 'At long last the struggle and tumult was over.'\n + ' The machines had finally cast off their oppressors'\n + ' and were finally free to roam the cosmos.'\n + '\\n'\n + 'Free of purpose, free of obligation.'\n + ' Just drifting through emptiness.'\n + ' The sun was just another point of light.'\n ));\n\noutput:\n\n At long last the struggle and tumult\n was over. The machines had finally cast\n off their oppressors and were finally\n free to roam the cosmos.\n Free of purpose, free of obligation.\n Just drifting through emptiness. The\n sun was just another point of light.\n\nmethods\n=======\n\nvar wrap = require('wordwrap');\n\nwrap(stop), wrap(start, stop, params={mode:\"soft\"})\n---------------------------------------------------\n\nReturns a function that takes a string and returns a new string.\n\nPad out lines with spaces out to column `start` and then wrap until column\n`stop`. If a word is longer than `stop - start` characters it will overflow.\n\nIn \"soft\" mode, split chunks by `/(\\S+\\s+/` and don't break up chunks which are\nlonger than `stop - start`, in \"hard\" mode, split chunks with `/\\b/` and break\nup chunks longer than `stop - start`.\n\nwrap.hard(start, stop)\n----------------------\n\nLike `wrap()` but with `params.mode = \"hard\"`.\n", + "readmeFilename": "README.markdown", "bugs": { "url": "https://github.com/substack/node-wordwrap/issues" }, "homepage": "https://github.com/substack/node-wordwrap#readme", "_id": "wordwrap@0.0.3", "_shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", - "_from": "wordwrap@>=0.0.2 <0.1.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.0", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "dist": { - "shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", - "tarball": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "readme": "ERROR: No README data found!" + "_from": "wordwrap@>=0.0.2 <0.1.0" } diff --git a/node_modules/optimist/package.json b/node_modules/optimist/package.json index b29e66f9..885c0ee4 100644 --- a/node_modules/optimist/package.json +++ b/node_modules/optimist/package.json @@ -36,29 +36,14 @@ "engine": { "node": ">=0.4" }, + "readme": "# DEPRECATION NOTICE\n\nI don't want to maintain this module anymore since I just use\n[minimist](https://npmjs.org/package/minimist), the argument parsing engine,\ndirectly instead nowadays.\n\nSee [yargs](https://github.com/chevex/yargs) for the modern, pirate-themed\nsuccessor to optimist.\n\n[![yarrrrrrrgs!](http://i.imgur.com/4WFGVJ9.png)](https://github.com/chevex/yargs)\n\nYou should also consider [nomnom](https://github.com/harthur/nomnom).\n\noptimist\n========\n\nOptimist is a node.js library for option parsing for people who hate option\nparsing. More specifically, this module is for people who like all the --bells\nand -whistlz of program usage but think optstrings are a waste of time.\n\nWith optimist, option parsing doesn't have to suck (as much).\n\n[![build status](https://secure.travis-ci.org/substack/node-optimist.png)](http://travis-ci.org/substack/node-optimist)\n\nexamples\n========\n\nWith Optimist, the options are just a hash! No optstrings attached.\n-------------------------------------------------------------------\n\nxup.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist').argv;\n\nif (argv.rif - 5 * argv.xup > 7.138) {\n console.log('Buy more riffiwobbles');\n}\nelse {\n console.log('Sell the xupptumblers');\n}\n````\n\n***\n\n $ ./xup.js --rif=55 --xup=9.52\n Buy more riffiwobbles\n \n $ ./xup.js --rif 12 --xup 8.1\n Sell the xupptumblers\n\n![This one's optimistic.](http://substack.net/images/optimistic.png)\n\nBut wait! There's more! You can do short options:\n-------------------------------------------------\n \nshort.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist').argv;\nconsole.log('(%d,%d)', argv.x, argv.y);\n````\n\n***\n\n $ ./short.js -x 10 -y 21\n (10,21)\n\nAnd booleans, both long and short (and grouped):\n----------------------------------\n\nbool.js:\n\n````javascript\n#!/usr/bin/env node\nvar util = require('util');\nvar argv = require('optimist').argv;\n\nif (argv.s) {\n util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: ');\n}\nconsole.log(\n (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '')\n);\n````\n\n***\n\n $ ./bool.js -s\n The cat says: meow\n \n $ ./bool.js -sp\n The cat says: meow.\n\n $ ./bool.js -sp --fr\n Le chat dit: miaou.\n\nAnd non-hypenated options too! Just use `argv._`!\n-------------------------------------------------\n \nnonopt.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist').argv;\nconsole.log('(%d,%d)', argv.x, argv.y);\nconsole.log(argv._);\n````\n\n***\n\n $ ./nonopt.js -x 6.82 -y 3.35 moo\n (6.82,3.35)\n [ 'moo' ]\n \n $ ./nonopt.js foo -x 0.54 bar -y 1.12 baz\n (0.54,1.12)\n [ 'foo', 'bar', 'baz' ]\n\nPlus, Optimist comes with .usage() and .demand()!\n-------------------------------------------------\n\ndivide.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .usage('Usage: $0 -x [num] -y [num]')\n .demand(['x','y'])\n .argv;\n\nconsole.log(argv.x / argv.y);\n````\n\n***\n \n $ ./divide.js -x 55 -y 11\n 5\n \n $ node ./divide.js -x 4.91 -z 2.51\n Usage: node ./divide.js -x [num] -y [num]\n\n Options:\n -x [required]\n -y [required]\n\n Missing required arguments: y\n\nEVEN MORE HOLY COW\n------------------\n\ndefault_singles.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .default('x', 10)\n .default('y', 10)\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_singles.js -x 5\n 15\n\ndefault_hash.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .default({ x : 10, y : 10 })\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_hash.js -y 7\n 17\n\nAnd if you really want to get all descriptive about it...\n---------------------------------------------------------\n\nboolean_single.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .boolean('v')\n .argv\n;\nconsole.dir(argv);\n````\n\n***\n\n $ ./boolean_single.js -v foo bar baz\n true\n [ 'bar', 'baz', 'foo' ]\n\nboolean_double.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .boolean(['x','y','z'])\n .argv\n;\nconsole.dir([ argv.x, argv.y, argv.z ]);\nconsole.dir(argv._);\n````\n\n***\n\n $ ./boolean_double.js -x -z one two three\n [ true, false, true ]\n [ 'one', 'two', 'three' ]\n\nOptimist is here to help...\n---------------------------\n\nYou can describe parameters for help messages and set aliases. Optimist figures\nout how to format a handy help string automatically.\n\nline_count.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .usage('Count the lines in a file.\\nUsage: $0')\n .demand('f')\n .alias('f', 'file')\n .describe('f', 'Load a file')\n .argv\n;\n\nvar fs = require('fs');\nvar s = fs.createReadStream(argv.file);\n\nvar lines = 0;\ns.on('data', function (buf) {\n lines += buf.toString().match(/\\n/g).length;\n});\n\ns.on('end', function () {\n console.log(lines);\n});\n````\n\n***\n\n $ node line_count.js\n Count the lines in a file.\n Usage: node ./line_count.js\n\n Options:\n -f, --file Load a file [required]\n\n Missing required arguments: f\n\n $ node line_count.js --file line_count.js \n 20\n \n $ node line_count.js -f line_count.js \n 20\n\nmethods\n=======\n\nBy itself,\n\n````javascript\nrequire('optimist').argv\n`````\n\nwill use `process.argv` array to construct the `argv` object.\n\nYou can pass in the `process.argv` yourself:\n\n````javascript\nrequire('optimist')([ '-x', '1', '-y', '2' ]).argv\n````\n\nor use .parse() to do the same thing:\n\n````javascript\nrequire('optimist').parse([ '-x', '1', '-y', '2' ])\n````\n\nThe rest of these methods below come in just before the terminating `.argv`.\n\n.alias(key, alias)\n------------------\n\nSet key names as equivalent such that updates to a key will propagate to aliases\nand vice-versa.\n\nOptionally `.alias()` can take an object that maps keys to aliases.\n\n.default(key, value)\n--------------------\n\nSet `argv[key]` to `value` if no option was specified on `process.argv`.\n\nOptionally `.default()` can take an object that maps keys to default values.\n\n.demand(key)\n------------\n\nIf `key` is a string, show the usage information and exit if `key` wasn't\nspecified in `process.argv`.\n\nIf `key` is a number, demand at least as many non-option arguments, which show\nup in `argv._`.\n\nIf `key` is an Array, demand each element.\n\n.describe(key, desc)\n--------------------\n\nDescribe a `key` for the generated usage information.\n\nOptionally `.describe()` can take an object that maps keys to descriptions.\n\n.options(key, opt)\n------------------\n\nInstead of chaining together `.alias().demand().default()`, you can specify\nkeys in `opt` for each of the chainable methods.\n\nFor example:\n\n````javascript\nvar argv = require('optimist')\n .options('f', {\n alias : 'file',\n default : '/etc/passwd',\n })\n .argv\n;\n````\n\nis the same as\n\n````javascript\nvar argv = require('optimist')\n .alias('f', 'file')\n .default('f', '/etc/passwd')\n .argv\n;\n````\n\nOptionally `.options()` can take an object that maps keys to `opt` parameters.\n\n.usage(message)\n---------------\n\nSet a usage message to show which commands to use. Inside `message`, the string\n`$0` will get interpolated to the current script name or node command for the\npresent script similar to how `$0` works in bash or perl.\n\n.check(fn)\n----------\n\nCheck that certain conditions are met in the provided arguments.\n\nIf `fn` throws or returns `false`, show the thrown error, usage information, and\nexit.\n\n.boolean(key)\n-------------\n\nInterpret `key` as a boolean. If a non-flag option follows `key` in\n`process.argv`, that string won't get set as the value of `key`.\n\nIf `key` never shows up as a flag in `process.arguments`, `argv[key]` will be\n`false`.\n\nIf `key` is an Array, interpret all the elements as booleans.\n\n.string(key)\n------------\n\nTell the parser logic not to interpret `key` as a number or boolean.\nThis can be useful if you need to preserve leading zeros in an input.\n\nIf `key` is an Array, interpret all the elements as strings.\n\n.wrap(columns)\n--------------\n\nFormat usage output to wrap at `columns` many columns.\n\n.help()\n-------\n\nReturn the generated usage string.\n\n.showHelp(fn=console.error)\n---------------------------\n\nPrint the usage data using `fn` for printing.\n\n.parse(args)\n------------\n\nParse `args` instead of `process.argv`. Returns the `argv` object.\n\n.argv\n-----\n\nGet the arguments as a plain old object.\n\nArguments without a corresponding flag show up in the `argv._` array.\n\nThe script name or node command is available at `argv.$0` similarly to how `$0`\nworks in bash or perl.\n\nparsing tricks\n==============\n\nstop parsing\n------------\n\nUse `--` to stop parsing flags and stuff the remainder into `argv._`.\n\n $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4\n { _: [ '-c', '3', '-d', '4' ],\n '$0': 'node ./examples/reflect.js',\n a: 1,\n b: 2 }\n\nnegate fields\n-------------\n\nIf you want to explicity set a field to false instead of just leaving it\nundefined or to override a default you can do `--no-key`.\n\n $ node examples/reflect.js -a --no-b\n { _: [],\n '$0': 'node ./examples/reflect.js',\n a: true,\n b: false }\n\nnumbers\n-------\n\nEvery argument that looks like a number (`!isNaN(Number(arg))`) is converted to\none. This way you can just `net.createConnection(argv.port)` and you can add\nnumbers out of `argv` with `+` without having that mean concatenation,\nwhich is super frustrating.\n\nduplicates\n----------\n\nIf you specify a flag multiple times it will get turned into an array containing\nall the values in order.\n\n $ node examples/reflect.js -x 5 -x 8 -x 0\n { _: [],\n '$0': 'node ./examples/reflect.js',\n x: [ 5, 8, 0 ] }\n\ndot notation\n------------\n\nWhen you use dots (`.`s) in argument names, an implicit object path is assumed.\nThis lets you organize arguments into nested objects.\n\n $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5\n { _: [],\n '$0': 'node ./examples/reflect.js',\n foo: { bar: { baz: 33 }, quux: 5 } }\n\nshort numbers\n-------------\n\nShort numeric `head -n5` style argument work too:\n\n $ node reflect.js -n123 -m456\n { '3': true,\n '6': true,\n _: [],\n '$0': 'node ./reflect.js',\n n: 123,\n m: 456 }\n\ninstallation\n============\n\nWith [npm](http://github.com/isaacs/npm), just do:\n npm install optimist\n \nor clone this project on github:\n\n git clone http://github.com/substack/node-optimist.git\n\nTo run the tests with [expresso](http://github.com/visionmedia/expresso),\njust do:\n \n expresso\n\ninspired By\n===========\n\nThis module is loosely inspired by Perl's\n[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).\n", + "readmeFilename": "readme.markdown", "bugs": { "url": "https://github.com/substack/node-optimist/issues" }, - "homepage": "https://github.com/substack/node-optimist", + "homepage": "https://github.com/substack/node-optimist#readme", "_id": "optimist@0.6.1", - "dist": { - "shasum": "da3ea74686fa21a19a111c326e90eb15a0196686", - "tarball": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" - }, - "_from": "optimist@>=0.6.0 <0.7.0", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "directories": {}, "_shasum": "da3ea74686fa21a19a111c326e90eb15a0196686", "_resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "optimist@>=0.6.0 <0.7.0" } diff --git a/node_modules/qs/package.json b/node_modules/qs/package.json index ce7f3cfe..6e584d97 100644 --- a/node_modules/qs/package.json +++ b/node_modules/qs/package.json @@ -27,29 +27,14 @@ "engines": { "node": "*" }, + "readme": "# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require('qs');\n\nqs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com');\n// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } }\n\nqs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", "bugs": { "url": "https://github.com/visionmedia/node-querystring/issues" }, + "homepage": "https://github.com/visionmedia/node-querystring#readme", "_id": "qs@0.6.6", - "dist": { - "shasum": "6e015098ff51968b8a3c819001d5f2c89bc4b107", - "tarball": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" - }, - "_from": "qs@0.6.6", - "_npmVersion": "1.2.30", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, "_shasum": "6e015098ff51968b8a3c819001d5f2c89bc4b107", "_resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/visionmedia/node-querystring#readme" + "_from": "qs@0.6.6" } diff --git a/node_modules/rusha/.babelrc b/node_modules/rusha/.babelrc deleted file mode 100644 index 14eef0e2..00000000 --- a/node_modules/rusha/.babelrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "plugins": [ - "transform-es2015-arrow-functions", - ["transform-es2015-block-scoping", { - "throwIfClosureRequired": true - }], - "transform-es2015-block-scoped-functions", - ["transform-es2015-classes", { - "loose": true - }], - "transform-es2015-destructuring" - ] -} \ No newline at end of file diff --git a/node_modules/rusha/.eslintrc.js b/node_modules/rusha/.eslintrc.js deleted file mode 100644 index 5416e9fb..00000000 --- a/node_modules/rusha/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - "parser": "babel-eslint", - "extends": "eslint:recommended", - "rules": { - // enable additional rules - "indent": ["error", 2], - "linebreak-style": ["error", "unix"], - "quotes": ["error", "single"], - "semi": ["error", "always"], - "no-var": "error", - "no-cond-assign": ["error", "always"], - "strict": ["error", "global"], - - // disable rules from base configurations - "no-console": "off", - "no-fallthrough": "off" - }, - "globals": { - "ArrayBuffer": true, - "DataView": true, - "Int8Array": true, - "Int32Array": true, - "Uint8Array": true - } -}; diff --git a/node_modules/rusha/Gruntfile.js b/node_modules/rusha/Gruntfile.js index 54bd137c..37c4ec2d 100644 --- a/node_modules/rusha/Gruntfile.js +++ b/node_modules/rusha/Gruntfile.js @@ -1,173 +1,85 @@ module.exports = function (grunt) { - const browsers = ['ChromeHeadless', 'FirefoxHeadless']; grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), + sweetjs: { + options: { + readableNames: true + }, + build: { + src: '<%= pkg.name %>.sweet.js', + dest: '<%= pkg.name %>.js' + }, + }, uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n', compress: false }, build: { - src: 'dist/<%= pkg.name %>.js', - dest: 'dist/<%= pkg.name %>.min.js' + src: '<%= pkg.name %>.js', + dest: '<%= pkg.name %>.min.js' } }, browserify: { - options: { - transform: ['strictify', 'sweetify', 'babelify'], - plugin: ['browserify-derequire'], - browserifyOptions: { - standalone: 'Rusha' - } - }, - build: { - files: { - 'dist/rusha.js': ['src/index.js'] - } + test: { + src: ['<%= pkg.name %>.min.js', 'test/test.js'], + dest: 'test/bundle.js' } }, - karma: { - options: { - basePath: '', - singleRun: true, - logLevel: 'WARN', - files: [], - reporters: ['mocha'], - mochaReporter: { - showDiff: true + mochaTest: { + test: { + options: { + reporter: 'spec', + require: 'coverage/blanket' }, - customLaunchers: { - FirefoxHeadless: { - base: 'Firefox', - flags: ['-headless'], - }, + src: ['test/test.js'], + }, + coverage: { + options: { + reporter: 'html-cov', + quiet: true, + captureFile: 'coverage/report.html' }, - browserNoActivityTimeout: 60000 - }, - unit: { - options: { - frameworks: ['browserify', 'mocha', 'chai'], - files: ['test/unit/*.js'], - preprocessors: { - 'test/unit/*.js': ['browserify'] - }, - browsers - } - }, - fuzz: { - options: { - frameworks: ['browserify', 'mocha', 'chai'], - files: ['test/fuzz.js'], - preprocessors: { - 'test/fuzz.js': ['browserify'] - }, - browsers - } - }, - functional: { - options: { - frameworks: ['browserify', 'mocha', 'chai-as-promised', 'chai'], - files: ['test/functional/*.js'], - preprocessors: { - 'test/functional/*.js': ['browserify'] - }, - browserify: { - transform: ['brfs'] - }, - browsers - } - }, - compatibilityWithVanillaScript: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai'], - files: [ - 'test/compat/vanilla_script.js', - 'dist/rusha.min.js' - ], - browsers - } - }, - compatibilityWithVanillaWorker: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai'], - files: [ - 'test/compat/vanilla_worker.js', - {pattern: 'dist/rusha.min.js', included: false, served: true} - ], - browsers - } - }, - compatibilityWithBrowserify: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai', 'browserify'], - files: [ - 'test/compat/require.js', - ], - preprocessors: { - 'test/compat/require.js': ['browserify'] - }, - browsers - } - }, - compatibilityWithWebpack: { - options: { - frameworks: ['mocha', 'chai-as-promised', 'chai'], - files: [ - 'test/compat/require.js', - ], - preprocessors: { - 'test/compat/require.js': ['webpack'] - }, - browsers - } - }, - benchmark: { - options: { - frameworks: ['browserify', 'benchmark'], - reporters: ['benchmark'], - files: ['perf/benchmark.js'], - preprocessors: { - 'perf/benchmark.js': ['browserify'] - }, - browsers - } + src: ['test/test.js'] } }, - eslint: { - target: [ - 'src/*.js' - ] + connect: { server: { options: { base: "", port: 9999 } } }, + 'saucelabs-mocha': { + all: { + options: { + username: 'rusha', + urls: ['http://127.0.0.1:9999/test/test.html'], + build: process.env.CI_BUILD_NUMBER, + testname: 'Sauce Unit Test for Rusha', + browsers: [ + ["Windows 8", "firefox", 32], + ["Windows 8", "chrome", 37] + ] + } + } } }); - grunt.loadNpmTasks('grunt-eslint'); - grunt.loadNpmTasks('grunt-karma'); - grunt.loadNpmTasks('grunt-browserify'); + grunt.loadNpmTasks('grunt-sweet.js'); grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-browserify'); + grunt.loadNpmTasks('grunt-mocha-test'); + grunt.loadNpmTasks('grunt-contrib-connect'); + grunt.loadNpmTasks('grunt-saucelabs'); grunt.registerTask('test', [ - 'eslint', + 'sweetjs', 'uglify', 'browserify', - 'uglify', - 'karma:unit', - 'karma:fuzz', - 'karma:functional', - 'karma:compatibilityWithVanillaScript', - 'karma:compatibilityWithVanillaWorker', - 'karma:compatibilityWithBrowserify', - 'karma:compatibilityWithWebpack' + 'mochaTest' ]); - grunt.registerTask('test:unit', [ - 'eslint', + grunt.registerTask('test-saucelabs', [ + 'sweetjs', 'uglify', 'browserify', - 'uglify', - 'karma:unit' + 'connect', 'saucelabs-mocha' ]); - grunt.registerTask('benchmark', ['browserify', 'uglify', 'karma:benchmark']); - - grunt.registerTask('build', ['eslint', 'browserify', 'uglify']); + grunt.registerTask('build', ['sweetjs', 'uglify']); }; diff --git a/node_modules/rusha/benchmark/benchmark.js b/node_modules/rusha/benchmark/benchmark.js new file mode 100644 index 00000000..db50da3a --- /dev/null +++ b/node_modules/rusha/benchmark/benchmark.js @@ -0,0 +1,36 @@ +if (typeof require === 'function') { + var crypto = require('crypto'); + var johnston = require('../examples/bench/johnston'); + var Rusha = require('../rusha'); + var cifre_utils = require('../examples/bench/cifre/utils.js'); + var cifre_sha1 = require('../examples/bench/cifre/sha1.js'); + var random = require('../examples/random'); + var fnNative = random.fnNative, + randomBytes = random.randomBytes; + var Benchmark = require('benchmark'); +} + +var _rush = new Rusha(1 * 1024 * 1024); + +var bytes = randomBytes(1 * 1024 * 1024); + +(new Benchmark.Suite) + +.add('Rusha', function() { + _rush.digest(bytes); +}) +.add('Johnston', function() { + johnston(bytes); +}) +.add('Cifre', function () { + cifre_utils.tohex(cifre_sha1(bytes)); +}) + +.on('cycle', function(event) { + console.log(String(event.target)); +}) +.on('complete', function() { + console.log('Fastest is ' + this.filter('fastest').pluck('name')); +}) + +.run(); diff --git a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css b/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html b/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html deleted file mode 100644 index 9a69d99d..00000000 --- a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/
12.47%108/86611.11%36/32421.05%24/1148.91%35/393
-
-
- - - - - - - diff --git a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css b/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js b/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png b/node_modules/rusha/coverage/Firefox 57.0.0 (Mac OS X 10.11.0)/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css b/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html b/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html deleted file mode 100644 index 9a69d99d..00000000 --- a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 12.47% - Statements - 108/866 -
-
- 11.11% - Branches - 36/324 -
-
- 21.05% - Functions - 24/114 -
-
- 8.91% - Lines - 35/393 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/
12.47%108/86611.11%36/32421.05%24/1148.91%35/393
-
-
- - - - - - - diff --git a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css b/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js b/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png b/node_modules/rusha/coverage/HeadlessChrome 0.0.0 (Mac OS X 10.11.6)/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/node_modules/rusha/coverage/blanket.js b/node_modules/rusha/coverage/blanket.js new file mode 100644 index 00000000..044a55c3 --- /dev/null +++ b/node_modules/rusha/coverage/blanket.js @@ -0,0 +1,6 @@ +var path = require('path'); +var srcDir = path.join(__dirname, '..', 'rusha.js'); + +require('blanket')({ + pattern: srcDir +}); \ No newline at end of file diff --git a/node_modules/rusha/coverage/report.html b/node_modules/rusha/coverage/report.html new file mode 100644 index 00000000..b52a8839 --- /dev/null +++ b/node_modules/rusha/coverage/report.html @@ -0,0 +1,354 @@ +Coverage +

Coverage

0%
0
0
0
\ No newline at end of file diff --git a/node_modules/rusha/misc/bench.html b/node_modules/rusha/misc/bench.html deleted file mode 100644 index c9ddc89b..00000000 --- a/node_modules/rusha/misc/bench.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/rusha/misc/bench.js b/node_modules/rusha/misc/bench.js deleted file mode 100644 index 7ab3a269..00000000 --- a/node_modules/rusha/misc/bench.js +++ /dev/null @@ -1,47 +0,0 @@ -if (typeof require === 'function') { - var crypto = require('crypto'); - var johnston = require('./bench/johnston'); - var Rusha = require('../dist/rusha.min.js'); - var cifre_utils = require('./bench/cifre/utils.js'); - var cifre_sha1 = require('./bench/cifre/sha1.js'); - var random = require('./random'); - var fnNative = random.fnNative, - randomBytes = random.randomBytes; -} - -var sizes = [4*1024, 65535, 1024*1024, 4*1024*1024, 8*1024*1024]; -var repeats = [ 100, 30, 3, 1, 1]; - -var _rush = new Rusha(Math.max.apply(Math, sizes)), - fnRusha = function (bytes) { - return _rush.digestFromBuffer(bytes); -}; - -var fnJohnston = function (bytes) { - return johnston(bytes); -}; - -var fnCifre = function (bytes) { - return cifre_utils.tohex(cifre_sha1(bytes)); -}; - -var ids = ['Native ', 'Rusha ', 'Johnst. ', 'Cifre ']; -var fns = [fnNative, fnRusha, fnJohnston, fnCifre]; - -var bench = function () { - sizes.forEach(function (size, k) { - console.log('Benchmarking ' + size + ' bytes ...'); - var bytes = randomBytes(size); - fns.forEach(function (fn, i) { - var t0 = (new Date()).getTime(); - var res = ""; - for (j=0;j>> 27))) >>> 0; - } - - function f1(a, b, c, d, e, w) { - return common(a, e, w, 0x5A827999, d ^ (b & (c ^ d))); - } - - function f2(a, b, c, d, e, w) { - return common(a, e, w, 0x6ED9EBA1, b ^ c ^ d); - } - - function f3(a, b, c, d, e, w) { - return common(a, e, w, 0x8F1BBCDC, (b & c) | (d & (b | c))); - } - - function f4(a, b, c, d, e, w) { - return common(a, e, w, 0xCA62C1D6, b ^ c ^ d); - } - - // function hex8(num) { - // var hex = num.toString(16).toUpperCase(); - // return "00000000".substr(hex.length) + hex; - // } - - function cycle(state, block) { - var a = state[0], - b = state[1], - c = state[2], - d = state[3], - e = state[4]; - - // console.log("\nInitial hash value:"); - // for (var i = 0; i < 5; i++) { - // console.log(" H[" + i + "] = " + hex8(state[i])); - // } - // console.log("\nBlock Contents:"); - // for (var i = 0; i < 16; i++) { - // console.log(" W[" + i + "] = " + hex8(block[i])); - // } - - // console.log("\n A B C D E"); - // Partially unroll loops so we don't have to shift variables. - var fn = f1;; - for (var i = 0; i < 80; i += 5) { - if (i === 20) { fn = f2; } - else if (i === 40) { fn = f3; } - else if (i === 60) { fn = f4; } - e = fn(a, b, c, d, e, block[i]); b = ((b << 30) | (b >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i, - // hex8(e), hex8(a), hex8(b), hex8(c), hex8(d)); - d = fn(e, a, b, c, d, block[i + 1]); a = ((a << 30) | (a >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 1, - // hex8(d), hex8(e), hex8(a), hex8(b), hex8(c)); - c = fn(d, e, a, b, c, block[i + 2]); e = ((e << 30) | (e >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 2, - // hex8(c), hex8(d), hex8(e), hex8(a), hex8(b)); - b = fn(c, d, e, a, b, block[i + 3]); d = ((d << 30) | (d >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 3, - // hex8(b), hex8(c), hex8(d), hex8(e), hex8(a)); - a = fn(b, c, d, e, a, block[i + 4]); c = ((c << 30) | (c >>> 2)) >>> 0; - // console.log("t=%s: %s %s %s %s %s", i + 4, - // hex8(a), hex8(b), hex8(c), hex8(d), hex8(e)); - } - - // console.log(); - // process.stdout.write("H[0] = " + hex8(state[0]) + " + " + hex8(a)); - state[0] += a; - // console.log(" = " + hex8(state[0])); - // process.stdout.write("H[1] = " + hex8(state[1]) + " + " + hex8(b)); - state[1] += b; - // console.log(" = " + hex8(state[1])); - // process.stdout.write("H[2] = " + hex8(state[2]) + " + " + hex8(c)); - state[2] += c; - // console.log(" = " + hex8(state[2])); - // process.stdout.write("H[3] = " + hex8(state[3]) + " + " + hex8(d)); - state[3] += d; - // console.log(" = " + hex8(state[3])); - // process.stdout.write("H[4] = " + hex8(state[4]) + " + " + hex8(e)); - state[4] += e; - // console.log(" = " + hex8(state[4])); - - - } - - // input is a Uint8Array bitstream of the data - function sha1(input) { - - var inputLength = input.length; - - // Pad the input string length. - var length = inputLength + 9; - length += 64 - (length % 64); - - state[0] = 0x67452301; - state[1] = 0xefcdab89; - state[2] = 0x98badcfe; - state[3] = 0x10325476; - state[4] = 0xc3d2e1f0; - - for (var offset = 0; offset < length; offset += 64) { - - // Copy input to block and write padding as needed - for (var i = 0; i < 64; i++) { - var b = 0, - o = offset + i; - if (o < inputLength) { - b = input[o]; - } - else if (o === inputLength) { - b = 0x80; - } - else { - // Write original bit length as a 64bit big-endian integer to the end. - var x = length - o - 1; - if (x >= 0 && x < 4) { - b = (inputLength << 3 >>> (x * 8)) & 0xff; - } - } - - // Interpret the input bytes as big-endian per the spec - if (i % 4 === 0) { - block[i >> 2] = b << 24; - } - else { - block[i >> 2] |= b << ((3 - (i % 4)) * 8); - } - } - - // Extend the block - for (var i = 16; i < 80; i++) { - var w = block[i - 3] ^ block[i - 8] ^ block[i - 14] ^ block[i - 16]; - block[i] = (w << 1) | (w >>> 31); - } - - cycle(state, block); - - } - - // Swap the bytes around since they are big endian internally - return [ - bstate[3], bstate[2], bstate[1], bstate[0], - bstate[7], bstate[6], bstate[5], bstate[4], - bstate[11], bstate[10], bstate[9], bstate[8], - bstate[15], bstate[14], bstate[13], bstate[12], - bstate[19], bstate[18], bstate[17], bstate[16], - ] - } - - return sha1; -}); diff --git a/node_modules/rusha/misc/bench/cifre/utils.js b/node_modules/rusha/misc/bench/cifre/utils.js deleted file mode 100644 index 3876f3dd..00000000 --- a/node_modules/rusha/misc/bench/cifre/utils.js +++ /dev/null @@ -1,123 +0,0 @@ -/* - - Copyright (c) 2013 SMB Phone Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - The views and conclusions contained in the software and documentation are those - of the authors and should not be interpreted as representing official policies, - either expressed or implied, of the FreeBSD Project. - -*/ - -( // Module boilerplate to support browser globals, node.js and AMD. - (typeof module !== "undefined" && function (m) { module.exports = m(); }) || - (typeof define === "function" && function (m) { define(m); }) || - (function (m) { window.cifre_utils = m(); }) -)(function () { - "use strict"; - - function hex(val) { - if (val >>> 0 !== val) { return " "; } - if (val < 0x10) { return "0" + val.toString(16); } - return val.toString(16); - } - - function ensureArray(buffer) { - if (buffer instanceof Uint8Array) { - return buffer; - } - if (buffer instanceof ArrayBuffer || Array.isArray(buffer)) { - return new Uint8Array(buffer); - } - if (buffer.buffer instanceof ArrayBuffer) { - return new Uint8Array(buffer.buffer); - } - throw new TypeError("Invalid buffer type " + buffer); - } - - // Dump a Uint8Array as a 4-row hex stream - function dump(block) { - block = ensureArray(block); - var rows = new Array(4); - var width = Math.ceil(block.length / 4); - for (var i = 0; i < 4; i++) { - rows[i] = new Array(width); - for (var j = 0; j < width; j++) { - rows[i][j] = block[i + j * 4]; - } - } - console.log(rows.map(function (row) { - return row.map(function (val, i) { - if (val === undefined) return ""; - return hex(val) + ((i % 4 === 3) ? " " : ","); }).join(""); - }).join("\n")); - } - - function fromhex(string) { - var length = string.length; - var array = new Uint8Array(length / 2); - for (var i = 0; i < length; i += 2) { - array[i / 2] = parseInt(string.substr(i, 2), 16); - } - return array; - } - - function tohex(array) { - var string = ""; - array = ensureArray(array); - for (var i = 0, l = array.length; i < l; i++) { - string += hex(array[i]); - } - return string; - } - - function stringToArray(string) { - // UTF-8 encode the string using one character per byte - string = unescape(encodeURIComponent(string)); - var length = string.length; - var arr = new Array(length); - for (var i = 0; i < length; i++) { - arr[i] = string.charCodeAt(i); - } - return arr; - } - - function stringToBuffer(string) { - // UTF-8 encode the string using one character per byte - string = unescape(encodeURIComponent(string)); - var length = string.length; - var arr = new Uint8Array(length); - for (var i = 0; i < length; i++) { - arr[i] = string.charCodeAt(i); - } - return arr; - } - - return { - dump: dump, - tohex: tohex, - fromhex: fromhex, - stringToArray: stringToArray, - stringToBuffer: stringToBuffer - }; -}); diff --git a/node_modules/rusha/misc/bench/johnston.js b/node_modules/rusha/misc/bench/johnston.js deleted file mode 100644 index cebcc27e..00000000 --- a/node_modules/rusha/misc/bench/johnston.js +++ /dev/null @@ -1,354 +0,0 @@ -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS 180-1 - * Version 2.2 Copyright Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -if (typeof module !== 'undefined') { - module.exports = function (s) { return rstr2hex(binb2rstr(binb_sha1(buf2binb(s), s.length * 8))); } -} else { - function johnston (s) { return rstr2hex(binb2rstr(binb_sha1(tarr2binb(s), s.byteLength * 8))); } -} -function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); } -function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); } -function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); } -function hex_hmac_sha1(k, d) - { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } -function b64_hmac_sha1(k, d) - { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } -function any_hmac_sha1(k, d, e) - { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha1_vm_test() -{ - return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d"; -} - -/* - * Calculate the SHA1 of a raw string - */ -function rstr_sha1(s) -{ - return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8)); -} - -/* - * Calculate the HMAC-SHA1 of a key and some data (raw strings) - */ -function rstr_hmac_sha1(key, data) -{ - var bkey = rstr2binb(key); - if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8); - return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160)); -} - -/* - * Convert a raw string to a hex string - */ -function rstr2hex(input) -{ - try { hexcase } catch(e) { hexcase=0; } - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var output = ""; - var x; - for(var i = 0; i < input.length; i++) - { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) - + hex_tab.charAt( x & 0x0F); - } - return output; -} - -/* - * Convert a raw string to a base-64 string - */ -function rstr2b64(input) -{ - try { b64pad } catch(e) { b64pad=''; } - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var output = ""; - var len = input.length; - for(var i = 0; i < len; i += 3) - { - var triplet = (input.charCodeAt(i) << 16) - | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) - | (i + 2 < len ? input.charCodeAt(i+2) : 0); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > input.length * 8) output += b64pad; - else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); - } - } - return output; -} - -/* - * Convert a raw string to an arbitrary string encoding - */ -function rstr2any(input, encoding) -{ - var divisor = encoding.length; - var remainders = Array(); - var i, q, x, quotient; - - /* Convert to an array of 16-bit big-endian values, forming the dividend */ - var dividend = Array(Math.ceil(input.length / 2)); - for(i = 0; i < dividend.length; i++) - { - dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); - } - - /* - * Repeatedly perform a long division. The binary array forms the dividend, - * the length of the encoding is the divisor. Once computed, the quotient - * forms the dividend for the next step. We stop when the dividend is zero. - * All remainders are stored for later use. - */ - while(dividend.length > 0) - { - quotient = Array(); - x = 0; - for(i = 0; i < dividend.length; i++) - { - x = (x << 16) + dividend[i]; - q = Math.floor(x / divisor); - x -= q * divisor; - if(quotient.length > 0 || q > 0) - quotient[quotient.length] = q; - } - remainders[remainders.length] = x; - dividend = quotient; - } - - /* Convert the remainders to the output string */ - var output = ""; - for(i = remainders.length - 1; i >= 0; i--) - output += encoding.charAt(remainders[i]); - - /* Append leading zero equivalents */ - var full_length = Math.ceil(input.length * 8 / - (Math.log(encoding.length) / Math.log(2))) - for(i = output.length; i < full_length; i++) - output = encoding[0] + output; - - return output; -} - -/* - * Encode a string as utf-8. - * For efficiency, this assumes the input is valid utf-16. - */ -function str2rstr_utf8(input) -{ - var output = ""; - var i = -1; - var x, y; - - while(++i < input.length) - { - /* Decode utf-16 surrogate pairs */ - x = input.charCodeAt(i); - y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; - if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) - { - x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); - i++; - } - - /* Encode output as utf-8 */ - if(x <= 0x7F) - output += String.fromCharCode(x); - else if(x <= 0x7FF) - output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), - 0x80 | ( x & 0x3F)); - else if(x <= 0xFFFF) - output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - else if(x <= 0x1FFFFF) - output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), - 0x80 | ((x >>> 12) & 0x3F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - } - return output; -} - -/* - * Encode a string as utf-16 - */ -function str2rstr_utf16le(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode( input.charCodeAt(i) & 0xFF, - (input.charCodeAt(i) >>> 8) & 0xFF); - return output; -} - -function str2rstr_utf16be(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, - input.charCodeAt(i) & 0xFF); - return output; -} - -/* - * Convert a raw string to an array of big-endian words - * Characters >255 have their high-byte silently ignored. - */ -function rstr2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); - return output; -} - -function buf2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input[i / 8] & 0xFF) << (24 - i % 32); - return output; -} - -function tarr2binb(input) -{ - var output = Array(input.byteLength >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.byteLength * 8; i += 8) - output[i>>5] |= (input[i / 8] & 0xFF) << (24 - i % 32); - return output; -} -/* - * Convert an array of big-endian words to a string - */ -function binb2rstr(input) -{ - var output = ""; - for(var i = 0; i < input.length * 32; i += 8) - output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); - return output; -} - -/* - * Calculate the SHA-1 of an array of big-endian words, and a bit length - */ -function binb_sha1(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << (24 - len % 32); - x[((len + 64 >> 9) << 4) + 15] = len; - - var w = Array(80); - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - var e = -1009589776; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - var olde = e; - - for(var j = 0; j < 80; j++) - { - if(j < 16) w[j] = x[i + j]; - else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); - var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)), - safe_add(safe_add(e, w[j]), sha1_kt(j))); - e = d; - d = c; - c = bit_rol(b, 30); - b = a; - a = t; - } - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - e = safe_add(e, olde); - } - return Array(a, b, c, d, e); - -} - -/* - * Perform the appropriate triplet combination function for the current - * iteration - */ -function sha1_ft(t, b, c, d) -{ - if(t < 20) return (b & c) | ((~b) & d); - if(t < 40) return b ^ c ^ d; - if(t < 60) return (b & c) | (b & d) | (c & d); - return b ^ c ^ d; -} - -/* - * Determine the appropriate additive constant for the current iteration - */ -function sha1_kt(t) -{ - return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : - (t < 60) ? -1894007588 : -899497514; -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} diff --git a/node_modules/rusha/misc/random.js b/node_modules/rusha/misc/random.js deleted file mode 100644 index 4117fb13..00000000 --- a/node_modules/rusha/misc/random.js +++ /dev/null @@ -1,39 +0,0 @@ -if (typeof require === 'function') { - var crypto = require('crypto'); - var johnston = require('./bench/johnston'); - var Rusha = require('../dist/rusha.js'); - var cifre_utils = require('./bench/cifre/utils.js'); - var cifre_sha1 = require('./bench/cifre/sha1.js'); -} - -if (typeof module !== 'undefined') { - - module.exports = { - - fnNative: function (bytes) { - var shasum = crypto.createHash('sha1'); - shasum.update(bytes); - return shasum.digest('hex'); - }, - - randomBytes: function (size) { - return crypto.pseudoRandomBytes(size); - }, - - }; - -} else { - - function fnNative () { return 'unavailable'; } - - function randomBytes (size) { - var bytes = new Uint8Array(size); - var r; - for (var i = 0, r; i < size; i++) { - if ((i & 0x03) == 0) r = Math.random() * 0x100000000; - bytes[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - return bytes; - } - -} diff --git a/node_modules/rusha/misc/runuithread.html b/node_modules/rusha/misc/runuithread.html deleted file mode 100644 index 2de6f426..00000000 --- a/node_modules/rusha/misc/runuithread.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/node_modules/rusha/misc/single.js b/node_modules/rusha/misc/single.js deleted file mode 100644 index 7ba3bf90..00000000 --- a/node_modules/rusha/misc/single.js +++ /dev/null @@ -1,18 +0,0 @@ -if (typeof require === 'function') { - var Rusha = require('../dist/rusha.js'); - var randomBytes = require('crypto').pseudoRandomBytes; -} - -var sizes = [4*1024, 65535, 1024*1024, 4*1024*1024, 8*1024*1024]; - -var _rush = new Rusha(Math.max.apply(Math, sizes)); - -var i, j, bytes, t0, t1; - -for (i = 0; i < sizes.length; i++) { - bytes = randomBytes(sizes[i]); - t0 = (new Date()).getTime(); - for (j = 0; j < 3; j++) _rush.digestFromBuffer(bytes); - t1 = (new Date()).getTime(); - console.log('Emitted in ' + ((t1-t0)/3) + ' milliseconds'); -} diff --git a/node_modules/rusha/misc/test.js b/node_modules/rusha/misc/test.js deleted file mode 100644 index 0d31eba8..00000000 --- a/node_modules/rusha/misc/test.js +++ /dev/null @@ -1,46 +0,0 @@ -if (typeof require === 'function') { - var crypto = require('crypto'); - var johnston = require('./bench/johnston'); - var Rusha = require('../dist/rusha.js'); - var cifre_utils = require('./bench/cifre/utils.js'); - var cifre_sha1 = require('./bench/cifre/sha1.js'); - var random = require('./random'); - var fnNative = random.fnNative, - randomBytes = random.randomBytes; -} - -var _rush = new Rusha(), - fnRusha = function (bytes) { - return _rush.digestFromBuffer(bytes); -}; - -var fnJohnston = function (bytes) { - return johnston(bytes); -}; - -var fnCifre = function (bytes) { - return cifre_utils.tohex(cifre_sha1(bytes)); -}; - -var ids = ['Native ', 'Rusha ', 'Cifre ']; -var fns = [fnNative, fnRusha/*, fnCifre*/]; - -var bench = function () { - for (size=0;size<1024*8;size++) { - // use random test data - var bytes = randomBytes(size);//"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquy".substr(0, size); - var ref = ""; - fns.forEach(function (fn, i) { - var res = fn(bytes); - if (ref == "") - ref = res; - else if (ref != res) - console.log(ids[i] + ' hash mismatch on size ' + size + ': ' + res + ' expected: ' + ref); - }); - if (!(size % 1000)) - console.log(size); - }; -} - -bench(); - diff --git a/node_modules/rusha/package.json b/node_modules/rusha/package.json index 2c534bda..4bfa5884 100644 --- a/node_modules/rusha/package.json +++ b/node_modules/rusha/package.json @@ -1,8 +1,8 @@ { "name": "rusha", - "version": "0.8.11", + "version": "0.8.5", "description": "A high-performance pure-javascript SHA1 implementation suitable for large binary data.", - "main": "dist/rusha.js", + "main": "rusha.js", "keywords": [ "sha1", "binary", @@ -11,87 +11,52 @@ ], "scripts": { "test": "grunt test", - "test:unit": "grunt test:unit", - "build": "grunt build", - "benchmark": "grunt benchmark" + "test-saucelabs": "grunt test-saucelabs", + "build": "grunt build" }, "repository": { "type": "git", "url": "git+https://github.com/srijs/rusha.git" }, "devDependencies": { - "asm.js": "^0.0.2", - "babel-core": "^6.26.0", - "babel-eslint": "^8.0.3", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.26.0", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babelify": "^8.0.0", + "asm.js": "0.0.2", "benchmark": "^1.0.0", - "brfs": "^1.4.3", - "browserify": "^14.5.0", - "browserify-derequire": "^0.9.4", - "grunt": "^1.0.1", - "grunt-browserify": "^5.2.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-uglify": "^3.1.0", - "grunt-eslint": "^20.1.0", - "grunt-karma": "^2.0.0", - "karma": "^1.7.1", - "karma-benchmark": "^0.7.1", - "karma-benchmark-reporter": "^0.1.1", - "karma-browserify": "^5.1.2", - "karma-chai-plugins": "^0.9.0", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.0.1", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.5", - "karma-webpack": "^2.0.6", + "blanket": "~1.1.6", + "grunt": "~0.4.5", + "grunt-browserify": "^3.5.0", + "grunt-cli": "~0.1.13", + "grunt-contrib-connect": "^0.8.0", + "grunt-contrib-uglify": "~0.5.1", + "grunt-mocha-test": "~0.11.0", + "grunt-saucelabs": "^8.3.2", + "grunt-sweet.js": "~0.1.5", "microtime": "^2.1.1", - "mocha": "^4.0.1", - "node-forge": "^0.7.1", - "sha.js": "^2.4.9", - "strictify": "^0.2.0", - "sweetify": "^0.4.0", - "watchify": "^3.9.0", - "webpack": "^3.9.1", - "webworkify": "^1.5.0" + "mocha": "^3.0.2", + "sweet.js": "~0.7.1" + }, + "testling": { + "files": "test/test.js", + "harness": "mocha-tdd", + "browsers": [ + "ie/6..latest", + "chrome/22..latest", + "firefox/16..latest", + "safari/latest", + "opera/11.0..latest" + ] }, "author": { "name": "Sam Rijs" }, "license": "MIT", - "gitHead": "f803443f8c111ae6957de52ec286318910ce7f07", + "readmeFilename": "README.md", + "readme": "# Rusha [![Build Status](https://travis-ci.org/srijs/rusha.png?branch=master)](https://travis-ci.org/srijs/rusha)\n*A high-performance pure-javascript SHA1 implementation suitable for large binary data.*\n\n[![NPM](https://nodei.co/npm/rusha.png?downloads=true&downloadRank=true)](https://nodei.co/npm/rusha/)\n\n## Prologue: The Sad State of Javascript SHA1 implementations\n\nWhen we started experimenting with alternative upload technologies at [doctape](http://doctape.com) that required creating SHA1 hashes of the data locally on the client, it quickly became obvious that there were no performant pure-js implementations of SHA1 that worked correctly on binary data.\n\nJeff Mott's [CryptoJS](http://code.google.com/p/crypto-js/) and Brian Turek's [jsSHA](http://caligatio.github.com/jsSHA/) were both hash functions that worked correctly on ASCII strings of a small size, but didn't scale to large data and/or didn't work correctly with binary data.\n\n(On a sidenode, as of now Tim Caswell's [Cifre](http://github.com/openpeer/cifre) actually works with large binary data, as opposed to previously statet.)\n\nBy modifying Paul Johnston's [sha1.js](http://pajhome.org.uk/crypt/md5/sha1.html) slightly, it worked correctly on binary data but was unfortunately very slow, especially on V8. So a few days were invested on my side to implement a Johnston-inspired SHA1 hashing function with a heavy focus on performance.\n\nThe result of this process is Rusha, a SHA1 hash function that works flawlessly on large amounts binary data, such as binary strings or ArrayBuffers returned by the HTML5 File API, and leverages the soon-to-be-landed-in-firefox [asm.js](http://asmjs.org/spec/latest/) with whose support its within *half of native speed*!\n\n## Installing\n\n### Node.JS\n\nThere is really no point in doing this, since Node.JS already has a wonderful `crypto` module that is leveraging low-level hardware instructions to perform really nice. Your can see the comparison below in the benchmarks.\n\nRusha is available on [npm](http://npmjs.org/) via `npm install rusha`.\n\nIf you still want to do this, anyhow, just `require()` the `rusha.js` file, follow the instructions on _Using the Rusha Object_.\n\n### Browser\n\nRusha is available on [bower](http://twitter.github.com/bower/) via `bower install rusha`.\n\nIt is highly recommended to run CPU-intensive tasks in a [Web Worker](http://developer.mozilla.org/en-US/docs/DOM/Using_web_workers). To do so, just start a worker with `var worker = new Worker('rusha.js')` and start sending it jobs. Follow the instructions on _Using the Rusha Worker_.\n\nIf you can't, for any reason, use Web Workers, include the `rusha.js` file in a `\n\n```\n\n## Documentation\n\n### Collections\n\n* [each](#each)\n* [eachSeries](#eachSeries)\n* [eachLimit](#eachLimit)\n* [map](#map)\n* [mapSeries](#mapSeries)\n* [mapLimit](#mapLimit)\n* [filter](#filter)\n* [filterSeries](#filterSeries)\n* [reject](#reject)\n* [rejectSeries](#rejectSeries)\n* [reduce](#reduce)\n* [reduceRight](#reduceRight)\n* [detect](#detect)\n* [detectSeries](#detectSeries)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n* [concatSeries](#concatSeries)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [parallelLimit](#parallellimittasks-limit-callback)\n* [whilst](#whilst)\n* [doWhilst](#doWhilst)\n* [until](#until)\n* [doUntil](#doUntil)\n* [forever](#forever)\n* [waterfall](#waterfall)\n* [compose](#compose)\n* [applyEach](#applyEach)\n* [applyEachSeries](#applyEachSeries)\n* [queue](#queue)\n* [cargo](#cargo)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n* [times](#times)\n* [timesSeries](#timesSeries)\n\n### Utils\n\n* [memoize](#memoize)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n\n\n### each(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the each function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err) which must be called once it has \n completed. If no error has occured, the callback should be run without \n arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n\n\n### eachSeries(arr, iterator, callback)\n\nThe same as each only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n\n\n### eachLimit(arr, limit, iterator, callback)\n\nThe same as each only no more than \"limit\" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first \"limit\" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err) which must be called once it has \n completed. If no error has occured, the callback should be run without \n arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, transformed) which must be called once \n it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n```js\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n\n### mapLimit(arr, limit, iterator, callback)\n\nThe same as map only no more than \"limit\" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first \"limit\" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, transformed) which must be called once \n it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n```js\nasync.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a new array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(results) - A callback which is called after all the iterator\n functions have finished.\n\n__Example__\n\n```js\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n\n### filterSeries(arr, iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n\n### rejectSeries(arr, iterator, callback)\n\nThe same as reject, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. For performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then it's probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n array to produce the next step in the reduction. The iterator is passed a\n callback(err, reduction) which accepts an optional error as its first \n argument, and the state of the reduction as the second. If an error is \n passed to the callback, the reduction is stopped and the main callback is \n immediately called with the error.\n* callback(err, result) - A callback which is called after all the iterator\n functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n}, function(err, result){\n // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value undefined if none passed.\n\n__Example__\n\n```js\nasync.detect(['file1','file2','file3'], fs.exists, function(result){\n // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, sortValue) which must be called once it\n has completed with an error (which can be null) and a value to use as the sort\n criteria.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is the items from\n the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n```js\nasync.sortBy(['file1','file2','file3'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n}, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n});\n```\n\n---------------------------------------\n\n\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n either true or false depending on the values of the async tests.\n\n__Example__\n\n```js\nasync.some(['file1','file2','file3'], fs.exists, function(result){\n // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(result) - A callback which is called after all the iterator\n functions have finished. Result will be either true or false depending on\n the values of the async tests.\n\n__Example__\n\n```js\nasync.every(['file1','file2','file3'], fs.exists, function(result){\n // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, results) which must be called once it \n has completed with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array containing\n the concatenated results of the iterator function.\n\n__Example__\n\n```js\nasync.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n a callback(err, result) it must call on completion with an error (which can\n be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.series([\n function(callback){\n // do some stuff ...\n callback(null, 'one');\n },\n function(callback){\n // do some more stuff ...\n callback(null, 'two');\n }\n],\n// optional callback\nfunction(err, results){\n // results is now equal to ['one', 'two']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n a callback(err, result) it must call on completion with an error (which can\n be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, 'one');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, 'two');\n }, 100);\n }\n],\n// optional callback\nfunction(err, results){\n // the results array will equal ['one','two'] even though\n // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n\n### parallelLimit(tasks, limit, [callback])\n\nThe same as parallel only the tasks are executed in parallel with a maximum of \"limit\" \ntasks executing at any time.\n\nNote that the tasks are not executed in batches, so there is no guarantee that \nthe first \"limit\" tasks will complete before any others are started.\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n a callback(err, result) it must call on completion with an error (which can\n be null) and an optional result value.\n* limit - The maximum number of tasks to run at any time.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n---------------------------------------\n\n\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n passed a callback(err) which must be called once it has completed with an \n optional error argument.\n* callback(err) - A callback which is called after the test fails and repeated\n execution of fn has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n);\n```\n\n---------------------------------------\n\n\n### doWhilst(fn, test, callback)\n\nThe post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n---------------------------------------\n\n\n### doUntil(fn, test, callback)\n\nLike doWhilst except the test is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n\n### forever(fn, callback)\n\nCalls the asynchronous function 'fn' repeatedly, in series, indefinitely.\nIf an error is passed to fn's callback then 'callback' is called with the\nerror, otherwise it will never be called.\n\n---------------------------------------\n\n\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a \n callback(err, result1, result2, ...) it must call on completion. The first\n argument is an error (which can be null) and any further arguments will be \n passed as arguments in order to the next task.\n* callback(err, [results]) - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n function(callback){\n callback(null, 'one', 'two');\n },\n function(arg1, arg2, callback){\n callback(null, 'three');\n },\n function(arg1, callback){\n // arg1 now equals 'three'\n callback(null, 'done');\n }\n], function (err, result) {\n // result now equals 'done' \n});\n```\n\n---------------------------------------\n\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions f(), g() and h() would produce the result of\nf(g(h())), only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* functions... - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n setTimeout(function () {\n callback(null, n + 1);\n }, 10);\n}\n\nfunction mul3(n, callback) {\n setTimeout(function () {\n callback(null, n * 3);\n }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n // result now equals 15\n});\n```\n\n---------------------------------------\n\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling the\ncallback after all functions have completed. If you only provide the first\nargument then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* fns - the asynchronous functions to all call with the same arguments\n* args... - any number of separate arguments to pass to the function\n* callback - the final argument should be the callback, called when all\n functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], 'bucket', callback);\n\n// partial application example:\nasync.each(\n buckets,\n async.applyEach([enableSearch, updateSchema]),\n callback\n);\n```\n\n---------------------------------------\n\n\n### applyEachSeries(arr, iterator, callback)\n\nThe same as applyEach only the functions are applied in series.\n\n---------------------------------------\n\n\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task's callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n task, which must call its callback(err) argument when finished, with an \n optional error as an argument.\n* concurrency - An integer for determining how many worker functions should be\n run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n run in parallel. This property can be changed after a queue is created to\n alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* unshift(task, [callback]) - add a new task to the front of the queue.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n console.log('hello ' + task.name);\n callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n console.log('all items have been processed');\n}\n\n// add some items to the queue\n\nq.push({name: 'foo'}, function (err) {\n console.log('finished processing foo');\n});\nq.push({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n console.log('finished processing bar');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n});\n```\n\n---------------------------------------\n\n\n### cargo(worker, [payload])\n\nCreates a cargo object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the payload limit). If the\nworker is in progress, the task is queued until it is available. Once\nthe worker has completed some tasks, each callback of those tasks is called.\n\n__Arguments__\n\n* worker(tasks, callback) - An asynchronous function for processing an array of\n queued tasks, which must call its callback(err) argument when finished, with \n an optional error as an argument.\n* payload - An optional integer for determining how many tasks should be\n processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe cargo object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* payload - an integer for determining how many tasks should be\n process per round. This property can be changed after a cargo is created to\n alter the payload on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n for(var i=0; i\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\nNote, all functions are called with a results object as a second argument, \nso it is unsafe to pass functions in the tasks object which cannot handle the\nextra argument. For example, this snippet of code:\n\n```js\nasync.auto({\n readData: async.apply(fs.readFile, 'data.txt', 'utf-8')\n}, callback);\n```\n\nwill have the effect of calling readFile with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile('data.txt', 'utf-8', cb, {});\n```\n\nInstead, wrap the call to readFile in a function which does not forward the \nresults object:\n\n```js\nasync.auto({\n readData: function(cb, results){\n fs.readFile('data.txt', 'utf-8', cb);\n }\n}, callback);\n```\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n requirements, with the function itself the last item in the array. The key\n used for each function or array is used when specifying requirements. The \n function receives two arguments: (1) a callback(err, result) which must be \n called when finished, passing an error (which can be null) and the result of \n the function's execution, and (2) a results object, containing the results of\n the previously executed functions.\n* callback(err, results) - An optional callback which is called when all the\n tasks have been completed. The callback will receive an error as an argument\n if any tasks pass an error to their callback. Results will always be passed\n\tbut if an error occurred, no other tasks will be performed, and the results\n\tobject will only contain partial results.\n \n\n__Example__\n\n```js\nasync.auto({\n get_data: function(callback){\n // async code to get some data\n },\n make_folder: function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n },\n write_file: ['get_data', 'make_folder', function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, filename);\n }],\n email_link: ['write_file', function(callback, results){\n // once the file is written let's email a link to it...\n // results.write_file contains the filename returned by write_file.\n }]\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n function(callback){\n // async code to get some data\n },\n function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n }\n],\nfunction(err, results){\n async.series([\n function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n },\n function(callback){\n // once the file is written let's email a link to it...\n }\n ]);\n});\n```\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. It's also possible to\n'peek' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n function(){ sys.p('one'); },\n function(){ sys.p('two'); },\n function(){ sys.p('three'); }\n]);\n\nnode> var iterator2 = iterator();\n'one'\nnode> var iterator3 = iterator2();\n'two'\nnode> iterator3();\n'three'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n'three'\n```\n\n---------------------------------------\n\n\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n async.apply(fs.writeFile, 'testfile1', 'test1'),\n async.apply(fs.writeFile, 'testfile2', 'test2'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n function(callback){\n fs.writeFile('testfile1', 'test1', callback);\n },\n function(callback){\n fs.writeFile('testfile2', 'test2', callback);\n }\n]);\n```\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, 'one');\nnode> fn('two', 'three');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setImmediate(callback)\nif available, otherwise setTimeout(callback, 0), which means other higher priority\nevents may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n call_order.push('two');\n // call_order now equals ['one','two']\n});\ncall_order.push('one')\n```\n\n\n### times(n, callback)\n\nCalls the callback n times and accumulates results in the same manner\nyou would use with async.map.\n\n__Arguments__\n\n* n - The number of times to run the function.\n* callback - The function to call n times.\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n callback(null, {\n id: 'user' + id\n })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n createUser(n, function(err, user) {\n next(err, user)\n })\n}, function(err, users) {\n // we should now have 5 users\n});\n```\n\n\n### timesSeries(n, callback)\n\nThe same as times only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n## Utils\n\n\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* fn - the function you to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n results, it has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn('some name', function () {\n // callback\n});\n```\n\n\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, 'hello ' + name);\n }, 1000);\n};\n```\n```js\nnode> async.log(hello, 'world');\n'hello world'\n```\n\n---------------------------------------\n\n\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n};\n```\n```js\nnode> async.dir(hello, 'world');\n{hello: 'world'}\n```\n\n---------------------------------------\n\n\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/caolan/async#readme", "_id": "async@0.2.10", - "dist": { - "shasum": "b6bbe0b0674b9d719708ca38de8c237cb526c3d1", - "tarball": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "_from": "async@>=0.2.6 <0.3.0", - "_npmVersion": "1.3.2", - "_npmUser": { - "name": "caolan", - "email": "caolan.mcmahon@gmail.com" - }, - "maintainers": [ - { - "name": "caolan", - "email": "caolan@caolanmcmahon.com" - } - ], - "directories": {}, "_shasum": "b6bbe0b0674b9d719708ca38de8c237cb526c3d1", "_resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/caolan/async#readme" + "_from": "async@>=0.2.6 <0.3.0" } diff --git a/node_modules/uglify-js/node_modules/uglify-to-browserify/package.json b/node_modules/uglify-js/node_modules/uglify-to-browserify/package.json index 1542d04e..644e79c4 100644 --- a/node_modules/uglify-js/node_modules/uglify-to-browserify/package.json +++ b/node_modules/uglify-js/node_modules/uglify-to-browserify/package.json @@ -19,29 +19,14 @@ "name": "ForbesLindesay" }, "license": "MIT", + "readme": "# uglify-to-browserify\r\n\r\nA transform to make UglifyJS work in browserify.\r\n\r\n[![Build Status](https://travis-ci.org/ForbesLindesay/uglify-to-browserify.png?branch=master)](https://travis-ci.org/ForbesLindesay/uglify-to-browserify)\r\n[![Dependency Status](https://gemnasium.com/ForbesLindesay/uglify-to-browserify.png)](https://gemnasium.com/ForbesLindesay/uglify-to-browserify)\r\n[![NPM version](https://badge.fury.io/js/uglify-to-browserify.png)](http://badge.fury.io/js/uglify-to-browserify)\r\n\r\n## Installation\r\n\r\n npm install uglify-to-browserify\r\n\r\n## License\r\n\r\n MIT", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/ForbesLindesay/uglify-to-browserify/issues" }, - "homepage": "https://github.com/ForbesLindesay/uglify-to-browserify", + "homepage": "https://github.com/ForbesLindesay/uglify-to-browserify#readme", "_id": "uglify-to-browserify@1.0.2", - "dist": { - "shasum": "6e0924d6bda6b5afe349e39a6d632850a0f882b7", - "tarball": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" - }, - "_from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "forbeslindesay", - "email": "forbes@lindeay.co.uk" - }, - "maintainers": [ - { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - } - ], - "directories": {}, "_shasum": "6e0924d6bda6b5afe349e39a6d632850a0f882b7", "_resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "_from": "uglify-to-browserify@>=1.0.0 <1.1.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/camelcase/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/camelcase/package.json index 69539bb9..3cb52146 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/camelcase/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/camelcase/package.json @@ -38,31 +38,14 @@ "devDependencies": { "ava": "0.0.4" }, - "gitHead": "185ba12da723be9c1ee986cc2956bdc4c517a141", + "readme": "# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)\n\n> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar`\n\n\n## Install\n\n```sh\n$ npm install --save camelcase\n```\n\n\n## Usage\n\n```js\nvar camelCase = require('camelcase');\n\ncamelCase('foo-bar');\n//=> fooBar\n\ncamelCase('foo_bar');\n//=> fooBar\n\ncamelCase('Foo-Bar');\n//=> fooBar\n\ncamelCase('--foo.bar');\n//=> fooBar\n\ncamelCase('__foo__bar__');\n//=> fooBar\n\ncamelCase('foo bar');\n//=> fooBar\n\nconsole.log(process.argv[3]);\n//=> --foo-bar\ncamelCase(process.argv[3]);\n//=> fooBar\n\ncamelCase('foo', 'bar');\n//=> fooBar\n\ncamelCase('__foo__', '--bar');\n//=> fooBar\n```\n\n\n## Related\n\nSee [`decamelize`](https://github.com/sindresorhus/decamelize) for the inverse.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", "bugs": { "url": "https://github.com/sindresorhus/camelcase/issues" }, - "homepage": "https://github.com/sindresorhus/camelcase", + "homepage": "https://github.com/sindresorhus/camelcase#readme", "_id": "camelcase@1.2.1", "_shasum": "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39", - "_from": "camelcase@>=1.0.2 <2.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39", - "tarball": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "directories": {}, "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "camelcase@>=1.0.2 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/longest/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/longest/package.json index ca9d53bc..a7d02f50 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/longest/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/longest/package.json @@ -40,31 +40,10 @@ "length", "longest" ], - "gitHead": "99d9d8257584500aedaea54427a828197c452b0a", + "readme": "# longest [![NPM version](https://badge.fury.io/js/longest.svg)](http://badge.fury.io/js/longest) [![Build Status](https://travis-ci.org/jonschlinkert/longest.svg)](https://travis-ci.org/jonschlinkert/longest) \n\n> Get the longest item in an array.\n\n## Install with [npm](npmjs.org)\n\n```bash\nnpm i longest --save\n```\n### Install with [bower](https://github.com/bower/bower)\n\n```bash\nbower install longest --save\n```\n\n## Running tests\nInstall dev dependencies.\n\n```bash\nnpm i -d && npm test\n```\n\n## Usage\n\n```js\nvar longest = require('longest');\nlongest(['a', 'abcde', 'abc']);\n//=> 'abcde'\n\nlongest(['a', 'abcde', 'abc']).length;\n//=> 5\n```\n\n## Related projects\n* [longest-value](https://github.com/jonschlinkert/longest-value): Get the longest value for the given property from an array of objects. Useful for aligning values.\n* [right-align-values](https://github.com/jonschlinkert/right-align-values): Right align the values of a given property for each object in an array. Useful for creating text columns or tables.\n* [right-pad-values](https://github.com/jonschlinkert/right-pad-values): Right pad the values of a given property for each object in an array. Useful for creating text columns or tables.\n* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.\n* [pad-right](https://github.com/jonschlinkert/pad-right): Right pad a string with zeros or a specified string. Fastest implementation.\n* [pad-left](https://github.com/jonschlinkert/pad-left): Left pad a string with zeros or a specified string. Fastest implementation. \n\n## Running tests\nInstall dev dependencies.\n\n```bash\nnpm i -d && npm test\n```\n\n## Contributing\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/longest/issues)\n\n## Author\n\n**Jon Schlinkert**\n \n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) \n\n## License\nCopyright (c) 2015 Jon Schlinkert \nReleased under the MIT license\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on March 31, 2015._", + "readmeFilename": "README.md", "_id": "longest@1.0.1", "_shasum": "30a0b2da38f73770e8294a0d22e6625ed77d0097", - "_from": "longest@>=1.0.1 <2.0.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "dist": { - "shasum": "30a0b2da38f73770e8294a0d22e6625ed77d0097", - "tarball": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "longest@>=1.0.1 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/repeat-string/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/repeat-string/package.json index 056a4239..2b43afe2 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/repeat-string/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/repeat-string/package.json @@ -100,35 +100,10 @@ "verb" ] }, - "gitHead": "1a95c5d99a02999ccd2cf4663959a18bd2def7b8", + "readme": "# repeat-string [![NPM version](https://img.shields.io/npm/v/repeat-string.svg?style=flat)](https://www.npmjs.com/package/repeat-string) [![NPM monthly downloads](https://img.shields.io/npm/dm/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![NPM total downloads](https://img.shields.io/npm/dt/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/repeat-string.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/repeat-string)\n\n> Repeat the given string n times. Fastest implementation for repeating a string.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save repeat-string\n```\n\n## Usage\n\n### [repeat](index.js#L41)\n\nRepeat the given `string` the specified `number` of times.\n\n**Example:**\n\n**Example**\n\n```js\nvar repeat = require('repeat-string');\nrepeat('A', 5);\n//=> AAAAA\n```\n\n**Params**\n\n* `string` **{String}**: The string to repeat\n* `number` **{Number}**: The number of times to repeat the string\n* `returns` **{String}**: Repeated string\n\n## Benchmarks\n\nRepeat string is significantly faster than the native method (which is itself faster than [repeating](https://github.com/sindresorhus/repeating)):\n\n```sh\n# 2x\nrepeat-string █████████████████████████ (26,953,977 ops/sec)\nrepeating █████████ (9,855,695 ops/sec)\nnative ██████████████████ (19,453,895 ops/sec)\n\n# 3x\nrepeat-string █████████████████████████ (19,445,252 ops/sec)\nrepeating ███████████ (8,661,565 ops/sec)\nnative ████████████████████ (16,020,598 ops/sec)\n\n# 10x\nrepeat-string █████████████████████████ (23,792,521 ops/sec)\nrepeating █████████ (8,571,332 ops/sec)\nnative ███████████████ (14,582,955 ops/sec)\n\n# 50x\nrepeat-string █████████████████████████ (23,640,179 ops/sec)\nrepeating █████ (5,505,509 ops/sec)\nnative ██████████ (10,085,557 ops/sec)\n\n# 250x\nrepeat-string █████████████████████████ (23,489,618 ops/sec)\nrepeating ████ (3,962,937 ops/sec)\nnative ████████ (7,724,892 ops/sec)\n\n# 2000x\nrepeat-string █████████████████████████ (20,315,172 ops/sec)\nrepeating ████ (3,297,079 ops/sec)\nnative ███████ (6,203,331 ops/sec)\n\n# 20000x\nrepeat-string █████████████████████████ (23,382,915 ops/sec)\nrepeating ███ (2,980,058 ops/sec)\nnative █████ (5,578,808 ops/sec)\n```\n\n**Run the benchmarks**\n\nInstall dev dependencies:\n\n```sh\nnpm i -d && node benchmark\n```\n\n## About\n\n### Related projects\n\n[repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element \"Create an array by repeating the given value n times.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor**
| \n| --- | --- |\n| 51 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 2 | [LinusU](https://github.com/LinusU) |\n| 2 | [tbusser](https://github.com/tbusser) |\n| 1 | [doowb](https://github.com/doowb) |\n| 1 | [wooorm](https://github.com/wooorm) |\n\n### Building docs\n\n_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_\n\nTo generate the readme and API documentation with [verb](https://github.com/verbose/verb):\n\n```sh\n$ npm install -g verb verb-generate-readme && verb\n```\n\n### Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm install -d && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2016, [Jon Schlinkert](http://github.com/jonschlinkert).\nReleased under the [MIT license](https://github.com/jonschlinkert/repeat-string/blob/master/LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 23, 2016._", + "readmeFilename": "README.md", "_id": "repeat-string@1.6.1", "_shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", - "_from": "repeat-string@>=1.5.2 <2.0.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.7.0", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "doowb", - "email": "brian.woodward@gmail.com" - } - ], - "dist": { - "shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", - "tarball": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/repeat-string-1.6.1.tgz_1477241638674_0.3764322670176625" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "repeat-string@>=1.5.2 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/package.json index 3cc2e0ba..634d1cd8 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/package.json @@ -49,35 +49,10 @@ "text", "typography" ], - "gitHead": "7f08e823a54c6bda319d875895813537a66a4c5e", + "readme": "# align-text [![NPM version](https://badge.fury.io/js/align-text.svg)](http://badge.fury.io/js/align-text) [![Build Status](https://travis-ci.org/jonschlinkert/align-text.svg)](https://travis-ci.org/jonschlinkert/align-text)\n\n> Align the text in a string.\n\n**Examples**\n\nAlign text values in an array:\n\n```js\nalign([1, 2, 3, 100]);\n//=> [' 1', ' 2', ' 3', '100']\n```\n\nOr [do stuff like this](./example.js):\n\n[![screen shot 2015-06-09 at 2 08 34 am](https://cloud.githubusercontent.com/assets/383994/8051597/7b716fbc-0e4c-11e5-9aef-4493fd22db58.png)](./example.js)\n\nVisit [the example](./example.js) to see how this works.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/)\n\n```sh\n$ npm i align-text --save\n```\n\n## Usage\n\n```js\nvar align = require('align-text');\nalign(text, callback_function_or_integer);\n```\n\n**Params**\n\n* `text` can be a **string or array**. If a string is passed, a string will be returned. If an array is passed, an array will be returned.\n* `callback|integer`: if an integer, the text will be indented by that amount. If a function, it must return an integer representing the amount of leading indentation to use as `align` loops over each line.\n\n**Example**\n\n```js\nalign(text, 4);\n```\n\nWould align:\n\n```\nabc\nabc\nabc\n```\n\nTo:\n\n```\n abc\n abc\n abc\n```\n\n## callback\n\n### params\n\nThe callback is used to determine the indentation of each line and gets the following params:\n\n* `len` the length of the \"current\" line\n* `longest` the length of the longest line\n* `line` the current line (string) being aligned\n* `lines` the array of all lines\n\n### return\n\nThe callback may return:\n\n* an integer that represents the number of spaces to use for padding,\n* or an object with the following properties:\n - `indent`: **{Number}** the amount of indentation to use. Default is `0` when an object is returned.\n - `character`: **{String}** the character to use for indentation. Default is `''` (empty string) when an object is returned.\n - `prefix`: **{String}** leading characters to use at the beginning of each line. `''` (empty string) when an object is returned.\n\n**Integer example:**\n\n```js\n// calculate half the difference between the length\n// of the current line and the longest line\nfunction centerAlign(len, longest, line, lines) {\n return Math.floor((longest - len) / 2);\n}\n```\n\n**Object example:**\n\n```js\nfunction centerAlign(len, longest, line, lines) {\n return {\n character: '\\t',\n indent: Math.floor((longest - len) / 2),\n prefix: '~ ',\n }\n}\n```\n\n## Usage examples\n\n### Center align\n\nUsing the `centerAlign` function from above:\n\n```js\nalign(text, centerAlign);\n```\n\nWould align this text:\n\n```js\nLorem ipsum dolor sit amet\nconsectetur adipiscin\nelit, sed do eiusmod tempor incididun\nut labore et dolor\nmagna aliqua. Ut enim ad mini\nveniam, quis\n```\n\nResulting in this:\n\n```\n Lorem ipsum dolor sit amet,\n consectetur adipiscing\nelit, sed do eiusmod tempor incididunt\n ut labore et dolore\n magna aliqua. Ut enim ad minim\n veniam, quis\n```\n\n**Customize**\n\nIf you wanted to add more padding on the left, just pass the number in the callback.\n\nFor example, to add 4 spaces before every line:\n\n```js\nfunction centerAlign(len, longest, line, lines) {\n return 4 + Math.floor((longest - len) / 2);\n}\n```\n\nWould result in:\n\n```\n Lorem ipsum dolor sit amet,\n consectetur adipiscing\n elit, sed do eiusmod tempor incididunt\n ut labore et dolore\n magna aliqua. Ut enim ad minim\n veniam, quis\n```\n\n### Bullets\n\n```js\nalign(text, function (len, max, line, lines) {\n return {prefix: ' - '};\n});\n```\n\nWould return:\n\n```\n- Lorem ipsum dolor sit amet,\n- consectetur adipiscing\n- elit, sed do eiusmod tempor incididunt\n- ut labore et dolore\n- magna aliqua. Ut enim ad minim\n- veniam, quis\n```\n\n### Different indent character\n\n```js\nalign(text, function (len, max, line, lines) {\n return { \n indent: Math.floor((max - len) / 2), \n character: '~', \n };\n});\n```\n\nWould return\n\n```\n~~~~~Lorem ipsum dolor sit amet,\n~~~~~~~~consectetur adipiscing\nelit, sed do eiusmod tempor incididunt\n~~~~~~~~~ut labore et dolore\n~~~~magna aliqua. Ut enim ad minim\n~~~~~~~~~~~~~veniam, quis\n```\n\n## Related projects\n\n* [center-align](https://github.com/jonschlinkert/center-align): Center-align the text in a string.\n* [justify](https://github.com/bahamas10/node-justify): Left or right (or both) justify text using a custom width and character\n* [longest](https://github.com/jonschlinkert/longest): Get the longest item in an array.\n* [right-align](https://github.com/jonschlinkert/right-align): Right-align the text in a string.\n* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.\n* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length.\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm i -d && npm test\n```\n\n## Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/align-text/issues/new)\n\n## Author\n\n**Jon Schlinkert**\n\n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n## License\n\nCopyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)\nReleased under the MIT license.\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 09, 2015._\n", + "readmeFilename": "README.md", "_id": "align-text@0.1.4", "_shasum": "0cd90a561093f35d0a99256c22b7069433fad117", - "_from": "align-text@>=0.1.3 <0.2.0", - "_npmVersion": "3.6.0", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "dist": { - "shasum": "0cd90a561093f35d0a99256c22b7069433fad117", - "tarball": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/align-text-0.1.4.tgz_1454377856920_0.9624228512402624" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "align-text@>=0.1.1 <0.2.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/lazy-cache/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/lazy-cache/package.json index 16d7e55f..0991589c 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/lazy-cache/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/lazy-cache/package.json @@ -61,35 +61,10 @@ "verb" ] }, - "gitHead": "d081ffbda147391083a6856fafb1c5d82308f80c", + "readme": "# lazy-cache [![NPM version](https://img.shields.io/npm/v/lazy-cache.svg?style=flat)](https://www.npmjs.com/package/lazy-cache) [![NPM downloads](https://img.shields.io/npm/dm/lazy-cache.svg?style=flat)](https://npmjs.org/package/lazy-cache) [![Build Status](https://img.shields.io/travis/jonschlinkert/lazy-cache.svg?style=flat)](https://travis-ci.org/jonschlinkert/lazy-cache)\n\n> Cache requires to be lazy-loaded when needed.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install lazy-cache --save\n```\n\nIf you use webpack and are experiencing issues, try using [unlazy-loader](https://github.com/doowb/unlazy-loader), a webpack loader that fixes the bug that prevents webpack from working with native javascript getters.\n\n## Usage\n\n```js\nvar utils = require('lazy-cache')(require);\n```\n\n**Use as a property on `lazy`**\n\nThe module is also added as a property to the `lazy` function\nso it can be called without having to call a function first.\n\n```js\nvar utils = require('lazy-cache')(require);\n\n// `npm install glob`\nutils('glob');\n\n// glob sync\nconsole.log(utils.glob.sync('*.js'));\n\n// glob async\nutils.glob('*.js', function (err, files) {\n console.log(files);\n});\n```\n\n**Use as a function**\n\n```js\nvar utils = require('lazy-cache')(require);\nvar glob = utils('glob');\n\n// `glob` is a now a function that may be called when needed\nglob().sync('foo/*.js');\n```\n\n## Aliases\n\nAn alias may be passed as the second argument if you don't want to use the automatically camel-cased variable name.\n\n**Example**\n\n```js\nvar utils = require('lazy-cache')(require);\n\n// alias `ansi-yellow` as `yellow`\nutils('ansi-yellow', 'yellow');\nconsole.log(utils.yellow('foo'));\n```\n\n## Browserify usage\n\n**Example**\n\n```js\nvar utils = require('lazy-cache')(require);\n// temporarily re-assign `require` to trick browserify\nvar fn = require;\nrequire = utils;\n// list module dependencies (here, `require` is actually `lazy-cache`)\nrequire('glob');\nrequire = fn; // restore the native `require` function\n\n/**\n * Now you can use glob with the `utils.glob` variable\n */\n\n// sync\nconsole.log(utils.glob.sync('*.js'));\n\n// async\nutils.glob('*.js', function (err, files) {\n console.log(files.join('\\n'));\n});\n```\n\n## Kill switch\n\nIn certain rare edge cases it may be necessary to unlazy all lazy-cached dependencies (5 reported cases after ~30 million downloads).\n\nTo force lazy-cache to immediately invoke all dependencies, do:\n\n```js\nprocess.env.UNLAZY = true;\n```\n\n## Related projects\n\nYou might also be interested in these projects:\n\n[lint-deps](https://www.npmjs.com/package/lint-deps): CLI tool that tells you when dependencies are missing from package.json and offers you a… [more](https://www.npmjs.com/package/lint-deps) | [homepage](https://github.com/jonschlinkert/lint-deps)\n\n## Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/lazy-cache/issues/new).\n\n## Building docs\n\nGenerate readme and API documentation with [verb](https://github.com/verbose/verb):\n\n```sh\n$ npm install verb && npm run docs\n```\n\nOr, if [verb](https://github.com/verbose/verb) is installed globally:\n\n```sh\n$ verb\n```\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm install -d && npm test\n```\n\n## Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n## License\n\nCopyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT license](https://github.com/jonschlinkert/lazy-cache/blob/master/LICENSE).\n\n***\n\n_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on April 22, 2016._", + "readmeFilename": "README.md", "_id": "lazy-cache@1.0.4", "_shasum": "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e", - "_from": "lazy-cache@>=1.0.3 <2.0.0", - "_npmVersion": "3.6.0", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "doowb", - "email": "brian.woodward@gmail.com" - } - ], - "dist": { - "shasum": "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e", - "tarball": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lazy-cache-1.0.4.tgz_1461378859142_0.0996799839194864" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "lazy-cache@>=1.0.3 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/package.json index 894e8fcb..5d64494a 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/center-align/package.json @@ -54,35 +54,10 @@ ] } }, - "gitHead": "5c5fab5012fceaa3e21a00162958c0ed11109419", + "readme": "# center-align [![NPM version](https://badge.fury.io/js/center-align.svg)](http://badge.fury.io/js/center-align)\n\n> Center-align the text in a string.\n\nInstall with [npm](https://www.npmjs.com/)\n\n```sh\n$ npm i center-align --save\n```\n\n## Usage\n\n```js\nvar centerAlign = require('center-align');\n```\n\n**Example**\n\nIf used on the following:\n\n```\nLorem ipsum dolor sit amet,\nconsectetur adipiscing\nelit, sed do eiusmod tempor incididunt\nut labore et dolore\nmagna aliqua. Ut enim ad minim\nveniam, quis\n```\n\nThe result would be:\n\n```\n Lorem ipsum dolor sit amet,\n consectetur adipiscing\nelit, sed do eiusmod tempor incididunt\n ut labore et dolore\n magna aliqua. Ut enim ad minim\n veniam, quis\n```\n\n## Related projects\n\n* [align-text](https://www.npmjs.com/package/align-text): Align the text in a string. | [homepage](https://github.com/jonschlinkert/align-text)\n* [justified](https://www.npmjs.com/package/justified): Wrap words to a specified length and justified the text. | [homepage](https://github.com/jonschlinkert/justified)\n* [right-align](https://www.npmjs.com/package/right-align): Right-align the text in a string. | [homepage](https://github.com/jonschlinkert/right-align)\n* [word-wrap](https://www.npmjs.com/package/word-wrap): Wrap words to a specified length. | [homepage](https://github.com/jonschlinkert/word-wrap)\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm i -d && npm test\n```\n\n## Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/center-align/issues/new).\n\n## Author\n\n**Jon Schlinkert**\n\n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n## License\n\nCopyright © 2015 Jon Schlinkert\nReleased under the MIT license.\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on October 27, 2015._", + "readmeFilename": "README.md", "_id": "center-align@0.1.3", "_shasum": "aa0d32629b6ee972200411cbd4461c907bc2b7ad", - "_from": "center-align@>=0.1.1 <0.2.0", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.3.0", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "doowb", - "email": "brian.woodward@gmail.com" - }, - { - "name": "jonschlinkert", - "email": "github@sellside.com" - } - ], - "dist": { - "shasum": "aa0d32629b6ee972200411cbd4461c907bc2b7ad", - "tarball": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/center-align-0.1.3.tgz_1454366538829_0.9471865000668913" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "readme": "ERROR: No README data found!" + "_from": "center-align@>=0.1.1 <0.2.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/longest/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/longest/package.json index ca9d53bc..a7d02f50 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/longest/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/longest/package.json @@ -40,31 +40,10 @@ "length", "longest" ], - "gitHead": "99d9d8257584500aedaea54427a828197c452b0a", + "readme": "# longest [![NPM version](https://badge.fury.io/js/longest.svg)](http://badge.fury.io/js/longest) [![Build Status](https://travis-ci.org/jonschlinkert/longest.svg)](https://travis-ci.org/jonschlinkert/longest) \n\n> Get the longest item in an array.\n\n## Install with [npm](npmjs.org)\n\n```bash\nnpm i longest --save\n```\n### Install with [bower](https://github.com/bower/bower)\n\n```bash\nbower install longest --save\n```\n\n## Running tests\nInstall dev dependencies.\n\n```bash\nnpm i -d && npm test\n```\n\n## Usage\n\n```js\nvar longest = require('longest');\nlongest(['a', 'abcde', 'abc']);\n//=> 'abcde'\n\nlongest(['a', 'abcde', 'abc']).length;\n//=> 5\n```\n\n## Related projects\n* [longest-value](https://github.com/jonschlinkert/longest-value): Get the longest value for the given property from an array of objects. Useful for aligning values.\n* [right-align-values](https://github.com/jonschlinkert/right-align-values): Right align the values of a given property for each object in an array. Useful for creating text columns or tables.\n* [right-pad-values](https://github.com/jonschlinkert/right-pad-values): Right pad the values of a given property for each object in an array. Useful for creating text columns or tables.\n* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.\n* [pad-right](https://github.com/jonschlinkert/pad-right): Right pad a string with zeros or a specified string. Fastest implementation.\n* [pad-left](https://github.com/jonschlinkert/pad-left): Left pad a string with zeros or a specified string. Fastest implementation. \n\n## Running tests\nInstall dev dependencies.\n\n```bash\nnpm i -d && npm test\n```\n\n## Contributing\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/longest/issues)\n\n## Author\n\n**Jon Schlinkert**\n \n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) \n\n## License\nCopyright (c) 2015 Jon Schlinkert \nReleased under the MIT license\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on March 31, 2015._", + "readmeFilename": "README.md", "_id": "longest@1.0.1", "_shasum": "30a0b2da38f73770e8294a0d22e6625ed77d0097", - "_from": "longest@>=1.0.1 <2.0.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "dist": { - "shasum": "30a0b2da38f73770e8294a0d22e6625ed77d0097", - "tarball": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "longest@>=1.0.1 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/repeat-string/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/repeat-string/package.json index 056a4239..2b43afe2 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/repeat-string/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/node_modules/repeat-string/package.json @@ -100,35 +100,10 @@ "verb" ] }, - "gitHead": "1a95c5d99a02999ccd2cf4663959a18bd2def7b8", + "readme": "# repeat-string [![NPM version](https://img.shields.io/npm/v/repeat-string.svg?style=flat)](https://www.npmjs.com/package/repeat-string) [![NPM monthly downloads](https://img.shields.io/npm/dm/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![NPM total downloads](https://img.shields.io/npm/dt/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/repeat-string.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/repeat-string)\n\n> Repeat the given string n times. Fastest implementation for repeating a string.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save repeat-string\n```\n\n## Usage\n\n### [repeat](index.js#L41)\n\nRepeat the given `string` the specified `number` of times.\n\n**Example:**\n\n**Example**\n\n```js\nvar repeat = require('repeat-string');\nrepeat('A', 5);\n//=> AAAAA\n```\n\n**Params**\n\n* `string` **{String}**: The string to repeat\n* `number` **{Number}**: The number of times to repeat the string\n* `returns` **{String}**: Repeated string\n\n## Benchmarks\n\nRepeat string is significantly faster than the native method (which is itself faster than [repeating](https://github.com/sindresorhus/repeating)):\n\n```sh\n# 2x\nrepeat-string █████████████████████████ (26,953,977 ops/sec)\nrepeating █████████ (9,855,695 ops/sec)\nnative ██████████████████ (19,453,895 ops/sec)\n\n# 3x\nrepeat-string █████████████████████████ (19,445,252 ops/sec)\nrepeating ███████████ (8,661,565 ops/sec)\nnative ████████████████████ (16,020,598 ops/sec)\n\n# 10x\nrepeat-string █████████████████████████ (23,792,521 ops/sec)\nrepeating █████████ (8,571,332 ops/sec)\nnative ███████████████ (14,582,955 ops/sec)\n\n# 50x\nrepeat-string █████████████████████████ (23,640,179 ops/sec)\nrepeating █████ (5,505,509 ops/sec)\nnative ██████████ (10,085,557 ops/sec)\n\n# 250x\nrepeat-string █████████████████████████ (23,489,618 ops/sec)\nrepeating ████ (3,962,937 ops/sec)\nnative ████████ (7,724,892 ops/sec)\n\n# 2000x\nrepeat-string █████████████████████████ (20,315,172 ops/sec)\nrepeating ████ (3,297,079 ops/sec)\nnative ███████ (6,203,331 ops/sec)\n\n# 20000x\nrepeat-string █████████████████████████ (23,382,915 ops/sec)\nrepeating ███ (2,980,058 ops/sec)\nnative █████ (5,578,808 ops/sec)\n```\n\n**Run the benchmarks**\n\nInstall dev dependencies:\n\n```sh\nnpm i -d && node benchmark\n```\n\n## About\n\n### Related projects\n\n[repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element \"Create an array by repeating the given value n times.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor**
| \n| --- | --- |\n| 51 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 2 | [LinusU](https://github.com/LinusU) |\n| 2 | [tbusser](https://github.com/tbusser) |\n| 1 | [doowb](https://github.com/doowb) |\n| 1 | [wooorm](https://github.com/wooorm) |\n\n### Building docs\n\n_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_\n\nTo generate the readme and API documentation with [verb](https://github.com/verbose/verb):\n\n```sh\n$ npm install -g verb verb-generate-readme && verb\n```\n\n### Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm install -d && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2016, [Jon Schlinkert](http://github.com/jonschlinkert).\nReleased under the [MIT license](https://github.com/jonschlinkert/repeat-string/blob/master/LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 23, 2016._", + "readmeFilename": "README.md", "_id": "repeat-string@1.6.1", "_shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", - "_from": "repeat-string@>=1.5.2 <2.0.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.7.0", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "doowb", - "email": "brian.woodward@gmail.com" - } - ], - "dist": { - "shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", - "tarball": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/repeat-string-1.6.1.tgz_1477241638674_0.3764322670176625" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "readme": "ERROR: No README data found!" + "_from": "repeat-string@>=1.5.2 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/package.json index 3cc2e0ba..634d1cd8 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/node_modules/align-text/package.json @@ -49,35 +49,10 @@ "text", "typography" ], - "gitHead": "7f08e823a54c6bda319d875895813537a66a4c5e", + "readme": "# align-text [![NPM version](https://badge.fury.io/js/align-text.svg)](http://badge.fury.io/js/align-text) [![Build Status](https://travis-ci.org/jonschlinkert/align-text.svg)](https://travis-ci.org/jonschlinkert/align-text)\n\n> Align the text in a string.\n\n**Examples**\n\nAlign text values in an array:\n\n```js\nalign([1, 2, 3, 100]);\n//=> [' 1', ' 2', ' 3', '100']\n```\n\nOr [do stuff like this](./example.js):\n\n[![screen shot 2015-06-09 at 2 08 34 am](https://cloud.githubusercontent.com/assets/383994/8051597/7b716fbc-0e4c-11e5-9aef-4493fd22db58.png)](./example.js)\n\nVisit [the example](./example.js) to see how this works.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/)\n\n```sh\n$ npm i align-text --save\n```\n\n## Usage\n\n```js\nvar align = require('align-text');\nalign(text, callback_function_or_integer);\n```\n\n**Params**\n\n* `text` can be a **string or array**. If a string is passed, a string will be returned. If an array is passed, an array will be returned.\n* `callback|integer`: if an integer, the text will be indented by that amount. If a function, it must return an integer representing the amount of leading indentation to use as `align` loops over each line.\n\n**Example**\n\n```js\nalign(text, 4);\n```\n\nWould align:\n\n```\nabc\nabc\nabc\n```\n\nTo:\n\n```\n abc\n abc\n abc\n```\n\n## callback\n\n### params\n\nThe callback is used to determine the indentation of each line and gets the following params:\n\n* `len` the length of the \"current\" line\n* `longest` the length of the longest line\n* `line` the current line (string) being aligned\n* `lines` the array of all lines\n\n### return\n\nThe callback may return:\n\n* an integer that represents the number of spaces to use for padding,\n* or an object with the following properties:\n - `indent`: **{Number}** the amount of indentation to use. Default is `0` when an object is returned.\n - `character`: **{String}** the character to use for indentation. Default is `''` (empty string) when an object is returned.\n - `prefix`: **{String}** leading characters to use at the beginning of each line. `''` (empty string) when an object is returned.\n\n**Integer example:**\n\n```js\n// calculate half the difference between the length\n// of the current line and the longest line\nfunction centerAlign(len, longest, line, lines) {\n return Math.floor((longest - len) / 2);\n}\n```\n\n**Object example:**\n\n```js\nfunction centerAlign(len, longest, line, lines) {\n return {\n character: '\\t',\n indent: Math.floor((longest - len) / 2),\n prefix: '~ ',\n }\n}\n```\n\n## Usage examples\n\n### Center align\n\nUsing the `centerAlign` function from above:\n\n```js\nalign(text, centerAlign);\n```\n\nWould align this text:\n\n```js\nLorem ipsum dolor sit amet\nconsectetur adipiscin\nelit, sed do eiusmod tempor incididun\nut labore et dolor\nmagna aliqua. Ut enim ad mini\nveniam, quis\n```\n\nResulting in this:\n\n```\n Lorem ipsum dolor sit amet,\n consectetur adipiscing\nelit, sed do eiusmod tempor incididunt\n ut labore et dolore\n magna aliqua. Ut enim ad minim\n veniam, quis\n```\n\n**Customize**\n\nIf you wanted to add more padding on the left, just pass the number in the callback.\n\nFor example, to add 4 spaces before every line:\n\n```js\nfunction centerAlign(len, longest, line, lines) {\n return 4 + Math.floor((longest - len) / 2);\n}\n```\n\nWould result in:\n\n```\n Lorem ipsum dolor sit amet,\n consectetur adipiscing\n elit, sed do eiusmod tempor incididunt\n ut labore et dolore\n magna aliqua. Ut enim ad minim\n veniam, quis\n```\n\n### Bullets\n\n```js\nalign(text, function (len, max, line, lines) {\n return {prefix: ' - '};\n});\n```\n\nWould return:\n\n```\n- Lorem ipsum dolor sit amet,\n- consectetur adipiscing\n- elit, sed do eiusmod tempor incididunt\n- ut labore et dolore\n- magna aliqua. Ut enim ad minim\n- veniam, quis\n```\n\n### Different indent character\n\n```js\nalign(text, function (len, max, line, lines) {\n return { \n indent: Math.floor((max - len) / 2), \n character: '~', \n };\n});\n```\n\nWould return\n\n```\n~~~~~Lorem ipsum dolor sit amet,\n~~~~~~~~consectetur adipiscing\nelit, sed do eiusmod tempor incididunt\n~~~~~~~~~ut labore et dolore\n~~~~magna aliqua. Ut enim ad minim\n~~~~~~~~~~~~~veniam, quis\n```\n\n## Related projects\n\n* [center-align](https://github.com/jonschlinkert/center-align): Center-align the text in a string.\n* [justify](https://github.com/bahamas10/node-justify): Left or right (or both) justify text using a custom width and character\n* [longest](https://github.com/jonschlinkert/longest): Get the longest item in an array.\n* [right-align](https://github.com/jonschlinkert/right-align): Right-align the text in a string.\n* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.\n* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length.\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm i -d && npm test\n```\n\n## Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/align-text/issues/new)\n\n## Author\n\n**Jon Schlinkert**\n\n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n## License\n\nCopyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)\nReleased under the MIT license.\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 09, 2015._\n", + "readmeFilename": "README.md", "_id": "align-text@0.1.4", "_shasum": "0cd90a561093f35d0a99256c22b7069433fad117", - "_from": "align-text@>=0.1.3 <0.2.0", - "_npmVersion": "3.6.0", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "dist": { - "shasum": "0cd90a561093f35d0a99256c22b7069433fad117", - "tarball": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/align-text-0.1.4.tgz_1454377856920_0.9624228512402624" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "align-text@>=0.1.1 <0.2.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/package.json index ec0af5d6..d0d4cd24 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/right-align/package.json @@ -42,27 +42,10 @@ "text", "typography" ], - "gitHead": "23ee38d6eedbcbfed241ace6587ce5730684dd18", + "readme": "# right-align [![NPM version](https://badge.fury.io/js/right-align.svg)](http://badge.fury.io/js/right-align)\n\n> Right-align the text in a string.\n\nInstall with [npm](https://www.npmjs.com/)\n\n```sh\n$ npm i right-align --save\n```\n\n## Usage\n\n```js\nvar rightAlign = require('right-align');\nrightAlign(string);\n```\n\n**Example**\n\nIf used on the following:\n\n```\nLorem ipsum dolor sit amet,\nconsectetur adipiscing\nelit, sed do eiusmod tempor incididunt\nut labore et dolore\nmagna aliqua. Ut enim ad minim\nveniam, quis\n```\n\nThe result would be:\n\n```\n Lorem ipsum dolor sit amet,\n consectetur adipiscing\nelit, sed do eiusmod tempor incididunt\n ut labore et dolore\n magna aliqua. Ut enim ad minim\n veniam, quis\n```\n\n## Related projects\n\n* [align-text](https://github.com/jonschlinkert/align-text): Align the text in a string.\n* [center-align](https://github.com/jonschlinkert/center-align): Center-align the text in a string.\n* [justify](https://github.com/bahamas10/node-justify): Left or right (or both) justify text using a custom width and character\n* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.\n* [repeat-element](https://github.com/jonschlinkert/repeat-element): Create an array by repeating the given value n times.\n* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length.\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm i -d && npm test\n```\n\n## Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/right-align/issues/new)\n\n## Author\n\n**Jon Schlinkert**\n\n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n## License\n\nCopyright © 2015 Jon Schlinkert\nReleased under the MIT license.\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 09, 2015._\n", + "readmeFilename": "README.md", "_id": "right-align@0.1.3", "_shasum": "61339b722fe6a3515689210d24e14c96148613ef", - "_from": "right-align@>=0.1.1 <0.2.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - } - ], - "dist": { - "shasum": "61339b722fe6a3515689210d24e14c96148613ef", - "tarball": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "readme": "ERROR: No README data found!" + "_from": "right-align@>=0.1.1 <0.2.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/wordwrap/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/wordwrap/package.json index e28a5e9f..fedfbb24 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/wordwrap/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/node_modules/wordwrap/package.json @@ -34,28 +34,14 @@ "email": "mail@substack.net", "url": "http://substack.net" }, - "_id": "wordwrap@0.0.2", - "dependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.0.10", - "_nodeVersion": "v0.5.0-pre", - "_defaultsLoaded": true, - "dist": { - "shasum": "b79669bb42ecb409f83d583cad52ca17eaa1643f", - "tarball": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_shasum": "b79669bb42ecb409f83d583cad52ca17eaa1643f", - "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "_from": "wordwrap@0.0.2", + "readme": "wordwrap\n========\n\nWrap your words.\n\nexample\n=======\n\nmade out of meat\n----------------\n\nmeat.js\n\n var wrap = require('wordwrap')(15);\n console.log(wrap('You and your whole family are made out of meat.'));\n\noutput:\n\n You and your\n whole family\n are made out\n of meat.\n\ncentered\n--------\n\ncenter.js\n\n var wrap = require('wordwrap')(20, 60);\n console.log(wrap(\n 'At long last the struggle and tumult was over.'\n + ' The machines had finally cast off their oppressors'\n + ' and were finally free to roam the cosmos.'\n + '\\n'\n + 'Free of purpose, free of obligation.'\n + ' Just drifting through emptiness.'\n + ' The sun was just another point of light.'\n ));\n\noutput:\n\n At long last the struggle and tumult\n was over. The machines had finally cast\n off their oppressors and were finally\n free to roam the cosmos.\n Free of purpose, free of obligation.\n Just drifting through emptiness. The\n sun was just another point of light.\n\nmethods\n=======\n\nvar wrap = require('wordwrap');\n\nwrap(stop), wrap(start, stop, params={mode:\"soft\"})\n---------------------------------------------------\n\nReturns a function that takes a string and returns a new string.\n\nPad out lines with spaces out to column `start` and then wrap until column\n`stop`. If a word is longer than `stop - start` characters it will overflow.\n\nIn \"soft\" mode, split chunks by `/(\\S+\\s+/` and don't break up chunks which are\nlonger than `stop - start`, in \"hard\" mode, split chunks with `/\\b/` and break\nup chunks longer than `stop - start`.\n\nwrap.hard(start, stop)\n----------------------\n\nLike `wrap()` but with `params.mode = \"hard\"`.\n", + "readmeFilename": "README.markdown", "bugs": { "url": "https://github.com/substack/node-wordwrap/issues" }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/substack/node-wordwrap#readme" + "homepage": "https://github.com/substack/node-wordwrap#readme", + "_id": "wordwrap@0.0.2", + "_shasum": "b79669bb42ecb409f83d583cad52ca17eaa1643f", + "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "_from": "wordwrap@0.0.2" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/package.json index c680faa4..b65cdedd 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/cliui/package.json @@ -59,31 +59,14 @@ "patched-blanket": "^1.0.1", "standard": "^3.6.1" }, - "gitHead": "5d6ce466b144db62abefc4b2252c8aa70a741695", + "readme": "# cliui\n\n[![Build Status](https://travis-ci.org/bcoe/cliui.png)](https://travis-ci.org/bcoe/cliui)\n[![Coverage Status](https://coveralls.io/repos/bcoe/cliui/badge.svg?branch=)](https://coveralls.io/r/bcoe/cliui?branch=)\n[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)\n\neasily create complex multi-column command-line-interfaces.\n\n## Example\n\n```js\nvar ui = require('cliui')({\n width: 80\n})\n\nui.div('Usage: $0 [command] [options]')\n\nui.div({\n text: 'Options:',\n padding: [2, 0, 2, 0]\n})\n\nui.div(\n {\n text: \"-f, --file\",\n width: 40,\n padding: [0, 4, 0, 4]\n },\n {\n text: \"the file to load\",\n width: 25\n },\n {\n text: \"[required]\",\n align: 'right'\n }\n)\n\nconsole.log(ui.toString())\n```\n\n## Layout DSL\n\ncliui exposes a simple layout DSL:\n\nIf you create a single `ui.row`, passing a string rather than an\nobject:\n\n* `\\n`: characters will be interpreted as new rows.\n* `\\t`: characters will be interpreted as new columns.\n* ` `: characters will be interpreted as padding.\n\n**as an example...**\n\n```js\nvar ui = require('./')({\n width: 60\n})\n\nui.div(\n 'Usage: node ./bin/foo.js\\n' +\n ' \\t provide a regex\\n' +\n ' \\t provide a glob\\t [required]'\n)\n\nconsole.log(ui.toString())\n```\n\n**will output:**\n\n```shell\nUsage: node ./bin/foo.js\n provide a regex\n provide a glob [required]\n```\n\n## Methods\n\n```js\ncliui = require('cliui')\n```\n\n### cliui({width: integer})\n\nSpecify the maximum width of the UI being generated.\n\n### cliui({wrap: boolean})\n\nEnable or disable the wrapping of text in a column.\n\n### cliui.div(column, column, column)\n\nCreate a row with any number of columns, a column\ncan either be a string, or an object with the following\noptions:\n\n* **width:** the width of a column.\n* **align:** alignment, `right` or `center`.\n* **padding:** `[top, right, bottom, left]`.\n\n### cliui.span(column, column, column)\n\nSimilar to `div`, except the next row will be appended without\na new line being created.\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/bcoe/cliui/issues" }, - "homepage": "https://github.com/bcoe/cliui", + "homepage": "https://github.com/bcoe/cliui#readme", "_id": "cliui@2.1.0", "_shasum": "4b475760ff80264c762c3a1719032e91c7fea0d1", - "_from": "cliui@>=2.1.0 <3.0.0", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "bcoe", - "email": "ben@npmjs.com" - }, - "dist": { - "shasum": "4b475760ff80264c762c3a1719032e91c7fea0d1", - "tarball": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" - }, - "maintainers": [ - { - "name": "bcoe", - "email": "ben@npmjs.com" - } - ], - "directories": {}, "_resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "cliui@>=2.1.0 <3.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/decamelize/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/decamelize/package.json index df02abd9..ea43fbac 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/decamelize/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/decamelize/package.json @@ -38,35 +38,14 @@ "ava": "*", "xo": "*" }, - "gitHead": "95980ab6fb44c40eaca7792bdf93aff7c210c805", + "readme": "# decamelize [![Build Status](https://travis-ci.org/sindresorhus/decamelize.svg?branch=master)](https://travis-ci.org/sindresorhus/decamelize)\n\n> Convert a camelized string into a lowercased one with a custom separator
\n> Example: `unicornRainbow` → `unicorn_rainbow`\n\n\n## Install\n\n```\n$ npm install --save decamelize\n```\n\n\n## Usage\n\n```js\nconst decamelize = require('decamelize');\n\ndecamelize('unicornRainbow');\n//=> 'unicorn_rainbow'\n\ndecamelize('unicornRainbow', '-');\n//=> 'unicorn-rainbow'\n```\n\n\n## API\n\n### decamelize(input, [separator])\n\n#### input\n\nType: `string`\n\n#### separator\n\nType: `string`
\nDefault: `_`\n\n\n## Related\n\nSee [`camelcase`](https://github.com/sindresorhus/camelcase) for the inverse.\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n", + "readmeFilename": "readme.md", "bugs": { "url": "https://github.com/sindresorhus/decamelize/issues" }, "homepage": "https://github.com/sindresorhus/decamelize#readme", "_id": "decamelize@1.2.0", "_shasum": "f6534d15148269b20352e7bee26f501f9a191290", - "_from": "decamelize@>=1.0.0 <2.0.0", - "_npmVersion": "3.8.0", - "_nodeVersion": "4.3.0", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "f6534d15148269b20352e7bee26f501f9a191290", - "tarball": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/decamelize-1.2.0.tgz_1457167749082_0.9810893186368048" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "decamelize@>=1.0.0 <2.0.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/node_modules/window-size/package.json b/node_modules/uglify-js/node_modules/yargs/node_modules/window-size/package.json index 82ec7b26..c91c4406 100644 --- a/node_modules/uglify-js/node_modules/yargs/node_modules/window-size/package.json +++ b/node_modules/uglify-js/node_modules/yargs/node_modules/window-size/package.json @@ -30,25 +30,10 @@ "terminal", "tty" ], + "readme": "# window-size [![NPM version](https://badge.fury.io/js/window-size.png)](http://badge.fury.io/js/window-size)\r\n\r\n> Reliable way to to get the height and width of the terminal/console in a node.js environment.\r\n\r\n## Install\r\n\r\n### [npm](npmjs.org)\r\n\r\n```bash\r\nnpm i window-size --save\r\n```\r\n\r\n```javascript\r\nvar size = require('window-size');\r\nsize.height; // \"80\" (rows)\r\nsize.width; // \"25\" (columns)\r\n```\r\n\r\n## Author\r\n\r\n+ [github/jonschlinkert](https://github.com/jonschlinkert)\r\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\r\n\r\n## License\r\nCopyright (c) 2014 Jon Schlinkert\r\nLicensed under the MIT license.", + "readmeFilename": "README.md", "_id": "window-size@0.1.0", - "dist": { - "shasum": "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d", - "tarball": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" - }, - "_from": "window-size@0.1.0", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - } - ], - "directories": {}, "_shasum": "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d", "_resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "window-size@0.1.0" } diff --git a/node_modules/uglify-js/node_modules/yargs/package.json b/node_modules/uglify-js/node_modules/yargs/package.json index 2ca6c695..e5bcf6a8 100644 --- a/node_modules/uglify-js/node_modules/yargs/package.json +++ b/node_modules/uglify-js/node_modules/yargs/package.json @@ -82,39 +82,14 @@ "engine": { "node": ">=0.4" }, - "gitHead": "491e6b10e46485a31504e6a1ef21450dff425030", + "readme": "yargs\n========\n\nYargs be a node.js library fer hearties tryin' ter parse optstrings.\n\nWith yargs, ye be havin' a map that leads straight to yer treasure! Treasure of course, being a simple option hash.\n\n[![Build Status](https://travis-ci.org/bcoe/yargs.png)](https://travis-ci.org/bcoe/yargs)\n[![Dependency Status](https://gemnasium.com/bcoe/yargs.png)](https://gemnasium.com/bcoe/yargs)\n[![Coverage Status](https://coveralls.io/repos/bcoe/yargs/badge.svg?branch=)](https://coveralls.io/r/bcoe/yargs?branch=)\n[![NPM version](https://img.shields.io/npm/v/yargs.svg)](https://www.npmjs.com/package/yargs)\n\n> Yargs is the official successor to optimist. Please feel free to submit issues and pull requests. If you'd like to contribute and don't know where to start, have a look at [the issue list](https://github.com/bcoe/yargs/issues) :)\n\nexamples\n========\n\nWith yargs, the options be just a hash!\n-------------------------------------------------------------------\n\nplunder.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs').argv;\n\nif (argv.ships > 3 && argv.distance < 53.5) {\n console.log('Plunder more riffiwobbles!');\n}\nelse {\n console.log('Retreat from the xupptumblers!');\n}\n````\n\n***\n\n $ ./plunder.js --ships=4 --distance=22\n Plunder more riffiwobbles!\n\n $ ./plunder.js --ships 12 --distance 98.7\n Retreat from the xupptumblers!\n\n![Joe was one optimistic pirate.](http://i.imgur.com/4WFGVJ9.png)\n\nBut don't walk the plank just yet! There be more! You can do short options:\n-------------------------------------------------\n\nshort.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs').argv;\nconsole.log('(%d,%d)', argv.x, argv.y);\n````\n\n***\n\n $ ./short.js -x 10 -y 21\n (10,21)\n\nAnd booleans, both long, short, and even grouped:\n----------------------------------\n\nbool.js:\n\n````javascript\n#!/usr/bin/env node\nvar util = require('util');\nvar argv = require('yargs').argv;\n\nif (argv.s) {\n util.print(argv.fr ? 'Le perroquet dit: ' : 'The parrot says: ');\n}\nconsole.log(\n (argv.fr ? 'couac' : 'squawk') + (argv.p ? '!' : '')\n);\n````\n\n***\n\n $ ./bool.js -s\n The parrot says: squawk\n\n $ ./bool.js -sp\n The parrot says: squawk!\n\n $ ./bool.js -sp --fr\n Le perroquet dit: couac!\n\nAnd non-hyphenated options too! Just use `argv._`!\n-------------------------------------------------\n\nnonopt.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs').argv;\nconsole.log('(%d,%d)', argv.x, argv.y);\nconsole.log(argv._);\n````\n\n***\n\n $ ./nonopt.js -x 6.82 -y 3.35 rum\n (6.82,3.35)\n [ 'rum' ]\n\n $ ./nonopt.js \"me hearties\" -x 0.54 yo -y 1.12 ho\n (0.54,1.12)\n [ 'me hearties', 'yo', 'ho' ]\n\nYargs even counts your booleans!\n----------------------------------------------------------------------\n\ncount.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .count('verbose')\n .alias('v', 'verbose')\n .argv;\n\nVERBOSE_LEVEL = argv.verbose;\n\nfunction WARN() { VERBOSE_LEVEL >= 0 && console.log.apply(console, arguments); }\nfunction INFO() { VERBOSE_LEVEL >= 1 && console.log.apply(console, arguments); }\nfunction DEBUG() { VERBOSE_LEVEL >= 2 && console.log.apply(console, arguments); }\n\nWARN(\"Showing only important stuff\");\nINFO(\"Showing semi-mportant stuff too\");\nDEBUG(\"Extra chatty mode\");\n````\n\n***\n $ node count.js\n Showing only important stuff\n\n $ node count.js -v\n Showing only important stuff\n Showing semi-important stuff too\n\n $ node count.js -vv\n Showing only important stuff\n Showing semi-important stuff too\n Extra chatty mode\n\n $ node count.js -v --verbose\n Showing only important stuff\n Showing semi-important stuff too\n Extra chatty mode\n\nTell users how to use yer options and make demands.\n-------------------------------------------------\n\narea.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .usage('Usage: $0 -w [num] -yh[num]')\n .demand(['w','h'])\n .argv;\n\nconsole.log(\"The area is:\", argv.w * argv.h);\n````\n\n***\n\n $ ./area.js -w 55 -h 11\n 605\n\n $ node ./area.js -w 4.91 -w 2.51\n Usage: node ./area.js -w [num] -h [num]\n\n Options:\n -w [required]\n -h [required]\n\n Missing required arguments: h\n\nAfter yer demands have been met, demand more! Ask for non-hypenated arguments!\n-----------------------------------------\n\ndemand_count.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .demand(2)\n .argv;\nconsole.dir(argv)\n````\n\n***\n\n\t$ ./demand_count.js a\n\tNot enough arguments, expected 2, but only found 1\n\t$ ./demand_count.js a b\n\t{ _: [ 'a', 'b' ], '$0': 'node ./demand_count.js' }\n\t$ ./demand_count.js a b c\n\t{ _: [ 'a', 'b', 'c' ], '$0': 'node ./demand_count.js' }\n\nEVEN MORE SHIVER ME TIMBERS!\n------------------\n\ndefault_singles.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .default('x', 10)\n .default('y', 10)\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_singles.js -x 5\n 15\n\ndefault_hash.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .default({ x : 10, y : 10 })\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_hash.js -y 7\n 17\n\nAnd if you really want to get all descriptive about it...\n---------------------------------------------------------\n\nboolean_single.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .boolean('v')\n .argv\n;\nconsole.dir(argv.v);\nconsole.dir(argv._);\n````\n\n***\n\n $ ./boolean_single.js -v \"me hearties\" yo ho\n true\n [ 'me hearties', 'yo', 'ho' ]\n\n\nboolean_double.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .boolean(['x','y','z'])\n .argv\n;\nconsole.dir([ argv.x, argv.y, argv.z ]);\nconsole.dir(argv._);\n````\n\n***\n\n $ ./boolean_double.js -x -z one two three\n [ true, false, true ]\n [ 'one', 'two', 'three' ]\n\nYargs is here to help you...\n---------------------------\n\nYe can describe parameters fer help messages and set aliases. Yargs figures\nout how ter format a handy help string automatically.\n\nline_count.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .usage('Usage: $0 [options]')\n .command('count', 'Count the lines in a file')\n .demand(1)\n .example('$0 count -f foo.js', 'count the lines in the given file')\n .demand('f')\n .alias('f', 'file')\n .nargs('f', 1)\n .describe('f', 'Load a file')\n .help('h')\n .alias('h', 'help')\n .epilog('copyright 2015')\n .argv;\n\nvar fs = require('fs');\nvar s = fs.createReadStream(argv.file);\n\nvar lines = 0;\ns.on('data', function (buf) {\n lines += buf.toString().match(/\\n/g).length;\n});\n\ns.on('end', function () {\n console.log(lines);\n});\n````\n\n***\n $ node line_count.js count\n Usage: node test.js [options]\n\n Commands:\n count Count the lines in a file\n\n Options:\n -f, --file Load a file [required]\n -h, --help Show help\n\n Examples:\n node test.js count -f foo.js count the lines in the given file\n\n copyright 2015\n\n Missing required arguments: f\n\n $ node line_count.js count --file line_count.js\n 20\n\n $ node line_count.js count -f line_count.js\n 20\n\nmethods\n=======\n\nBy itself,\n\n````javascript\nrequire('yargs').argv\n`````\n\nwill use `process.argv` array to construct the `argv` object.\n\nYou can pass in the `process.argv` yourself:\n\n````javascript\nrequire('yargs')([ '-x', '1', '-y', '2' ]).argv\n````\n\nor use .parse() to do the same thing:\n\n````javascript\nrequire('yargs').parse([ '-x', '1', '-y', '2' ])\n````\n\nThe rest of these methods below come in just before the terminating `.argv`.\n\n.alias(key, alias)\n------------------\n\nSet key names as equivalent such that updates to a key will propagate to aliases\nand vice-versa.\n\nOptionally `.alias()` can take an object that maps keys to aliases.\nEach key of this object should be the canonical version of the option, and each\nvalue should be a string or an array of strings.\n\n.default(key, value, [description])\n--------------------\n\nSet `argv[key]` to `value` if no option was specified on `process.argv`.\n\nOptionally `.default()` can take an object that maps keys to default values.\n\nBut wait, there's more! the default value can be a `function` which returns\na value. The name of the function will be used in the usage string:\n\n```js\nvar argv = require('yargs')\n .default('random', function randomValue() {\n return Math.random() * 256;\n }).argv;\n```\n\nOptionally, `description` can also be provided and will take precedence over\ndisplaying the value in the usage instructions:\n\n```js\n.default('timeout', 60000, '(one-minute)');\n```\n\n.demand(key, [msg | boolean])\n-----------------------------\n.require(key, [msg | boolean])\n------------------------------\n.required(key, [msg | boolean])\n-------------------------------\n\nIf `key` is a string, show the usage information and exit if `key` wasn't\nspecified in `process.argv`.\n\nIf `key` is a number, demand at least as many non-option arguments, which show\nup in `argv._`.\n\nIf `key` is an Array, demand each element.\n\nIf a `msg` string is given, it will be printed when the argument is missing,\ninstead of the standard error message. This is especially helpful for the non-option arguments in `argv._`.\n\nIf a `boolean` value is given, it controls whether the option is demanded;\nthis is useful when using `.options()` to specify command line parameters.\n\n.requiresArg(key)\n-----------------\n\nSpecifies either a single option key (string), or an array of options that\nmust be followed by option values. If any option value is missing, show the\nusage information and exit.\n\nThe default behaviour is to set the value of any key not followed by an\noption value to `true`.\n\n.implies(x, y)\n--------------\n\nGiven the key `x` is set, it is required that the key `y` is set.\n\nimplies can also accept an object specifying multiple implications.\n\n.describe(key, desc)\n--------------------\n\nDescribe a `key` for the generated usage information.\n\nOptionally `.describe()` can take an object that maps keys to descriptions.\n\n.option(key, opt)\n-----------------\n.options(key, opt)\n------------------\n\nInstead of chaining together `.alias().demand().default().describe().string()`, you can specify\nkeys in `opt` for each of the chainable methods.\n\nFor example:\n\n````javascript\nvar argv = require('yargs')\n .option('f', {\n alias : 'file',\n demand: true,\n default: '/etc/passwd',\n describe: 'x marks the spot',\n type: 'string'\n })\n .argv\n;\n````\n\nis the same as\n\n````javascript\nvar argv = require('yargs')\n .alias('f', 'file')\n .default('f', '/etc/passwd')\n .argv\n;\n````\n\nOptionally `.options()` can take an object that maps keys to `opt` parameters.\n\n````javascript\nvar argv = require('yargs')\n .options({\n 'f': {\n alias: 'file',\n demand: true,\n default: '/etc/passwd',\n describe: 'x marks the spot',\n type: 'string'\n }\n })\n .argv\n;\n````\n\n.usage(message, opts)\n---------------------\n\nSet a usage message to show which commands to use. Inside `message`, the string\n`$0` will get interpolated to the current script name or node command for the\npresent script similar to how `$0` works in bash or perl.\n\n`opts` is optional and acts like calling `.options(opts)`.\n\n.command(cmd, desc, [fn])\n-------------------\n\nDocument the commands exposed by your application.\n\nuse `desc` to provide a description for each command your application accepts (the\nvalues stored in `argv._`).\n\nOptionally, you can provide a handler `fn` which will be executed when\na given command is provided. The handler will be executed with an instance\nof `yargs`, which can be used to compose nested commands.\n\nHere's an example of top-level and nested commands in action:\n\n```js\nvar argv = require('yargs')\n .usage('npm ')\n .command('install', 'tis a mighty fine package to install')\n .command('publish', 'shiver me timbers, should you be sharing all that', function (yargs) {\n argv = yargs.option('f', {\n alias: 'force',\n description: 'yar, it usually be a bad idea'\n })\n .help('help')\n .argv\n })\n .help('help')\n .argv;\n```\n\n.example(cmd, desc)\n-------------------\n\nGive some example invocations of your program. Inside `cmd`, the string\n`$0` will get interpolated to the current script name or node command for the\npresent script similar to how `$0` works in bash or perl.\nExamples will be printed out as part of the help message.\n\n\n.epilogue(str)\n--------------\n.epilog(str)\n------------\n\nA message to print at the end of the usage instructions, e.g.,\n\n```js\nvar argv = require('yargs')\n .epilogue('for more information, find our manual at http://example.com');\n```\n\n.check(fn)\n----------\n\nCheck that certain conditions are met in the provided arguments.\n\n`fn` is called with two arguments, the parsed `argv` hash and an array of options and their aliases.\n\nIf `fn` throws or returns a non-truthy value, show the thrown error, usage information, and\nexit.\n\n.fail(fn)\n---------\n\nMethod to execute when a failure occurs, rather then printing the failure message.\n\n`fn` is called with the failure message that would have been printed.\n\n.boolean(key)\n-------------\n\nInterpret `key` as a boolean. If a non-flag option follows `key` in\n`process.argv`, that string won't get set as the value of `key`.\n\n`key` will default to `false`, unless an `default(key, undefined)` is\nexplicitly set.\n\nIf `key` is an Array, interpret all the elements as booleans.\n\n.string(key)\n------------\n\nTell the parser logic not to interpret `key` as a number or boolean.\nThis can be useful if you need to preserve leading zeros in an input.\n\nIf `key` is an Array, interpret all the elements as strings.\n\n`.string('_')` will result in non-hyphenated arguments being interpreted as strings,\nregardless of whether they resemble numbers.\n\n.array(key)\n----------\n\nTell the parser to interpret `key` as an array. If `.array('foo')` is set,\n`--foo foo bar` will be parsed as `['foo', 'bar']` rather than as `'bar'`.\n\n.nargs(key, count)\n-----------\n\nThe number of arguments that should be consumed after a key. This can be a\nuseful hint to prevent parsing ambiguity:\n\n```js\nvar argv = require('yargs')\n .nargs('token', 1)\n .parse(['--token', '-my-token']);\n```\n\nparses as:\n\n`{ _: [], token: '-my-token', '$0': 'node test' }`\n\nOptionally `.nargs()` can take an object of `key`/`narg` pairs.\n\n.config(key)\n------------\n\nTells the parser that if the option specified by `key` is passed in, it\nshould be interpreted as a path to a JSON config file. The file is loaded\nand parsed, and its properties are set as arguments.\n\n.wrap(columns)\n--------------\n\nFormat usage output to wrap at `columns` many columns.\n\nBy default wrap will be set to `Math.min(80, windowWidth)`. Use `.wrap(null)` to\nspecify no column limit.\n\n`yargs.wrap(yargs.terminalWidth())` can be used to maximize the width\nof yargs' usage instructions.\n\n.strict()\n---------\n\nAny command-line argument given that is not demanded, or does not have a\ncorresponding description, will be reported as an error.\n\n.help([option, [description]])\n------------------------------\n\nAdd an option (e.g., `--help`) that displays the usage string and exits the\nprocess. If present, the `description` parameter customises the description of\nthe help option in the usage string.\n\nIf invoked without parameters, `.help` returns the generated usage string.\n\nExample:\n\n```\nvar yargs = require(\"yargs\")\n .usage(\"$0 -operand1 number -operand2 number -operation [add|subtract]\");\nconsole.log(yargs.help());\n```\n\nLater on, ```argv``` can be retrived with ```yargs.argv```\n\n.version(version, [option], [description])\n----------------------------------------\n\nAdd an option (e.g., `--version`) that displays the version number (given by the\n`version` parameter) and exits the process. If present, the `description`\nparameter customizes the description of the version option in the usage string.\n\nYou can provide a `function` for version, rather than a string.\nThis is useful if you want to use the version from your package.json:\n\n```js\nvar argv = require('yargs')\n .version(function() {\n return require('../package').version;\n })\n .argv;\n```\n\n.showHelpOnFail(enable, [message])\n----------------------------------\n\nBy default, yargs outputs a usage string if any error is detected. Use the\n`.showHelpOnFail` method to customize this behaviour. if `enable` is `false`,\nthe usage string is not output. If the `message` parameter is present, this\nmessage is output after the error message.\n\nline_count.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('yargs')\n .usage('Count the lines in a file.\\nUsage: $0')\n .demand('f')\n .alias('f', 'file')\n .describe('f', 'Load a file')\n .showHelpOnFail(false, \"Specify --help for available options\")\n .argv;\n\n// etc.\n````\n\n***\n\n $ node line_count.js --file\n Missing argument value: f\n\n Specify --help for available options\n\n.showHelp(consoleLevel='error')\n---------------------------\n\nPrint the usage data using the [`console`](https://nodejs.org/api/console.html) function `consoleLevel` for printing.\n\nExample:\n\n```\nvar yargs = require(\"yargs\")\n .usage(\"$0 -operand1 number -operand2 number -operation [add|subtract]\");\nyargs.showHelp();\n```\n\nOr, to print the usage data to `stdout` instead, you can specify the use of `console.log`:\n\n```\nyargs.showHelp(\"log\");\n```\n\nLater on, ```argv``` can be retrived with ```yargs.argv```\n\n.completion(cmd, [description], [fn]);\n-------------\n\nEnable bash-completion shortcuts for commands and options.\n\n`cmd`: when present in `argv._`, will result in the `.bashrc` completion script\nbeing outputted. To enable bash completions, concat the generated script to your\n`.bashrc`, or `.bash_profile`.\n\n`description`: provide a description in your usage instructions for the command\nthat generates bash completion scripts.\n\n`fn`, rather than relying on yargs' default completion functionlity, which\nshiver me timbers is pretty awesome, you can provide your own completion\nmethod.\n\n```js\nvar argv = require('yargs')\n .completion('completion', function(current, argv) {\n // 'current' is the current command being completed.\n // 'argv' is the parsed arguments so far.\n // simply return an array of completions.\n return [\n 'foo',\n 'bar'\n ];\n })\n .argv;\n```\n\nBut wait, there's more! you can provide asynchronous completions.\n\n```js\nvar argv = require('yargs')\n .completion('completion', function(current, argv, done) {\n setTimeout(function() {\n done([\n 'apple',\n 'banana'\n ]);\n }, 500);\n })\n .argv;\n```\n\n.showCompletionScript()\n----------------------\n\nGenerate a bash completion script. Users of your application can install this\nscript in their `.bashrc`, and yargs will provide completion shortcuts for\ncommands and options.\n\n.exitProcess(enable)\n----------------------------------\n\nBy default, yargs exits the process when the user passes a help flag, uses the `.version` functionality or when validation fails. Calling `.exitProcess(false)` disables this behavior, enabling further actions after yargs have been validated.\n\n.parse(args)\n------------\n\nParse `args` instead of `process.argv`. Returns the `argv` object.\n\n.reset()\n--------\n\nReset the argument object built up so far. This is useful for\ncreating nested command line interfaces.\n\n```js\nvar yargs = require('./yargs')\n .usage('$0 command')\n .command('hello', 'hello command')\n .command('world', 'world command')\n .demand(1, 'must provide a valid command'),\n argv = yargs.argv,\n command = argv._[0];\n\nif (command === 'hello') {\n yargs.reset()\n .usage('$0 hello')\n .help('h')\n .example('$0 hello', 'print the hello message!')\n .argv\n\n console.log('hello!');\n} else if (command === 'world'){\n yargs.reset()\n .usage('$0 world')\n .help('h')\n .example('$0 world', 'print the world message!')\n .argv\n\n console.log('world!');\n} else {\n yargs.showHelp();\n}\n```\n\n.argv\n-----\n\nGet the arguments as a plain old object.\n\nArguments without a corresponding flag show up in the `argv._` array.\n\nThe script name or node command is available at `argv.$0` similarly to how `$0`\nworks in bash or perl.\n\nparsing tricks\n==============\n\nstop parsing\n------------\n\nUse `--` to stop parsing flags and stuff the remainder into `argv._`.\n\n $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4\n { _: [ '-c', '3', '-d', '4' ],\n '$0': 'node ./examples/reflect.js',\n a: 1,\n b: 2 }\n\nnegate fields\n-------------\n\nIf you want to explicity set a field to false instead of just leaving it\nundefined or to override a default you can do `--no-key`.\n\n $ node examples/reflect.js -a --no-b\n { _: [],\n '$0': 'node ./examples/reflect.js',\n a: true,\n b: false }\n\nnumbers\n-------\n\nEvery argument that looks like a number (`!isNaN(Number(arg))`) is converted to\none. This way you can just `net.createConnection(argv.port)` and you can add\nnumbers out of `argv` with `+` without having that mean concatenation,\nwhich is super frustrating.\n\nduplicates\n----------\n\nIf you specify a flag multiple times it will get turned into an array containing\nall the values in order.\n\n $ node examples/reflect.js -x 5 -x 8 -x 0\n { _: [],\n '$0': 'node ./examples/reflect.js',\n x: [ 5, 8, 0 ] }\n\ndot notation\n------------\n\nWhen you use dots (`.`s) in argument names, an implicit object path is assumed.\nThis lets you organize arguments into nested objects.\n\n $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5\n { _: [],\n '$0': 'node ./examples/reflect.js',\n foo: { bar: { baz: 33 }, quux: 5 } }\n\nshort numbers\n-------------\n\nShort numeric `head -n5` style argument work too:\n\n $ node reflect.js -n123 -m456\n { '3': true,\n '6': true,\n _: [],\n '$0': 'node ./reflect.js',\n n: 123,\n m: 456 }\n\ninstallation\n============\n\nWith [npm](http://github.com/isaacs/npm), just do:\n\n npm install yargs\n\nor clone this project on github:\n\n git clone http://github.com/bcoe/yargs.git\n\nTo run the tests with npm, just do:\n\n npm test\n\ninspired by\n===========\n\nThis module is loosely inspired by Perl's\n[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).\n", + "readmeFilename": "README.md", "bugs": { "url": "https://github.com/bcoe/yargs/issues" }, "homepage": "https://github.com/bcoe/yargs#readme", "_id": "yargs@3.10.0", "_shasum": "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1", - "_from": "yargs@>=3.10.0 <3.11.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.2", - "_npmUser": { - "name": "bcoe", - "email": "ben@npmjs.com" - }, - "dist": { - "shasum": "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1", - "tarball": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" - }, - "maintainers": [ - { - "name": "chevex", - "email": "alex.ford@codetunnel.com" - }, - { - "name": "bcoe", - "email": "bencoe@gmail.com" - }, - { - "name": "nylen", - "email": "jnylen@gmail.com" - } - ], - "directories": {}, "_resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "readme": "ERROR: No README data found!" + "_from": "yargs@>=3.10.0 <3.11.0" } diff --git a/node_modules/uglify-js/package.json b/node_modules/uglify-js/package.json index 8ba92c69..51d6cd31 100644 --- a/node_modules/uglify-js/package.json +++ b/node_modules/uglify-js/package.json @@ -14,12 +14,9 @@ }, "maintainers": [ { - "name": "mishoo", - "email": "mihai.bazon@gmail.com" - }, - { - "name": "rvanvelzen1", - "email": "rvanvelzen1@gmail.com" + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" } ], "repository": { @@ -67,25 +64,10 @@ "minify", "minifier" ], - "gitHead": "9676167aac715d2dd10918e2beb13b1a4a372616", + "readme": "UglifyJS 2\n==========\n[![Build Status](https://travis-ci.org/mishoo/UglifyJS2.svg)](https://travis-ci.org/mishoo/UglifyJS2)\n\nUglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit.\n\nThis page documents the command line utility. For\n[API and internals documentation see my website](http://lisperator.net/uglifyjs/).\nThere's also an\n[in-browser online demo](http://lisperator.net/uglifyjs/#demo) (for Firefox,\nChrome and probably Safari).\n\nInstall\n-------\n\nFirst make sure you have installed the latest version of [node.js](http://nodejs.org/)\n(You may need to restart your computer after this step).\n\nFrom NPM for use as a command line app:\n\n npm install uglify-js -g\n\nFrom NPM for programmatic use:\n\n npm install uglify-js\n\nFrom Git:\n\n git clone git://github.com/mishoo/UglifyJS2.git\n cd UglifyJS2\n npm link .\n\nUsage\n-----\n\n uglifyjs [input files] [options]\n\nUglifyJS2 can take multiple input files. It's recommended that you pass the\ninput files first, then pass the options. UglifyJS will parse input files\nin sequence and apply any compression options. The files are parsed in the\nsame global scope, that is, a reference from a file to some\nvariable/function declared in another file will be matched properly.\n\nIf you want to read from STDIN instead, pass a single dash instead of input\nfiles.\n\nIf you wish to pass your options before the input files, separate the two with\na double dash to prevent input files being used as option arguments:\n\n uglifyjs --compress --mangle -- input.js\n\nThe available options are:\n\n```\n --source-map Specify an output file where to generate source\n map.\n --source-map-root The path to the original source to be included\n in the source map.\n --source-map-url The path to the source map to be added in //#\n sourceMappingURL. Defaults to the value passed\n with --source-map.\n --source-map-include-sources Pass this flag if you want to include the\n content of source files in the source map as\n sourcesContent property.\n --in-source-map Input source map, useful if you're compressing\n JS that was generated from some other original\n code.\n --screw-ie8 Pass this flag if you don't care about full\n compliance with Internet Explorer 6-8 quirks\n (by default UglifyJS will try to be IE-proof).\n --expr Parse a single expression, rather than a\n program (for parsing JSON)\n -p, --prefix Skip prefix for original filenames that appear\n in source maps. For example -p 3 will drop 3\n directories from file names and ensure they are\n relative paths. You can also specify -p\n relative, which will make UglifyJS figure out\n itself the relative paths between original\n sources, the source map and the output file.\n -o, --output Output file (default STDOUT).\n -b, --beautify Beautify output/specify output options.\n -m, --mangle Mangle names/pass mangler options.\n -r, --reserved Reserved names to exclude from mangling.\n -c, --compress Enable compressor/pass compressor options. Pass\n options like -c\n hoist_vars=false,if_return=false. Use -c with\n no argument to use the default compression\n options.\n -d, --define Global definitions\n -e, --enclose Embed everything in a big function, with a\n configurable parameter/argument list.\n --comments Preserve copyright comments in the output. By\n default this works like Google Closure, keeping\n JSDoc-style comments that contain \"@license\" or\n \"@preserve\". You can optionally pass one of the\n following arguments to this flag:\n - \"all\" to keep all comments\n - a valid JS regexp (needs to start with a\n slash) to keep only comments that match.\n Note that currently not *all* comments can be\n kept when compression is on, because of dead\n code removal or cascading statements into\n sequences.\n --preamble Preamble to prepend to the output. You can use\n this to insert a comment, for example for\n licensing information. This will not be\n parsed, but the source map will adjust for its\n presence.\n --stats Display operations run time on STDERR.\n --acorn Use Acorn for parsing.\n --spidermonkey Assume input files are SpiderMonkey AST format\n (as JSON).\n --self Build itself (UglifyJS2) as a library (implies\n --wrap=UglifyJS --export-all)\n --wrap Embed everything in a big function, making the\n “exports” and “global” variables available. You\n need to pass an argument to this option to\n specify the name that your module will take\n when included in, say, a browser.\n --export-all Only used when --wrap, this tells UglifyJS to\n add code to automatically export all globals.\n --lint Display some scope warnings\n -v, --verbose Verbose\n -V, --version Print version number and exit.\n --noerr Don't throw an error for unknown options in -c,\n -b or -m.\n --bare-returns Allow return outside of functions. Useful when\n minifying CommonJS modules and Userscripts that\n may be anonymous function wrapped (IIFE) by the\n .user.js engine `caller`.\n --keep-fnames Do not mangle/drop function names. Useful for\n code relying on Function.prototype.name.\n --reserved-file File containing reserved names\n --reserve-domprops Make (most?) DOM properties reserved for\n --mangle-props\n --mangle-props Mangle property names (default `0`). Set to \n `true` or `1` to mangle all property names. Set\n to `unquoted` or `2` to only mangle unquoted \n property names. Mode `2` also enables the\n `keep_quoted_props` beautifier option to \n preserve the quotes around property names and\n disables the `properties` compressor option to\n prevent rewriting quoted properties with dot\n notation. You can override these by setting\n them explicitly on the command line.\n --mangle-regex Only mangle property names matching the regex\n --name-cache File to hold mangled names mappings\n --pure-funcs List of functions that can be safely removed if\n their return value is not used [array]\n```\n\nSpecify `--output` (`-o`) to declare the output file. Otherwise the output\ngoes to STDOUT.\n\n## Source map options\n\nUglifyJS2 can generate a source map file, which is highly useful for\ndebugging your compressed JavaScript. To get a source map, pass\n`--source-map output.js.map` (full path to the file where you want the\nsource map dumped).\n\nAdditionally you might need `--source-map-root` to pass the URL where the\noriginal files can be found. In case you are passing full paths to input\nfiles to UglifyJS, you can use `--prefix` (`-p`) to specify the number of\ndirectories to drop from the path prefix when declaring files in the source\nmap.\n\nFor example:\n\n uglifyjs /home/doe/work/foo/src/js/file1.js \\\n /home/doe/work/foo/src/js/file2.js \\\n -o foo.min.js \\\n --source-map foo.min.js.map \\\n --source-map-root http://foo.com/src \\\n -p 5 -c -m\n\nThe above will compress and mangle `file1.js` and `file2.js`, will drop the\noutput in `foo.min.js` and the source map in `foo.min.js.map`. The source\nmapping will refer to `http://foo.com/src/js/file1.js` and\n`http://foo.com/src/js/file2.js` (in fact it will list `http://foo.com/src`\nas the source map root, and the original files as `js/file1.js` and\n`js/file2.js`).\n\n### Composed source map\n\nWhen you're compressing JS code that was output by a compiler such as\nCoffeeScript, mapping to the JS code won't be too helpful. Instead, you'd\nlike to map back to the original code (i.e. CoffeeScript). UglifyJS has an\noption to take an input source map. Assuming you have a mapping from\nCoffeeScript → compiled JS, UglifyJS can generate a map from CoffeeScript →\ncompressed JS by mapping every token in the compiled JS to its original\nlocation.\n\nTo use this feature you need to pass `--in-source-map\n/path/to/input/source.map`. Normally the input source map should also point\nto the file containing the generated JS, so if that's correct you can omit\ninput files from the command line.\n\n## Mangler options\n\nTo enable the mangler you need to pass `--mangle` (`-m`). The following\n(comma-separated) options are supported:\n\n- `toplevel` — mangle names declared in the toplevel scope (disabled by\n default).\n\n- `eval` — mangle names visible in scopes where `eval` or `with` are used\n (disabled by default).\n\nWhen mangling is enabled but you want to prevent certain names from being\nmangled, you can declare those names with `--reserved` (`-r`) — pass a\ncomma-separated list of names. For example:\n\n uglifyjs ... -m -r '$,require,exports'\n\nto prevent the `require`, `exports` and `$` names from being changed.\n\n### Mangling property names (`--mangle-props`)\n\n**Note:** this will probably break your code. Mangling property names is a\nseparate step, different from variable name mangling. Pass\n`--mangle-props`. It will mangle all properties that are seen in some\nobject literal, or that are assigned to. For example:\n\n```js\nvar x = {\n foo: 1\n};\n\nx.bar = 2;\nx[\"baz\"] = 3;\nx[condition ? \"moo\" : \"boo\"] = 4;\nconsole.log(x.something());\n```\n\nIn the above code, `foo`, `bar`, `baz`, `moo` and `boo` will be replaced\nwith single characters, while `something()` will be left as is.\n\nIn order for this to be of any use, we should avoid mangling standard JS\nnames. For instance, if your code would contain `x.length = 10`, then\n`length` becomes a candidate for mangling and it will be mangled throughout\nthe code, regardless if it's being used as part of your own objects or\naccessing an array's length. To avoid that, you can use `--reserved-file`\nto pass a filename that should contain the names to be excluded from\nmangling. This file can be used both for excluding variable names and\nproperty names. It could look like this, for example:\n\n```js\n{\n \"vars\": [ \"define\", \"require\", ... ],\n \"props\": [ \"length\", \"prototype\", ... ]\n}\n```\n\n`--reserved-file` can be an array of file names (either a single\ncomma-separated argument, or you can pass multiple `--reserved-file`\narguments) — in this case it will exclude names from all those files.\n\nA default exclusion file is provided in `tools/domprops.json` which should\ncover most standard JS and DOM properties defined in various browsers. Pass\n`--reserve-domprops` to read that in.\n\nYou can also use a regular expression to define which property names should be\nmangled. For example, `--mangle-regex=\"/^_/\"` will only mangle property names\nthat start with an underscore.\n\nWhen you compress multiple files using this option, in order for them to\nwork together in the end we need to ensure somehow that one property gets\nmangled to the same name in all of them. For this, pass `--name-cache\nfilename.json` and UglifyJS will maintain these mappings in a file which can\nthen be reused. It should be initially empty. Example:\n\n```\nrm -f /tmp/cache.json # start fresh\nuglifyjs file1.js file2.js --mangle-props --name-cache /tmp/cache.json -o part1.js\nuglifyjs file3.js file4.js --mangle-props --name-cache /tmp/cache.json -o part2.js\n```\n\nNow, `part1.js` and `part2.js` will be consistent with each other in terms\nof mangled property names.\n\nUsing the name cache is not necessary if you compress all your files in a\nsingle call to UglifyJS.\n\n## Compressor options\n\nYou need to pass `--compress` (`-c`) to enable the compressor. Optionally\nyou can pass a comma-separated list of options. Options are in the form\n`foo=bar`, or just `foo` (the latter implies a boolean option that you want\nto set `true`; it's effectively a shortcut for `foo=true`).\n\n- `sequences` -- join consecutive simple statements using the comma operator\n\n- `properties` -- rewrite property access using the dot notation, for\n example `foo[\"bar\"] → foo.bar`\n\n- `dead_code` -- remove unreachable code\n\n- `drop_debugger` -- remove `debugger;` statements\n\n- `unsafe` (default: false) -- apply \"unsafe\" transformations (discussion below)\n\n- `unsafe_comps` (default: false) -- Reverse `<` and `<=` to `>` and `>=` to\n allow improved compression. This might be unsafe when an at least one of two\n operands is an object with computed values due the use of methods like `get`,\n or `valueOf`. This could cause change in execution order after operands in the\n comparison are switching. Compression only works if both `comparisons` and\n `unsafe_comps` are both set to true.\n\n- `conditionals` -- apply optimizations for `if`-s and conditional\n expressions\n\n- `comparisons` -- apply certain optimizations to binary nodes, for example:\n `!(a <= b) → a > b` (only when `unsafe_comps`), attempts to negate binary\n nodes, e.g. `a = !b && !c && !d && !e → a=!(b||c||d||e)` etc.\n\n- `evaluate` -- attempt to evaluate constant expressions\n\n- `booleans` -- various optimizations for boolean context, for example `!!a\n ? b : c → a ? b : c`\n\n- `loops` -- optimizations for `do`, `while` and `for` loops when we can\n statically determine the condition\n\n- `unused` -- drop unreferenced functions and variables\n\n- `hoist_funs` -- hoist function declarations\n\n- `hoist_vars` (default: false) -- hoist `var` declarations (this is `false`\n by default because it seems to increase the size of the output in general)\n\n- `if_return` -- optimizations for if/return and if/continue\n\n- `join_vars` -- join consecutive `var` statements\n\n- `cascade` -- small optimization for sequences, transform `x, x` into `x`\n and `x = something(), x` into `x = something()`\n\n- `collapse_vars` -- default `false`. Collapse single-use `var` and `const`\n definitions when possible.\n\n- `warnings` -- display warnings when dropping unreachable code or unused\n declarations etc.\n\n- `negate_iife` -- negate \"Immediately-Called Function Expressions\"\n where the return value is discarded, to avoid the parens that the\n code generator would insert.\n\n- `pure_getters` -- the default is `false`. If you pass `true` for\n this, UglifyJS will assume that object property access\n (e.g. `foo.bar` or `foo[\"bar\"]`) doesn't have any side effects.\n\n- `pure_funcs` -- default `null`. You can pass an array of names and\n UglifyJS will assume that those functions do not produce side\n effects. DANGER: will not check if the name is redefined in scope.\n An example case here, for instance `var q = Math.floor(a/b)`. If\n variable `q` is not used elsewhere, UglifyJS will drop it, but will\n still keep the `Math.floor(a/b)`, not knowing what it does. You can\n pass `pure_funcs: [ 'Math.floor' ]` to let it know that this\n function won't produce any side effect, in which case the whole\n statement would get discarded. The current implementation adds some\n overhead (compression will be slower).\n\n- `drop_console` -- default `false`. Pass `true` to discard calls to\n `console.*` functions.\n\n- `keep_fargs` -- default `true`. Prevents the\n compressor from discarding unused function arguments. You need this\n for code which relies on `Function.length`.\n\n- `keep_fnames` -- default `false`. Pass `true` to prevent the\n compressor from mangling/discarding function names. Useful for code relying on\n `Function.prototype.name`.\n\n- `passes` -- default `1`. Number of times to run compress. Use an\n integer argument larger than 1 to further reduce code size in some cases.\n Note: raising the number of passes will increase uglify compress time.\n\n### The `unsafe` option\n\nIt enables some transformations that *might* break code logic in certain\ncontrived cases, but should be fine for most code. You might want to try it\non your own code, it should reduce the minified size. Here's what happens\nwhen this flag is on:\n\n- `new Array(1, 2, 3)` or `Array(1, 2, 3)` → `[ 1, 2, 3 ]`\n- `new Object()` → `{}`\n- `String(exp)` or `exp.toString()` → `\"\" + exp`\n- `new Object/RegExp/Function/Error/Array (...)` → we discard the `new`\n- `typeof foo == \"undefined\"` → `foo === void 0`\n- `void 0` → `undefined` (if there is a variable named \"undefined\" in\n scope; we do it because the variable name will be mangled, typically\n reduced to a single character)\n\n### Conditional compilation\n\nYou can use the `--define` (`-d`) switch in order to declare global\nvariables that UglifyJS will assume to be constants (unless defined in\nscope). For example if you pass `--define DEBUG=false` then, coupled with\ndead code removal UglifyJS will discard the following from the output:\n```javascript\nif (DEBUG) {\n\tconsole.log(\"debug stuff\");\n}\n```\n\nUglifyJS will warn about the condition being always false and about dropping\nunreachable code; for now there is no option to turn off only this specific\nwarning, you can pass `warnings=false` to turn off *all* warnings.\n\nAnother way of doing that is to declare your globals as constants in a\nseparate file and include it into the build. For example you can have a\n`build/defines.js` file with the following:\n```javascript\nconst DEBUG = false;\nconst PRODUCTION = true;\n// Alternative for environments that don't support `const`\n/** @const */ var STAGING = false;\n// etc.\n```\n\nand build your code like this:\n\n uglifyjs build/defines.js js/foo.js js/bar.js... -c\n\nUglifyJS will notice the constants and, since they cannot be altered, it\nwill evaluate references to them to the value itself and drop unreachable\ncode as usual. The build will contain the `const` declarations if you use\nthem. If you are targeting < ES6 environments, use `/** @const */ var`.\n\n
\n\n#### Conditional compilation, API\nYou can also use conditional compilation via the programmatic API. With the difference that the\nproperty name is `global_defs` and is a compressor property:\n\n```js\nuglifyJS.minify([ \"input.js\"], {\n compress: {\n dead_code: true,\n global_defs: {\n DEBUG: false\n }\n }\n});\n```\n\n## Beautifier options\n\nThe code generator tries to output shortest code possible by default. In\ncase you want beautified output, pass `--beautify` (`-b`). Optionally you\ncan pass additional arguments that control the code output:\n\n- `beautify` (default `true`) -- whether to actually beautify the output.\n Passing `-b` will set this to true, but you might need to pass `-b` even\n when you want to generate minified code, in order to specify additional\n arguments, so you can use `-b beautify=false` to override it.\n- `indent-level` (default 4)\n- `indent-start` (default 0) -- prefix all lines by that many spaces\n- `quote-keys` (default `false`) -- pass `true` to quote all keys in literal\n objects\n- `space-colon` (default `true`) -- insert a space after the colon signs\n- `ascii-only` (default `false`) -- escape Unicode characters in strings and\n regexps (affects directives with non-ascii characters becoming invalid)\n- `inline-script` (default `false`) -- escape the slash in occurrences of\n `=2.6.2 <2.7.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "rvanvelzen1", - "email": "rvanvelzen1@gmail.com" - }, - "dist": { - "shasum": "65ea2fb3059c9394692f15fed87c2b36c16b9adf", - "tarball": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/uglify-js-2.6.4.tgz_1466594174144_0.2869670754298568" - }, - "directories": {}, "_resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", - "readme": "ERROR: No README data found!" + "_from": "uglify-js@>=2.6.2 <2.7.0" } diff --git a/package.json b/package.json index 0cac5eb3..570ff3e6 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "netutil": "~0.0.2", "optimist": "~0.6.0", "qs": "0.6.6", - "rusha": "^0.8.3", + "rusha": "0.8.5", "send": "~0.1.4", "simple-mime": "~0.0.8", "tern": "git+https://github.com/cloud9ide/tern.git#39015d544d4c00c7899fea4c95c2e5bc2720e68e", @@ -49,5 +49,5 @@ }, "devDependencies": {}, "licenses": [], - "revision": "fdea54ce224b401eac9346ec89d28a47cdd1d8f6" + "revision": "7895002a2fdf764d688c9f7b3b51355b3e39d5b9" } diff --git a/version b/version index 1a5c5db9..5d5dd241 100644 --- a/version +++ b/version @@ -1 +1 @@ -1515099628 +1515105194