twitst4tz

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit dc43101232499272d09407d9607bf56e631f2dd2
parent 83cb22751bbd9619f978829dc03c97b9a5d944ac
Author: underd0g1 <hide4@comcast.net>
Date:   Fri, 24 Apr 2020 22:27:07 -0400

initial twit stream

Diffstat:
Mindex.js | 33+++++++++++++++------------------
Anode_modules/.body-parser.DELETE/HISTORY.md | 609+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/LICENSE | 23+++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/README.md | 443+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/index.js | 157+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/lib/read.js | 181+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/lib/types/json.js | 230+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/lib/types/raw.js | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/lib/types/text.js | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anode_modules/.body-parser.DELETE/lib/types/urlencoded.js | 284+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rnode_modules/body-parser/node_modules/qs/.editorconfig -> node_modules/.body-parser.DELETE/node_modules/qs/.editorconfig | 0
Rnode_modules/body-parser/node_modules/qs/.eslintignore -> node_modules/.body-parser.DELETE/node_modules/qs/.eslintignore | 0
Rnode_modules/body-parser/node_modules/qs/.eslintrc -> node_modules/.body-parser.DELETE/node_modules/qs/.eslintrc | 0
Rnode_modules/body-parser/node_modules/qs/CHANGELOG.md -> node_modules/.body-parser.DELETE/node_modules/qs/CHANGELOG.md | 0
Rnode_modules/body-parser/node_modules/qs/LICENSE -> node_modules/.body-parser.DELETE/node_modules/qs/LICENSE | 0
Rnode_modules/body-parser/node_modules/qs/README.md -> node_modules/.body-parser.DELETE/node_modules/qs/README.md | 0
Rnode_modules/body-parser/node_modules/qs/dist/qs.js -> node_modules/.body-parser.DELETE/node_modules/qs/dist/qs.js | 0
Rnode_modules/body-parser/node_modules/qs/lib/formats.js -> node_modules/.body-parser.DELETE/node_modules/qs/lib/formats.js | 0
Rnode_modules/body-parser/node_modules/qs/lib/index.js -> node_modules/.body-parser.DELETE/node_modules/qs/lib/index.js | 0
Rnode_modules/body-parser/node_modules/qs/lib/parse.js -> node_modules/.body-parser.DELETE/node_modules/qs/lib/parse.js | 0
Rnode_modules/body-parser/node_modules/qs/lib/stringify.js -> node_modules/.body-parser.DELETE/node_modules/qs/lib/stringify.js | 0
Rnode_modules/body-parser/node_modules/qs/lib/utils.js -> node_modules/.body-parser.DELETE/node_modules/qs/lib/utils.js | 0
Rnode_modules/body-parser/node_modules/qs/package.json -> node_modules/.body-parser.DELETE/node_modules/qs/package.json | 0
Rnode_modules/body-parser/node_modules/qs/test/.eslintrc -> node_modules/.body-parser.DELETE/node_modules/qs/test/.eslintrc | 0
Rnode_modules/body-parser/node_modules/qs/test/index.js -> node_modules/.body-parser.DELETE/node_modules/qs/test/index.js | 0
Rnode_modules/body-parser/node_modules/qs/test/parse.js -> node_modules/.body-parser.DELETE/node_modules/qs/test/parse.js | 0
Rnode_modules/body-parser/node_modules/qs/test/stringify.js -> node_modules/.body-parser.DELETE/node_modules/qs/test/stringify.js | 0
Rnode_modules/body-parser/node_modules/qs/test/utils.js -> node_modules/.body-parser.DELETE/node_modules/qs/test/utils.js | 0
Anode_modules/.body-parser.DELETE/package.json | 97+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mnode_modules/body-parser/package.json | 67++++++++++++++++++++++++++++++++++++++++++++++---------------------
Mnode_modules/ejs/package.json | 20++++++++++++--------
Mnode_modules/express/package.json | 28++++++++++++++++------------
Mnode_modules/node-fetch/package.json | 20++++++++++++--------
Mnode_modules/socket.io-adapter/package.json | 62++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mnode_modules/socket.io-client/node_modules/debug/package.json | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Mnode_modules/socket.io-client/node_modules/ms/package.json | 270++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mnode_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/package.json | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
Mnode_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms/package.json | 66+++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Mnode_modules/socket.io-client/node_modules/socket.io-parser/package.json | 65++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Mnode_modules/socket.io-client/package.json | 72++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
Mnode_modules/socket.io-parser/node_modules/debug/package.json | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Mnode_modules/socket.io-parser/node_modules/ms/package.json | 270++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mnode_modules/socket.io-parser/package.json | 65++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Mnode_modules/socket.io/node_modules/debug/package.json | 82++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
Mnode_modules/socket.io/node_modules/ms/package.json | 264++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mnode_modules/socket.io/package.json | 74+++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
Mnode_modules/twit/package.json | 18+++++++++++-------
Mviews/index.html | 2+-
48 files changed, 3640 insertions(+), 332 deletions(-)

diff --git a/index.js b/index.js @@ -1,44 +1,41 @@ - const fetch = require('node-fetch'); -var express = require("express"); var twit = require('twit'); var creds = require('./config.js'); -var app = express(); -var router = express.Router(); const bodyparser = require('body-parser'); -var io = require('socket.io').listen(server); -var http = require('http'); -var server = http.createServer(app); - - +const app = require('express')(); +const server = require('http').Server(app); +const io = require('socket.io')(server); -server.listen(8080, function(){ - console.log("you are now rockin with port 8080 and... localhost"); +server.listen(3000, function(){ + console.log("you are now rockin with port 3000 and... localhost"); }); -// routing +// index routing app.get('/', function (req, res) { res.sendFile(__dirname + '/views/index.html'); console.log('got request made on / route!'); -}); -var watchList = ['love', 'hate']; + +//optional array of terms to track +//var watchList = ['love', 'hate']; var T = new twit(creds); -io.sockets.on('connection', function (socket) { +io.on('connection', function (socket) { console.log('Connected'); -var stream = T.stream('statuses/filter', { track: '#coding' }) +var stream = T.stream('statuses/filter', { track: '#coding', language: 'en' }) stream.on('tweet', function (tweet) { - - io.sockets.emit('stream',tweet.text); console.log(tweet.text); +socket.emit('stream',tweet.text); + + +}); }); }); diff --git a/node_modules/.body-parser.DELETE/HISTORY.md b/node_modules/.body-parser.DELETE/HISTORY.md @@ -0,0 +1,609 @@ +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/node_modules/.body-parser.DELETE/LICENSE b/node_modules/.body-parser.DELETE/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong <me@jongleberry.com> +Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/.body-parser.DELETE/README.md b/node_modules/.body-parser.DELETE/README.md @@ -0,0 +1,443 @@ +# body-parser + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + +<!-- eslint-disable no-unused-vars --> + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +## Errors + +The middlewares provided by this module create errors depending on the error +condition during parsing. The errors will typically have a `status`/`statusCode` +property that contains the suggested HTTP response code, an `expose` property +to determine if the `message` property should be displayed to the client, a +`type` property to determine the type of error without matching against the +`message`, and a `body` property containing the read body, if available. + +The following are the common errors emitted, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/body-parser.svg +[npm-url]: https://npmjs.org/package/body-parser +[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg +[travis-url]: https://travis-ci.org/expressjs/body-parser +[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg +[downloads-url]: https://npmjs.org/package/body-parser diff --git a/node_modules/.body-parser.DELETE/index.js b/node_modules/.body-parser.DELETE/index.js @@ -0,0 +1,157 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + var opts = {} + + // exclude type option + if (options) { + for (var prop in options) { + if (prop !== 'type') { + opts[prop] = options[prop] + } + } + } + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git a/node_modules/.body-parser.DELETE/lib/read.js b/node_modules/.body-parser.DELETE/lib/read.js @@ -0,0 +1,181 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // read off entire request + stream.resume() + onFinished(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} diff --git a/node_modules/.body-parser.DELETE/lib/types/json.js b/node_modules/.body-parser.DELETE/lib/types/json.js @@ -0,0 +1,230 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.substr(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = str.substring(0, index) + '#' + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace('#', char), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + return FIRST_CHAR_REGEXP.exec(str)[1] +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/.body-parser.DELETE/lib/types/raw.js b/node_modules/.body-parser.DELETE/lib/types/raw.js @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/.body-parser.DELETE/lib/types/text.js b/node_modules/.body-parser.DELETE/lib/types/text.js @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/.body-parser.DELETE/lib/types/urlencoded.js b/node_modules/.body-parser.DELETE/lib/types/urlencoded.js @@ -0,0 +1,284 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: Infinity, + parameterLimit: parameterLimit + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/node_modules/qs/.editorconfig b/node_modules/.body-parser.DELETE/node_modules/qs/.editorconfig diff --git a/node_modules/body-parser/node_modules/qs/.eslintignore b/node_modules/.body-parser.DELETE/node_modules/qs/.eslintignore diff --git a/node_modules/body-parser/node_modules/qs/.eslintrc b/node_modules/.body-parser.DELETE/node_modules/qs/.eslintrc diff --git a/node_modules/body-parser/node_modules/qs/CHANGELOG.md b/node_modules/.body-parser.DELETE/node_modules/qs/CHANGELOG.md diff --git a/node_modules/body-parser/node_modules/qs/LICENSE b/node_modules/.body-parser.DELETE/node_modules/qs/LICENSE diff --git a/node_modules/body-parser/node_modules/qs/README.md b/node_modules/.body-parser.DELETE/node_modules/qs/README.md diff --git a/node_modules/body-parser/node_modules/qs/dist/qs.js b/node_modules/.body-parser.DELETE/node_modules/qs/dist/qs.js diff --git a/node_modules/body-parser/node_modules/qs/lib/formats.js b/node_modules/.body-parser.DELETE/node_modules/qs/lib/formats.js diff --git a/node_modules/body-parser/node_modules/qs/lib/index.js b/node_modules/.body-parser.DELETE/node_modules/qs/lib/index.js diff --git a/node_modules/body-parser/node_modules/qs/lib/parse.js b/node_modules/.body-parser.DELETE/node_modules/qs/lib/parse.js diff --git a/node_modules/body-parser/node_modules/qs/lib/stringify.js b/node_modules/.body-parser.DELETE/node_modules/qs/lib/stringify.js diff --git a/node_modules/body-parser/node_modules/qs/lib/utils.js b/node_modules/.body-parser.DELETE/node_modules/qs/lib/utils.js diff --git a/node_modules/body-parser/node_modules/qs/package.json b/node_modules/.body-parser.DELETE/node_modules/qs/package.json diff --git a/node_modules/body-parser/node_modules/qs/test/.eslintrc b/node_modules/.body-parser.DELETE/node_modules/qs/test/.eslintrc diff --git a/node_modules/body-parser/node_modules/qs/test/index.js b/node_modules/.body-parser.DELETE/node_modules/qs/test/index.js diff --git a/node_modules/body-parser/node_modules/qs/test/parse.js b/node_modules/.body-parser.DELETE/node_modules/qs/test/parse.js diff --git a/node_modules/body-parser/node_modules/qs/test/stringify.js b/node_modules/.body-parser.DELETE/node_modules/qs/test/stringify.js diff --git a/node_modules/body-parser/node_modules/qs/test/utils.js b/node_modules/.body-parser.DELETE/node_modules/qs/test/utils.js diff --git a/node_modules/.body-parser.DELETE/package.json b/node_modules/.body-parser.DELETE/package.json @@ -0,0 +1,97 @@ +{ + "_from": "body-parser", + "_id": "body-parser@1.19.0", + "_inBundle": false, + "_integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "_location": "/body-parser", + "_phantomChildren": {}, + "_requested": { + "escapedName": "body-parser", + "fetchSpec": "latest", + "name": "body-parser", + "raw": "body-parser", + "rawSpec": "", + "registry": true, + "saveSpec": null, + "type": "tag" + }, + "_requiredBy": [ + "#USER", + "/", + "/express" + ], + "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "_shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a", + "_shrinkwrap": null, + "_spec": "body-parser", + "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", + "bugs": { + "url": "https://github.com/expressjs/body-parser/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "deprecated": false, + "description": "Node.js body parsing middleware", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "methods": "1.1.2", + "mocha": "6.1.4", + "safe-buffer": "5.1.2", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js", + "lib/" + ], + "homepage": "https://github.com/expressjs/body-parser#readme", + "license": "MIT", + "name": "body-parser", + "optionalDependencies": {}, + "readme": "# body-parser\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nNode.js body parsing middleware.\n\nParse incoming request bodies in a middleware before your handlers, available\nunder the `req.body` property.\n\n**Note** As `req.body`'s shape is based on user-controlled input, all\nproperties and values in this object are untrusted and should be validated\nbefore trusting. For example, `req.body.foo.toString()` may fail in multiple\nways, for example the `foo` property may not be there or may not be a string,\nand `toString` may not be a function and instead a string or other user input.\n\n[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/).\n\n_This does not handle multipart bodies_, due to their complex and typically\nlarge nature. For multipart bodies, you may be interested in the following\nmodules:\n\n * [busboy](https://www.npmjs.org/package/busboy#readme) and\n [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme)\n * [multiparty](https://www.npmjs.org/package/multiparty#readme) and\n [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme)\n * [formidable](https://www.npmjs.org/package/formidable#readme)\n * [multer](https://www.npmjs.org/package/multer#readme)\n\nThis module provides the following parsers:\n\n * [JSON body parser](#bodyparserjsonoptions)\n * [Raw body parser](#bodyparserrawoptions)\n * [Text body parser](#bodyparsertextoptions)\n * [URL-encoded form body parser](#bodyparserurlencodedoptions)\n\nOther body parsers you might be interested in:\n\n- [body](https://www.npmjs.org/package/body#readme)\n- [co-body](https://www.npmjs.org/package/co-body#readme)\n\n## Installation\n\n```sh\n$ npm install body-parser\n```\n\n## API\n\n<!-- eslint-disable no-unused-vars -->\n\n```js\nvar bodyParser = require('body-parser')\n```\n\nThe `bodyParser` object exposes various factories to create middlewares. All\nmiddlewares will populate the `req.body` property with the parsed body when\nthe `Content-Type` request header matches the `type` option, or an empty\nobject (`{}`) if there was no body to parse, the `Content-Type` was not matched,\nor an error occurred.\n\nThe various errors returned by this module are described in the\n[errors section](#errors).\n\n### bodyParser.json([options])\n\nReturns middleware that only parses `json` and only looks at requests where\nthe `Content-Type` header matches the `type` option. This parser accepts any\nUnicode encoding of the body and supports automatic inflation of `gzip` and\n`deflate` encodings.\n\nA new `body` object containing the parsed data is populated on the `request`\nobject after the middleware (i.e. `req.body`).\n\n#### Options\n\nThe `json` function takes an optional `options` object that may contain any of\nthe following keys:\n\n##### inflate\n\nWhen set to `true`, then deflated (compressed) bodies will be inflated; when\n`false`, deflated bodies are rejected. Defaults to `true`.\n\n##### limit\n\nControls the maximum request body size. If this is a number, then the value\nspecifies the number of bytes; if it is a string, the value is passed to the\n[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults\nto `'100kb'`.\n\n##### reviver\n\nThe `reviver` option is passed directly to `JSON.parse` as the second\nargument. You can find more information on this argument\n[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter).\n\n##### strict\n\nWhen set to `true`, will only accept arrays and objects; when `false` will\naccept anything `JSON.parse` accepts. Defaults to `true`.\n\n##### type\n\nThe `type` option is used to determine what media type the middleware will\nparse. This option can be a string, array of strings, or a function. If not a\nfunction, `type` option is passed directly to the\n[type-is](https://www.npmjs.org/package/type-is#readme) library and this can\nbe an extension name (like `json`), a mime type (like `application/json`), or\na mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type`\noption is called as `fn(req)` and the request is parsed if it returns a truthy\nvalue. Defaults to `application/json`.\n\n##### verify\n\nThe `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,\nwhere `buf` is a `Buffer` of the raw request body and `encoding` is the\nencoding of the request. The parsing can be aborted by throwing an error.\n\n### bodyParser.raw([options])\n\nReturns middleware that parses all bodies as a `Buffer` and only looks at\nrequests where the `Content-Type` header matches the `type` option. This\nparser supports automatic inflation of `gzip` and `deflate` encodings.\n\nA new `body` object containing the parsed data is populated on the `request`\nobject after the middleware (i.e. `req.body`). This will be a `Buffer` object\nof the body.\n\n#### Options\n\nThe `raw` function takes an optional `options` object that may contain any of\nthe following keys:\n\n##### inflate\n\nWhen set to `true`, then deflated (compressed) bodies will be inflated; when\n`false`, deflated bodies are rejected. Defaults to `true`.\n\n##### limit\n\nControls the maximum request body size. If this is a number, then the value\nspecifies the number of bytes; if it is a string, the value is passed to the\n[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults\nto `'100kb'`.\n\n##### type\n\nThe `type` option is used to determine what media type the middleware will\nparse. This option can be a string, array of strings, or a function.\nIf not a function, `type` option is passed directly to the\n[type-is](https://www.npmjs.org/package/type-is#readme) library and this\ncan be an extension name (like `bin`), a mime type (like\n`application/octet-stream`), or a mime type with a wildcard (like `*/*` or\n`application/*`). If a function, the `type` option is called as `fn(req)`\nand the request is parsed if it returns a truthy value. Defaults to\n`application/octet-stream`.\n\n##### verify\n\nThe `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,\nwhere `buf` is a `Buffer` of the raw request body and `encoding` is the\nencoding of the request. The parsing can be aborted by throwing an error.\n\n### bodyParser.text([options])\n\nReturns middleware that parses all bodies as a string and only looks at\nrequests where the `Content-Type` header matches the `type` option. This\nparser supports automatic inflation of `gzip` and `deflate` encodings.\n\nA new `body` string containing the parsed data is populated on the `request`\nobject after the middleware (i.e. `req.body`). This will be a string of the\nbody.\n\n#### Options\n\nThe `text` function takes an optional `options` object that may contain any of\nthe following keys:\n\n##### defaultCharset\n\nSpecify the default character set for the text content if the charset is not\nspecified in the `Content-Type` header of the request. Defaults to `utf-8`.\n\n##### inflate\n\nWhen set to `true`, then deflated (compressed) bodies will be inflated; when\n`false`, deflated bodies are rejected. Defaults to `true`.\n\n##### limit\n\nControls the maximum request body size. If this is a number, then the value\nspecifies the number of bytes; if it is a string, the value is passed to the\n[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults\nto `'100kb'`.\n\n##### type\n\nThe `type` option is used to determine what media type the middleware will\nparse. This option can be a string, array of strings, or a function. If not\na function, `type` option is passed directly to the\n[type-is](https://www.npmjs.org/package/type-is#readme) library and this can\nbe an extension name (like `txt`), a mime type (like `text/plain`), or a mime\ntype with a wildcard (like `*/*` or `text/*`). If a function, the `type`\noption is called as `fn(req)` and the request is parsed if it returns a\ntruthy value. Defaults to `text/plain`.\n\n##### verify\n\nThe `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,\nwhere `buf` is a `Buffer` of the raw request body and `encoding` is the\nencoding of the request. The parsing can be aborted by throwing an error.\n\n### bodyParser.urlencoded([options])\n\nReturns middleware that only parses `urlencoded` bodies and only looks at\nrequests where the `Content-Type` header matches the `type` option. This\nparser accepts only UTF-8 encoding of the body and supports automatic\ninflation of `gzip` and `deflate` encodings.\n\nA new `body` object containing the parsed data is populated on the `request`\nobject after the middleware (i.e. `req.body`). This object will contain\nkey-value pairs, where the value can be a string or array (when `extended` is\n`false`), or any type (when `extended` is `true`).\n\n#### Options\n\nThe `urlencoded` function takes an optional `options` object that may contain\nany of the following keys:\n\n##### extended\n\nThe `extended` option allows to choose between parsing the URL-encoded data\nwith the `querystring` library (when `false`) or the `qs` library (when\n`true`). The \"extended\" syntax allows for rich objects and arrays to be\nencoded into the URL-encoded format, allowing for a JSON-like experience\nwith URL-encoded. For more information, please\n[see the qs library](https://www.npmjs.org/package/qs#readme).\n\nDefaults to `true`, but using the default has been deprecated. Please\nresearch into the difference between `qs` and `querystring` and choose the\nappropriate setting.\n\n##### inflate\n\nWhen set to `true`, then deflated (compressed) bodies will be inflated; when\n`false`, deflated bodies are rejected. Defaults to `true`.\n\n##### limit\n\nControls the maximum request body size. If this is a number, then the value\nspecifies the number of bytes; if it is a string, the value is passed to the\n[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults\nto `'100kb'`.\n\n##### parameterLimit\n\nThe `parameterLimit` option controls the maximum number of parameters that\nare allowed in the URL-encoded data. If a request contains more parameters\nthan this value, a 413 will be returned to the client. Defaults to `1000`.\n\n##### type\n\nThe `type` option is used to determine what media type the middleware will\nparse. This option can be a string, array of strings, or a function. If not\na function, `type` option is passed directly to the\n[type-is](https://www.npmjs.org/package/type-is#readme) library and this can\nbe an extension name (like `urlencoded`), a mime type (like\n`application/x-www-form-urlencoded`), or a mime type with a wildcard (like\n`*/x-www-form-urlencoded`). If a function, the `type` option is called as\n`fn(req)` and the request is parsed if it returns a truthy value. Defaults\nto `application/x-www-form-urlencoded`.\n\n##### verify\n\nThe `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,\nwhere `buf` is a `Buffer` of the raw request body and `encoding` is the\nencoding of the request. The parsing can be aborted by throwing an error.\n\n## Errors\n\nThe middlewares provided by this module create errors depending on the error\ncondition during parsing. The errors will typically have a `status`/`statusCode`\nproperty that contains the suggested HTTP response code, an `expose` property\nto determine if the `message` property should be displayed to the client, a\n`type` property to determine the type of error without matching against the\n`message`, and a `body` property containing the read body, if available.\n\nThe following are the common errors emitted, though any error can come through\nfor various reasons.\n\n### content encoding unsupported\n\nThis error will occur when the request had a `Content-Encoding` header that\ncontained an encoding but the \"inflation\" option was set to `false`. The\n`status` property is set to `415`, the `type` property is set to\n`'encoding.unsupported'`, and the `charset` property will be set to the\nencoding that is unsupported.\n\n### request aborted\n\nThis error will occur when the request is aborted by the client before reading\nthe body has finished. The `received` property will be set to the number of\nbytes received before the request was aborted and the `expected` property is\nset to the number of expected bytes. The `status` property is set to `400`\nand `type` property is set to `'request.aborted'`.\n\n### request entity too large\n\nThis error will occur when the request body's size is larger than the \"limit\"\noption. The `limit` property will be set to the byte limit and the `length`\nproperty will be set to the request body's length. The `status` property is\nset to `413` and the `type` property is set to `'entity.too.large'`.\n\n### request size did not match content length\n\nThis error will occur when the request's length did not match the length from\nthe `Content-Length` header. This typically occurs when the request is malformed,\ntypically when the `Content-Length` header was calculated based on characters\ninstead of bytes. The `status` property is set to `400` and the `type` property\nis set to `'request.size.invalid'`.\n\n### stream encoding should not be set\n\nThis error will occur when something called the `req.setEncoding` method prior\nto this middleware. This module operates directly on bytes only and you cannot\ncall `req.setEncoding` when using this module. The `status` property is set to\n`500` and the `type` property is set to `'stream.encoding.set'`.\n\n### too many parameters\n\nThis error will occur when the content of the request exceeds the configured\n`parameterLimit` for the `urlencoded` parser. The `status` property is set to\n`413` and the `type` property is set to `'parameters.too.many'`.\n\n### unsupported charset \"BOGUS\"\n\nThis error will occur when the request had a charset parameter in the\n`Content-Type` header, but the `iconv-lite` module does not support it OR the\nparser does not support it. The charset is contained in the message as well\nas in the `charset` property. The `status` property is set to `415`, the\n`type` property is set to `'charset.unsupported'`, and the `charset` property\nis set to the charset that is unsupported.\n\n### unsupported content encoding \"bogus\"\n\nThis error will occur when the request had a `Content-Encoding` header that\ncontained an unsupported encoding. The encoding is contained in the message\nas well as in the `encoding` property. The `status` property is set to `415`,\nthe `type` property is set to `'encoding.unsupported'`, and the `encoding`\nproperty is set to the encoding that is unsupported.\n\n## Examples\n\n### Express/Connect top-level generic\n\nThis example demonstrates adding a generic JSON and URL-encoded parser as a\ntop-level middleware, which will parse the bodies of all incoming requests.\nThis is the simplest setup.\n\n```js\nvar express = require('express')\nvar bodyParser = require('body-parser')\n\nvar app = express()\n\n// parse application/x-www-form-urlencoded\napp.use(bodyParser.urlencoded({ extended: false }))\n\n// parse application/json\napp.use(bodyParser.json())\n\napp.use(function (req, res) {\n res.setHeader('Content-Type', 'text/plain')\n res.write('you posted:\\n')\n res.end(JSON.stringify(req.body, null, 2))\n})\n```\n\n### Express route-specific\n\nThis example demonstrates adding body parsers specifically to the routes that\nneed them. In general, this is the most recommended way to use body-parser with\nExpress.\n\n```js\nvar express = require('express')\nvar bodyParser = require('body-parser')\n\nvar app = express()\n\n// create application/json parser\nvar jsonParser = bodyParser.json()\n\n// create application/x-www-form-urlencoded parser\nvar urlencodedParser = bodyParser.urlencoded({ extended: false })\n\n// POST /login gets urlencoded bodies\napp.post('/login', urlencodedParser, function (req, res) {\n res.send('welcome, ' + req.body.username)\n})\n\n// POST /api/users gets JSON bodies\napp.post('/api/users', jsonParser, function (req, res) {\n // create user in req.body\n})\n```\n\n### Change accepted type for parsers\n\nAll the parsers accept a `type` option which allows you to change the\n`Content-Type` that the middleware will parse.\n\n```js\nvar express = require('express')\nvar bodyParser = require('body-parser')\n\nvar app = express()\n\n// parse various different custom JSON types as JSON\napp.use(bodyParser.json({ type: 'application/*+json' }))\n\n// parse some custom thing into a Buffer\napp.use(bodyParser.raw({ type: 'application/vnd.custom-type' }))\n\n// parse an HTML body into a string\napp.use(bodyParser.text({ type: 'text/html' }))\n```\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/body-parser.svg\n[npm-url]: https://npmjs.org/package/body-parser\n[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg\n[travis-url]: https://travis-ci.org/expressjs/body-parser\n[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg\n[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg\n[downloads-url]: https://npmjs.org/package/body-parser\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/body-parser.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/" + }, + "version": "1.19.0" +} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json @@ -1,33 +1,47 @@ { - "_from": "body-parser", + "_args": [ + [ + "body-parser@^1.19.0", + "/home/hide4/Documents/Javascript/TwitWebGraph" + ] + ], + "_from": "body-parser@>=1.19.0 <2.0.0", + "_hasShrinkwrap": false, "_id": "body-parser@1.19.0", - "_inBundle": false, - "_integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "_inCache": true, + "_installable": true, "_location": "/body-parser", + "_nodeVersion": "8.16.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/body-parser_1.19.0_1556249483843_0.8465662994525756" + }, + "_npmUser": { + "email": "doug@somethingdoug.com", + "name": "dougwilson" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "tag", - "registry": true, - "raw": "body-parser", "name": "body-parser", - "escapedName": "body-parser", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" + "raw": "body-parser@^1.19.0", + "rawSpec": "^1.19.0", + "scope": null, + "spec": ">=1.19.0 <2.0.0", + "type": "range" }, "_requiredBy": [ - "#USER", "/", "/express" ], "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "_shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a", - "_spec": "body-parser", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", + "_shrinkwrap": null, + "_spec": "body-parser@^1.19.0", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph", "bugs": { "url": "https://github.com/expressjs/body-parser/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Douglas Christopher Wilson", @@ -51,7 +65,6 @@ "raw-body": "2.4.0", "type-is": "~1.6.17" }, - "deprecated": false, "description": "Node.js body parsing middleware", "devDependencies": { "eslint": "5.16.0", @@ -67,18 +80,30 @@ "safe-buffer": "5.1.2", "supertest": "4.0.2" }, + "directories": {}, + "dist": { + "fileCount": 10, + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwnuMCRA9TVsSAnZWagAA2zMP/3i2Q8pQBJx4azFOeuub\n/s3F445wJrDoAKA+6zSOLFMYYasZ0iF60NoE4taDupDF1hzpC4gCYgy9ZezQ\n75kKKBC48jCQP6Urx1tj6VUPzWqG6xdQMjhZpXrkK+EF5XYtAspb8+YSxaw4\nzf4atEm+7Q3N1qwvyfi8T/KQaK7WV6wC513pXTZv8SCtetX/4jBJwA4uUqLh\nXbuO5GcsjNEDmfX91YFKbb2+TvL2kuJkxVVdjeVv+UDLAs8AL+6afVJTe2vB\nmY+9CmSN2egWYDEXgpIowRTXzvasLJ8kQQH0dhseRrnF/k8cxX61VsT0MYEB\nd7mVyXFJE2WrN/HgiVCa9XSzLNn2bp/tyoz3W8TTSCqWOaY2cgbpFBUcBqWY\nmZSkqGqBj0lAJ3qMJw9tfIKiGtLEqsBwRoHTt6yQRsPTTD0wY3WzQTzedpS7\nPKEPDqrqMhDJpjv7vHZyP0E85lSYoDAMYPQ33fYvNbiuIMU4eDxoNJWUImXJ\nTN3uRKDn9QeE8mLTeglLVIu5+4FrDQNNjK6HHcetM89H8F4FGxGl090/H07x\nqc9A2Fe2yCeM6BICsO3BIRt0eClHS6jD15tMDbx9hx4Z4Qt+IgTn0NS4Ebj7\nW1V7qu/d6ajepEVd2kCXQkvJvslxzIGDxXo6OvTN757kROAWoYZNyGefqnou\nHXEH\r\n=IvFh\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a", + "tarball": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "unpackedSize": 56375 + }, "engines": { "node": ">= 0.8" }, - "files": [ - "lib/", - "LICENSE", - "HISTORY.md", - "index.js" - ], + "gitHead": "998b265db57a80ae75ea51c55f6a191e2d168a60", "homepage": "https://github.com/expressjs/body-parser#readme", "license": "MIT", + "maintainers": [ + { + "name": "dougwilson", + "email": "doug@somethingdoug.com" + } + ], "name": "body-parser", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/expressjs/body-parser.git" diff --git a/node_modules/ejs/package.json b/node_modules/ejs/package.json @@ -6,14 +6,14 @@ "_location": "/ejs", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "ejs@^3.0.1", - "name": "ejs", "escapedName": "ejs", + "fetchSpec": "^3.0.1", + "name": "ejs", + "raw": "ejs@^3.0.1", "rawSpec": "^3.0.1", + "registry": true, "saveSpec": null, - "fetchSpec": "^3.0.1" + "type": "range" }, "_requiredBy": [ "#USER", @@ -21,11 +21,12 @@ ], "_resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.1.tgz", "_shasum": "30c8f6ee9948502cc32e85c37a3f8b39b5a614a5", + "_shrinkwrap": null, "_spec": "ejs@^3.0.1", "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", "author": { - "name": "Matthew Eernisse", "email": "mde@fleegix.org", + "name": "Matthew Eernisse", "url": "http://fleegix.org" }, "bugs": { @@ -50,13 +51,16 @@ }, "homepage": "https://github.com/mde/ejs", "keywords": [ - "template", + "ejs", "engine", - "ejs" + "template" ], "license": "Apache-2.0", "main": "./lib/ejs.js", "name": "ejs", + "optionalDependencies": {}, + "readme": "# EJS\n\nEmbedded JavaScript templates\n\n[![Build Status](https://img.shields.io/travis/mde/ejs/master.svg?style=flat)](https://travis-ci.org/mde/ejs)\n[![Developing Dependencies](https://img.shields.io/david/dev/mde/ejs.svg?style=flat)](https://david-dm.org/mde/ejs?type=dev)\n[![Known Vulnerabilities](https://snyk.io/test/npm/ejs/badge.svg?style=flat)](https://snyk.io/test/npm/ejs)\n\n## Installation\n\n```bash\n$ npm install ejs\n```\n\n## Features\n\n * Control flow with `<% %>`\n * Escaped output with `<%= %>` (escape function configurable)\n * Unescaped raw output with `<%- %>`\n * Newline-trim mode ('newline slurping') with `-%>` ending tag\n * Whitespace-trim mode (slurp all whitespace) for control flow with `<%_ _%>`\n * Custom delimiters (e.g., use `<? ?>` instead of `<% %>`)\n * Includes\n * Client-side support\n * Static caching of intermediate JavaScript\n * Static caching of templates\n * Complies with the [Express](http://expressjs.com) view system\n\n## Example\n\n```ejs\n<% if (user) { %>\n <h2><%= user.name %></h2>\n<% } %>\n```\n\nTry EJS online at: https://ionicabizau.github.io/ejs-playground/.\n\n## Usage\n\n```javascript\nlet template = ejs.compile(str, options);\ntemplate(data);\n// => Rendered HTML string\n\nejs.render(str, data, options);\n// => Rendered HTML string\n\nejs.renderFile(filename, data, options, function(err, str){\n // str => Rendered HTML string\n});\n```\n\nIt is also possible to use `ejs.render(dataAndOptions);` where you pass\neverything in a single object. In that case, you'll end up with local variables\nfor all the passed options. However, be aware that your code could break if we\nadd an option with the same name as one of your data object's properties.\nTherefore, we do not recommend using this shortcut.\n\n## Options\n\n - `cache` Compiled functions are cached, requires `filename`\n - `filename` The name of the file being rendered. Not required if you\n are using `renderFile()`. Used by `cache` to key caches, and for includes.\n - `root` Set project root for includes with an absolute path (/file.ejs).\n - `context` Function execution context\n - `compileDebug` When `false` no debug instrumentation is compiled\n - `client` When `true`, compiles a function that can be rendered\n in the browser without needing to load the EJS Runtime\n ([ejs.min.js](https://github.com/mde/ejs/releases/latest)).\n - `delimiter` Character to use with angle brackets for open/close\n - `debug` Output generated function body\n - `strict` When set to `true`, generated function is in strict mode\n - `_with` Whether or not to use `with() {}` constructs. If `false`\n then the locals will be stored in the `locals` object. Set to `false` in strict mode.\n - `destructuredLocals` An array of local variables that are always destructured from\n the locals object, available even in strict mode.\n - `localsName` Name to use for the object storing local variables when not using\n `with` Defaults to `locals`\n - `rmWhitespace` Remove all safe-to-remove whitespace, including leading\n and trailing whitespace. It also enables a safer version of `-%>` line\n slurping for all scriptlet tags (it does not strip new lines of tags in\n the middle of a line).\n - `escape` The escaping function used with `<%=` construct. It is\n used in rendering and is `.toString()`ed in the generation of client functions.\n (By default escapes XML).\n - `outputFunctionName` Set to a string (e.g., 'echo' or 'print') for a function to print\n output inside scriptlet tags.\n - `async` When `true`, EJS will use an async function for rendering. (Depends\n on async/await support in the JS runtime.\n\nThis project uses [JSDoc](http://usejsdoc.org/). For the full public API\ndocumentation, clone the repository and run `npm run doc`. This will run JSDoc\nwith the proper options and output the documentation to `out/`. If you want\nthe both the public & private API docs, run `npm run devdoc` instead.\n\n## Tags\n\n - `<%` 'Scriptlet' tag, for control-flow, no output\n - `<%_` 'Whitespace Slurping' Scriptlet tag, strips all whitespace before it\n - `<%=` Outputs the value into the template (escaped)\n - `<%-` Outputs the unescaped value into the template\n - `<%#` Comment tag, no execution, no output\n - `<%%` Outputs a literal '<%'\n - `%%>` Outputs a literal '%>'\n - `%>` Plain ending tag\n - `-%>` Trim-mode ('newline slurp') tag, trims following newline\n - `_%>` 'Whitespace Slurping' ending tag, removes all whitespace after it\n\nFor the full syntax documentation, please see [docs/syntax.md](https://github.com/mde/ejs/blob/master/docs/syntax.md).\n\n## Includes\n\nIncludes either have to be an absolute path, or, if not, are assumed as\nrelative to the template with the `include` call. For example if you are\nincluding `./views/user/show.ejs` from `./views/users.ejs` you would\nuse `<%- include('user/show') %>`.\n\nYou must specify the `filename` option for the template with the `include`\ncall unless you are using `renderFile()`.\n\nYou'll likely want to use the raw output tag (`<%-`) with your include to avoid\ndouble-escaping the HTML output.\n\n```ejs\n<ul>\n <% users.forEach(function(user){ %>\n <%- include('user/show', {user: user}) %>\n <% }); %>\n</ul>\n```\n\nIncludes are inserted at runtime, so you can use variables for the path in the\n`include` call (for example `<%- include(somePath) %>`). Variables in your\ntop-level data object are available to all your includes, but local variables\nneed to be passed down.\n\nNOTE: Include preprocessor directives (`<% include user/show %>`) are\nstill supported.\n\n## Custom delimiters\n\nCustom delimiters can be applied on a per-template basis, or globally:\n\n```javascript\nlet ejs = require('ejs'),\n users = ['geddy', 'neil', 'alex'];\n\n// Just one template\nejs.render('<?= users.join(\" | \"); ?>', {users: users}, {delimiter: '?'});\n// => 'geddy | neil | alex'\n\n// Or globally\nejs.delimiter = '$';\nejs.render('<$= users.join(\" | \"); $>', {users: users});\n// => 'geddy | neil | alex'\n```\n\n## Caching\n\nEJS ships with a basic in-process cache for caching the intermediate JavaScript\nfunctions used to render templates. It's easy to plug in LRU caching using\nNode's `lru-cache` library:\n\n```javascript\nlet ejs = require('ejs'),\n LRU = require('lru-cache');\nejs.cache = LRU(100); // LRU cache with 100-item limit\n```\n\nIf you want to clear the EJS cache, call `ejs.clearCache`. If you're using the\nLRU cache and need a different limit, simple reset `ejs.cache` to a new instance\nof the LRU.\n\n## Custom file loader\n\nThe default file loader is `fs.readFileSync`, if you want to customize it, you can set ejs.fileLoader.\n\n```javascript\nlet ejs = require('ejs');\nlet myFileLoad = function (filePath) {\n return 'myFileLoad: ' + fs.readFileSync(filePath);\n};\n\nejs.fileLoader = myFileLoad;\n```\n\nWith this feature, you can preprocess the template before reading it.\n\n## Layouts\n\nEJS does not specifically support blocks, but layouts can be implemented by\nincluding headers and footers, like so:\n\n\n```ejs\n<%- include('header') -%>\n<h1>\n Title\n</h1>\n<p>\n My page\n</p>\n<%- include('footer') -%>\n```\n\n## Client-side support\n\nGo to the [Latest Release](https://github.com/mde/ejs/releases/latest), download\n`./ejs.js` or `./ejs.min.js`. Alternately, you can compile it yourself by cloning\nthe repository and running `jake build` (or `$(npm bin)/jake build` if jake is\nnot installed globally).\n\nInclude one of these files on your page, and `ejs` should be available globally.\n\n### Example\n\n```html\n<div id=\"output\"></div>\n<script src=\"ejs.min.js\"></script>\n<script>\n let people = ['geddy', 'neil', 'alex'],\n html = ejs.render('<%= people.join(\", \"); %>', {people: people});\n // With jQuery:\n $('#output').html(html);\n // Vanilla JS:\n document.getElementById('output').innerHTML = html;\n</script>\n```\n\n### Caveats\n\nMost of EJS will work as expected; however, there are a few things to note:\n\n1. Obviously, since you do not have access to the filesystem, `ejs.renderFile()` won't work.\n2. For the same reason, `include`s do not work unless you use an `include callback`. Here is an example:\n ```javascript\n let str = \"Hello <%= include('file', {person: 'John'}); %>\",\n fn = ejs.compile(str, {client: true});\n\n fn(data, null, function(path, d){ // include callback\n // path -> 'file'\n // d -> {person: 'John'}\n // Put your code here\n // Return the contents of file as a string\n }); // returns rendered string\n ```\n\nSee the [examples folder](https://github.com/mde/ejs/tree/master/examples) for more details.\n\n### IDE Integration with Syntax Highlighting\n\nVSCode:Javascript EJS by *DigitalBrainstem*\n\n## Related projects\n\nThere are a number of implementations of EJS:\n\n * TJ's implementation, the v1 of this library: https://github.com/tj/ejs\n * Jupiter Consulting's EJS: http://www.embeddedjs.com/\n * EJS Embedded JavaScript Framework on Google Code: https://code.google.com/p/embeddedjavascript/\n * Sam Stephenson's Ruby implementation: https://rubygems.org/gems/ejs\n * Erubis, an ERB implementation which also runs JavaScript: http://www.kuwata-lab.com/erubis/users-guide.04.html#lang-javascript\n * DigitalBrainstem EJS Language support: https://github.com/Digitalbrainstem/ejs-grammar\n\n## License\n\nLicensed under the Apache License, Version 2.0\n(<http://www.apache.org/licenses/LICENSE-2.0>)\n\n- - -\nEJS Embedded JavaScript templates copyright 2112\nmde@fleegix.org.\n", + "readmeFilename": "README.md", "repository": { "type": "git", "url": "git://github.com/mde/ejs.git" diff --git a/node_modules/express/package.json b/node_modules/express/package.json @@ -6,14 +6,14 @@ "_location": "/express", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "express@^4.17.1", - "name": "express", "escapedName": "express", + "fetchSpec": "^4.17.1", + "name": "express", + "raw": "express@^4.17.1", "rawSpec": "^4.17.1", + "registry": true, "saveSpec": null, - "fetchSpec": "^4.17.1" + "type": "range" }, "_requiredBy": [ "#USER", @@ -21,11 +21,12 @@ ], "_resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "_shasum": "4491fc38605cf51f8629d39c2b5d026f98a4c134", + "_shrinkwrap": null, "_spec": "express@^4.17.1", "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" + "email": "tj@vision-media.ca", + "name": "TJ Holowaychuk" }, "bugs": { "url": "https://github.com/expressjs/express/issues" @@ -119,26 +120,29 @@ "node": ">= 0.10.0" }, "files": [ - "LICENSE", "History.md", + "LICENSE", "Readme.md", "index.js", "lib/" ], "homepage": "http://expressjs.com/", "keywords": [ + "api", + "app", "express", "framework", - "sinatra", - "web", "rest", "restful", "router", - "app", - "api" + "sinatra", + "web" ], "license": "MIT", "name": "express", + "optionalDependencies": {}, + "readme": "[![Express Logo](https://i.cloudup.com/zfY6lL7eFa-3000x3000.png)](http://expressjs.com/)\n\n Fast, unopinionated, minimalist web framework for [node](http://nodejs.org).\n\n [![NPM Version][npm-image]][npm-url]\n [![NPM Downloads][downloads-image]][downloads-url]\n [![Linux Build][travis-image]][travis-url]\n [![Windows Build][appveyor-image]][appveyor-url]\n [![Test Coverage][coveralls-image]][coveralls-url]\n\n```js\nconst express = require('express')\nconst app = express()\n\napp.get('/', function (req, res) {\n res.send('Hello World')\n})\n\napp.listen(3000)\n```\n\n## Installation\n\nThis is a [Node.js](https://nodejs.org/en/) module available through the\n[npm registry](https://www.npmjs.com/).\n\nBefore installing, [download and install Node.js](https://nodejs.org/en/download/).\nNode.js 0.10 or higher is required.\n\nInstallation is done using the\n[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):\n\n```bash\n$ npm install express\n```\n\nFollow [our installing guide](http://expressjs.com/en/starter/installing.html)\nfor more information.\n\n## Features\n\n * Robust routing\n * Focus on high performance\n * Super-high test coverage\n * HTTP helpers (redirection, caching, etc)\n * View system supporting 14+ template engines\n * Content negotiation\n * Executable for generating applications quickly\n\n## Docs & Community\n\n * [Website and Documentation](http://expressjs.com/) - [[website repo](https://github.com/expressjs/expressjs.com)]\n * [#express](https://webchat.freenode.net/?channels=express) on freenode IRC\n * [GitHub Organization](https://github.com/expressjs) for Official Middleware & Modules\n * Visit the [Wiki](https://github.com/expressjs/express/wiki)\n * [Google Group](https://groups.google.com/group/express-js) for discussion\n * [Gitter](https://gitter.im/expressjs/express) for support and discussion\n\n**PROTIP** Be sure to read [Migrating from 3.x to 4.x](https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x) as well as [New features in 4.x](https://github.com/expressjs/express/wiki/New-features-in-4.x).\n\n### Security Issues\n\nIf you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md).\n\n## Quick Start\n\n The quickest way to get started with express is to utilize the executable [`express(1)`](https://github.com/expressjs/generator) to generate an application as shown below:\n\n Install the executable. The executable's major version will match Express's:\n\n```bash\n$ npm install -g express-generator@4\n```\n\n Create the app:\n\n```bash\n$ express /tmp/foo && cd /tmp/foo\n```\n\n Install dependencies:\n\n```bash\n$ npm install\n```\n\n Start the server:\n\n```bash\n$ npm start\n```\n\n View the website at: http://localhost:3000\n\n## Philosophy\n\n The Express philosophy is to provide small, robust tooling for HTTP servers, making\n it a great solution for single page applications, web sites, hybrids, or public\n HTTP APIs.\n\n Express does not force you to use any specific ORM or template engine. With support for over\n 14 template engines via [Consolidate.js](https://github.com/tj/consolidate.js),\n you can quickly craft your perfect framework.\n\n## Examples\n\n To view the examples, clone the Express repo and install the dependencies:\n\n```bash\n$ git clone git://github.com/expressjs/express.git --depth 1\n$ cd express\n$ npm install\n```\n\n Then run whichever example you want:\n\n```bash\n$ node examples/content-negotiation\n```\n\n## Tests\n\n To run the test suite, first install the dependencies, then run `npm test`:\n\n```bash\n$ npm install\n$ npm test\n```\n\n## Contributing\n\n[Contributing Guide](Contributing.md)\n\n## People\n\nThe original author of Express is [TJ Holowaychuk](https://github.com/tj)\n\nThe current lead maintainer is [Douglas Christopher Wilson](https://github.com/dougwilson)\n\n[List of all contributors](https://github.com/expressjs/express/graphs/contributors)\n\n## License\n\n [MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/express.svg\n[npm-url]: https://npmjs.org/package/express\n[downloads-image]: https://img.shields.io/npm/dm/express.svg\n[downloads-url]: https://npmjs.org/package/express\n[travis-image]: https://img.shields.io/travis/expressjs/express/master.svg?label=linux\n[travis-url]: https://travis-ci.org/expressjs/express\n[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/express/master.svg?label=windows\n[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express\n[coveralls-image]: https://img.shields.io/coveralls/expressjs/express/master.svg\n[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master\n", + "readmeFilename": "Readme.md", "repository": { "type": "git", "url": "git+https://github.com/expressjs/express.git" diff --git a/node_modules/node-fetch/package.json b/node_modules/node-fetch/package.json @@ -6,14 +6,14 @@ "_location": "/node-fetch", "_phantomChildren": {}, "_requested": { - "type": "tag", - "registry": true, - "raw": "node-fetch", - "name": "node-fetch", "escapedName": "node-fetch", + "fetchSpec": "latest", + "name": "node-fetch", + "raw": "node-fetch", "rawSpec": "", + "registry": true, "saveSpec": null, - "fetchSpec": "latest" + "type": "tag" }, "_requiredBy": [ "#USER", @@ -21,6 +21,7 @@ ], "_resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", "_shasum": "e633456386d4aa55863f676a7ab0daa8fdecb0fd", + "_shrinkwrap": null, "_spec": "node-fetch", "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", "author": { @@ -64,10 +65,10 @@ "node": "4.x || >=6.0.0" }, "files": [ - "lib/index.js", - "lib/index.mjs", + "browser.js", "lib/index.es.js", - "browser.js" + "lib/index.js", + "lib/index.mjs" ], "homepage": "https://github.com/bitinn/node-fetch", "keywords": [ @@ -79,6 +80,9 @@ "main": "lib/index", "module": "lib/index.mjs", "name": "node-fetch", + "optionalDependencies": {}, + "readme": "node-fetch\n==========\n\n[![npm version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![coverage status][codecov-image]][codecov-url]\n[![install size][install-size-image]][install-size-url]\n\nA light-weight module that brings `window.fetch` to Node.js\n\n(We are looking for [v2 maintainers and collaborators](https://github.com/bitinn/node-fetch/issues/567))\n\n<!-- TOC -->\n\n- [Motivation](#motivation)\n- [Features](#features)\n- [Difference from client-side fetch](#difference-from-client-side-fetch)\n- [Installation](#installation)\n- [Loading and configuring the module](#loading-and-configuring-the-module)\n- [Common Usage](#common-usage)\n - [Plain text or HTML](#plain-text-or-html)\n - [JSON](#json)\n - [Simple Post](#simple-post)\n - [Post with JSON](#post-with-json)\n - [Post with form parameters](#post-with-form-parameters)\n - [Handling exceptions](#handling-exceptions)\n - [Handling client and server errors](#handling-client-and-server-errors)\n- [Advanced Usage](#advanced-usage)\n - [Streams](#streams)\n - [Buffer](#buffer)\n - [Accessing Headers and other Meta data](#accessing-headers-and-other-meta-data)\n - [Extract Set-Cookie Header](#extract-set-cookie-header)\n - [Post data using a file stream](#post-data-using-a-file-stream)\n - [Post with form-data (detect multipart)](#post-with-form-data-detect-multipart)\n - [Request cancellation with AbortSignal](#request-cancellation-with-abortsignal)\n- [API](#api)\n - [fetch(url[, options])](#fetchurl-options)\n - [Options](#options)\n - [Class: Request](#class-request)\n - [Class: Response](#class-response)\n - [Class: Headers](#class-headers)\n - [Interface: Body](#interface-body)\n - [Class: FetchError](#class-fetcherror)\n- [License](#license)\n- [Acknowledgement](#acknowledgement)\n\n<!-- /TOC -->\n\n## Motivation\n\nInstead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime.\n\nSee Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) or Leonardo Quixada's [cross-fetch](https://github.com/lquixada/cross-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side).\n\n## Features\n\n- Stay consistent with `window.fetch` API.\n- Make conscious trade-off when following [WHATWG fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known differences.\n- Use native promise, but allow substituting it with [insert your favorite promise library].\n- Use native Node streams for body, on both request and response.\n- Decode content encoding (gzip/deflate) properly, and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically.\n- Useful extensions such as timeout, redirect limit, response size limit, [explicit errors](ERROR-HANDLING.md) for troubleshooting.\n\n## Difference from client-side fetch\n\n- See [Known Differences](LIMITS.md) for details.\n- If you happen to use a missing feature that `window.fetch` offers, feel free to open an issue.\n- Pull requests are welcomed too!\n\n## Installation\n\nCurrent stable release (`2.x`)\n\n```sh\n$ npm install node-fetch --save\n```\n\n## Loading and configuring the module\nWe suggest you load the module via `require`, pending the stabalizing of es modules in node:\n```js\nconst fetch = require('node-fetch');\n```\n\nIf you are using a Promise library other than native, set it through fetch.Promise:\n```js\nconst Bluebird = require('bluebird');\n\nfetch.Promise = Bluebird;\n```\n\n## Common Usage\n\nNOTE: The documentation below is up-to-date with `2.x` releases, [see `1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide](UPGRADE-GUIDE.md) for the differences.\n\n#### Plain text or HTML\n```js\nfetch('https://github.com/')\n .then(res => res.text())\n .then(body => console.log(body));\n```\n\n#### JSON\n\n```js\n\nfetch('https://api.github.com/users/github')\n .then(res => res.json())\n .then(json => console.log(json));\n```\n\n#### Simple Post\n```js\nfetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' })\n .then(res => res.json()) // expecting a json response\n .then(json => console.log(json));\n```\n\n#### Post with JSON\n\n```js\nconst body = { a: 1 };\n\nfetch('https://httpbin.org/post', {\n method: 'post',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n })\n .then(res => res.json())\n .then(json => console.log(json));\n```\n\n#### Post with form parameters\n`URLSearchParams` is available in Node.js as of v7.5.0. See [official documentation](https://nodejs.org/api/url.html#url_class_urlsearchparams) for more usage methods.\n\nNOTE: The `Content-Type` header is only set automatically to `x-www-form-urlencoded` when an instance of `URLSearchParams` is given as such:\n\n```js\nconst { URLSearchParams } = require('url');\n\nconst params = new URLSearchParams();\nparams.append('a', 1);\n\nfetch('https://httpbin.org/post', { method: 'POST', body: params })\n .then(res => res.json())\n .then(json => console.log(json));\n```\n\n#### Handling exceptions\nNOTE: 3xx-5xx responses are *NOT* exceptions, and should be handled in `then()`, see the next section.\n\nAdding a catch to the fetch promise chain will catch *all* exceptions, such as errors originating from node core libraries, like network errors, and operational errors which are instances of FetchError. See the [error handling document](ERROR-HANDLING.md) for more details.\n\n```js\nfetch('https://domain.invalid/')\n .catch(err => console.error(err));\n```\n\n#### Handling client and server errors\nIt is common to create a helper function to check that the response contains no client (4xx) or server (5xx) error responses:\n\n```js\nfunction checkStatus(res) {\n if (res.ok) { // res.status >= 200 && res.status < 300\n return res;\n } else {\n throw MyCustomError(res.statusText);\n }\n}\n\nfetch('https://httpbin.org/status/400')\n .then(checkStatus)\n .then(res => console.log('will not get here...'))\n```\n\n## Advanced Usage\n\n#### Streams\nThe \"Node.js way\" is to use streams when possible:\n\n```js\nfetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')\n .then(res => {\n const dest = fs.createWriteStream('./octocat.png');\n res.body.pipe(dest);\n });\n```\n\n#### Buffer\nIf you prefer to cache binary data in full, use buffer(). (NOTE: buffer() is a `node-fetch` only API)\n\n```js\nconst fileType = require('file-type');\n\nfetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')\n .then(res => res.buffer())\n .then(buffer => fileType(buffer))\n .then(type => { /* ... */ });\n```\n\n#### Accessing Headers and other Meta data\n```js\nfetch('https://github.com/')\n .then(res => {\n console.log(res.ok);\n console.log(res.status);\n console.log(res.statusText);\n console.log(res.headers.raw());\n console.log(res.headers.get('content-type'));\n });\n```\n\n#### Extract Set-Cookie Header\n\nUnlike browsers, you can access raw `Set-Cookie` headers manually using `Headers.raw()`, this is a `node-fetch` only API.\n\n```js\nfetch(url).then(res => {\n // returns an array of values, instead of a string of comma-separated values\n console.log(res.headers.raw()['set-cookie']);\n});\n```\n\n#### Post data using a file stream\n\n```js\nconst { createReadStream } = require('fs');\n\nconst stream = createReadStream('input.txt');\n\nfetch('https://httpbin.org/post', { method: 'POST', body: stream })\n .then(res => res.json())\n .then(json => console.log(json));\n```\n\n#### Post with form-data (detect multipart)\n\n```js\nconst FormData = require('form-data');\n\nconst form = new FormData();\nform.append('a', 1);\n\nfetch('https://httpbin.org/post', { method: 'POST', body: form })\n .then(res => res.json())\n .then(json => console.log(json));\n\n// OR, using custom headers\n// NOTE: getHeaders() is non-standard API\n\nconst form = new FormData();\nform.append('a', 1);\n\nconst options = {\n method: 'POST',\n body: form,\n headers: form.getHeaders()\n}\n\nfetch('https://httpbin.org/post', options)\n .then(res => res.json())\n .then(json => console.log(json));\n```\n\n#### Request cancellation with AbortSignal\n\n> NOTE: You may only cancel streamed requests on Node >= v8.0.0\n\nYou may cancel requests with `AbortController`. A suggested implementation is [`abort-controller`](https://www.npmjs.com/package/abort-controller).\n\nAn example of timing out a request after 150ms could be achieved as follows:\n\n```js\nimport AbortController from 'abort-controller';\n\nconst controller = new AbortController();\nconst timeout = setTimeout(\n () => { controller.abort(); },\n 150,\n);\n\nfetch(url, { signal: controller.signal })\n .then(res => res.json())\n .then(\n data => {\n useData(data)\n },\n err => {\n if (err.name === 'AbortError') {\n // request was aborted\n }\n },\n )\n .finally(() => {\n clearTimeout(timeout);\n });\n```\n\nSee [test cases](https://github.com/bitinn/node-fetch/blob/master/test/test.js) for more examples.\n\n\n## API\n\n### fetch(url[, options])\n\n- `url` A string representing the URL for fetching\n- `options` [Options](#fetch-options) for the HTTP(S) request\n- Returns: <code>Promise&lt;[Response](#class-response)&gt;</code>\n\nPerform an HTTP(S) fetch.\n\n`url` should be an absolute url, such as `https://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected promise.\n\n<a id=\"fetch-options\"></a>\n### Options\n\nThe default values are shown after each option key.\n\n```js\n{\n // These properties are part of the Fetch Standard\n method: 'GET',\n headers: {}, // request headers. format is the identical to that accepted by the Headers constructor (see below)\n body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream\n redirect: 'follow', // set to `manual` to extract redirect headers, `error` to reject redirect\n signal: null, // pass an instance of AbortSignal to optionally abort requests\n\n // The following properties are node-fetch extensions\n follow: 20, // maximum redirect count. 0 to not follow redirect\n timeout: 0, // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies). Signal is recommended instead.\n compress: true, // support gzip/deflate content encoding. false to disable\n size: 0, // maximum response body size in bytes. 0 to disable\n agent: null // http(s).Agent instance or function that returns an instance (see below)\n}\n```\n\n##### Default Headers\n\nIf no values are set, the following request headers will be sent automatically:\n\nHeader | Value\n------------------- | --------------------------------------------------------\n`Accept-Encoding` | `gzip,deflate` _(when `options.compress === true`)_\n`Accept` | `*/*`\n`Connection` | `close` _(when no `options.agent` is present)_\n`Content-Length` | _(automatically calculated, if possible)_\n`Transfer-Encoding` | `chunked` _(when `req.body` is a stream)_\n`User-Agent` | `node-fetch/1.0 (+https://github.com/bitinn/node-fetch)`\n\nNote: when `body` is a `Stream`, `Content-Length` is not set automatically.\n\n##### Custom Agent\n\nThe `agent` option allows you to specify networking related options that's out of the scope of Fetch. Including and not limit to:\n\n- Support self-signed certificate\n- Use only IPv4 or IPv6\n- Custom DNS Lookup\n\nSee [`http.Agent`](https://nodejs.org/api/http.html#http_new_agent_options) for more information.\n\nIn addition, `agent` option accepts a function that returns http(s).Agent instance given current [URL](https://nodejs.org/api/url.html), this is useful during a redirection chain across HTTP and HTTPS protocol.\n\n```js\nconst httpAgent = new http.Agent({\n keepAlive: true\n});\nconst httpsAgent = new https.Agent({\n keepAlive: true\n});\n\nconst options = {\n agent: function (_parsedURL) {\n if (_parsedURL.protocol == 'http:') {\n return httpAgent;\n } else {\n return httpsAgent;\n }\n }\n}\n```\n\n<a id=\"class-request\"></a>\n### Class: Request\n\nAn HTTP(S) request containing information about URL, method, headers, and the body. This class implements the [Body](#iface-body) interface.\n\nDue to the nature of Node.js, the following properties are not implemented at this moment:\n\n- `type`\n- `destination`\n- `referrer`\n- `referrerPolicy`\n- `mode`\n- `credentials`\n- `cache`\n- `integrity`\n- `keepalive`\n\nThe following node-fetch extension properties are provided:\n\n- `follow`\n- `compress`\n- `counter`\n- `agent`\n\nSee [options](#fetch-options) for exact meaning of these extensions.\n\n#### new Request(input[, options])\n\n<small>*(spec-compliant)*</small>\n\n- `input` A string representing a URL, or another `Request` (which will be cloned)\n- `options` [Options][#fetch-options] for the HTTP(S) request\n\nConstructs a new `Request` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).\n\nIn most cases, directly `fetch(url, options)` is simpler than creating a `Request` object.\n\n<a id=\"class-response\"></a>\n### Class: Response\n\nAn HTTP(S) response. This class implements the [Body](#iface-body) interface.\n\nThe following properties are not implemented in node-fetch at this moment:\n\n- `Response.error()`\n- `Response.redirect()`\n- `type`\n- `trailer`\n\n#### new Response([body[, options]])\n\n<small>*(spec-compliant)*</small>\n\n- `body` A string or [Readable stream][node-readable]\n- `options` A [`ResponseInit`][response-init] options dictionary\n\nConstructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response).\n\nBecause Node.js does not implement service workers (for which this class was designed), one rarely has to construct a `Response` directly.\n\n#### response.ok\n\n<small>*(spec-compliant)*</small>\n\nConvenience property representing if the request ended normally. Will evaluate to true if the response status was greater than or equal to 200 but smaller than 300.\n\n#### response.redirected\n\n<small>*(spec-compliant)*</small>\n\nConvenience property representing if the request has been redirected at least once. Will evaluate to true if the internal redirect counter is greater than 0.\n\n<a id=\"class-headers\"></a>\n### Class: Headers\n\nThis class allows manipulating and iterating over a set of HTTP headers. All methods specified in the [Fetch Standard][whatwg-fetch] are implemented.\n\n#### new Headers([init])\n\n<small>*(spec-compliant)*</small>\n\n- `init` Optional argument to pre-fill the `Headers` object\n\nConstruct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object, or any iterable object.\n\n```js\n// Example adapted from https://fetch.spec.whatwg.org/#example-headers-class\n\nconst meta = {\n 'Content-Type': 'text/xml',\n 'Breaking-Bad': '<3'\n};\nconst headers = new Headers(meta);\n\n// The above is equivalent to\nconst meta = [\n [ 'Content-Type', 'text/xml' ],\n [ 'Breaking-Bad', '<3' ]\n];\nconst headers = new Headers(meta);\n\n// You can in fact use any iterable objects, like a Map or even another Headers\nconst meta = new Map();\nmeta.set('Content-Type', 'text/xml');\nmeta.set('Breaking-Bad', '<3');\nconst headers = new Headers(meta);\nconst copyOfHeaders = new Headers(headers);\n```\n\n<a id=\"iface-body\"></a>\n### Interface: Body\n\n`Body` is an abstract interface with methods that are applicable to both `Request` and `Response` classes.\n\nThe following methods are not yet implemented in node-fetch at this moment:\n\n- `formData()`\n\n#### body.body\n\n<small>*(deviation from spec)*</small>\n\n* Node.js [`Readable` stream][node-readable]\n\nThe data encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable].\n\n#### body.bodyUsed\n\n<small>*(spec-compliant)*</small>\n\n* `Boolean`\n\nA boolean property for if this body has been consumed. Per spec, a consumed body cannot be used again.\n\n#### body.arrayBuffer()\n#### body.blob()\n#### body.json()\n#### body.text()\n\n<small>*(spec-compliant)*</small>\n\n* Returns: <code>Promise</code>\n\nConsume the body and return a promise that will resolve to one of these formats.\n\n#### body.buffer()\n\n<small>*(node-fetch extension)*</small>\n\n* Returns: <code>Promise&lt;Buffer&gt;</code>\n\nConsume the body and return a promise that will resolve to a Buffer.\n\n#### body.textConverted()\n\n<small>*(node-fetch extension)*</small>\n\n* Returns: <code>Promise&lt;String&gt;</code>\n\nIdentical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8, if possible.\n\n(This API requires an optional dependency on npm package [encoding](https://www.npmjs.com/package/encoding), which you need to install manually. `webpack` users may see [a warning message](https://github.com/bitinn/node-fetch/issues/412#issuecomment-379007792) due to this optional dependency.)\n\n<a id=\"class-fetcherror\"></a>\n### Class: FetchError\n\n<small>*(node-fetch extension)*</small>\n\nAn operational error in the fetching process. See [ERROR-HANDLING.md][] for more info.\n\n<a id=\"class-aborterror\"></a>\n### Class: AbortError\n\n<small>*(node-fetch extension)*</small>\n\nAn Error thrown when the request is aborted in response to an `AbortSignal`'s `abort` event. It has a `name` property of `AbortError`. See [ERROR-HANDLING.MD][] for more info.\n\n## Acknowledgement\n\nThanks to [github/fetch](https://github.com/github/fetch) for providing a solid implementation reference.\n\n`node-fetch` v1 was maintained by [@bitinn](https://github.com/bitinn); v2 was maintained by [@TimothyGu](https://github.com/timothygu), [@bitinn](https://github.com/bitinn) and [@jimmywarting](https://github.com/jimmywarting); v2 readme is written by [@jkantr](https://github.com/jkantr).\n\n## License\n\nMIT\n\n[npm-image]: https://flat.badgen.net/npm/v/node-fetch\n[npm-url]: https://www.npmjs.com/package/node-fetch\n[travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch\n[travis-url]: https://travis-ci.org/bitinn/node-fetch\n[codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master\n[codecov-url]: https://codecov.io/gh/bitinn/node-fetch\n[install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch\n[install-size-url]: https://packagephobia.now.sh/result?p=node-fetch\n[whatwg-fetch]: https://fetch.spec.whatwg.org/\n[response-init]: https://fetch.spec.whatwg.org/#responseinit\n[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams\n[mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers\n[LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md\n[ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md\n[UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md\n", + "readmeFilename": "README.md", "repository": { "type": "git", "url": "git+https://github.com/bitinn/node-fetch.git" diff --git a/node_modules/socket.io-adapter/package.json b/node_modules/socket.io-adapter/package.json @@ -1,36 +1,74 @@ { - "_from": "socket.io-adapter@~1.1.0", + "_args": [ + [ + "socket.io-adapter@~1.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io" + ] + ], + "_from": "socket.io-adapter@>=1.1.0 <1.2.0", + "_hasShrinkwrap": false, "_id": "socket.io-adapter@1.1.2", - "_inBundle": false, - "_integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-adapter", + "_nodeVersion": "10.16.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/socket.io-adapter_1.1.2_1574684409506_0.16057923976891697" + }, + "_npmUser": { + "email": "damien.arrachequesne@gmail.com", + "name": "darrachequesne" + }, + "_npmVersion": "6.9.0", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "socket.io-adapter@~1.1.0", "name": "socket.io-adapter", - "escapedName": "socket.io-adapter", + "raw": "socket.io-adapter@~1.1.0", "rawSpec": "~1.1.0", - "saveSpec": null, - "fetchSpec": "~1.1.0" + "scope": null, + "spec": ">=1.1.0 <1.2.0", + "type": "range" }, "_requiredBy": [ "/socket.io" ], "_resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", "_shasum": "ab3f0d6f66b8fc7fca3959ab5991f82221789be9", + "_shrinkwrap": null, "_spec": "socket.io-adapter@~1.1.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io", "bugs": { "url": "https://github.com/socketio/socket.io-adapter/issues" }, - "bundleDependencies": false, - "deprecated": false, + "dependencies": {}, "description": "default socket.io in-memory adapter", + "devDependencies": {}, + "directories": {}, + "dist": { + "fileCount": 11, + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd28b5CRA9TVsSAnZWagAA3KsQAIBLuWWfHwrbyO4uBsMD\nlMYLLeSmwU/LhkrOddmlo2Cx3S35SM3KQHI76ti5t1lzBcAKZ8eDgCM2+2lS\nZ1QwMjopIvSn37tAP3m6nYumHs4TnUpGFyArjaE8JpqUjH0BSiaYZgF/js0C\nnzny0FG73dZ5XXMLK+4mJ2BwqFxSdkXU3BYKrQPoQ+Rx0mYGYk48ci63z3Iy\nVrCqzoiheBZkCoiC5UuyNirCi+PFnGlPLRpZas86XFvyXZJGZDJBZw4BiGnE\n6JGfkFiTJC/1kX9qgJUOPd9sd5luO9Zv73nCVBnTnVWwqQ3VhzqFYqgzpwTn\ne0/22+MdhHDf6hayLnVZVpzV54ExxOHhvVNzlh3df2TnVcF56CgepQFh9+Rg\nAF4MUWkDkW+sT65335HTChgCEVwqqZpjVTcBh0Tjgzl2OkycxkREygQ3wyvy\nScsBYpT3vupSiBfRZ65V5EMqqW6HWTryz+WWHo4ZSlEo+2e1j/X+kd+lrg5s\nrdcts9KGp0Bv0WJi7XABzCYLspwPgLkHsTXmt6aChNZW/YDdLdTlVIWGm120\ncCTmj4VUjHEhDEaCo/u8axZlM1m8r0sOs8gXz2dxnRKVYYLThutnqNvMH2Fz\nBhg6M4iYtTmbDj/iTU/J2yR9SR+vS65y3LjHOmiOinsqxs+fpxuHPT11f5ia\nZ63s\r\n=2QIg\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "ab3f0d6f66b8fc7fca3959ab5991f82221789be9", + "tarball": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "unpackedSize": 11778 + }, + "gitHead": "ae23c7ef4cd1b1793121b5af0376686a2ba2deea", "homepage": "https://github.com/socketio/socket.io-adapter#readme", "license": "MIT", + "maintainers": [ + { + "name": "darrachequesne", + "email": "damien.arrachequesne@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + } + ], "name": "socket.io-adapter", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/socketio/socket.io-adapter.git" diff --git a/node_modules/socket.io-client/node_modules/debug/package.json b/node_modules/socket.io-client/node_modules/debug/package.json @@ -1,36 +1,53 @@ { - "_from": "debug@~4.1.0", + "_args": [ + [ + "debug@~4.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io" + ], + [ + "debug@~4.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client" + ] + ], + "_from": "debug@>=4.1.0 <4.2.0", + "_hasShrinkwrap": false, "_id": "debug@4.1.1", - "_inBundle": false, - "_integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-client/debug", + "_nodeVersion": "10.14.2", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/debug_4.1.1_1545496822417_0.37311624175986635" + }, + "_npmUser": { + "email": "i.am.qix@gmail.com", + "name": "qix" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "debug@~4.1.0", "name": "debug", - "escapedName": "debug", + "raw": "debug@~4.1.0", "rawSpec": "~4.1.0", - "saveSpec": null, - "fetchSpec": "~4.1.0" + "scope": null, + "spec": ">=4.1.0 <4.2.0", + "type": "range" }, "_requiredBy": [ "/socket.io-client" ], - "_resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "_shasum": "3b72260255109c6b589cee050f1d516139664791", + "_shrinkwrap": null, "_spec": "debug@~4.1.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-client", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client", "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" + "email": "tj@vision-media.ca", + "name": "TJ Holowaychuk" }, "browser": "./src/browser.js", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Nathan Rajlich", @@ -45,7 +62,6 @@ "dependencies": { "ms": "^2.1.1" }, - "deprecated": false, "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", @@ -65,21 +81,45 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, - "files": [ - "src", - "dist/debug.js", - "LICENSE", - "README.md" - ], + "directories": {}, + "dist": { + "fileCount": 9, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHmj3CRA9TVsSAnZWagAAXQIP/RgGgdDQtTyIZha6xfTv\nN2WoeoMBONJYjsPPd/2uxClRNtMBRC2jUZawva5LoMkBhhsFExLCF68Di8jq\n4l1tKfSnQsCDZzprFSVJIcAEHryGPU7ZVTZC+h/HQa/QU8m+AnSCFjGtsDyy\np4I7DOsLSpBireRfB6BCZgk00ftuM+dOkof+dTKg4GVQDbYLbzMzhIRzpvjv\n2QtIickzjgRjwp8QuiEBIhf8/p4WnXrubOz4Y6LewqAbAKEHzEHXSxgiDCnY\n+vhuojGVLSdrfBS/+bYUCJxGpyCfcFivdRKJW8GG40RCKltOQhpUBIWfbfbJ\nVJ8gwfl6/A6/7RbdfRHRBwoyrpi03D5EFr0htHqrQIkeEmeU73szxti2Sag/\n3tpk2+Evcoed5tz2Vb9ZSCV7AOd3N0L5pUlZH4lrCtiIQWRnVetKwZ+mdZuE\nHWFJK6CNLyHoHw6HS+bBCUk/iLu+384UFgPb/GThxwosLpo2GXRUBncFHtTA\ngFNkRXtKJtG+MOHozkzWsmKNhsn8q4J26zpgI3snwfOqUx63sPvHkP3gcMl2\n60ZU9mCxDAtK5xmpXpzmV/ac+c3Wp2azRglbhSdfAB/RWji+KS5192bTb0nk\n+zvu6AJ2KGREgbxosEEZLVkbBvf3XtIRN1Ts3mIVLrx4rSDsDbJYqZ0IrJKl\nYAHO\r\n=bQum\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "3b72260255109c6b589cee050f1d516139664791", + "tarball": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "unpackedSize": 81476 + }, + "gitHead": "68b4dc8d8549d3924673c38fccc5d594f0a38da1", "homepage": "https://github.com/visionmedia/debug#readme", "keywords": [ "debug", - "log", - "debugger" + "debugger", + "log" ], "license": "MIT", "main": "./src/index.js", + "maintainers": [ + { + "name": "qix", + "email": "i.am.qix@gmail.com" + }, + { + "name": "thebigredgeek", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "tjholowaychuk", + "email": "tj@vision-media.ca" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + } + ], "name": "debug", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/visionmedia/debug.git" diff --git a/node_modules/socket.io-client/node_modules/ms/package.json b/node_modules/socket.io-client/node_modules/ms/package.json @@ -1,32 +1,49 @@ { - "_from": "ms@^2.1.1", + "_args": [ + [ + "ms@^2.1.1", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/debug" + ], + [ + "ms@^2.1.1", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io/node_modules/debug" + ] + ], + "_from": "ms@>=2.1.1 <3.0.0", + "_hasShrinkwrap": false, "_id": "ms@2.1.2", - "_inBundle": false, - "_integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-client/ms", + "_nodeVersion": "10.15.3", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ms_2.1.2_1559842315767_0.4700607530567853" + }, + "_npmUser": { + "email": "steven@ceriously.com", + "name": "styfle" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "ms@^2.1.1", "name": "ms", - "escapedName": "ms", + "raw": "ms@^2.1.1", "rawSpec": "^2.1.1", - "saveSpec": null, - "fetchSpec": "^2.1.1" + "scope": null, + "spec": ">=2.1.1 <3.0.0", + "type": "range" }, "_requiredBy": [ "/socket.io-client/debug" ], - "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "_shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "_shrinkwrap": null, "_spec": "ms@^2.1.1", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/debug", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/debug", "bugs": { "url": "https://github.com/zeit/ms/issues" }, - "bundleDependencies": false, - "deprecated": false, + "dependencies": {}, "description": "Tiny millisecond conversion utility", "devDependencies": { "eslint": "4.12.1", @@ -35,27 +52,234 @@ "lint-staged": "5.0.0", "mocha": "4.0.1" }, + "directories": {}, + "dist": { + "fileCount": 4, + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+U4MCRA9TVsSAnZWagAA71AP/2rpu0zYdK5Z/BXrrKNW\nljsVOs4oHNJ2jeZrzpcV8eZUZ6zAi78plyxcnMCbbG+TrpjXrPcb8qFq630G\nS6+srbEF0lCGCc+ktJrNJPTeXkDxukQXVrepgZ2kxZ4m3q/QIAVoK4t9ebuH\nNYa+39wwET9oPuPsk+YY0Z7fQ1vadyuzHYOrRmtudV3ZtyT0k74Ec3IhKamW\nlLDJtCklD7IGcwirrvPssxmYu8WP+PAyFnrVaOW+iior1o07oWO2mk7sk3Fx\nwBSBFf7vZqFJP6Qg1m3TVBAiipL+Pf+b3Dy8fhmn4NhTGj/9Wl7f/LcqogOV\nV9l77qsZldCERBwmwLsHlMyCSSl/b2qaz28ZBTRwHtHdo19QT6MqX8Yvomy4\n+gyPBBAHC6bqqLZ0veRKzSNFfJYoFw8tQzyjSjpmYcdxaB5w4z4QPZAkZCku\ns+sooI5Xo33E9rcEDWmyqxdUud+Au/fTttg0dReYe8NVrUgzyk4T1W+D7I4k\nu3XV7O9bOaJiBTNsb22lGIC6E/HtjfoqW7iwl0cdZ8iZcPTBClkzsy9Hz6a4\nmNKDARFL0wjzWF/CoXyKcI6t9ruOepTQRfbAtZDAo4LEYj/bGiqm2kbX5AP6\nicCOlufTNip74l2bXv2sJNwtjGzEYF/S79Oyc49IP/ovIua4quXXtSjAh8Bg\nLrV/\r\n=GrYx\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "tarball": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "unpackedSize": 6842 + }, "eslintConfig": { - "extends": "eslint:recommended", "env": { - "node": true, - "es6": true - } + "es6": true, + "node": true + }, + "extends": "eslint:recommended" }, - "files": [ - "index.js" - ], + "gitHead": "7920885eb232fbe7a5efdab956d3e7c507c92ddf", "homepage": "https://github.com/zeit/ms#readme", "license": "MIT", "lint-staged": { "*.js": [ + "git add", "npm run lint", - "prettier --single-quote --write", - "git add" + "prettier --single-quote --write" ] }, "main": "./index", + "maintainers": [ + { + "name": "lucleray", + "email": "luc.leray@gmail.com" + }, + { + "name": "alexaltea", + "email": "alexandro@phi.nz" + }, + { + "name": "andybitz", + "email": "artzbitz@gmail.com" + }, + { + "name": "arunoda", + "email": "arunoda.susiripala@gmail.com" + }, + { + "name": "arzafran", + "email": "franco@basement.studio" + }, + { + "name": "atcastle", + "email": "atcastle@gmail.com" + }, + { + "name": "b3nnyl", + "email": "ciao@sylin.me" + }, + { + "name": "caarlos0", + "email": "caarlos0@gmail.com" + }, + { + "name": "codetheory", + "email": "thecodetheory@gmail.com" + }, + { + "name": "coetry", + "email": "allenhai03@gmail.com" + }, + { + "name": "dav-is", + "email": "mail@connordav.is" + }, + { + "name": "fivepointseven", + "email": "fivepointseven@icloud.com" + }, + { + "name": "guybedford", + "email": "guybedford@gmail.com" + }, + { + "name": "hharnisc", + "email": "hharnisc@gmail.com" + }, + { + "name": "huvik", + "email": "lukas@huvar.cz" + }, + { + "name": "iamevilrabbit", + "email": "hello@evilrabb.it" + }, + { + "name": "igorklopov", + "email": "igor@klopov.com" + }, + { + "name": "ijjk", + "email": "jj@jjsweb.site" + }, + { + "name": "janicklas-ralph", + "email": "janicklasralph036@gmail.com" + }, + { + "name": "javivelasco", + "email": "javier.velasco86@gmail.com" + }, + { + "name": "joecohens", + "email": "joecohenr@gmail.com" + }, + { + "name": "juancampa", + "email": "juancampa@gmail.com" + }, + { + "name": "leo", + "email": "leo@zeit.co" + }, + { + "name": "lfades", + "email": "luisito453@gmail.com" + }, + { + "name": "anatrajkovska", + "email": "ana.trajkovska2015@gmail.com" + }, + { + "name": "manovotny", + "email": "manovotny@gmail.com" + }, + { + "name": "marcosnils", + "email": "marcosnils@gmail.com" + }, + { + "name": "matheuss", + "email": "me@matheus.top" + }, + { + "name": "mfix22", + "email": "mrfix84@gmail.com" + }, + { + "name": "mglagola", + "email": "mark.glagola@gmail.com" + }, + { + "name": "msweeneydev", + "email": "mail@msweeneydev.com" + }, + { + "name": "nkzawa", + "email": "naoyuki.kanezawa@gmail.com" + }, + { + "name": "olliv", + "email": "olli@zeit.co" + }, + { + "name": "paco", + "email": "pvco.coursey@gmail.com" + }, + { + "name": "paulogdm", + "email": "paulogdemitri@gmail.com" + }, + { + "name": "quietshu", + "email": "ds303077135@gmail.com" + }, + { + "name": "rabaut", + "email": "rabautse@gmail.com" + }, + { + "name": "ragojose", + "email": "ragojosefrancisco@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + }, + { + "name": "sarupbanskota", + "email": "sbanskota08@gmail.com" + }, + { + "name": "skllcrn", + "email": "skllcrn@zeit.co" + }, + { + "name": "sophearak", + "email": "t.sophearak@gmail.com" + }, + { + "name": "styfle", + "email": "steven@ceriously.com" + }, + { + "name": "timer", + "email": "timer150@gmail.com" + }, + { + "name": "timneutkens", + "email": "tim@timneutkens.nl" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + }, + { + "name": "umegaya", + "email": "iyatomi@gmail.com" + }, + { + "name": "williamli", + "email": "williamli@bbi.io" + }, + { + "name": "zeit-bot", + "email": "team@zeit.co" + } + ], "name": "ms", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/zeit/ms.git" diff --git a/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/package.json b/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/package.json @@ -1,36 +1,50 @@ { - "_from": "debug@~3.1.0", + "_args": [ + [ + "debug@~3.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/socket.io-parser" + ] + ], + "_from": "debug@>=3.1.0 <3.2.0", "_id": "debug@3.1.0", - "_inBundle": false, - "_integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-client/socket.io-parser/debug", + "_nodeVersion": "8.4.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/debug-3.1.0.tgz_1506453230282_0.13498495938256383" + }, + "_npmUser": { + "email": "nathan@tootallnate.net", + "name": "tootallnate" + }, + "_npmVersion": "5.3.0", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "debug@~3.1.0", "name": "debug", - "escapedName": "debug", + "raw": "debug@~3.1.0", "rawSpec": "~3.1.0", - "saveSpec": null, - "fetchSpec": "~3.1.0" + "scope": null, + "spec": ">=3.1.0 <3.2.0", + "type": "range" }, "_requiredBy": [ "/socket.io-client/socket.io-parser" ], "_resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "_shasum": "5bb5a0672628b64149566ba16819e61518c67261", + "_shrinkwrap": null, "_spec": "debug@~3.1.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/socket.io-parser", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/socket.io-parser", "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" + "email": "tj@vision-media.ca", + "name": "TJ Holowaychuk" }, "browser": "./src/browser.js", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Nathan Rajlich", @@ -45,7 +59,6 @@ "dependencies": { "ms": "2.0.0" }, - "deprecated": false, "description": "small debugging utility", "devDependencies": { "browserify": "14.4.0", @@ -65,15 +78,42 @@ "sinon": "^1.17.6", "sinon-chai": "^2.8.0" }, + "directories": {}, + "dist": { + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "shasum": "5bb5a0672628b64149566ba16819e61518c67261", + "tarball": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + }, + "gitHead": "f073e056f33efdd5b311381eb6bca2bc850745bf", "homepage": "https://github.com/visionmedia/debug#readme", "keywords": [ "debug", - "log", - "debugger" + "debugger", + "log" ], "license": "MIT", "main": "./src/index.js", + "maintainers": [ + { + "name": "thebigredgeek", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "kolban", + "email": "kolban1@kolban.com" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + }, + { + "name": "tjholowaychuk", + "email": "tj@vision-media.ca" + } + ], "name": "debug", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/visionmedia/debug.git" diff --git a/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms/package.json b/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms/package.json @@ -1,32 +1,46 @@ { + "_args": [ + [ + "ms@2.0.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug" + ] + ], "_from": "ms@2.0.0", "_id": "ms@2.0.0", - "_inBundle": false, - "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "_inCache": true, + "_installable": true, "_location": "/socket.io-client/socket.io-parser/ms", + "_nodeVersion": "7.8.0", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ms-2.0.0.tgz_1494937565215_0.34005374647676945" + }, + "_npmUser": { + "email": "leo@zeit.co", + "name": "leo" + }, + "_npmVersion": "4.2.0", "_phantomChildren": {}, "_requested": { - "type": "version", - "registry": true, - "raw": "ms@2.0.0", "name": "ms", - "escapedName": "ms", + "raw": "ms@2.0.0", "rawSpec": "2.0.0", - "saveSpec": null, - "fetchSpec": "2.0.0" + "scope": null, + "spec": "2.0.0", + "type": "version" }, "_requiredBy": [ "/socket.io-client/socket.io-parser/debug" ], "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", + "_shrinkwrap": null, "_spec": "ms@2.0.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug", "bugs": { "url": "https://github.com/zeit/ms/issues" }, - "bundleDependencies": false, - "deprecated": false, + "dependencies": {}, "description": "Tiny milisecond conversion utility", "devDependencies": { "eslint": "3.19.0", @@ -35,27 +49,45 @@ "lint-staged": "3.4.1", "mocha": "3.4.1" }, + "directories": {}, + "dist": { + "shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", + "tarball": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + }, "eslintConfig": { - "extends": "eslint:recommended", "env": { - "node": true, - "es6": true - } + "es6": true, + "node": true + }, + "extends": "eslint:recommended" }, "files": [ "index.js" ], + "gitHead": "9b88d1568a52ec9bb67ecc8d2aa224fa38fd41f4", "homepage": "https://github.com/zeit/ms#readme", "license": "MIT", "lint-staged": { "*.js": [ + "git add", "npm run lint", - "prettier --single-quote --write", - "git add" + "prettier --single-quote --write" ] }, "main": "./index", + "maintainers": [ + { + "name": "leo", + "email": "leo@zeit.co" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + } + ], "name": "ms", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/zeit/ms.git" diff --git a/node_modules/socket.io-client/node_modules/socket.io-parser/package.json b/node_modules/socket.io-client/node_modules/socket.io-parser/package.json @@ -1,37 +1,51 @@ { - "_from": "socket.io-parser@~3.3.0", + "_args": [ + [ + "socket.io-parser@~3.3.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client" + ] + ], + "_from": "socket.io-parser@>=3.3.0 <3.4.0", + "_hasShrinkwrap": false, "_id": "socket.io-parser@3.3.0", - "_inBundle": false, - "_integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-client/socket.io-parser", + "_nodeVersion": "10.9.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/socket.io-parser_3.3.0_1541631559593_0.9539303406614281" + }, + "_npmUser": { + "email": "damien.arrachequesne@gmail.com", + "name": "darrachequesne" + }, + "_npmVersion": "6.2.0", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "socket.io-parser@~3.3.0", "name": "socket.io-parser", - "escapedName": "socket.io-parser", + "raw": "socket.io-parser@~3.3.0", "rawSpec": "~3.3.0", - "saveSpec": null, - "fetchSpec": "~3.3.0" + "scope": null, + "spec": ">=3.3.0 <3.4.0", + "type": "range" }, "_requiredBy": [ "/socket.io-client" ], "_resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", "_shasum": "2b52a96a509fdf31440ba40fed6094c7d4f1262f", + "_shrinkwrap": null, "_spec": "socket.io-parser@~3.3.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-client", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-client", "bugs": { "url": "https://github.com/Automattic/socket.io-parser/issues" }, - "bundleDependencies": false, "dependencies": { "component-emitter": "1.2.1", "debug": "~3.1.0", "isarray": "2.0.1" }, - "deprecated": false, "description": "socket.io protocol parser", "devDependencies": { "benchmark": "2.1.2", @@ -41,14 +55,31 @@ "zuul": "3.11.1", "zuul-ngrok": "4.0.0" }, - "files": [ - "binary.js", - "index.js", - "is-buffer.js" - ], + "directories": {}, + "dist": { + "fileCount": 6, + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb425JCRA9TVsSAnZWagAACYYP/jgStg6omyEpLbx+h2iB\nXZtoZrI863809JVXI5JrA0Pd5FFOqyGnkmzYouFT56lBLnHPuAVIq3U5WYK/\n7R7q1y2ypXy0An/Ut0lNT8GJUsKIFIF7bq2TC7yP+0gHJNweK8/gs1+dYC1w\nIqaGrXEpkfsxEcEuwLvHs5t4F9tHMGsZlQa8XuXd8SNM5srkmTqi6TtBEzr9\nPRfcv4c5ueWblq7hDQiZnqbqcjSieNQbQ45gJvirap4ZJaEG0qIlT2ggQ1dy\nJPqqs4JK7XNCAyxNBZmkebz6Osb42OKKIJESd+deAz0MiEVZbDfmEeed8Yt6\nq5N3e6QLRDUwP+8xuwmfz+eL9dmtNtuCCV65zEZbMzBAvRWJwI2Yn1nujx3e\n7ZqW0PZ2BbVWIs8pB+mTYYiaL12BzX+eco4kFJmwvFgILhXhdwhY3/IQcvZf\npJGt8oQQuMvGD1yaBXnUXy3IRGPcxM5PqlEqPEEMFGAIiIMHyB92g2/3eXdd\naeL03CS2S8zD2vyNOzqUtxTxh+oTd4lHdbYBYwTIdUs9qrkWvYHSwgpdWbpe\nkABocA5gzy3IJs5jaR1SUuyHlHnBdlAZ6DW6f9r0v4mowsVcOmOvzYsH+bjo\nGshKV6qVebLuCAfbYANUQax30dfqM+I91G2s1ZPPZLwb1YnM1n2+kD1/OAnq\n7X1t\r\n=Ahma\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "2b52a96a509fdf31440ba40fed6094c7d4f1262f", + "tarball": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "unpackedSize": 16537 + }, + "gitHead": "0de72b9cc25c0950f09811e1e2a951b80e67e3fb", "homepage": "https://github.com/Automattic/socket.io-parser#readme", "license": "MIT", + "maintainers": [ + { + "name": "darrachequesne", + "email": "damien.arrachequesne@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + } + ], "name": "socket.io-parser", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/Automattic/socket.io-parser.git" diff --git a/node_modules/socket.io-client/package.json b/node_modules/socket.io-client/package.json @@ -1,34 +1,49 @@ { + "_args": [ + [ + "socket.io-client@2.3.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io" + ] + ], "_from": "socket.io-client@2.3.0", + "_hasShrinkwrap": false, "_id": "socket.io-client@2.3.0", - "_inBundle": false, - "_integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-client", + "_nodeVersion": "10.16.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/socket.io-client_2.3.0_1568975080919_0.27754167495472304" + }, + "_npmUser": { + "email": "damien.arrachequesne@gmail.com", + "name": "darrachequesne" + }, + "_npmVersion": "6.9.0", "_phantomChildren": { "component-emitter": "1.2.1", "isarray": "2.0.1" }, "_requested": { - "type": "version", - "registry": true, - "raw": "socket.io-client@2.3.0", "name": "socket.io-client", - "escapedName": "socket.io-client", + "raw": "socket.io-client@2.3.0", "rawSpec": "2.3.0", - "saveSpec": null, - "fetchSpec": "2.3.0" + "scope": null, + "spec": "2.3.0", + "type": "version" }, "_requiredBy": [ "/socket.io" ], "_resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", "_shasum": "14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4", + "_shrinkwrap": null, "_spec": "socket.io-client@2.3.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io", "bugs": { "url": "https://github.com/Automattic/socket.io-client/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Guillermo Rauch", @@ -63,8 +78,7 @@ "socket.io-parser": "~3.3.0", "to-array": "0.1.4" }, - "deprecated": false, - "description": "[![Build Status](https://secure.travis-ci.org/socketio/socket.io-client.svg?branch=master)](http://travis-ci.org/socketio/socket.io-client) [![Dependency Status](https://david-dm.org/socketio/socket.io-client.svg)](https://david-dm.org/socketio/socket.io-client) [![devDependency Status](https://david-dm.org/socketio/socket.io-client/dev-status.svg)](https://david-dm.org/socketio/socket.io-client#info=devDependencies) [![NPM version](https://badge.fury.io/js/socket.io-client.svg)](https://www.npmjs.com/package/socket.io-client) ![Downloads](http://img.shields.io/npm/dm/socket.io-client.svg?style=flat) [![](http://slack.socket.io/badge.svg?)](http://slack.socket.io)", + "description": "[![Build Status](https://secure.travis-ci.org/socketio/socket.io-client.svg?branch=master)](http://travis-ci.org/socketio/socket.io-client) [![Dependency Status](https://david-dm.org/socketio/socket.io-client.svg)](https://david-dm.org/socketio/socket.io-", "devDependencies": { "babel-core": "^6.24.1", "babel-eslint": "4.1.7", @@ -94,22 +108,40 @@ "zuul-builder-webpack": "^1.2.0", "zuul-ngrok": "4.0.0" }, - "files": [ - "lib/", - "dist/" - ], + "directories": {}, + "dist": { + "fileCount": 16, + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhKjpCRA9TVsSAnZWagAAwvMQAI8P23T8pRF7WxFtNVnh\nJMJvU0C+9mMqeK9/+ovGZzsNvsZiNPXmNVh8GDMM4+wiWcqofUji+hEdu3jc\nNnrZpW8jMZV2a9W4vNDRxjKX6yz3uH972M+FLOnX8FPnw2lHdJ55Ed5LN7kk\nW8CesfxaFIUMDbmneevoZ+pIFdQtswQpf5IOwUuE9R2JNdvzQ6nzZ7VMau+E\nar8jVWmGngjqam99pT8S7szyoj95Ls4W6D1zMBCFytM47RL0Eiqtksh9hUqw\n0w4yj/+VPeMy0BZkLQ24pkZhvPdLfn1P9dNU/RypasjMc5CI+G6yHd0EGZgp\nH2NKyxV9q3F73fqe7qPXtZzZj9JCSUJx+xsqRrOlVqq8BhCBWJK7Jxg7e6xz\nRgjZawCaPIijIxkympAjY6JNJEKcIeWynrUekPSgGQ190OxQiGtOhy7jQkqU\nQzbFtasP5ptg5W2mmfZ2/MW2FjaHNgSupqy74TWroFT204RZVAwPzW91uicJ\n6XjRNiySdGrtsghbUsr66f860sFA4o88oCT6jXrNzjmxoKwlUU6z8sM00k8x\nf9V52CM/e+u4ggh+D51IHhPsa+h11uBfG6XtcDYj7hMdZ7HZCG7XKtT5iz0H\nCHNtfIloR+1oM3BUmwca96AaJMg66pm5RHGzKgL3HxfWtMphrrwImitZbw4k\nICPB\r\n=qr97\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4", + "tarball": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "unpackedSize": 1649198 + }, + "gitHead": "661f1e7fac2488b6d3d206f96bb59073c4c98b1c", "homepage": "https://github.com/Automattic/socket.io-client#readme", "keywords": [ - "realtime", + "client", + "events", "framework", - "websocket", + "realtime", "tcp", - "events", - "client" + "websocket" ], "license": "MIT", "main": "./lib/index", + "maintainers": [ + { + "name": "darrachequesne", + "email": "damien.arrachequesne@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + } + ], "name": "socket.io-client", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/Automattic/socket.io-client.git" diff --git a/node_modules/socket.io-parser/node_modules/debug/package.json b/node_modules/socket.io-parser/node_modules/debug/package.json @@ -1,36 +1,53 @@ { - "_from": "debug@~4.1.0", + "_args": [ + [ + "debug@~4.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io" + ], + [ + "debug@~4.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-parser" + ] + ], + "_from": "debug@>=4.1.0 <4.2.0", + "_hasShrinkwrap": false, "_id": "debug@4.1.1", - "_inBundle": false, - "_integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-parser/debug", + "_nodeVersion": "10.14.2", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/debug_4.1.1_1545496822417_0.37311624175986635" + }, + "_npmUser": { + "email": "i.am.qix@gmail.com", + "name": "qix" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "debug@~4.1.0", "name": "debug", - "escapedName": "debug", + "raw": "debug@~4.1.0", "rawSpec": "~4.1.0", - "saveSpec": null, - "fetchSpec": "~4.1.0" + "scope": null, + "spec": ">=4.1.0 <4.2.0", + "type": "range" }, "_requiredBy": [ "/socket.io-parser" ], - "_resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "_shasum": "3b72260255109c6b589cee050f1d516139664791", + "_shrinkwrap": null, "_spec": "debug@~4.1.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-parser", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-parser", "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" + "email": "tj@vision-media.ca", + "name": "TJ Holowaychuk" }, "browser": "./src/browser.js", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Nathan Rajlich", @@ -45,7 +62,6 @@ "dependencies": { "ms": "^2.1.1" }, - "deprecated": false, "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", @@ -65,21 +81,45 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, - "files": [ - "src", - "dist/debug.js", - "LICENSE", - "README.md" - ], + "directories": {}, + "dist": { + "fileCount": 9, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHmj3CRA9TVsSAnZWagAAXQIP/RgGgdDQtTyIZha6xfTv\nN2WoeoMBONJYjsPPd/2uxClRNtMBRC2jUZawva5LoMkBhhsFExLCF68Di8jq\n4l1tKfSnQsCDZzprFSVJIcAEHryGPU7ZVTZC+h/HQa/QU8m+AnSCFjGtsDyy\np4I7DOsLSpBireRfB6BCZgk00ftuM+dOkof+dTKg4GVQDbYLbzMzhIRzpvjv\n2QtIickzjgRjwp8QuiEBIhf8/p4WnXrubOz4Y6LewqAbAKEHzEHXSxgiDCnY\n+vhuojGVLSdrfBS/+bYUCJxGpyCfcFivdRKJW8GG40RCKltOQhpUBIWfbfbJ\nVJ8gwfl6/A6/7RbdfRHRBwoyrpi03D5EFr0htHqrQIkeEmeU73szxti2Sag/\n3tpk2+Evcoed5tz2Vb9ZSCV7AOd3N0L5pUlZH4lrCtiIQWRnVetKwZ+mdZuE\nHWFJK6CNLyHoHw6HS+bBCUk/iLu+384UFgPb/GThxwosLpo2GXRUBncFHtTA\ngFNkRXtKJtG+MOHozkzWsmKNhsn8q4J26zpgI3snwfOqUx63sPvHkP3gcMl2\n60ZU9mCxDAtK5xmpXpzmV/ac+c3Wp2azRglbhSdfAB/RWji+KS5192bTb0nk\n+zvu6AJ2KGREgbxosEEZLVkbBvf3XtIRN1Ts3mIVLrx4rSDsDbJYqZ0IrJKl\nYAHO\r\n=bQum\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "3b72260255109c6b589cee050f1d516139664791", + "tarball": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "unpackedSize": 81476 + }, + "gitHead": "68b4dc8d8549d3924673c38fccc5d594f0a38da1", "homepage": "https://github.com/visionmedia/debug#readme", "keywords": [ "debug", - "log", - "debugger" + "debugger", + "log" ], "license": "MIT", "main": "./src/index.js", + "maintainers": [ + { + "name": "qix", + "email": "i.am.qix@gmail.com" + }, + { + "name": "thebigredgeek", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "tjholowaychuk", + "email": "tj@vision-media.ca" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + } + ], "name": "debug", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/visionmedia/debug.git" diff --git a/node_modules/socket.io-parser/node_modules/ms/package.json b/node_modules/socket.io-parser/node_modules/ms/package.json @@ -1,32 +1,49 @@ { - "_from": "ms@^2.1.1", + "_args": [ + [ + "ms@^2.1.1", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-parser/node_modules/debug" + ], + [ + "ms@^2.1.1", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io/node_modules/debug" + ] + ], + "_from": "ms@>=2.1.1 <3.0.0", + "_hasShrinkwrap": false, "_id": "ms@2.1.2", - "_inBundle": false, - "_integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-parser/ms", + "_nodeVersion": "10.15.3", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ms_2.1.2_1559842315767_0.4700607530567853" + }, + "_npmUser": { + "email": "steven@ceriously.com", + "name": "styfle" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "ms@^2.1.1", "name": "ms", - "escapedName": "ms", + "raw": "ms@^2.1.1", "rawSpec": "^2.1.1", - "saveSpec": null, - "fetchSpec": "^2.1.1" + "scope": null, + "spec": ">=2.1.1 <3.0.0", + "type": "range" }, "_requiredBy": [ "/socket.io-parser/debug" ], - "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "_shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "_shrinkwrap": null, "_spec": "ms@^2.1.1", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io-parser/node_modules/debug", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io-parser/node_modules/debug", "bugs": { "url": "https://github.com/zeit/ms/issues" }, - "bundleDependencies": false, - "deprecated": false, + "dependencies": {}, "description": "Tiny millisecond conversion utility", "devDependencies": { "eslint": "4.12.1", @@ -35,27 +52,234 @@ "lint-staged": "5.0.0", "mocha": "4.0.1" }, + "directories": {}, + "dist": { + "fileCount": 4, + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+U4MCRA9TVsSAnZWagAA71AP/2rpu0zYdK5Z/BXrrKNW\nljsVOs4oHNJ2jeZrzpcV8eZUZ6zAi78plyxcnMCbbG+TrpjXrPcb8qFq630G\nS6+srbEF0lCGCc+ktJrNJPTeXkDxukQXVrepgZ2kxZ4m3q/QIAVoK4t9ebuH\nNYa+39wwET9oPuPsk+YY0Z7fQ1vadyuzHYOrRmtudV3ZtyT0k74Ec3IhKamW\nlLDJtCklD7IGcwirrvPssxmYu8WP+PAyFnrVaOW+iior1o07oWO2mk7sk3Fx\nwBSBFf7vZqFJP6Qg1m3TVBAiipL+Pf+b3Dy8fhmn4NhTGj/9Wl7f/LcqogOV\nV9l77qsZldCERBwmwLsHlMyCSSl/b2qaz28ZBTRwHtHdo19QT6MqX8Yvomy4\n+gyPBBAHC6bqqLZ0veRKzSNFfJYoFw8tQzyjSjpmYcdxaB5w4z4QPZAkZCku\ns+sooI5Xo33E9rcEDWmyqxdUud+Au/fTttg0dReYe8NVrUgzyk4T1W+D7I4k\nu3XV7O9bOaJiBTNsb22lGIC6E/HtjfoqW7iwl0cdZ8iZcPTBClkzsy9Hz6a4\nmNKDARFL0wjzWF/CoXyKcI6t9ruOepTQRfbAtZDAo4LEYj/bGiqm2kbX5AP6\nicCOlufTNip74l2bXv2sJNwtjGzEYF/S79Oyc49IP/ovIua4quXXtSjAh8Bg\nLrV/\r\n=GrYx\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "tarball": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "unpackedSize": 6842 + }, "eslintConfig": { - "extends": "eslint:recommended", "env": { - "node": true, - "es6": true - } + "es6": true, + "node": true + }, + "extends": "eslint:recommended" }, - "files": [ - "index.js" - ], + "gitHead": "7920885eb232fbe7a5efdab956d3e7c507c92ddf", "homepage": "https://github.com/zeit/ms#readme", "license": "MIT", "lint-staged": { "*.js": [ + "git add", "npm run lint", - "prettier --single-quote --write", - "git add" + "prettier --single-quote --write" ] }, "main": "./index", + "maintainers": [ + { + "name": "lucleray", + "email": "luc.leray@gmail.com" + }, + { + "name": "alexaltea", + "email": "alexandro@phi.nz" + }, + { + "name": "andybitz", + "email": "artzbitz@gmail.com" + }, + { + "name": "arunoda", + "email": "arunoda.susiripala@gmail.com" + }, + { + "name": "arzafran", + "email": "franco@basement.studio" + }, + { + "name": "atcastle", + "email": "atcastle@gmail.com" + }, + { + "name": "b3nnyl", + "email": "ciao@sylin.me" + }, + { + "name": "caarlos0", + "email": "caarlos0@gmail.com" + }, + { + "name": "codetheory", + "email": "thecodetheory@gmail.com" + }, + { + "name": "coetry", + "email": "allenhai03@gmail.com" + }, + { + "name": "dav-is", + "email": "mail@connordav.is" + }, + { + "name": "fivepointseven", + "email": "fivepointseven@icloud.com" + }, + { + "name": "guybedford", + "email": "guybedford@gmail.com" + }, + { + "name": "hharnisc", + "email": "hharnisc@gmail.com" + }, + { + "name": "huvik", + "email": "lukas@huvar.cz" + }, + { + "name": "iamevilrabbit", + "email": "hello@evilrabb.it" + }, + { + "name": "igorklopov", + "email": "igor@klopov.com" + }, + { + "name": "ijjk", + "email": "jj@jjsweb.site" + }, + { + "name": "janicklas-ralph", + "email": "janicklasralph036@gmail.com" + }, + { + "name": "javivelasco", + "email": "javier.velasco86@gmail.com" + }, + { + "name": "joecohens", + "email": "joecohenr@gmail.com" + }, + { + "name": "juancampa", + "email": "juancampa@gmail.com" + }, + { + "name": "leo", + "email": "leo@zeit.co" + }, + { + "name": "lfades", + "email": "luisito453@gmail.com" + }, + { + "name": "anatrajkovska", + "email": "ana.trajkovska2015@gmail.com" + }, + { + "name": "manovotny", + "email": "manovotny@gmail.com" + }, + { + "name": "marcosnils", + "email": "marcosnils@gmail.com" + }, + { + "name": "matheuss", + "email": "me@matheus.top" + }, + { + "name": "mfix22", + "email": "mrfix84@gmail.com" + }, + { + "name": "mglagola", + "email": "mark.glagola@gmail.com" + }, + { + "name": "msweeneydev", + "email": "mail@msweeneydev.com" + }, + { + "name": "nkzawa", + "email": "naoyuki.kanezawa@gmail.com" + }, + { + "name": "olliv", + "email": "olli@zeit.co" + }, + { + "name": "paco", + "email": "pvco.coursey@gmail.com" + }, + { + "name": "paulogdm", + "email": "paulogdemitri@gmail.com" + }, + { + "name": "quietshu", + "email": "ds303077135@gmail.com" + }, + { + "name": "rabaut", + "email": "rabautse@gmail.com" + }, + { + "name": "ragojose", + "email": "ragojosefrancisco@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + }, + { + "name": "sarupbanskota", + "email": "sbanskota08@gmail.com" + }, + { + "name": "skllcrn", + "email": "skllcrn@zeit.co" + }, + { + "name": "sophearak", + "email": "t.sophearak@gmail.com" + }, + { + "name": "styfle", + "email": "steven@ceriously.com" + }, + { + "name": "timer", + "email": "timer150@gmail.com" + }, + { + "name": "timneutkens", + "email": "tim@timneutkens.nl" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + }, + { + "name": "umegaya", + "email": "iyatomi@gmail.com" + }, + { + "name": "williamli", + "email": "williamli@bbi.io" + }, + { + "name": "zeit-bot", + "email": "team@zeit.co" + } + ], "name": "ms", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/zeit/ms.git" diff --git a/node_modules/socket.io-parser/package.json b/node_modules/socket.io-parser/package.json @@ -1,37 +1,51 @@ { - "_from": "socket.io-parser@~3.4.0", + "_args": [ + [ + "socket.io-parser@~3.4.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io" + ] + ], + "_from": "socket.io-parser@>=3.4.0 <3.5.0", + "_hasShrinkwrap": false, "_id": "socket.io-parser@3.4.0", - "_inBundle": false, - "_integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", + "_inCache": true, + "_installable": true, "_location": "/socket.io-parser", + "_nodeVersion": "10.16.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/socket.io-parser_3.4.0_1568970127031_0.24533172655663904" + }, + "_npmUser": { + "email": "damien.arrachequesne@gmail.com", + "name": "darrachequesne" + }, + "_npmVersion": "6.9.0", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "socket.io-parser@~3.4.0", "name": "socket.io-parser", - "escapedName": "socket.io-parser", + "raw": "socket.io-parser@~3.4.0", "rawSpec": "~3.4.0", - "saveSpec": null, - "fetchSpec": "~3.4.0" + "scope": null, + "spec": ">=3.4.0 <3.5.0", + "type": "range" }, "_requiredBy": [ "/socket.io" ], "_resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", "_shasum": "370bb4a151df2f77ce3345ff55a7072cc6e9565a", + "_shrinkwrap": null, "_spec": "socket.io-parser@~3.4.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io", "bugs": { "url": "https://github.com/Automattic/socket.io-parser/issues" }, - "bundleDependencies": false, "dependencies": { "component-emitter": "1.2.1", "debug": "~4.1.0", "isarray": "2.0.1" }, - "deprecated": false, "description": "socket.io protocol parser", "devDependencies": { "benchmark": "2.1.2", @@ -41,14 +55,31 @@ "zuul": "3.11.1", "zuul-ngrok": "4.0.0" }, - "files": [ - "binary.js", - "index.js", - "is-buffer.js" - ], + "directories": {}, + "dist": { + "fileCount": 6, + "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhJWPCRA9TVsSAnZWagAAR00P/22O2wKopDPFpETLfCSN\nMZynRl3EIztbFdA4BbEk8TPQxrlGQCB454hFfoSpw1In0vFvVXP8fvSuiVnU\nMqogbFDeD+PHsRcZfhvXu/UD6Edw5K3ffibzyRrQN+dRSp25WeiXXW7B6uvG\nLh/85ovdDL99Z8lZgQcrVpx14YyjE3b8VSBmw+X62frPs+miEIS1IzamTcwt\ngZTgrwzCBL19ztYt8ZBobfYy7B/ZoYWNh71ZQPhlEDbVLJXbkvq/dvxFx2Ez\nHQJgUXMwPzmK/nV0xrQgJN+ubXo0Fu76FiwEyexoFwtTZAsnnyTYNinD3Wpf\n0gQ3fpdq+UJXfzPbPbEXluLfDqnocetRL92ZhswmP6EbGX+YcY0TtD84iNES\nEfqWF3NVexHSu34LfRMks/cPMXI5KJDaY0JVtcINfaUGSTSwgjHaxEN0/z9o\nJ0wiOMM+rlDXdHjtzDrTCV0iWOntG8qeCACDBEG+VmG66hQHvhtRxNEEh9YB\nIJARAZ1Rh5Hjq7Ba4SzxCw8LdMyB5XbZBdsEH3kVUiQyrX2cIyIdUpcPmYwb\nF6yr4SMewaFmtksM6z5h5yg29/SCfnjt8fUGl+qY/pNK1OYMNlLi35H9B2n8\negT5voPkHGCivXlapMBr4VLXxBfwhu0jB7xgsPczNCFIlmdTxlHzH4SiqQHU\n0NC+\r\n=2/Mf\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "370bb4a151df2f77ce3345ff55a7072cc6e9565a", + "tarball": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", + "unpackedSize": 16537 + }, + "gitHead": "652402a8568c2138da3c27c96756b32efca6c4bf", "homepage": "https://github.com/Automattic/socket.io-parser#readme", "license": "MIT", + "maintainers": [ + { + "name": "darrachequesne", + "email": "damien.arrachequesne@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + } + ], "name": "socket.io-parser", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/Automattic/socket.io-parser.git" diff --git a/node_modules/socket.io/node_modules/debug/package.json b/node_modules/socket.io/node_modules/debug/package.json @@ -1,36 +1,51 @@ { - "_from": "debug@~4.1.0", + "_args": [ + [ + "debug@~4.1.0", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io" + ] + ], + "_from": "debug@>=4.1.0 <4.2.0", + "_hasShrinkwrap": false, "_id": "debug@4.1.1", - "_inBundle": false, - "_integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "_inCache": true, + "_installable": true, "_location": "/socket.io/debug", + "_nodeVersion": "10.14.2", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/debug_4.1.1_1545496822417_0.37311624175986635" + }, + "_npmUser": { + "email": "i.am.qix@gmail.com", + "name": "qix" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "debug@~4.1.0", "name": "debug", - "escapedName": "debug", + "raw": "debug@~4.1.0", "rawSpec": "~4.1.0", - "saveSpec": null, - "fetchSpec": "~4.1.0" + "scope": null, + "spec": ">=4.1.0 <4.2.0", + "type": "range" }, "_requiredBy": [ "/socket.io" ], "_resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "_shasum": "3b72260255109c6b589cee050f1d516139664791", + "_shrinkwrap": null, "_spec": "debug@~4.1.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io", "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" + "email": "tj@vision-media.ca", + "name": "TJ Holowaychuk" }, "browser": "./src/browser.js", "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Nathan Rajlich", @@ -45,7 +60,6 @@ "dependencies": { "ms": "^2.1.1" }, - "deprecated": false, "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", @@ -65,21 +79,45 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, - "files": [ - "src", - "dist/debug.js", - "LICENSE", - "README.md" - ], + "directories": {}, + "dist": { + "fileCount": 9, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHmj3CRA9TVsSAnZWagAAXQIP/RgGgdDQtTyIZha6xfTv\nN2WoeoMBONJYjsPPd/2uxClRNtMBRC2jUZawva5LoMkBhhsFExLCF68Di8jq\n4l1tKfSnQsCDZzprFSVJIcAEHryGPU7ZVTZC+h/HQa/QU8m+AnSCFjGtsDyy\np4I7DOsLSpBireRfB6BCZgk00ftuM+dOkof+dTKg4GVQDbYLbzMzhIRzpvjv\n2QtIickzjgRjwp8QuiEBIhf8/p4WnXrubOz4Y6LewqAbAKEHzEHXSxgiDCnY\n+vhuojGVLSdrfBS/+bYUCJxGpyCfcFivdRKJW8GG40RCKltOQhpUBIWfbfbJ\nVJ8gwfl6/A6/7RbdfRHRBwoyrpi03D5EFr0htHqrQIkeEmeU73szxti2Sag/\n3tpk2+Evcoed5tz2Vb9ZSCV7AOd3N0L5pUlZH4lrCtiIQWRnVetKwZ+mdZuE\nHWFJK6CNLyHoHw6HS+bBCUk/iLu+384UFgPb/GThxwosLpo2GXRUBncFHtTA\ngFNkRXtKJtG+MOHozkzWsmKNhsn8q4J26zpgI3snwfOqUx63sPvHkP3gcMl2\n60ZU9mCxDAtK5xmpXpzmV/ac+c3Wp2azRglbhSdfAB/RWji+KS5192bTb0nk\n+zvu6AJ2KGREgbxosEEZLVkbBvf3XtIRN1Ts3mIVLrx4rSDsDbJYqZ0IrJKl\nYAHO\r\n=bQum\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "3b72260255109c6b589cee050f1d516139664791", + "tarball": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "unpackedSize": 81476 + }, + "gitHead": "68b4dc8d8549d3924673c38fccc5d594f0a38da1", "homepage": "https://github.com/visionmedia/debug#readme", "keywords": [ "debug", - "log", - "debugger" + "debugger", + "log" ], "license": "MIT", "main": "./src/index.js", + "maintainers": [ + { + "name": "qix", + "email": "i.am.qix@gmail.com" + }, + { + "name": "thebigredgeek", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "tjholowaychuk", + "email": "tj@vision-media.ca" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + } + ], "name": "debug", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/visionmedia/debug.git" diff --git a/node_modules/socket.io/node_modules/ms/package.json b/node_modules/socket.io/node_modules/ms/package.json @@ -1,32 +1,47 @@ { - "_from": "ms@^2.1.1", + "_args": [ + [ + "ms@^2.1.1", + "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io/node_modules/debug" + ] + ], + "_from": "ms@>=2.1.1 <3.0.0", + "_hasShrinkwrap": false, "_id": "ms@2.1.2", - "_inBundle": false, - "_integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "_inCache": true, + "_installable": true, "_location": "/socket.io/ms", + "_nodeVersion": "10.15.3", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ms_2.1.2_1559842315767_0.4700607530567853" + }, + "_npmUser": { + "email": "steven@ceriously.com", + "name": "styfle" + }, + "_npmVersion": "6.4.1", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "ms@^2.1.1", "name": "ms", - "escapedName": "ms", + "raw": "ms@^2.1.1", "rawSpec": "^2.1.1", - "saveSpec": null, - "fetchSpec": "^2.1.1" + "scope": null, + "spec": ">=2.1.1 <3.0.0", + "type": "range" }, "_requiredBy": [ "/socket.io/debug" ], "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "_shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "_shrinkwrap": null, "_spec": "ms@^2.1.1", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph/node_modules/socket.io/node_modules/debug", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph/node_modules/socket.io/node_modules/debug", "bugs": { "url": "https://github.com/zeit/ms/issues" }, - "bundleDependencies": false, - "deprecated": false, + "dependencies": {}, "description": "Tiny millisecond conversion utility", "devDependencies": { "eslint": "4.12.1", @@ -35,27 +50,234 @@ "lint-staged": "5.0.0", "mocha": "4.0.1" }, + "directories": {}, + "dist": { + "fileCount": 4, + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+U4MCRA9TVsSAnZWagAA71AP/2rpu0zYdK5Z/BXrrKNW\nljsVOs4oHNJ2jeZrzpcV8eZUZ6zAi78plyxcnMCbbG+TrpjXrPcb8qFq630G\nS6+srbEF0lCGCc+ktJrNJPTeXkDxukQXVrepgZ2kxZ4m3q/QIAVoK4t9ebuH\nNYa+39wwET9oPuPsk+YY0Z7fQ1vadyuzHYOrRmtudV3ZtyT0k74Ec3IhKamW\nlLDJtCklD7IGcwirrvPssxmYu8WP+PAyFnrVaOW+iior1o07oWO2mk7sk3Fx\nwBSBFf7vZqFJP6Qg1m3TVBAiipL+Pf+b3Dy8fhmn4NhTGj/9Wl7f/LcqogOV\nV9l77qsZldCERBwmwLsHlMyCSSl/b2qaz28ZBTRwHtHdo19QT6MqX8Yvomy4\n+gyPBBAHC6bqqLZ0veRKzSNFfJYoFw8tQzyjSjpmYcdxaB5w4z4QPZAkZCku\ns+sooI5Xo33E9rcEDWmyqxdUud+Au/fTttg0dReYe8NVrUgzyk4T1W+D7I4k\nu3XV7O9bOaJiBTNsb22lGIC6E/HtjfoqW7iwl0cdZ8iZcPTBClkzsy9Hz6a4\nmNKDARFL0wjzWF/CoXyKcI6t9ruOepTQRfbAtZDAo4LEYj/bGiqm2kbX5AP6\nicCOlufTNip74l2bXv2sJNwtjGzEYF/S79Oyc49IP/ovIua4quXXtSjAh8Bg\nLrV/\r\n=GrYx\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "tarball": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "unpackedSize": 6842 + }, "eslintConfig": { - "extends": "eslint:recommended", "env": { - "node": true, - "es6": true - } + "es6": true, + "node": true + }, + "extends": "eslint:recommended" }, - "files": [ - "index.js" - ], + "gitHead": "7920885eb232fbe7a5efdab956d3e7c507c92ddf", "homepage": "https://github.com/zeit/ms#readme", "license": "MIT", "lint-staged": { "*.js": [ + "git add", "npm run lint", - "prettier --single-quote --write", - "git add" + "prettier --single-quote --write" ] }, "main": "./index", + "maintainers": [ + { + "name": "lucleray", + "email": "luc.leray@gmail.com" + }, + { + "name": "alexaltea", + "email": "alexandro@phi.nz" + }, + { + "name": "andybitz", + "email": "artzbitz@gmail.com" + }, + { + "name": "arunoda", + "email": "arunoda.susiripala@gmail.com" + }, + { + "name": "arzafran", + "email": "franco@basement.studio" + }, + { + "name": "atcastle", + "email": "atcastle@gmail.com" + }, + { + "name": "b3nnyl", + "email": "ciao@sylin.me" + }, + { + "name": "caarlos0", + "email": "caarlos0@gmail.com" + }, + { + "name": "codetheory", + "email": "thecodetheory@gmail.com" + }, + { + "name": "coetry", + "email": "allenhai03@gmail.com" + }, + { + "name": "dav-is", + "email": "mail@connordav.is" + }, + { + "name": "fivepointseven", + "email": "fivepointseven@icloud.com" + }, + { + "name": "guybedford", + "email": "guybedford@gmail.com" + }, + { + "name": "hharnisc", + "email": "hharnisc@gmail.com" + }, + { + "name": "huvik", + "email": "lukas@huvar.cz" + }, + { + "name": "iamevilrabbit", + "email": "hello@evilrabb.it" + }, + { + "name": "igorklopov", + "email": "igor@klopov.com" + }, + { + "name": "ijjk", + "email": "jj@jjsweb.site" + }, + { + "name": "janicklas-ralph", + "email": "janicklasralph036@gmail.com" + }, + { + "name": "javivelasco", + "email": "javier.velasco86@gmail.com" + }, + { + "name": "joecohens", + "email": "joecohenr@gmail.com" + }, + { + "name": "juancampa", + "email": "juancampa@gmail.com" + }, + { + "name": "leo", + "email": "leo@zeit.co" + }, + { + "name": "lfades", + "email": "luisito453@gmail.com" + }, + { + "name": "anatrajkovska", + "email": "ana.trajkovska2015@gmail.com" + }, + { + "name": "manovotny", + "email": "manovotny@gmail.com" + }, + { + "name": "marcosnils", + "email": "marcosnils@gmail.com" + }, + { + "name": "matheuss", + "email": "me@matheus.top" + }, + { + "name": "mfix22", + "email": "mrfix84@gmail.com" + }, + { + "name": "mglagola", + "email": "mark.glagola@gmail.com" + }, + { + "name": "msweeneydev", + "email": "mail@msweeneydev.com" + }, + { + "name": "nkzawa", + "email": "naoyuki.kanezawa@gmail.com" + }, + { + "name": "olliv", + "email": "olli@zeit.co" + }, + { + "name": "paco", + "email": "pvco.coursey@gmail.com" + }, + { + "name": "paulogdm", + "email": "paulogdemitri@gmail.com" + }, + { + "name": "quietshu", + "email": "ds303077135@gmail.com" + }, + { + "name": "rabaut", + "email": "rabautse@gmail.com" + }, + { + "name": "ragojose", + "email": "ragojosefrancisco@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + }, + { + "name": "sarupbanskota", + "email": "sbanskota08@gmail.com" + }, + { + "name": "skllcrn", + "email": "skllcrn@zeit.co" + }, + { + "name": "sophearak", + "email": "t.sophearak@gmail.com" + }, + { + "name": "styfle", + "email": "steven@ceriously.com" + }, + { + "name": "timer", + "email": "timer150@gmail.com" + }, + { + "name": "timneutkens", + "email": "tim@timneutkens.nl" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + }, + { + "name": "umegaya", + "email": "iyatomi@gmail.com" + }, + { + "name": "williamli", + "email": "williamli@bbi.io" + }, + { + "name": "zeit-bot", + "email": "team@zeit.co" + } + ], "name": "ms", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/zeit/ms.git" diff --git a/node_modules/socket.io/package.json b/node_modules/socket.io/package.json @@ -1,32 +1,46 @@ { - "_from": "socket.io@^2.3.0", + "_args": [ + [ + "socket.io@^2.3.0", + "/home/hide4/Documents/Javascript/TwitWebGraph" + ] + ], + "_from": "socket.io@>=2.3.0 <3.0.0", + "_hasShrinkwrap": false, "_id": "socket.io@2.3.0", - "_inBundle": false, - "_integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "_inCache": true, + "_installable": true, "_location": "/socket.io", + "_nodeVersion": "10.16.0", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/socket.io_2.3.0_1568975046776_0.13485022972272476" + }, + "_npmUser": { + "email": "damien.arrachequesne@gmail.com", + "name": "darrachequesne" + }, + "_npmVersion": "6.9.0", "_phantomChildren": {}, "_requested": { - "type": "range", - "registry": true, - "raw": "socket.io@^2.3.0", "name": "socket.io", - "escapedName": "socket.io", + "raw": "socket.io@^2.3.0", "rawSpec": "^2.3.0", - "saveSpec": null, - "fetchSpec": "^2.3.0" + "scope": null, + "spec": ">=2.3.0 <3.0.0", + "type": "range" }, "_requiredBy": [ - "#USER", "/" ], "_resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", "_shasum": "cd762ed6a4faeca59bc1f3e243c0969311eb73fb", + "_shrinkwrap": null, "_spec": "socket.io@^2.3.0", - "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", + "_where": "/home/hide4/Documents/Javascript/TwitWebGraph", "bugs": { "url": "https://github.com/socketio/socket.io/issues" }, - "bundleDependencies": false, "contributors": [ { "name": "Guillermo Rauch", @@ -53,7 +67,6 @@ "socket.io-client": "2.3.0", "socket.io-parser": "~3.4.0" }, - "deprecated": false, "description": "node.js realtime framework server", "devDependencies": { "expect.js": "0.3.1", @@ -62,22 +75,41 @@ "superagent": "^3.8.2", "supertest": "^3.0.0" }, - "files": [ - "lib/" - ], + "directories": {}, + "dist": { + "fileCount": 8, + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhKjHCRA9TVsSAnZWagAAFOQP/1Jul+JJAOV5PFjCctZq\nuyMkLeTN9z+dqxKwKIk+Ekx1mvAdBL9xQ8ShqHMSKP8mqjoNd+mxhGqMaBvd\nvrMciXGvyN1F2d7ghJOTSZMKnSrlfToNxUNo3l/yDJAqw4S3Fg9vRWcNODF2\ndqmDAr56FCKPQGjXn5noF47soDUEwJgg7Rua5mTLFcYhNzkr+8gfjWFfQWNj\n7RuAWTi3E5kSIf2keUGNALA9HAcpmemQKMdjYjxqT6JAIOFnFYUEi/jmW65U\n3aQK3+AtZtF7B5pwGLwZtKA9Q6SRsJy1ghfANpn4aeMsiUJPEWiTsYaHXSUk\ndsTaJcZ2ZrlYAkpXdLGXPU5dR021ooo/Xw2dqotwBrjsrNZthsUPucsGXM6P\nyfxg/m7rMc00/DaF7NLfvRVmZeb2M06IUoYKkxcEF68HOKpm0Bfc1b2naYCi\nr/XemTGU8o1urqrlWQ3E/L3FDStPj8W1oZWCp8CXyoM7uqcM6bOwuTU75yEY\nGZ/3Yluf4Fudwceg0Aok9N+hsKVoyILwJjzIZVnqQCNazK2JRDQXX1dDuhHg\nWb+OFX5GXOj4nKr/KFCP2EXgTK9fhSLbcPmKrnhqKPLmJ/BYX8JYzbZmn0sD\ni8hpI4lqckQLNDuwSaNHtbMXmh34tqak2emyPza9SqaaVhJN1ikM5KE1WX97\noEex\r\n=czYC\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "cd762ed6a4faeca59bc1f3e243c0969311eb73fb", + "tarball": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "unpackedSize": 55917 + }, + "gitHead": "47161a65d40c2587535de750ac4c7d448e5842ba", "homepage": "https://github.com/socketio/socket.io#readme", "keywords": [ - "realtime", - "framework", - "websocket", - "tcp", "events", + "framework", + "io", + "realtime", "socket", - "io" + "tcp", + "websocket" ], "license": "MIT", "main": "./lib/index", + "maintainers": [ + { + "name": "darrachequesne", + "email": "damien.arrachequesne@gmail.com" + }, + { + "name": "rauchg", + "email": "rauchg@gmail.com" + } + ], "name": "socket.io", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/socketio/socket.io.git" diff --git a/node_modules/twit/package.json b/node_modules/twit/package.json @@ -6,14 +6,14 @@ "_location": "/twit", "_phantomChildren": {}, "_requested": { - "type": "tag", - "registry": true, - "raw": "twit", - "name": "twit", "escapedName": "twit", + "fetchSpec": "latest", + "name": "twit", + "raw": "twit", "rawSpec": "", + "registry": true, "saveSpec": null, - "fetchSpec": "latest" + "type": "tag" }, "_requiredBy": [ "#USER", @@ -21,6 +21,7 @@ ], "_resolved": "https://registry.npmjs.org/twit/-/twit-2.2.11.tgz", "_shasum": "554343d1cf343ddf503280db821f61be5ab407c3", + "_shrinkwrap": null, "_spec": "twit", "_where": "/Users/underd0g/Documents/javascript/TwitWebGraph", "author": { @@ -50,16 +51,19 @@ }, "homepage": "https://github.com/ttezel/twit#readme", "keywords": [ - "twitter", "api", + "oauth", "rest", "stream", "streaming", - "oauth" + "twitter" ], "license": "MIT", "main": "./lib/twitter", "name": "twit", + "optionalDependencies": {}, + "readme": "# twit\n\nTwitter API Client for node\n\nSupports both the **REST** and **Streaming** API.\n\n# Installing\n\n```shell\nnpm install twit\n```\n\n## Usage:\n\n```javascript\nvar Twit = require('twit')\n\nvar T = new Twit({\n consumer_key: '...',\n consumer_secret: '...',\n access_token: '...',\n access_token_secret: '...',\n timeout_ms: 60*1000, // optional HTTP request timeout to apply to all requests.\n strictSSL: true, // optional - requires SSL certificates to be valid.\n})\n\n//\n// tweet 'hello world!'\n//\nT.post('statuses/update', { status: 'hello world!' }, function(err, data, response) {\n console.log(data)\n})\n\n//\n// search twitter for all tweets containing the word 'banana' since July 11, 2011\n//\nT.get('search/tweets', { q: 'banana since:2011-07-11', count: 100 }, function(err, data, response) {\n console.log(data)\n})\n\n//\n// get the list of user id's that follow @tolga_tezel\n//\nT.get('followers/ids', { screen_name: 'tolga_tezel' }, function (err, data, response) {\n console.log(data)\n})\n\n//\n// Twit has promise support; you can use the callback API,\n// promise API, or both at the same time.\n//\nT.get('account/verify_credentials', { skip_status: true })\n .catch(function (err) {\n console.log('caught error', err.stack)\n })\n .then(function (result) {\n // `result` is an Object with keys \"data\" and \"resp\".\n // `data` and `resp` are the same objects as the ones passed\n // to the callback.\n // See https://github.com/ttezel/twit#tgetpath-params-callback\n // for details.\n\n console.log('data', result.data);\n })\n\n//\n// retweet a tweet with id '343360866131001345'\n//\nT.post('statuses/retweet/:id', { id: '343360866131001345' }, function (err, data, response) {\n console.log(data)\n})\n\n//\n// destroy a tweet with id '343360866131001345'\n//\nT.post('statuses/destroy/:id', { id: '343360866131001345' }, function (err, data, response) {\n console.log(data)\n})\n\n//\n// get `funny` twitter users\n//\nT.get('users/suggestions/:slug', { slug: 'funny' }, function (err, data, response) {\n console.log(data)\n})\n\n//\n// post a tweet with media\n//\nvar b64content = fs.readFileSync('/path/to/img', { encoding: 'base64' })\n\n// first we must post the media to Twitter\nT.post('media/upload', { media_data: b64content }, function (err, data, response) {\n // now we can assign alt text to the media, for use by screen readers and\n // other text-based presentations and interpreters\n var mediaIdStr = data.media_id_string\n var altText = \"Small flowers in a planter on a sunny balcony, blossoming.\"\n var meta_params = { media_id: mediaIdStr, alt_text: { text: altText } }\n\n T.post('media/metadata/create', meta_params, function (err, data, response) {\n if (!err) {\n // now we can reference the media and post a tweet (media will attach to the tweet)\n var params = { status: 'loving life #nofilter', media_ids: [mediaIdStr] }\n\n T.post('statuses/update', params, function (err, data, response) {\n console.log(data)\n })\n }\n })\n})\n\n//\n// post media via the chunked media upload API.\n// You can then use POST statuses/update to post a tweet with the media attached as in the example above using `media_id_string`.\n// Note: You can also do this yourself manually using T.post() calls if you want more fine-grained\n// control over the streaming. Example: https://github.com/ttezel/twit/blob/master/tests/rest_chunked_upload.js#L20\n//\nvar filePath = '/absolute/path/to/file.mp4'\nT.postMediaChunked({ file_path: filePath }, function (err, data, response) {\n console.log(data)\n})\n\n//\n// stream a sample of public statuses\n//\nvar stream = T.stream('statuses/sample')\n\nstream.on('tweet', function (tweet) {\n console.log(tweet)\n})\n\n//\n// filter the twitter public stream by the word 'mango'.\n//\nvar stream = T.stream('statuses/filter', { track: 'mango' })\n\nstream.on('tweet', function (tweet) {\n console.log(tweet)\n})\n\n//\n// filter the public stream by the latitude/longitude bounded box of San Francisco\n//\nvar sanFrancisco = [ '-122.75', '36.8', '-121.75', '37.8' ]\n\nvar stream = T.stream('statuses/filter', { locations: sanFrancisco })\n\nstream.on('tweet', function (tweet) {\n console.log(tweet)\n})\n\n//\n// filter the public stream by english tweets containing `#apple`\n//\nvar stream = T.stream('statuses/filter', { track: '#apple', language: 'en' })\n\nstream.on('tweet', function (tweet) {\n console.log(tweet)\n})\n\n```\n\n# twit API:\n\n## `var T = new Twit(config)`\n\nCreate a `Twit` instance that can be used to make requests to Twitter's APIs.\n\nIf authenticating with user context, `config` should be an object of the form:\n```\n{\n consumer_key: '...'\n , consumer_secret: '...'\n , access_token: '...'\n , access_token_secret: '...'\n}\n```\n\nIf authenticating with application context, `config` should be an object of the form:\n```\n{\n consumer_key: '...'\n , consumer_secret: '...'\n , app_only_auth: true\n}\n```\nNote that Application-only auth will not allow you to perform requests to API endpoints requiring\na user context, such as posting tweets. However, the endpoints available can have a higher rate limit.\n\n## `T.get(path, [params], callback)`\nGET any of the REST API endpoints.\n\n**path**\n\nThe endpoint to hit. When specifying `path` values, omit the **'.json'** at the end (i.e. use **'search/tweets'** instead of **'search/tweets.json'**).\n\n**params**\n\n(Optional) parameters for the request.\n\n**callback**\n\n`function (err, data, response)`\n\n- `data` is the parsed data received from Twitter.\n- `response` is the [http.IncomingMessage](http://nodejs.org/api/http.html# http_http_incomingmessage) received from Twitter.\n\n## `T.post(path, [params], callback)`\n\nPOST any of the REST API endpoints. Same usage as `T.get()`.\n\n## `T.postMediaChunked(params, callback)`\n\nHelper function to post media via the POST media/upload (chunked) API. `params` is an object containing a `file_path` key. `file_path` is the absolute path to the file you want to upload.\n\n```js\nvar filePath = '/absolute/path/to/file.mp4'\nT.postMediaChunked({ file_path: filePath }, function (err, data, response) {\n console.log(data)\n})\n```\n\nYou can also use the POST media/upload API via T.post() calls if you want more fine-grained control over the streaming; [see here for an example](https://github.com/ttezel/twit/blob/master/tests/rest_chunked_upload.js# L20).\n\n## `T.getAuth()`\nGet the client's authentication tokens.\n\n## `T.setAuth(tokens)`\nUpdate the client's authentication tokens.\n\n## `T.stream(path, [params])`\nUse this with the Streaming API.\n\n**path**\n\nStreaming endpoint to hit. One of:\n\n- **'statuses/filter'**\n- **'statuses/sample'**\n- **'statuses/firehose'**\n- **'user'**\n- **'site'**\n\nFor a description of each Streaming endpoint, see the [Twitter API docs](https://dev.twitter.com/streaming/overview).\n\n**params**\n\n(Optional) parameters for the request. Any Arrays passed in `params` get converted to comma-separated strings, allowing you to do requests like:\n\n```javascript\n//\n// I only want to see tweets about my favorite fruits\n//\n\n// same result as doing { track: 'bananas,oranges,strawberries' }\nvar stream = T.stream('statuses/filter', { track: ['bananas', 'oranges', 'strawberries'] })\n\nstream.on('tweet', function (tweet) {\n //...\n})\n```\n\n# Using the Streaming API\n\n`T.stream(path, [params])` keeps the connection alive, and returns an `EventEmitter`.\n\nThe following events are emitted:\n\n## event: 'message'\n\nEmitted each time an object is received in the stream. This is a catch-all event that can be used to process any data received in the stream, rather than using the more specific events documented below.\nNew in version 2.1.0.\n\n```javascript\nstream.on('message', function (msg) {\n //...\n})\n```\n\n## event: 'tweet'\n\nEmitted each time a status (tweet) comes into the stream.\n\n```javascript\nstream.on('tweet', function (tweet) {\n //...\n})\n```\n\n## event: 'delete'\n\nEmitted each time a status (tweet) deletion message comes into the stream.\n\n```javascript\nstream.on('delete', function (deleteMessage) {\n //...\n})\n```\n\n## event: 'limit'\n\nEmitted each time a limitation message comes into the stream.\n\n```javascript\nstream.on('limit', function (limitMessage) {\n //...\n})\n```\n\n## event: 'scrub_geo'\n\nEmitted each time a location deletion message comes into the stream.\n\n```javascript\nstream.on('scrub_geo', function (scrubGeoMessage) {\n //...\n})\n```\n\n## event: 'disconnect'\n\nEmitted when a disconnect message comes from Twitter. This occurs if you have multiple streams connected to Twitter's API. Upon receiving a disconnect message from Twitter, `Twit` will close the connection and emit this event with the message details received from twitter.\n\n```javascript\nstream.on('disconnect', function (disconnectMessage) {\n //...\n})\n```\n\n## event: 'connect'\n\nEmitted when a connection attempt is made to Twitter. The http `request` object is emitted.\n\n```javascript\nstream.on('connect', function (request) {\n //...\n})\n```\n\n## event: 'connected'\n\nEmitted when the response is received from Twitter. The http `response` object is emitted.\n\n```javascript\nstream.on('connected', function (response) {\n //...\n})\n```\n\n## event: 'reconnect'\n\nEmitted when a reconnection attempt to Twitter is scheduled. If Twitter is having problems or we get rate limited, we schedule a reconnect according to Twitter's [reconnection guidelines](https://dev.twitter.com/streaming/overview/connecting). The last http `request` and `response` objects are emitted, along with the time (in milliseconds) left before the reconnect occurs.\n\n```javascript\nstream.on('reconnect', function (request, response, connectInterval) {\n //...\n})\n```\n\n## event: 'warning'\n\nThis message is appropriate for clients using high-bandwidth connections, like the firehose. If your connection is falling behind, Twitter will queue messages for you, until your queue fills up, at which point they will disconnect you.\n\n```javascript\nstream.on('warning', function (warning) {\n //...\n})\n```\n\n## event: 'status_withheld'\n\nEmitted when Twitter sends back a `status_withheld` message in the stream. This means that a tweet was withheld in certain countries.\n\n```javascript\nstream.on('status_withheld', function (withheldMsg) {\n //...\n})\n```\n\n## event: 'user_withheld'\n\nEmitted when Twitter sends back a `user_withheld` message in the stream. This means that a Twitter user was withheld in certain countries.\n\n```javascript\nstream.on('user_withheld', function (withheldMsg) {\n //...\n})\n```\n\n## event: 'friends'\n\nEmitted when Twitter sends the [\"friends\" preamble](https://dev.twitter.com/streaming/overview/messages-types# user_stream_messsages) when connecting to a user stream. This message contains a list of the user's friends, represented as an array of user ids. If the [stringify_friend_ids](https://dev.twitter.com/streaming/overview/request-parameters#stringify_friend_id) parameter is set, the friends\nlist preamble will be returned as Strings (instead of Numbers).\n\n```javascript\nvar stream = T.stream('user', { stringify_friend_ids: true })\nstream.on('friends', function (friendsMsg) {\n //...\n})\n```\n\n## event: 'direct_message'\n\nEmitted when a direct message is sent to the user. Unfortunately, Twitter has not documented this event for user streams.\n\n```javascript\nstream.on('direct_message', function (directMsg) {\n //...\n})\n```\n\n## event: 'user_event'\n\nEmitted when Twitter sends back a [User stream event](https://dev.twitter.com/streaming/overview/messages-types#Events_event).\nSee the Twitter docs for more information on each event's structure.\n\n```javascript\nstream.on('user_event', function (eventMsg) {\n //...\n})\n```\n\nIn addition, the following user stream events are provided for you to listen on:\n\n* `blocked`\n* `unblocked`\n* `favorite`\n* `unfavorite`\n* `follow`\n* `unfollow`\n* `mute`\n* `unmute`\n* `user_update`\n* `list_created`\n* `list_destroyed`\n* `list_updated`\n* `list_member_added`\n* `list_member_removed`\n* `list_user_subscribed`\n* `list_user_unsubscribed`\n* `quoted_tweet`\n* `retweeted_retweet`\n* `favorited_retweet`\n* `unknown_user_event` (for an event that doesn't match any of the above)\n\n### Example:\n\n```javascript\nstream.on('favorite', function (event) {\n //...\n})\n```\n\n## event: 'error'\n\nEmitted when an API request or response error occurs.\nAn `Error` object is emitted, with properties:\n\n```js\n{\n message: '...', // error message\n statusCode: '...', // statusCode from Twitter\n code: '...', // error code from Twitter\n twitterReply: '...', // raw response data from Twitter\n allErrors: '...' // array of errors returned from Twitter\n}\n```\n\n## stream.stop()\n\nCall this function on the stream to stop streaming (closes the connection with Twitter).\n\n## stream.start()\n\nCall this function to restart the stream after you called `.stop()` on it.\nNote: there is no need to call `.start()` to begin streaming. `Twit.stream` calls `.start()` for you.\n\n-------\n\n# What do I have access to?\n\nAnything in the Twitter API:\n\n* REST API Endpoints: https://dev.twitter.com/rest/public\n* Public stream endpoints: https://dev.twitter.com/streaming/public\n* User stream endpoints: https://dev.twitter.com/streaming/userstreams\n* Site stream endpoints: https://dev.twitter.com/streaming/sitestreams\n\n-------\n\nGo here to create an app and get OAuth credentials (if you haven't already): https://apps.twitter.com/app/new\n\n# Advanced\n\nYou may specify an array of trusted certificate fingerprints if you want to only trust a specific set of certificates.\nWhen an HTTP response is received, it is verified that the certificate was signed, and the peer certificate's fingerprint must be one of the values you specified. By default, the node.js trusted \"root\" CAs will be used.\n\neg.\n```js\nvar twit = new Twit({\n consumer_key: '...',\n consumer_secret: '...',\n access_token: '...',\n access_token_secret: '...',\n trusted_cert_fingerprints: [\n '66:EA:47:62:D9:B1:4F:1A:AE:89:5F:68:BA:6B:8E:BB:F8:1D:BF:8E',\n ]\n})\n```\n\n# Contributing\n\n- Make your changes\n- Make sure your code matches the style of the code around it\n- Add tests that cover your feature/bugfix\n- Run tests\n- Submit a pull request\n\n# How do I run the tests?\n\nCreate two files: `config1.js` and `config2.js` at the root of the `twit` folder. They should contain two different sets of oauth credentials for twit to use (two accounts are needed for testing interactions). They should both look something like this:\n\n```\nmodule.exports = {\n consumer_key: '...'\n , consumer_secret: '...'\n , access_token: '...'\n , access_token_secret: '...'\n}\n```\n\nThen run the tests:\n\n```\nnpm test\n```\n\nYou can also run the example:\n\n```\nnode examples/rtd2.js\n```\n\n![iRTD2](http://dl.dropbox.com/u/32773572/RTD2_logo.png)\n\nThe example is a twitter bot named [RTD2](https://twitter.com/#!/iRTD2) written using `twit`. RTD2 tweets about **github** and curates its social graph.\n\n-------\n\n[FAQ](https://github.com/ttezel/twit/wiki/FAQ)\n\n-------\n\n## License\n\n(The MIT License)\n\nCopyright (c) by Tolga Tezel <tolgatezel11@gmail.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\n## Changelog\n\n### 2.2.11\n* Fix media_category used for media uploads (thanks @BooDoo)\n\n### 2.2.10\n * Update maximum Tweet characters to 280 (thanks @maziyarpanahi)\n * For streaming requests, use request body for sending params (thanks @raine)\n * Fix getBearerToken endpoint (thanks @williamcoates)\n * Shared Parameter Feature For Media Upload (thanks @haroonabbasi)\n * Don't include params in path for jsonpayload paths (thanks @egtoney)\n * Add support for strictSSL request option (thanks @zdoc01)\n\n### 2.2.9\n * Use JSON payload in request body for new DM endpoints.\n\n### 2.2.8\n * Add support for HTTP DELETE; you can now `T.delete(...)`.\n\n### 2.2.7\n * Don't attempt to reconnect to Twitter API when receiving HTTP status code 413 - request entity too large.\n\n### 2.2.6\n * Fix zlib error when streaming\n\n### 2.2.4\n * Fix 401 Unauthorized error on streaming connection reconnect after not being\n connected for some time (eg. due to > 1min loss of network).\n\n### 2.2.2\n * Emit `parser-error` instead of `error` event if Twitter sends back\n an uncompressed HTTP response body.\n\n### 2.2.1\n * Add promise support to Twit REST API calls.\n\n### 2.2.0\n * Allow omission of `new` keyword; `var t = Twit(config)` works, and `var t = new Twit(config)` works too.\n * Allow setting an array of trusted certificate fingerprints via `config.trusted_cert_fingerprints`.\n * Automatically adjust timestamp for OAuth'ed HTTP requests\n by recording the timestamp from Twitter HTTP responses, computing our local time offset, and applying the offset in the next HTTP request to Twitter.\n\n### 2.1.7\n * Add `mime` as a dependency.\n\n### 2.1.6\n * Emit `friends` event for `friends_str` message received when a user stream is requested with `stringify_friend_ids=true`.\n * Handle receiving \"Exceeded connection limit for user\" message from Twitter while streaming. Emit `error` event for this case.\n * Emit `retweeted_retweet` and `favorited_retweet` user events.\n * Add MIT license to package.json (about time!)\n\n### 2.1.5\n * Support config-based request timeout.\n\n### 2.1.4\n * Support POST media/upload (chunked) and add `T.postMediaChunked()` to make it easy.\n\n### 2.1.3\n * Fix bug in constructing HTTP requests for `account/update_profile_image` and `account/update_profile_background_image` paths.\n\n### 2.1.2\n * Enable gzip on network traffic\n * Add `quoted_tweet` event\n\n### 2.1.1\n * Strict-mode fixes (Twit can now be run with strict mode)\n * Fix handling of disconect message from Twitter\n * If Twitter returns a non-JSON-parseable fragment during streaming, emit 'parser-error' instead of 'error' (to discard fragments like \"Internal Server Error\")\n\n### 2.1.0\n * Add `message` event.\n\n### 2.0.0\n * Implement Application-only auth\n * Remove oauth module as a dependency\n\n### 1.1.20\n * Implement support for POST /media/upload\n * Reconnect logic fix for streaming; add stall abort/reconnect timeout on first connection attempt.\n\n### 1.1.14\n * Emit `connected` event upon receiving the response from twitter\n\n### 1.0.0\n * now to stop and start the stream, use `stream.stop()` and `stream.start()` instead of emitting the `start` and `stop` events\n * If twitter sends a `disconnect` message, closes the stream and emits `disconnect` with the disconnect message received from twitter\n\n### 0.2.0\n * Updated `twit` for usage with v1.1 of the Twitter API.\n\n### 0.1.5\n\n * **BREAKING CHANGE** to `twit.stream()`. Does not take a callback anymore. It returns\n immediately with the `EventEmitter` that you can listen on. The `Usage` section in\n the Readme.md has been updated. Read it.\n\n\n### 0.1.4\n\n * `twit.stream()` has signature `function (path, params, callback)`\n", + "readmeFilename": "README.md", "repository": { "type": "git", "url": "git+ssh://git@github.com/ttezel/twit.git" diff --git a/views/index.html b/views/index.html @@ -2,7 +2,7 @@ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script> <script> - var socket = io.connect('http://localhost:8080'); + var socket = io.connect('http://localhost:3000'); socket.on('stream', function(tweet){ $('#tweetd').append(tweet+'<br>'); });