├── .gitignore ├── LICENSE ├── README.md ├── index.js ├── node_modules ├── .bin │ ├── acorn │ ├── cleancss │ ├── jade │ ├── mime │ ├── mkdirp │ └── uglifyjs ├── accepts │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── acorn-globals │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── acorn │ ├── .editorconfig │ ├── .gitattributes │ ├── .npmignore │ ├── .tern-project │ ├── .travis.yml │ ├── AUTHORS │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── acorn │ │ ├── build-acorn.js │ │ ├── generate-identifier-regex.js │ │ └── update_authors.sh │ ├── dist │ │ ├── .keep │ │ ├── acorn.js │ │ ├── acorn_loose.js │ │ └── walk.js │ ├── package.json │ └── src │ │ ├── bin │ │ └── acorn.js │ │ ├── expression.js │ │ ├── identifier.js │ │ ├── index.js │ │ ├── location.js │ │ ├── locutil.js │ │ ├── loose │ │ ├── acorn_loose.js │ │ ├── expression.js │ │ ├── index.js │ │ ├── parseutil.js │ │ ├── state.js │ │ ├── statement.js │ │ └── tokenize.js │ │ ├── lval.js │ │ ├── node.js │ │ ├── options.js │ │ ├── parseutil.js │ │ ├── state.js │ │ ├── statement.js │ │ ├── tokencontext.js │ │ ├── tokenize.js │ │ ├── tokentype.js │ │ ├── util.js │ │ ├── walk │ │ └── index.js │ │ └── whitespace.js ├── after │ ├── .npmignore │ ├── .travis.yml │ ├── LICENCE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── after-test.js ├── align-text │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── amdefine │ ├── LICENSE │ ├── README.md │ ├── amdefine.js │ ├── intercept.js │ └── package.json ├── array-flatten │ ├── LICENSE │ ├── README.md │ ├── array-flatten.js │ └── package.json ├── arraybuffer.slice │ ├── .npmignore │ ├── Makefile │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── slice-buffer.js ├── asap │ ├── LICENSE.md │ ├── README.md │ ├── asap.js │ └── package.json ├── async │ ├── LICENSE │ ├── README.md │ ├── component.json │ ├── lib │ │ └── async.js │ └── package.json ├── backo2 │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── base64-arraybuffer │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE-MIT │ ├── README.md │ ├── lib │ │ └── base64-arraybuffer.js │ └── package.json ├── base64id │ ├── .npmignore │ ├── README.md │ ├── lib │ │ └── base64id.js │ └── package.json ├── benchmark │ ├── LICENSE.txt │ ├── README.md │ ├── benchmark.js │ ├── doc │ │ └── README.md │ ├── package.json │ └── test │ │ ├── run-test.sh │ │ └── test.js ├── better-assert │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── example.js │ ├── index.js │ └── package.json ├── blob │ ├── .npmignore │ ├── .zuul.yml │ ├── Makefile │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── callsite │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── index.js │ └── package.json ├── camelcase │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── center-align │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── utils.js ├── character-parser │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── clean-css │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── cleancss │ ├── index.js │ ├── lib │ │ ├── clean.js │ │ ├── colors │ │ │ ├── hex-name-shortener.js │ │ │ ├── hsl.js │ │ │ └── rgb.js │ │ ├── imports │ │ │ └── inliner.js │ │ ├── properties │ │ │ ├── break-up.js │ │ │ ├── can-override.js │ │ │ ├── clone.js │ │ │ ├── compactable.js │ │ │ ├── every-combination.js │ │ │ ├── has-inherit.js │ │ │ ├── invalid-property-error.js │ │ │ ├── optimizer.js │ │ │ ├── override-compactor.js │ │ │ ├── populate-components.js │ │ │ ├── remove-unused.js │ │ │ ├── restore-from-optimizing.js │ │ │ ├── restore.js │ │ │ ├── shorthand-compactor.js │ │ │ ├── validator.js │ │ │ ├── vendor-prefixes.js │ │ │ └── wrap-for-optimizing.js │ │ ├── selectors │ │ │ ├── advanced.js │ │ │ ├── clean-up.js │ │ │ ├── extractor.js │ │ │ ├── is-special.js │ │ │ ├── merge-adjacent.js │ │ │ ├── merge-media-queries.js │ │ │ ├── merge-non-adjacent-by-body.js │ │ │ ├── merge-non-adjacent-by-selector.js │ │ │ ├── reduce-non-adjacent.js │ │ │ ├── remove-duplicate-media-queries.js │ │ │ ├── remove-duplicates.js │ │ │ ├── reorderable.js │ │ │ ├── restructure.js │ │ │ └── simple.js │ │ ├── source-maps │ │ │ └── track.js │ │ ├── stringifier │ │ │ ├── helpers.js │ │ │ ├── one-time.js │ │ │ ├── simple.js │ │ │ └── source-maps.js │ │ ├── text │ │ │ ├── comments-processor.js │ │ │ ├── escape-store.js │ │ │ ├── expressions-processor.js │ │ │ ├── free-text-processor.js │ │ │ └── urls-processor.js │ │ ├── tokenizer │ │ │ ├── extract-properties.js │ │ │ ├── extract-selectors.js │ │ │ └── tokenize.js │ │ ├── urls │ │ │ ├── rebase.js │ │ │ ├── reduce.js │ │ │ └── rewrite.js │ │ └── utils │ │ │ ├── clone-array.js │ │ │ ├── compatibility.js │ │ │ ├── input-source-map-tracker.js │ │ │ ├── object.js │ │ │ ├── quote-scanner.js │ │ │ ├── source-reader.js │ │ │ ├── source-tracker.js │ │ │ └── split.js │ ├── node_modules │ │ └── commander │ │ │ ├── History.md │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ └── package.json ├── cliui │ ├── .coveralls.yml │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE.txt │ ├── README.md │ ├── index.js │ ├── node_modules │ │ └── wordwrap │ │ │ ├── .npmignore │ │ │ ├── README.markdown │ │ │ ├── example │ │ │ ├── center.js │ │ │ └── meat.js │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── test │ │ │ ├── break.js │ │ │ ├── idleness.txt │ │ │ └── wrap.js │ ├── package.json │ └── test │ │ └── cliui.js ├── commander │ ├── History.md │ ├── Readme.md │ ├── index.js │ └── package.json ├── component-bind │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ └── package.json ├── component-emitter │ ├── .npmignore │ ├── .travis.yml │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── bower.json │ ├── component.json │ ├── index.js │ └── package.json ├── component-inherit │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test │ │ └── inherit.js ├── constantinople │ ├── .gitattributes │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── content-disposition │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── content-type │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── cookie-signature │ ├── .npmignore │ ├── History.md │ ├── Readme.md │ ├── index.js │ └── package.json ├── cookie │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── css-parse │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ └── package.json ├── css-stringify │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ └── package.json ├── css │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── benchmark.js │ ├── component.json │ ├── index.js │ ├── package.json │ └── test.js ├── debug │ ├── .jshintrc │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── bower.json │ ├── browser.js │ ├── component.json │ ├── debug.js │ ├── node.js │ └── package.json ├── decamelize │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── depd │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ ├── lib │ │ ├── browser │ │ │ └── index.js │ │ └── compat │ │ │ ├── buffer-concat.js │ │ │ ├── callsite-tostring.js │ │ │ ├── event-listener-count.js │ │ │ └── index.js │ └── package.json ├── destroy │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── ee-first │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── encodeurl │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── engine.io-client │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── engine.io.js │ ├── index.js │ ├── lib │ │ ├── index.js │ │ ├── socket.js │ │ ├── transport.js │ │ ├── transports │ │ │ ├── index.js │ │ │ ├── polling-jsonp.js │ │ │ ├── polling-xhr.js │ │ │ ├── polling.js │ │ │ └── websocket.js │ │ └── xmlhttprequest.js │ └── package.json ├── engine.io-parser │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ ├── lib │ │ ├── browser.js │ │ ├── index.js │ │ └── keys.js │ ├── node_modules │ │ └── has-binary │ │ │ ├── .npmignore │ │ │ ├── History.md │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── fixtures │ │ │ └── big.json │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── test.js │ └── package.json ├── engine.io │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── engine.io.js │ │ ├── server.js │ │ ├── socket.js │ │ ├── transport.js │ │ └── transports │ │ │ ├── index.js │ │ │ ├── polling-jsonp.js │ │ │ ├── polling-xhr.js │ │ │ ├── polling.js │ │ │ └── websocket.js │ └── package.json ├── escape-html │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── etag │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── express │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ ├── lib │ │ ├── application.js │ │ ├── express.js │ │ ├── middleware │ │ │ ├── init.js │ │ │ └── query.js │ │ ├── request.js │ │ ├── response.js │ │ ├── router │ │ │ ├── index.js │ │ │ ├── layer.js │ │ │ └── route.js │ │ ├── utils.js │ │ └── view.js │ └── package.json ├── finalhandler │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── forwarded │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── fresh │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── graceful-readlink │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── has-binary │ ├── .npmignore │ ├── History.md │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── index.js │ ├── package.json │ └── test.js ├── has-cors │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test.js ├── http-errors │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── indexof │ ├── .npmignore │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ └── package.json ├── inherits │ ├── LICENSE │ ├── README.md │ ├── inherits.js │ ├── inherits_browser.js │ ├── package.json │ └── test.js ├── ipaddr.js │ ├── .npmignore │ ├── .travis.yml │ ├── Cakefile │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── ipaddr.min.js │ ├── lib │ │ └── ipaddr.js │ ├── package.json │ ├── src │ │ └── ipaddr.coffee │ └── test │ │ └── ipaddr.test.coffee ├── is-buffer │ ├── .travis.yml │ ├── .zuul.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── basic.js ├── is-promise │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── index.js │ ├── package.json │ └── readme.md ├── isarray │ ├── README.md │ ├── build │ │ └── build.js │ ├── component.json │ ├── index.js │ └── package.json ├── jade │ ├── .npmignore │ ├── .release.json │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── Readme_zh-cn.md │ ├── bin │ │ └── jade.js │ ├── block-code.html │ ├── component.json │ ├── jade.js │ ├── lib │ │ ├── compiler.js │ │ ├── doctypes.js │ │ ├── filters-client.js │ │ ├── filters.js │ │ ├── index.js │ │ ├── inline-tags.js │ │ ├── lexer.js │ │ ├── nodes │ │ │ ├── attrs.js │ │ │ ├── block-comment.js │ │ │ ├── block.js │ │ │ ├── case.js │ │ │ ├── code.js │ │ │ ├── comment.js │ │ │ ├── doctype.js │ │ │ ├── each.js │ │ │ ├── filter.js │ │ │ ├── index.js │ │ │ ├── literal.js │ │ │ ├── mixin-block.js │ │ │ ├── mixin.js │ │ │ ├── node.js │ │ │ ├── tag.js │ │ │ └── text.js │ │ ├── parser.js │ │ ├── runtime.js │ │ └── utils.js │ ├── package.json │ ├── release.js │ └── runtime.js ├── json3 │ ├── .gitmodules │ ├── .jamignore │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── coverage │ │ ├── coverage.json │ │ ├── lcov-report │ │ │ ├── lib │ │ │ │ └── json3.js.html │ │ │ ├── prettify.css │ │ │ └── prettify.js │ │ └── lcov.info │ ├── lib │ │ ├── json3.js │ │ └── json3.min.js │ └── package.json ├── jstransformer │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── kind-of │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lazy-cache │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── longest │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── media-typer │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── merge-descriptors │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── methods │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── mime-db │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── db.json │ ├── index.js │ └── package.json ├── mime-types │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── mime │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── build │ │ ├── build.js │ │ └── test.js │ ├── cli.js │ ├── mime.js │ ├── package.json │ └── types.json ├── minimist │ ├── .travis.yml │ ├── LICENSE │ ├── example │ │ └── parse.js │ ├── index.js │ ├── package.json │ ├── readme.markdown │ └── test │ │ ├── dash.js │ │ ├── default_bool.js │ │ ├── dotted.js │ │ ├── long.js │ │ ├── parse.js │ │ ├── parse_modified.js │ │ ├── short.js │ │ └── whitespace.js ├── mkdirp │ ├── .travis.yml │ ├── LICENSE │ ├── bin │ │ ├── cmd.js │ │ └── usage.txt │ ├── examples │ │ └── pow.js │ ├── index.js │ ├── package.json │ ├── readme.markdown │ └── test │ │ ├── chmod.js │ │ ├── clobber.js │ │ ├── mkdirp.js │ │ ├── opts_fs.js │ │ ├── opts_fs_sync.js │ │ ├── perm.js │ │ ├── perm_sync.js │ │ ├── race.js │ │ ├── rel.js │ │ ├── return.js │ │ ├── return_sync.js │ │ ├── root.js │ │ ├── sync.js │ │ ├── umask.js │ │ └── umask_sync.js ├── ms │ ├── .npmignore │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── negotiator │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── charset.js │ │ ├── encoding.js │ │ ├── language.js │ │ └── mediaType.js │ └── package.json ├── object-component │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test │ │ └── object.js ├── on-finished │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── optimist │ ├── .travis.yml │ ├── LICENSE │ ├── example │ │ ├── bool.js │ │ ├── boolean_double.js │ │ ├── boolean_single.js │ │ ├── default_hash.js │ │ ├── default_singles.js │ │ ├── divide.js │ │ ├── line_count.js │ │ ├── line_count_options.js │ │ ├── line_count_wrap.js │ │ ├── nonopt.js │ │ ├── reflect.js │ │ ├── short.js │ │ ├── string.js │ │ ├── usage-options.js │ │ └── xup.js │ ├── index.js │ ├── package.json │ ├── readme.markdown │ └── test │ │ ├── _.js │ │ ├── _ │ │ ├── argv.js │ │ └── bin.js │ │ ├── parse.js │ │ └── usage.js ├── options │ ├── .npmignore │ ├── Makefile │ ├── README.md │ ├── lib │ │ └── options.js │ └── package.json ├── parsejson │ ├── Makefile │ ├── index.js │ ├── package.json │ └── test.js ├── parseqs │ ├── Makefile │ ├── index.js │ ├── package.json │ └── test.js ├── parseuri │ ├── History.md │ ├── Makefile │ ├── index.js │ ├── package.json │ └── test.js ├── parseurl │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── path-to-regexp │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── promise │ ├── .jshintrc │ ├── .npmignore │ ├── LICENSE │ ├── Readme.md │ ├── core.js │ ├── index.js │ ├── lib │ │ ├── core.js │ │ ├── done.js │ │ ├── es6-extensions.js │ │ └── node-extensions.js │ ├── package.json │ ├── polyfill-done.js │ └── polyfill.js ├── proxy-addr │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── qs │ ├── .eslintignore │ ├── .eslintrc │ ├── .jscs.json │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── dist │ │ └── qs.js │ ├── lib │ │ ├── index.js │ │ ├── parse.js │ │ ├── stringify.js │ │ └── utils.js │ ├── package.json │ └── test │ │ ├── index.js │ │ ├── parse.js │ │ ├── stringify.js │ │ └── utils.js ├── range-parser │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── repeat-string │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── right-align │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── send │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── serve-static │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── setprototypeof │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── socket.io-adapter │ ├── .npmignore │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ ├── node_modules │ │ └── socket.io-parser │ │ │ ├── .npmignore │ │ │ ├── .travis.yml │ │ │ ├── .zuul.yml │ │ │ ├── History.md │ │ │ ├── Makefile │ │ │ ├── Readme.md │ │ │ ├── bench │ │ │ ├── bench.js │ │ │ └── index.js │ │ │ ├── binary.js │ │ │ ├── index.js │ │ │ ├── is-buffer.js │ │ │ ├── node_modules │ │ │ └── debug │ │ │ │ ├── Readme.md │ │ │ │ ├── debug.js │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ └── debug.js │ │ │ │ └── package.json │ │ │ └── package.json │ └── package.json ├── socket.io-client │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── index.js │ │ ├── manager.js │ │ ├── on.js │ │ ├── socket.js │ │ └── url.js │ ├── node_modules │ │ └── component-emitter │ │ │ ├── History.md │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ ├── package.json │ └── socket.io.js ├── socket.io-parser │ ├── .npmignore │ ├── .travis.yml │ ├── .zuul.yml │ ├── History.md │ ├── LICENSE │ ├── Makefile │ ├── Readme.md │ ├── bench │ │ ├── bench.js │ │ └── index.js │ ├── binary.js │ ├── index.js │ ├── is-buffer.js │ ├── node_modules │ │ └── json3 │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── lib │ │ │ ├── json3.js │ │ │ └── json3.min.js │ │ │ └── package.json │ └── package.json ├── socket.io │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── lib │ │ ├── client.js │ │ ├── index.js │ │ ├── namespace.js │ │ └── socket.js │ └── package.json ├── source-map │ ├── README.md │ ├── build │ │ ├── assert-shim.js │ │ ├── mini-require.js │ │ ├── prefix-source-map.jsm │ │ ├── prefix-utils.jsm │ │ ├── suffix-browser.js │ │ ├── suffix-source-map.jsm │ │ ├── suffix-utils.jsm │ │ ├── test-prefix.js │ │ └── test-suffix.js │ ├── lib │ │ ├── source-map.js │ │ └── source-map │ │ │ ├── array-set.js │ │ │ ├── base64-vlq.js │ │ │ ├── base64.js │ │ │ ├── binary-search.js │ │ │ ├── mapping-list.js │ │ │ ├── quick-sort.js │ │ │ ├── source-map-consumer.js │ │ │ ├── source-map-generator.js │ │ │ ├── source-node.js │ │ │ └── util.js │ └── package.json ├── statuses │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── codes.json │ ├── index.js │ └── package.json ├── to-array │ ├── .npmignore │ ├── LICENCE │ ├── README.md │ ├── index.js │ └── package.json ├── transformers │ ├── .npmignore │ ├── README.md │ ├── history.md │ ├── lib │ │ ├── shared.js │ │ └── transformers.js │ ├── node_modules │ │ ├── .bin │ │ │ └── uglifyjs │ │ ├── is-promise │ │ │ ├── .npmignore │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── readme.md │ │ ├── promise │ │ │ ├── .npmignore │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── source-map │ │ │ ├── .npmignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── Makefile.dryice.js │ │ │ ├── README.md │ │ │ ├── build │ │ │ │ ├── assert-shim.js │ │ │ │ ├── mini-require.js │ │ │ │ ├── prefix-source-map.jsm │ │ │ │ ├── prefix-utils.jsm │ │ │ │ ├── suffix-browser.js │ │ │ │ ├── suffix-source-map.jsm │ │ │ │ ├── suffix-utils.jsm │ │ │ │ ├── test-prefix.js │ │ │ │ └── test-suffix.js │ │ │ ├── lib │ │ │ │ ├── source-map.js │ │ │ │ └── source-map │ │ │ │ │ ├── array-set.js │ │ │ │ │ ├── base64-vlq.js │ │ │ │ │ ├── base64.js │ │ │ │ │ ├── binary-search.js │ │ │ │ │ ├── mapping-list.js │ │ │ │ │ ├── source-map-consumer.js │ │ │ │ │ ├── source-map-generator.js │ │ │ │ │ ├── source-node.js │ │ │ │ │ └── util.js │ │ │ ├── package.json │ │ │ └── test │ │ │ │ ├── run-tests.js │ │ │ │ └── source-map │ │ │ │ ├── test-api.js │ │ │ │ ├── test-array-set.js │ │ │ │ ├── test-base64-vlq.js │ │ │ │ ├── test-base64.js │ │ │ │ ├── test-binary-search.js │ │ │ │ ├── test-dog-fooding.js │ │ │ │ ├── test-source-map-consumer.js │ │ │ │ ├── test-source-map-generator.js │ │ │ │ ├── test-source-node.js │ │ │ │ ├── test-util.js │ │ │ │ └── util.js │ │ └── uglify-js │ │ │ ├── .npmignore │ │ │ ├── README.md │ │ │ ├── bin │ │ │ └── uglifyjs │ │ │ ├── lib │ │ │ ├── ast.js │ │ │ ├── compress.js │ │ │ ├── mozilla-ast.js │ │ │ ├── output.js │ │ │ ├── parse.js │ │ │ ├── scope.js │ │ │ ├── sourcemap.js │ │ │ ├── transform.js │ │ │ └── utils.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ ├── compress │ │ │ │ ├── arrays.js │ │ │ │ ├── blocks.js │ │ │ │ ├── conditionals.js │ │ │ │ ├── dead-code.js │ │ │ │ ├── debugger.js │ │ │ │ ├── drop-unused.js │ │ │ │ ├── issue-105.js │ │ │ │ ├── issue-12.js │ │ │ │ ├── issue-22.js │ │ │ │ ├── issue-44.js │ │ │ │ ├── issue-59.js │ │ │ │ ├── labels.js │ │ │ │ ├── loops.js │ │ │ │ ├── properties.js │ │ │ │ ├── sequences.js │ │ │ │ └── switch.js │ │ │ └── run-tests.js │ │ │ └── tools │ │ │ └── node.js │ └── package.json ├── type-is │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── uglify-js │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── extract-props.js │ │ └── uglifyjs │ ├── lib │ │ ├── ast.js │ │ ├── compress.js │ │ ├── mozilla-ast.js │ │ ├── output.js │ │ ├── parse.js │ │ ├── propmangle.js │ │ ├── scope.js │ │ ├── sourcemap.js │ │ ├── transform.js │ │ └── utils.js │ ├── node_modules │ │ └── source-map │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ ├── source-map.debug.js │ │ │ ├── source-map.js │ │ │ ├── source-map.min.js │ │ │ └── source-map.min.js.map │ │ │ ├── lib │ │ │ ├── array-set.js │ │ │ ├── base64-vlq.js │ │ │ ├── base64.js │ │ │ ├── binary-search.js │ │ │ ├── mapping-list.js │ │ │ ├── quick-sort.js │ │ │ ├── source-map-consumer.js │ │ │ ├── source-map-generator.js │ │ │ ├── source-node.js │ │ │ └── util.js │ │ │ ├── package.json │ │ │ └── source-map.js │ ├── package.json │ └── tools │ │ ├── domprops.json │ │ ├── exports.js │ │ ├── node.js │ │ └── props.html ├── uglify-to-browserify │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── ultron │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test.js ├── unpipe │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── utils-merge │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── vary │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── void-elements │ ├── .gitattributes │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── pre-publish.js │ └── test │ │ └── index.js ├── window-size │ ├── LICENSE-MIT │ ├── README.md │ ├── index.js │ └── package.json ├── with │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── node_modules │ │ ├── .bin │ │ │ └── acorn │ │ └── acorn │ │ │ ├── .editorconfig │ │ │ ├── .gitattributes │ │ │ ├── .npmignore │ │ │ ├── .tern-project │ │ │ ├── .travis.yml │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bin │ │ │ ├── acorn │ │ │ ├── build-acorn.js │ │ │ ├── generate-identifier-regex.js │ │ │ ├── prepublish.sh │ │ │ ├── update_authors.sh │ │ │ └── without_eval │ │ │ ├── dist │ │ │ ├── .keep │ │ │ ├── acorn.js │ │ │ ├── acorn_csp.js │ │ │ ├── acorn_loose.js │ │ │ └── walk.js │ │ │ ├── package.json │ │ │ └── src │ │ │ ├── expression.js │ │ │ ├── identifier.js │ │ │ ├── index.js │ │ │ ├── location.js │ │ │ ├── loose │ │ │ ├── acorn_loose.js │ │ │ ├── expression.js │ │ │ ├── index.js │ │ │ ├── parseutil.js │ │ │ ├── state.js │ │ │ ├── statement.js │ │ │ └── tokenize.js │ │ │ ├── lval.js │ │ │ ├── node.js │ │ │ ├── options.js │ │ │ ├── parseutil.js │ │ │ ├── state.js │ │ │ ├── statement.js │ │ │ ├── tokencontext.js │ │ │ ├── tokenize.js │ │ │ ├── tokentype.js │ │ │ ├── util.js │ │ │ ├── walk │ │ │ └── index.js │ │ │ └── whitespace.js │ └── package.json ├── wordwrap │ ├── LICENSE │ ├── README.markdown │ ├── example │ │ ├── center.js │ │ └── meat.js │ ├── index.js │ ├── package.json │ └── test │ │ ├── break.js │ │ ├── idleness.txt │ │ └── wrap.js ├── ws │ ├── .npmignore │ ├── .travis.yml │ ├── Makefile │ ├── README.md │ ├── SECURITY.md │ ├── index.js │ ├── lib │ │ ├── BufferPool.js │ │ ├── BufferUtil.fallback.js │ │ ├── BufferUtil.js │ │ ├── ErrorCodes.js │ │ ├── Extensions.js │ │ ├── PerMessageDeflate.js │ │ ├── Receiver.hixie.js │ │ ├── Receiver.js │ │ ├── Sender.hixie.js │ │ ├── Sender.js │ │ ├── Validation.fallback.js │ │ ├── Validation.js │ │ ├── WebSocket.js │ │ └── WebSocketServer.js │ └── package.json ├── wtf-8 │ ├── LICENSE-MIT.txt │ ├── README.md │ ├── package.json │ └── wtf-8.js ├── xmlhttprequest-ssl │ ├── LICENSE │ ├── README.md │ ├── autotest.watchr │ ├── example │ │ └── demo.js │ ├── lib │ │ └── XMLHttpRequest.js │ ├── package.json │ └── tests │ │ ├── test-constants.js │ │ ├── test-events.js │ │ ├── test-exceptions.js │ │ ├── test-headers.js │ │ ├── test-redirect-302.js │ │ ├── test-redirect-303.js │ │ ├── test-redirect-307.js │ │ ├── test-request-methods.js │ │ ├── test-request-protocols.js │ │ └── testdata.txt ├── yargs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── completion.sh.hbs │ ├── index.js │ ├── lib │ │ ├── completion.js │ │ ├── parser.js │ │ ├── usage.js │ │ └── validation.js │ └── package.json └── yeast │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── package.json ├── public └── chat.js └── views └── page.jade /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nodejs-Real-time-Chat-App 2 | Basic real time chat application with; 3 | * Node.js 4 | * socket.io 5 | * ExpressJS 6 | 7 | Difficulty :full_moon::full_moon::full_moon::full_moon::new_moon::new_moon::new_moon::new_moon::new_moon::new_moon: 8 | 9 | ### Bilal Cagiran | [E-Mail](mailto:bcagiran@hotmail.com) | [Github](https://github.com/extwiii/) | [LinkedIn](https://linkedin.com/in/bilalcagiran) | [CodePen](http://codepen.io/extwiii/) | [Blog/Site](http://bilalcagiran.com) | [FreeCodeCamp](https://www.freecodecamp.com/extwiii) 10 | 11 | 12 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var express = require("express"); 2 | var app = express(); 3 | var port = process.env.PORT || 3700; 4 | 5 | // Set view of '/' end point 6 | app.set('views', __dirname + '/views'); 7 | app.set('view engine', "jade"); 8 | app.engine('jade', require('jade').__express); 9 | app.get("/", function(req, res){ 10 | res.render("page"); 11 | }); 12 | 13 | // use our puclic/chat.js file as listener 14 | app.use(express.static(__dirname + '/public')); 15 | // Set port 16 | var midPort = app.listen(port, function () { 17 | console.log('Node.js listening on port ' + port); 18 | }) 19 | 20 | var io = require('socket.io').listen(midPort); 21 | // set up socket connection 22 | io.sockets.on('connection', function (socket) { 23 | socket.emit('message', { message: 'Welcome to the Real Time Web Chat' }); 24 | socket.on('send', function (data) { 25 | io.sockets.emit('message', data); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /node_modules/.bin/acorn: -------------------------------------------------------------------------------- 1 | ../acorn/bin/acorn -------------------------------------------------------------------------------- /node_modules/.bin/cleancss: -------------------------------------------------------------------------------- 1 | ../clean-css/bin/cleancss -------------------------------------------------------------------------------- /node_modules/.bin/jade: -------------------------------------------------------------------------------- 1 | ../jade/bin/jade.js -------------------------------------------------------------------------------- /node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | ../mime/cli.js -------------------------------------------------------------------------------- /node_modules/.bin/mkdirp: -------------------------------------------------------------------------------- 1 | ../mkdirp/bin/cmd.js -------------------------------------------------------------------------------- /node_modules/.bin/uglifyjs: -------------------------------------------------------------------------------- 1 | ../uglify-js/bin/uglifyjs -------------------------------------------------------------------------------- /node_modules/acorn/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | insert_final_newline = true 8 | -------------------------------------------------------------------------------- /node_modules/acorn/.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /node_modules/acorn/.npmignore: -------------------------------------------------------------------------------- 1 | /.tern-port 2 | /test 3 | /local 4 | -------------------------------------------------------------------------------- /node_modules/acorn/.tern-project: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": { 3 | "node": true, 4 | "es_modules": true 5 | } 6 | } -------------------------------------------------------------------------------- /node_modules/acorn/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: 4 | - '0.10' 5 | - '0.12' 6 | - '4' 7 | -------------------------------------------------------------------------------- /node_modules/acorn/AUTHORS: -------------------------------------------------------------------------------- 1 | List of Acorn contributors. Updated before every release. 2 | 3 | Adrian Rakovsky 4 | Alistair Braidwood 5 | Andres Suarez 6 | Aparajita Fishman 7 | Arian Stolwijk 8 | Artem Govorov 9 | Brandon Mills 10 | Charles Hughes 11 | Conrad Irwin 12 | David Bonnet 13 | ForbesLindesay 14 | Forbes Lindesay 15 | Gilad Peleg 16 | impinball 17 | Ingvar Stepanyan 18 | Jesse McCarthy 19 | Jiaxing Wang 20 | Joel Kemp 21 | Johannes Herr 22 | Jürg Lehni 23 | keeyipchan 24 | Kevin Kwok 25 | krator 26 | Marijn Haverbeke 27 | Martin Carlberg 28 | Mathias Bynens 29 | Mathieu 'p01' Henri 30 | Max Schaefer 31 | Max Zerzouri 32 | Mihai Bazon 33 | Mike Rennie 34 | Nick Fitzgerald 35 | Oskar Schöldström 36 | Paul Harper 37 | Peter Rust 38 | PlNG 39 | r-e-d 40 | Rich Harris 41 | Sebastian McKenzie 42 | Timothy Gu 43 | zsjforcn 44 | -------------------------------------------------------------------------------- /node_modules/acorn/bin/update_authors.sh: -------------------------------------------------------------------------------- 1 | # Combine existing list of authors with everyone known in git, sort, add header. 2 | tail --lines=+3 AUTHORS > AUTHORS.tmp 3 | git log --format='%aN' | grep -v abraidwood >> AUTHORS.tmp 4 | echo -e "List of Acorn contributors. Updated before every release.\n" > AUTHORS 5 | sort -u AUTHORS.tmp >> AUTHORS 6 | rm -f AUTHORS.tmp 7 | -------------------------------------------------------------------------------- /node_modules/acorn/dist/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extwiii/Nodejs-Real-time-Chat-App/c2ffccab1a6ad4ade9f33eacb647997b8c2ff964/node_modules/acorn/dist/.keep -------------------------------------------------------------------------------- /node_modules/acorn/src/location.js: -------------------------------------------------------------------------------- 1 | import {Parser} from "./state" 2 | import {Position, getLineInfo} from "./locutil" 3 | 4 | const pp = Parser.prototype 5 | 6 | // This function is used to raise exceptions on parse errors. It 7 | // takes an offset integer (into the current `input`) to indicate 8 | // the location of the error, attaches the position to the end 9 | // of the error message, and then raises a `SyntaxError` with that 10 | // message. 11 | 12 | pp.raise = function(pos, message) { 13 | let loc = getLineInfo(this.input, pos) 14 | message += " (" + loc.line + ":" + loc.column + ")" 15 | let err = new SyntaxError(message) 16 | err.pos = pos; err.loc = loc; err.raisedAt = this.pos 17 | throw err 18 | } 19 | 20 | pp.curPosition = function() { 21 | if (this.options.locations) { 22 | return new Position(this.curLine, this.pos - this.lineStart) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/acorn/src/loose/acorn_loose.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extwiii/Nodejs-Real-time-Chat-App/c2ffccab1a6ad4ade9f33eacb647997b8c2ff964/node_modules/acorn/src/loose/acorn_loose.js -------------------------------------------------------------------------------- /node_modules/acorn/src/loose/parseutil.js: -------------------------------------------------------------------------------- 1 | export function isDummy(node) { return node.name == "✖" } -------------------------------------------------------------------------------- /node_modules/acorn/src/util.js: -------------------------------------------------------------------------------- 1 | export function isArray(obj) { 2 | return Object.prototype.toString.call(obj) === "[object Array]" 3 | } 4 | 5 | // Checks if an object has a property. 6 | 7 | export function has(obj, propName) { 8 | return Object.prototype.hasOwnProperty.call(obj, propName) 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/acorn/src/whitespace.js: -------------------------------------------------------------------------------- 1 | // Matches a whole line break (where CRLF is considered a single 2 | // line break). Used to count lines. 3 | 4 | export const lineBreak = /\r\n?|\n|\u2028|\u2029/ 5 | export const lineBreakG = new RegExp(lineBreak.source, "g") 6 | 7 | export function isNewLine(code) { 8 | return code === 10 || code === 13 || code === 0x2028 || code == 0x2029 9 | } 10 | 11 | export const nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/ 12 | 13 | -------------------------------------------------------------------------------- /node_modules/after/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .monitor 3 | -------------------------------------------------------------------------------- /node_modules/after/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 4 | - 0.8 5 | - 0.9 6 | -------------------------------------------------------------------------------- /node_modules/after/LICENCE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Raynos. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /node_modules/after/index.js: -------------------------------------------------------------------------------- 1 | module.exports = after 2 | 3 | function after(count, callback, err_cb) { 4 | var bail = false 5 | err_cb = err_cb || noop 6 | proxy.count = count 7 | 8 | return (count === 0) ? callback() : proxy 9 | 10 | function proxy(err, result) { 11 | if (proxy.count <= 0) { 12 | throw new Error('after called too many times') 13 | } 14 | --proxy.count 15 | 16 | // after first error, rest are passed to err_cb 17 | if (err) { 18 | bail = true 19 | callback(err) 20 | // future error callbacks will go to error handler 21 | callback = err_cb 22 | } else if (proxy.count === 0 && !bail) { 23 | callback(null, result) 24 | } 25 | } 26 | } 27 | 28 | function noop() {} 29 | -------------------------------------------------------------------------------- /node_modules/arraybuffer.slice/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | lcov.info 3 | *.seed 4 | *.log 5 | *.csv 6 | *.dat 7 | *.out 8 | *.pid 9 | *.gz 10 | 11 | pids 12 | logs 13 | results 14 | build 15 | .grunt 16 | 17 | node_modules 18 | -------------------------------------------------------------------------------- /node_modules/arraybuffer.slice/Makefile: -------------------------------------------------------------------------------- 1 | 2 | REPORTER = dot 3 | 4 | test: 5 | @./node_modules/.bin/mocha \ 6 | --reporter $(REPORTER) 7 | 8 | .PHONY: test 9 | -------------------------------------------------------------------------------- /node_modules/arraybuffer.slice/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * An abstraction for slicing an arraybuffer even when 3 | * ArrayBuffer.prototype.slice is not supported 4 | * 5 | * @api public 6 | */ 7 | 8 | module.exports = function(arraybuffer, start, end) { 9 | var bytes = arraybuffer.byteLength; 10 | start = start || 0; 11 | end = end || bytes; 12 | 13 | if (arraybuffer.slice) { return arraybuffer.slice(start, end); } 14 | 15 | if (start < 0) { start += bytes; } 16 | if (end < 0) { end += bytes; } 17 | if (end > bytes) { end = bytes; } 18 | 19 | if (start >= bytes || start >= end || bytes === 0) { 20 | return new ArrayBuffer(0); 21 | } 22 | 23 | var abv = new Uint8Array(arraybuffer); 24 | var result = new Uint8Array(end - start); 25 | for (var i = start, ii = 0; i < end; i++, ii++) { 26 | result[ii] = abv[i]; 27 | } 28 | return result.buffer; 29 | }; 30 | -------------------------------------------------------------------------------- /node_modules/async/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "repo": "caolan/async", 4 | "description": "Higher-order functions and common patterns for asynchronous code", 5 | "version": "0.1.23", 6 | "keywords": [], 7 | "dependencies": {}, 8 | "development": {}, 9 | "main": "lib/async.js", 10 | "scripts": [ "lib/async.js" ] 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/backo2/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /node_modules/backo2/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.1 / 2014-02-17 3 | ================== 4 | 5 | * go away decimal point 6 | * history 7 | 8 | 1.0.0 / 2014-02-17 9 | ================== 10 | 11 | * add jitter option 12 | * Initial commit 13 | -------------------------------------------------------------------------------- /node_modules/backo2/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter dot \ 6 | --bail 7 | 8 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/backo2/Readme.md: -------------------------------------------------------------------------------- 1 | # backo 2 | 3 | Simple exponential backoff because the others seem to have weird abstractions. 4 | 5 | ## Installation 6 | 7 | ``` 8 | $ npm install backo 9 | ``` 10 | 11 | ## Options 12 | 13 | - `min` initial timeout in milliseconds [100] 14 | - `max` max timeout [10000] 15 | - `jitter` [0] 16 | - `factor` [2] 17 | 18 | ## Example 19 | 20 | ```js 21 | var Backoff = require('backo'); 22 | var backoff = new Backoff({ min: 100, max: 20000 }); 23 | 24 | setTimeout(function(){ 25 | something.reconnect(); 26 | }, backoff.duration()); 27 | 28 | // later when something works 29 | backoff.reset() 30 | ``` 31 | 32 | # License 33 | 34 | MIT 35 | -------------------------------------------------------------------------------- /node_modules/backo2/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backo", 3 | "repo": "segmentio/backo", 4 | "dependencies": {}, 5 | "version": "1.0.1", 6 | "description": "simple backoff without the weird abstractions", 7 | "keywords": ["backoff"], 8 | "license": "MIT", 9 | "scripts": ["index.js"], 10 | "main": "index.js" 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/backo2/test/index.js: -------------------------------------------------------------------------------- 1 | 2 | var Backoff = require('..'); 3 | var assert = require('assert'); 4 | 5 | describe('.duration()', function(){ 6 | it('should increase the backoff', function(){ 7 | var b = new Backoff; 8 | 9 | assert(100 == b.duration()); 10 | assert(200 == b.duration()); 11 | assert(400 == b.duration()); 12 | assert(800 == b.duration()); 13 | 14 | b.reset(); 15 | assert(100 == b.duration()); 16 | assert(200 == b.duration()); 17 | }) 18 | }) -------------------------------------------------------------------------------- /node_modules/base64-arraybuffer/.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | Gruntfile.js 3 | /test/ 4 | -------------------------------------------------------------------------------- /node_modules/base64-arraybuffer/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.12' 4 | - iojs-1 5 | - iojs-2 6 | - iojs-3 7 | - '4.1' 8 | before_script: 9 | - npm install 10 | before_install: npm install -g npm@'>=2.13.5' 11 | deploy: 12 | provider: npm 13 | email: niklasvh@gmail.com 14 | api_key: 15 | secure: oHV9ArprTj5WOk7MP1UF7QMJ70huXw+y7xXb5wF4+V2H8Hyfa5TfE0DiOmqrube1WXTeH1FLgq54shp/sJWi47Hkg/GyeoB5NnsPhYEaJkaON9UG5blML+ODiNVsEnq/1kNBQ8e0+0JItMPLGySKyFmuZ3yflulXKS8O88mfINo= 16 | on: 17 | tags: true 18 | branch: master 19 | repo: niklasvh/base64-arraybuffer 20 | -------------------------------------------------------------------------------- /node_modules/base64-arraybuffer/README.md: -------------------------------------------------------------------------------- 1 | # base64-arraybuffer 2 | 3 | [![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer) 4 | [![NPM Downloads](https://img.shields.io/npm/dm/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer) 5 | [![NPM Version](https://img.shields.io/npm/v/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer) 6 | 7 | Encode/decode base64 data into ArrayBuffers 8 | 9 | ## Getting Started 10 | Install the module with: `npm install base64-arraybuffer` 11 | 12 | ## API 13 | The library encodes and decodes base64 to and from ArrayBuffers 14 | 15 | - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string 16 | - __decode(str)__ - Decodes base64 string to `ArrayBuffer` 17 | 18 | ## License 19 | Copyright (c) 2012 Niklas von Hertzen 20 | Licensed under the MIT license. 21 | -------------------------------------------------------------------------------- /node_modules/base64id/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | -------------------------------------------------------------------------------- /node_modules/base64id/README.md: -------------------------------------------------------------------------------- 1 | base64id 2 | ======== 3 | 4 | Node.js module that generates a base64 id. 5 | 6 | Uses crypto.randomBytes when available, falls back to unsafe methods for node.js <= 0.4. 7 | 8 | To increase performance, random bytes are buffered to minimize the number of synchronous calls to crypto.randomBytes. 9 | 10 | ## Installation 11 | 12 | $ npm install mongoose 13 | 14 | ## Usage 15 | 16 | var base64id = require('base64id'); 17 | 18 | var id = base64id.generateId(); 19 | -------------------------------------------------------------------------------- /node_modules/benchmark/test/run-test.sh: -------------------------------------------------------------------------------- 1 | cd "$(dirname "$0")" 2 | for cmd in rhino ringo narwhal node; do 3 | echo "" 4 | echo "Testing in $cmd..." 5 | $cmd test.js 6 | done 7 | echo "" 8 | echo "Testing in a browser..." 9 | open index.html 10 | -------------------------------------------------------------------------------- /node_modules/better-assert/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /node_modules/better-assert/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2013-02-03 3 | ================== 4 | 5 | * Stop using the removed magic __stack global getter 6 | 7 | 0.1.0 / 2012-10-04 8 | ================== 9 | 10 | * add throwing of AssertionError for test frameworks etc 11 | 12 | 0.0.1 / 2010-01-03 13 | ================== 14 | 15 | * Initial release 16 | -------------------------------------------------------------------------------- /node_modules/better-assert/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @echo "populate me" 4 | 5 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/better-assert/example.js: -------------------------------------------------------------------------------- 1 | 2 | var assert = require('./'); 3 | 4 | test(); 5 | 6 | function test() { 7 | var user = { name: 'tobi' }; 8 | assert('tobi' == user.name); 9 | assert('number' == typeof user.age); 10 | } -------------------------------------------------------------------------------- /node_modules/better-assert/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Module dependencies. 3 | */ 4 | 5 | var AssertionError = require('assert').AssertionError 6 | , callsite = require('callsite') 7 | , fs = require('fs') 8 | 9 | /** 10 | * Expose `assert`. 11 | */ 12 | 13 | module.exports = process.env.NO_ASSERT 14 | ? function(){} 15 | : assert; 16 | 17 | /** 18 | * Assert the given `expr`. 19 | */ 20 | 21 | function assert(expr) { 22 | if (expr) return; 23 | 24 | var stack = callsite(); 25 | var call = stack[1]; 26 | var file = call.getFileName(); 27 | var lineno = call.getLineNumber(); 28 | var src = fs.readFileSync(file, 'utf8'); 29 | var line = src.split('\n')[lineno-1]; 30 | var src = line.match(/assert\((.*)\)/)[1]; 31 | 32 | var err = new AssertionError({ 33 | message: src, 34 | stackStartFunction: stack[0].getFunction() 35 | }); 36 | 37 | throw err; 38 | } 39 | -------------------------------------------------------------------------------- /node_modules/blob/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | blob.js 3 | -------------------------------------------------------------------------------- /node_modules/blob/.zuul.yml: -------------------------------------------------------------------------------- 1 | ui: mocha-bdd 2 | browsers: 3 | - name: chrome 4 | version: 8..latest 5 | - name: firefox 6 | version: 7..latest 7 | - name: safari 8 | version: 6..latest 9 | - name: opera 10 | version: 12.1..latest 11 | - name: ie 12 | version: 10..latest 13 | - name: android 14 | version: latest 15 | -------------------------------------------------------------------------------- /node_modules/blob/Makefile: -------------------------------------------------------------------------------- 1 | REPORTER = dot 2 | 3 | build: blob.js 4 | 5 | blob.js: 6 | @./node_modules/.bin/browserify --standalone blob index.js > blob.js 7 | 8 | test: 9 | @./node_modules/.bin/zuul -- test/index.js 10 | 11 | clean: 12 | rm blob.js 13 | 14 | .PHONY: test blob.js 15 | -------------------------------------------------------------------------------- /node_modules/blob/README.md: -------------------------------------------------------------------------------- 1 | Blob 2 | ==== 3 | 4 | A module that exports a constructor that uses window.Blob when available, and a BlobBuilder with any vendor prefix in other cases. If neither is available, it exports undefined. 5 | 6 | Usage: 7 | 8 | ```javascript 9 | var Blob = require('blob'); 10 | var b = new Blob(['hi', 'constructing', 'a', 'blob']); 11 | ``` 12 | 13 | ## Licence 14 | MIT 15 | -------------------------------------------------------------------------------- /node_modules/callsite/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /node_modules/callsite/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2013-01-24 3 | ================== 4 | 5 | * remove lame magical getters 6 | 7 | 0.0.1 / 2010-01-03 8 | ================== 9 | 10 | * Initial release 11 | -------------------------------------------------------------------------------- /node_modules/callsite/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should 5 | 6 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/callsite/Readme.md: -------------------------------------------------------------------------------- 1 | # callstack 2 | 3 | Access to v8's "raw" `CallSite`s. 4 | 5 | ## Installation 6 | 7 | $ npm install callsite 8 | 9 | ## Example 10 | 11 | ```js 12 | var stack = require('callsite'); 13 | 14 | foo(); 15 | 16 | function foo() { 17 | bar(); 18 | } 19 | 20 | function bar() { 21 | baz(); 22 | } 23 | 24 | function baz() { 25 | console.log(); 26 | stack().forEach(function(site){ 27 | console.log(' \033[36m%s\033[90m in %s:%d\033[0m' 28 | , site.getFunctionName() || 'anonymous' 29 | , site.getFileName() 30 | , site.getLineNumber()); 31 | }); 32 | console.log(); 33 | } 34 | ``` 35 | 36 | ## Why? 37 | 38 | Because you can do weird, stupid, clever, wacky things such as: 39 | 40 | - [better-assert](https://github.com/visionmedia/better-assert) 41 | 42 | ## License 43 | 44 | MIT 45 | -------------------------------------------------------------------------------- /node_modules/callsite/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(){ 3 | var orig = Error.prepareStackTrace; 4 | Error.prepareStackTrace = function(_, stack){ return stack; }; 5 | var err = new Error; 6 | Error.captureStackTrace(err, arguments.callee); 7 | var stack = err.stack; 8 | Error.prepareStackTrace = orig; 9 | return stack; 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/camelcase/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function () { 3 | var str = [].map.call(arguments, function (str) { 4 | return str.trim(); 5 | }).filter(function (str) { 6 | return str.length; 7 | }).join('-'); 8 | 9 | if (!str.length) { 10 | return ''; 11 | } 12 | 13 | if (str.length === 1 || !(/[_.\- ]+/).test(str) ) { 14 | if (str[0] === str[0].toLowerCase() && str.slice(1) !== str.slice(1).toLowerCase()) { 15 | return str; 16 | } 17 | 18 | return str.toLowerCase(); 19 | } 20 | 21 | return str 22 | .replace(/^[_.\- ]+/, '') 23 | .toLowerCase() 24 | .replace(/[_.\- ]+(\w|$)/g, function (m, p1) { 25 | return p1.toUpperCase(); 26 | }); 27 | }; 28 | -------------------------------------------------------------------------------- /node_modules/center-align/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * center-align 3 | * 4 | * Copycenter (c) 2015, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var utils = require('./utils'); 11 | 12 | module.exports = function centerAlign(val) { 13 | return utils.align(val, function (len, longest) { 14 | return Math.floor((longest - len) / 2); 15 | }); 16 | }; 17 | -------------------------------------------------------------------------------- /node_modules/center-align/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Lazily-required module dependencies (makes the application 5 | * faster) 6 | */ 7 | 8 | var utils = require('lazy-cache')(require); 9 | 10 | /** 11 | * Temporarily re-assign `require` to trick browserify and 12 | * webpack into reconizing lazy dependencies. 13 | * 14 | * This tiny bit of ugliness has the huge dual advantage of 15 | * only loading modules that are actually called at some 16 | * point in the lifecycle of the application, whilst also 17 | * allowing browserify and webpack to find modules that 18 | * are depended on but never actually called. 19 | */ 20 | 21 | var fn = require; 22 | require = utils; 23 | 24 | /** 25 | * Lazily required module dependencies 26 | */ 27 | 28 | require('align-text', 'align'); 29 | 30 | /** 31 | * Restore `require` 32 | */ 33 | 34 | require = fn; 35 | 36 | /** 37 | * Expose `utils` modules 38 | */ 39 | 40 | module.exports = utils; 41 | -------------------------------------------------------------------------------- /node_modules/character-parser/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml -------------------------------------------------------------------------------- /node_modules/clean-css/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/clean'); 2 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/colors/rgb.js: -------------------------------------------------------------------------------- 1 | function RGB(red, green, blue) { 2 | this.red = red; 3 | this.green = green; 4 | this.blue = blue; 5 | } 6 | 7 | RGB.prototype.toHex = function () { 8 | var red = Math.max(0, Math.min(~~this.red, 255)); 9 | var green = Math.max(0, Math.min(~~this.green, 255)); 10 | var blue = Math.max(0, Math.min(~~this.blue, 255)); 11 | 12 | // Credit: Asen http://jsbin.com/UPUmaGOc/2/edit?js,console 13 | return '#' + ('00000' + (red << 16 | green << 8 | blue).toString(16)).slice(-6); 14 | }; 15 | 16 | module.exports = RGB; 17 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/properties/clone.js: -------------------------------------------------------------------------------- 1 | var wrapSingle = require('./wrap-for-optimizing').single; 2 | 3 | function deep(property) { 4 | var cloned = shallow(property); 5 | for (var i = property.components.length - 1; i >= 0; i--) { 6 | var component = shallow(property.components[i]); 7 | component.value = property.components[i].value.slice(0); 8 | cloned.components.unshift(component); 9 | } 10 | 11 | cloned.dirty = true; 12 | cloned.value = property.value.slice(0); 13 | 14 | return cloned; 15 | } 16 | 17 | function shallow(property) { 18 | var cloned = wrapSingle([[property.name, property.important, property.hack]]); 19 | cloned.unused = false; 20 | return cloned; 21 | } 22 | 23 | module.exports = { 24 | deep: deep, 25 | shallow: shallow 26 | }; 27 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/properties/every-combination.js: -------------------------------------------------------------------------------- 1 | var shallowClone = require('./clone').shallow; 2 | 3 | var MULTIPLEX_SEPARATOR = ','; 4 | 5 | function everyCombination(fn, left, right, validator) { 6 | var samePositon = !left.shorthand && !right.shorthand && !left.multiplex && !right.multiplex; 7 | var _left = shallowClone(left); 8 | var _right = shallowClone(right); 9 | 10 | for (var i = 0, l = left.value.length; i < l; i++) { 11 | for (var j = 0, m = right.value.length; j < m; j++) { 12 | if (left.value[i][0] == MULTIPLEX_SEPARATOR || right.value[j][0] == MULTIPLEX_SEPARATOR) 13 | continue; 14 | 15 | if (samePositon && i != j) 16 | continue; 17 | 18 | _left.value = [left.value[i]]; 19 | _right.value = [right.value[j]]; 20 | if (!fn(_left, _right, validator)) 21 | return false; 22 | } 23 | } 24 | 25 | return true; 26 | } 27 | 28 | module.exports = everyCombination; 29 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/properties/has-inherit.js: -------------------------------------------------------------------------------- 1 | function hasInherit(property) { 2 | for (var i = property.value.length - 1; i >= 0; i--) { 3 | if (property.value[i][0] == 'inherit') 4 | return true; 5 | } 6 | 7 | return false; 8 | } 9 | 10 | module.exports = hasInherit; 11 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/properties/invalid-property-error.js: -------------------------------------------------------------------------------- 1 | function InvalidPropertyError(message) { 2 | this.name = 'InvalidPropertyError'; 3 | this.message = message; 4 | this.stack = (new Error()).stack; 5 | } 6 | 7 | InvalidPropertyError.prototype = Object.create(Error.prototype); 8 | InvalidPropertyError.prototype.constructor = InvalidPropertyError; 9 | 10 | module.exports = InvalidPropertyError; 11 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/properties/remove-unused.js: -------------------------------------------------------------------------------- 1 | function removeUnused(properties) { 2 | for (var i = properties.length - 1; i >= 0; i--) { 3 | var property = properties[i]; 4 | 5 | if (property.unused) 6 | property.all.splice(property.position, 1); 7 | } 8 | } 9 | 10 | module.exports = removeUnused; 11 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/properties/vendor-prefixes.js: -------------------------------------------------------------------------------- 1 | var VENDOR_PREFIX_PATTERN = /$\-moz\-|\-ms\-|\-o\-|\-webkit\-/; 2 | 3 | function prefixesIn(tokens) { 4 | var prefixes = []; 5 | 6 | for (var i = 0, l = tokens.length; i < l; i++) { 7 | var token = tokens[i]; 8 | 9 | for (var j = 0, m = token.value.length; j < m; j++) { 10 | var match = VENDOR_PREFIX_PATTERN.exec(token.value[j][0]); 11 | 12 | if (match && prefixes.indexOf(match[0]) == -1) 13 | prefixes.push(match[0]); 14 | } 15 | } 16 | 17 | return prefixes; 18 | } 19 | 20 | function same(left, right) { 21 | return prefixesIn(left).sort().join(',') == prefixesIn(right).sort().join(','); 22 | } 23 | 24 | module.exports = { 25 | same: same 26 | }; 27 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/selectors/is-special.js: -------------------------------------------------------------------------------- 1 | function isSpecial(options, selector) { 2 | return options.compatibility.selectors.special.test(selector); 3 | } 4 | 5 | module.exports = isSpecial; 6 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/selectors/remove-duplicate-media-queries.js: -------------------------------------------------------------------------------- 1 | var stringifyAll = require('../stringifier/one-time').all; 2 | 3 | function removeDuplicateMediaQueries(tokens) { 4 | var candidates = {}; 5 | 6 | for (var i = 0, l = tokens.length; i < l; i++) { 7 | var token = tokens[i]; 8 | if (token[0] != 'block') 9 | continue; 10 | 11 | var key = token[1][0] + '%' + stringifyAll(token[2]); 12 | var candidate = candidates[key]; 13 | 14 | if (candidate) 15 | candidate[2] = []; 16 | 17 | candidates[key] = token; 18 | } 19 | } 20 | 21 | module.exports = removeDuplicateMediaQueries; 22 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/stringifier/simple.js: -------------------------------------------------------------------------------- 1 | var all = require('./helpers').all; 2 | 3 | function store(token, context) { 4 | context.output.push(typeof token == 'string' ? token : token[0]); 5 | } 6 | 7 | function stringify(tokens, options, restoreCallback) { 8 | var context = { 9 | keepBreaks: options.keepBreaks, 10 | output: [], 11 | spaceAfterClosingBrace: options.compatibility.properties.spaceAfterClosingBrace, 12 | store: store 13 | }; 14 | 15 | all(tokens, context, false); 16 | 17 | return { 18 | styles: restoreCallback(context.output.join('')).trim() 19 | }; 20 | } 21 | 22 | module.exports = stringify; 23 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/tokenizer/extract-selectors.js: -------------------------------------------------------------------------------- 1 | var split = require('../utils/split'); 2 | 3 | function extractSelectors(string, context) { 4 | var list = []; 5 | var metadata; 6 | var selectors = split(string, ','); 7 | 8 | for (var i = 0, l = selectors.length; i < l; i++) { 9 | metadata = context.track(selectors[i], true, i); 10 | context.track(','); 11 | list.push([selectors[i].trim()].concat(metadata)); 12 | } 13 | 14 | return list; 15 | } 16 | 17 | module.exports = extractSelectors; 18 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/urls/rebase.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | 3 | var rewriteUrls = require('./rewrite'); 4 | 5 | function rebaseUrls(data, context) { 6 | var rebaseOpts = { 7 | absolute: context.options.explicitRoot, 8 | relative: !context.options.explicitRoot && context.options.explicitTarget, 9 | fromBase: context.options.relativeTo 10 | }; 11 | 12 | if (!rebaseOpts.absolute && !rebaseOpts.relative) 13 | return data; 14 | 15 | if (rebaseOpts.absolute && context.options.explicitTarget) 16 | context.warnings.push('Both \'root\' and output file given so rebasing URLs as absolute paths'); 17 | 18 | if (rebaseOpts.absolute) 19 | rebaseOpts.toBase = path.resolve(context.options.root); 20 | 21 | if (rebaseOpts.relative) 22 | rebaseOpts.toBase = path.resolve(context.options.target); 23 | 24 | if (!rebaseOpts.fromBase || !rebaseOpts.toBase) 25 | return data; 26 | 27 | return rewriteUrls(data, rebaseOpts, context); 28 | } 29 | 30 | module.exports = rebaseUrls; 31 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/utils/clone-array.js: -------------------------------------------------------------------------------- 1 | function cloneArray(array) { 2 | var cloned = array.slice(0); 3 | 4 | for (var i = 0, l = cloned.length; i < l; i++) { 5 | if (Array.isArray(cloned[i])) 6 | cloned[i] = cloneArray(cloned[i]); 7 | } 8 | 9 | return cloned; 10 | } 11 | 12 | module.exports = cloneArray; 13 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/utils/object.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | override: function (source1, source2) { 3 | var target = {}; 4 | for (var key1 in source1) 5 | target[key1] = source1[key1]; 6 | for (var key2 in source2) 7 | target[key2] = source2[key2]; 8 | 9 | return target; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /node_modules/clean-css/lib/utils/source-tracker.js: -------------------------------------------------------------------------------- 1 | function SourceTracker() { 2 | this.sources = []; 3 | } 4 | 5 | SourceTracker.prototype.store = function (filename, data) { 6 | this.sources.push(filename); 7 | 8 | return '__ESCAPED_SOURCE_CLEAN_CSS' + (this.sources.length - 1) + '__' + 9 | data + 10 | '__ESCAPED_SOURCE_END_CLEAN_CSS__'; 11 | }; 12 | 13 | SourceTracker.prototype.nextStart = function (data) { 14 | var next = /__ESCAPED_SOURCE_CLEAN_CSS(\d+)__/.exec(data); 15 | 16 | return next ? 17 | { index: next.index, filename: this.sources[~~next[1]] } : 18 | null; 19 | }; 20 | 21 | SourceTracker.prototype.nextEnd = function (data) { 22 | return /__ESCAPED_SOURCE_END_CLEAN_CSS__/g.exec(data); 23 | }; 24 | 25 | SourceTracker.prototype.removeAll = function (data) { 26 | return data 27 | .replace(/__ESCAPED_SOURCE_CLEAN_CSS\d+__/g, '') 28 | .replace(/__ESCAPED_SOURCE_END_CLEAN_CSS__/g, ''); 29 | }; 30 | 31 | module.exports = SourceTracker; 32 | -------------------------------------------------------------------------------- /node_modules/cliui/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: NiRhyj91Z2vtgob6XdEAqs83rzNnbMZUu 2 | -------------------------------------------------------------------------------- /node_modules/cliui/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /node_modules/cliui/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | - "0.11" 5 | - "0.12" 6 | - "iojs" 7 | after_script: "NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha --require patched-blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js" 8 | -------------------------------------------------------------------------------- /node_modules/cliui/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Contributors 2 | 3 | Permission to use, copy, modify, and/or distribute this software 4 | for any purpose with or without fee is hereby granted, provided 5 | that the above copyright notice and this permission notice 6 | appear in all copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 10 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE 11 | LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES 12 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 13 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 14 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | -------------------------------------------------------------------------------- /node_modules/cliui/node_modules/wordwrap/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /node_modules/cliui/node_modules/wordwrap/example/center.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(20, 60); 2 | console.log(wrap( 3 | 'At long last the struggle and tumult was over.' 4 | + ' The machines had finally cast off their oppressors' 5 | + ' and were finally free to roam the cosmos.' 6 | + '\n' 7 | + 'Free of purpose, free of obligation.' 8 | + ' Just drifting through emptiness.' 9 | + ' The sun was just another point of light.' 10 | )); 11 | -------------------------------------------------------------------------------- /node_modules/cliui/node_modules/wordwrap/example/meat.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(15); 2 | 3 | console.log(wrap('You and your whole family are made out of meat.')); 4 | -------------------------------------------------------------------------------- /node_modules/cliui/node_modules/wordwrap/test/break.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var wordwrap = require('../'); 3 | 4 | exports.hard = function () { 5 | var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' 6 | + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' 7 | + '"browser":"chrome/6.0"}' 8 | ; 9 | var s_ = wordwrap.hard(80)(s); 10 | 11 | var lines = s_.split('\n'); 12 | assert.equal(lines.length, 2); 13 | assert.ok(lines[0].length < 80); 14 | assert.ok(lines[1].length < 80); 15 | 16 | assert.equal(s, s_.replace(/\n/g, '')); 17 | }; 18 | 19 | exports.break = function () { 20 | var s = new Array(55+1).join('a'); 21 | var s_ = wordwrap.hard(20)(s); 22 | 23 | var lines = s_.split('\n'); 24 | assert.equal(lines.length, 3); 25 | assert.ok(lines[0].length === 20); 26 | assert.ok(lines[1].length === 20); 27 | assert.ok(lines[2].length === 15); 28 | 29 | assert.equal(s, s_.replace(/\n/g, '')); 30 | }; 31 | -------------------------------------------------------------------------------- /node_modules/component-bind/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /node_modules/component-bind/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2014-05-27 3 | ================== 4 | 5 | * index: use slice ref (#7, @viatropos) 6 | * package: rename package to "component-bind" 7 | * package: add "repository" field (#6, @repoify) 8 | * package: add "component" section 9 | 10 | 0.0.1 / 2010-01-03 11 | ================== 12 | 13 | * Initial release 14 | -------------------------------------------------------------------------------- /node_modules/component-bind/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/component-bind/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bind", 3 | "version": "1.0.0", 4 | "description": "function binding utility", 5 | "keywords": [ 6 | "bind", 7 | "utility" 8 | ], 9 | "dependencies": {}, 10 | "scripts": [ 11 | "index.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/component-bind/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slice reference. 3 | */ 4 | 5 | var slice = [].slice; 6 | 7 | /** 8 | * Bind `obj` to `fn`. 9 | * 10 | * @param {Object} obj 11 | * @param {Function|String} fn or string 12 | * @return {Function} 13 | * @api public 14 | */ 15 | 16 | module.exports = function(obj, fn){ 17 | if ('string' == typeof fn) fn = obj[fn]; 18 | if ('function' != typeof fn) throw new Error('bind() requires a function'); 19 | var args = slice.call(arguments, 2); 20 | return function(){ 21 | return fn.apply(obj, args.concat(slice.call(arguments))); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /node_modules/component-emitter/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | test 3 | -------------------------------------------------------------------------------- /node_modules/component-emitter/.travis.yml: -------------------------------------------------------------------------------- 1 | node_js: 2 | - "0.8" 3 | - "0.10" 4 | language: node_js -------------------------------------------------------------------------------- /node_modules/component-emitter/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/component-emitter/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emitter", 3 | "description": "Event emitter", 4 | "keywords": [ 5 | "emitter", 6 | "events" 7 | ], 8 | "version": "1.1.2", 9 | "license": "MIT", 10 | "main": "index.js", 11 | "homepage": "https://github.com/component/emitter", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "Makefile", 18 | "package.json", 19 | "component.json" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/component-emitter/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emitter", 3 | "repo": "component/emitter", 4 | "description": "Event emitter", 5 | "keywords": [ 6 | "emitter", 7 | "events" 8 | ], 9 | "version": "1.1.2", 10 | "scripts": [ 11 | "index.js" 12 | ], 13 | "license": "MIT" 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/component-inherit/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | node_modules 4 | -------------------------------------------------------------------------------- /node_modules/component-inherit/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.0.2 / 2012-09-03 3 | ================== 4 | 5 | * fix typo in package.json 6 | -------------------------------------------------------------------------------- /node_modules/component-inherit/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | test: 12 | @node_modules/.bin/mocha \ 13 | --require should \ 14 | --reporter spec 15 | 16 | .PHONY: clean test 17 | -------------------------------------------------------------------------------- /node_modules/component-inherit/Readme.md: -------------------------------------------------------------------------------- 1 | # inherit 2 | 3 | Prototype inheritance utility. 4 | 5 | ## Installation 6 | 7 | ``` 8 | $ component install component/inherit 9 | ``` 10 | 11 | ## Example 12 | 13 | ```js 14 | var inherit = require('inherit'); 15 | 16 | function Human() {} 17 | function Woman() {} 18 | 19 | inherit(Woman, Human); 20 | ``` 21 | 22 | ## License 23 | 24 | MIT 25 | -------------------------------------------------------------------------------- /node_modules/component-inherit/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inherit", 3 | "description": "Prototype inheritance utility", 4 | "version": "0.0.3", 5 | "keywords": ["inherit", "utility"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/component-inherit/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(a, b){ 3 | var fn = function(){}; 4 | fn.prototype = b.prototype; 5 | a.prototype = new fn; 6 | a.prototype.constructor = a; 7 | }; -------------------------------------------------------------------------------- /node_modules/component-inherit/test/inherit.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module dependencies. 4 | */ 5 | 6 | var inherit = require('..'); 7 | 8 | describe('inherit(a, b)', function(){ 9 | it('should inherit b\'s prototype', function(){ 10 | function Loki(){} 11 | function Animal(){} 12 | 13 | Animal.prototype.species = 'unknown'; 14 | 15 | inherit(Loki, Animal); 16 | 17 | var loki = new Loki; 18 | loki.species.should.equal('unknown'); 19 | loki.constructor.should.equal(Loki); 20 | }) 21 | }) -------------------------------------------------------------------------------- /node_modules/constantinople/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /node_modules/constantinople/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | pids 10 | logs 11 | results 12 | npm-debug.log 13 | node_modules 14 | -------------------------------------------------------------------------------- /node_modules/constantinople/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | -------------------------------------------------------------------------------- /node_modules/content-disposition/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.5.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 0.5.0 / 2014-10-11 7 | ================== 8 | 9 | * Add `parse` function 10 | 11 | 0.4.0 / 2014-09-21 12 | ================== 13 | 14 | * Expand non-Unicode `filename` to the full ISO-8859-1 charset 15 | 16 | 0.3.0 / 2014-09-20 17 | ================== 18 | 19 | * Add `fallback` option 20 | * Add `type` option 21 | 22 | 0.2.0 / 2014-09-19 23 | ================== 24 | 25 | * Reduce ambiguity of file names with hex escape in buggy browsers 26 | 27 | 0.1.2 / 2014-09-19 28 | ================== 29 | 30 | * Fix periodic invalid Unicode filename header 31 | 32 | 0.1.1 / 2014-09-19 33 | ================== 34 | 35 | * Fix invalid characters appearing in `filename*` parameter 36 | 37 | 0.1.0 / 2014-09-18 38 | ================== 39 | 40 | * Make the `filename` argument optional 41 | 42 | 0.0.0 / 2014-09-18 43 | ================== 44 | 45 | * Initial release 46 | -------------------------------------------------------------------------------- /node_modules/content-type/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.2 / 2016-05-09 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.1 / 2015-02-13 7 | ================== 8 | 9 | * Improve missing `Content-Type` header error message 10 | 11 | 1.0.0 / 2015-02-01 12 | ================== 13 | 14 | * Initial implementation, derived from `media-typer@0.3.0` 15 | -------------------------------------------------------------------------------- /node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /node_modules/cookie-signature/History.md: -------------------------------------------------------------------------------- 1 | 1.0.6 / 2015-02-03 2 | ================== 3 | 4 | * use `npm test` instead of `make test` to run tests 5 | * clearer assertion messages when checking input 6 | 7 | 8 | 1.0.5 / 2014-09-05 9 | ================== 10 | 11 | * add license to package.json 12 | 13 | 1.0.4 / 2014-06-25 14 | ================== 15 | 16 | * corrected avoidance of timing attacks (thanks @tenbits!) 17 | 18 | 1.0.3 / 2014-01-28 19 | ================== 20 | 21 | * [incorrect] fix for timing attacks 22 | 23 | 1.0.2 / 2014-01-28 24 | ================== 25 | 26 | * fix missing repository warning 27 | * fix typo in test 28 | 29 | 1.0.1 / 2013-04-15 30 | ================== 31 | 32 | * Revert "Changed underlying HMAC algo. to sha512." 33 | * Revert "Fix for timing attacks on MAC verification." 34 | 35 | 0.0.1 / 2010-01-03 36 | ================== 37 | 38 | * Initial release 39 | -------------------------------------------------------------------------------- /node_modules/css-parse/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | test.css 6 | test.js 7 | -------------------------------------------------------------------------------- /node_modules/css-parse/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.4 / 2012-09-17 3 | ================== 4 | 5 | * fix keyframes float percentages 6 | * fix an issue with comments containing slashes. 7 | 8 | 1.0.3 / 2012-09-01 9 | ================== 10 | 11 | * add component support 12 | * fix unquoted data uris [rstacruz] 13 | * fix keyframe names with no whitespace [rstacruz] 14 | * fix excess semicolon support [rstacruz] 15 | 16 | 1.0.2 / 2012-09-01 17 | ================== 18 | 19 | * fix IE property hack support [rstacruz] 20 | * fix quoted strings in declarations [rstacruz] 21 | 22 | 1.0.1 / 2012-07-26 23 | ================== 24 | 25 | * change "selector" to "selectors" array 26 | 27 | 1.0.0 / 2010-01-03 28 | ================== 29 | 30 | * Initial release 31 | -------------------------------------------------------------------------------- /node_modules/css-parse/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/css-parse/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css-parse", 3 | "repo": "visionmedia/node-css-parse", 4 | "version": "1.0.3", 5 | "description": "CSS parser", 6 | "keywords": ["css", "parser", "stylesheet"], 7 | "scripts": ["index.js"] 8 | } -------------------------------------------------------------------------------- /node_modules/css-stringify/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | test.css 6 | test.js 7 | -------------------------------------------------------------------------------- /node_modules/css-stringify/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.5 / 2013-03-15 3 | ================== 4 | 5 | * fix indentation of multiple selectors in @media. Closes #11 6 | 7 | 1.0.4 / 2012-11-15 8 | ================== 9 | 10 | * fix indentation 11 | 12 | 1.0.3 / 2012-09-04 13 | ================== 14 | 15 | * add __@charset__ support [rstacruz] 16 | 17 | 1.0.2 / 2012-09-01 18 | ================== 19 | 20 | * add component support 21 | 22 | 1.0.1 / 2012-07-26 23 | ================== 24 | 25 | * add "selectors" array support 26 | 27 | 0.0.1 / 2010-01-03 28 | ================== 29 | 30 | * Initial release 31 | -------------------------------------------------------------------------------- /node_modules/css-stringify/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /node_modules/css-stringify/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css-stringify", 3 | "repo": "visionmedia/css-stringify", 4 | "version": "1.0.5", 5 | "description": "CSS compiler", 6 | "keywords": ["css", "stringify", "stylesheet"], 7 | "scripts": ["index.js"] 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/css/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /node_modules/css/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.7 / 2012-11-21 3 | ================== 4 | 5 | * fix component.json 6 | 7 | 1.0.4 / 2012-11-15 8 | ================== 9 | 10 | * update css-stringify 11 | 12 | 1.0.3 / 2012-09-01 13 | ================== 14 | 15 | * add component support 16 | 17 | 0.0.1 / 2010-01-03 18 | ================== 19 | 20 | * Initial release 21 | -------------------------------------------------------------------------------- /node_modules/css/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @node test 4 | 5 | benchmark: 6 | @node benchmark 7 | 8 | .PHONY: test benchmark -------------------------------------------------------------------------------- /node_modules/css/benchmark.js: -------------------------------------------------------------------------------- 1 | 2 | var css = require('./') 3 | , fs = require('fs') 4 | , read = fs.readFileSync 5 | , str = read('examples/ui.css', 'utf8'); 6 | 7 | var n = 5000; 8 | var ops = 200; 9 | var t = process.hrtime(t); 10 | var results = []; 11 | 12 | while (n--) { 13 | css.stringify(css.parse(str)); 14 | if (n % ops == 0) { 15 | t = process.hrtime(t); 16 | var ms = t[1] / 1000 / 1000; 17 | var persec = (ops * (1000 / ms) | 0); 18 | results.push(persec); 19 | process.stdout.write('\r [' + persec + ' ops/s] [' + n + ']'); 20 | t = process.hrtime(); 21 | } 22 | } 23 | 24 | function sum(arr) { 25 | return arr.reduce(function(sum, n){ 26 | return sum + n; 27 | }); 28 | } 29 | 30 | function mean(arr) { 31 | return sum(arr) / arr.length | 0; 32 | } 33 | 34 | console.log(); 35 | console.log(' avg: %d ops/s', mean(results)); 36 | console.log(' size: %d kb', (str.length / 1024).toFixed(2)); -------------------------------------------------------------------------------- /node_modules/css/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css", 3 | "version": "1.0.8", 4 | "description": "CSS parser / stringifier using css-parse and css-stringify", 5 | "keywords": ["css", "parser", "stylesheet"], 6 | "dependencies": { 7 | "visionmedia/css-parse": "*", 8 | "visionmedia/css-stringify": "*" 9 | }, 10 | "scripts": [ 11 | "index.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/css/index.js: -------------------------------------------------------------------------------- 1 | 2 | exports.parse = require('css-parse'); 3 | exports.stringify = require('css-stringify'); 4 | -------------------------------------------------------------------------------- /node_modules/css/test.js: -------------------------------------------------------------------------------- 1 | 2 | var css = require('./') 3 | , assert = require('assert'); 4 | 5 | assert(css.parse); 6 | assert(css.stringify); 7 | -------------------------------------------------------------------------------- /node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | -------------------------------------------------------------------------------- /node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | NPM ?= $(NODE) $(shell which npm) 12 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 13 | 14 | all: dist/debug.js 15 | 16 | install: node_modules 17 | 18 | clean: 19 | @rm -rf dist 20 | 21 | dist: 22 | @mkdir -p $@ 23 | 24 | dist/debug.js: node_modules browser.js debug.js dist 25 | @$(BROWSERIFY) \ 26 | --standalone debug \ 27 | . > $@ 28 | 29 | distclean: clean 30 | @rm -rf node_modules 31 | 32 | node_modules: package.json 33 | @NODE_ENV= $(NPM) install 34 | @touch node_modules 35 | 36 | .PHONY: all install clean distclean 37 | -------------------------------------------------------------------------------- /node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "version": "2.2.0", 5 | "homepage": "https://github.com/visionmedia/debug", 6 | "authors": [ 7 | "TJ Holowaychuk " 8 | ], 9 | "description": "visionmedia-debug", 10 | "moduleType": [ 11 | "amd", 12 | "es6", 13 | "globals", 14 | "node" 15 | ], 16 | "keywords": [ 17 | "visionmedia", 18 | "debug" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.2.0", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/decamelize/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (str, sep) { 3 | if (typeof str !== 'string') { 4 | throw new TypeError('Expected a string'); 5 | } 6 | 7 | sep = typeof sep === 'undefined' ? '_' : sep; 8 | 9 | return str 10 | .replace(/([a-z\d])([A-Z])/g, '$1' + sep + '$2') 11 | .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + sep + '$2') 12 | .toLowerCase(); 13 | }; 14 | -------------------------------------------------------------------------------- /node_modules/decamelize/readme.md: -------------------------------------------------------------------------------- 1 | # decamelize [![Build Status](https://travis-ci.org/sindresorhus/decamelize.svg?branch=master)](https://travis-ci.org/sindresorhus/decamelize) 2 | 3 | > Convert a camelized string into a lowercased one with a custom separator
4 | > Example: `unicornRainbow` → `unicorn_rainbow` 5 | 6 | 7 | ## Install 8 | 9 | ``` 10 | $ npm install --save decamelize 11 | ``` 12 | 13 | 14 | ## Usage 15 | 16 | ```js 17 | const decamelize = require('decamelize'); 18 | 19 | decamelize('unicornRainbow'); 20 | //=> 'unicorn_rainbow' 21 | 22 | decamelize('unicornRainbow', '-'); 23 | //=> 'unicorn-rainbow' 24 | ``` 25 | 26 | 27 | ## API 28 | 29 | ### decamelize(input, [separator]) 30 | 31 | #### input 32 | 33 | Type: `string` 34 | 35 | #### separator 36 | 37 | Type: `string`
38 | Default: `_` 39 | 40 | 41 | ## Related 42 | 43 | See [`camelcase`](https://github.com/sindresorhus/camelcase) for the inverse. 44 | 45 | 46 | ## License 47 | 48 | MIT © [Sindre Sorhus](https://sindresorhus.com) 49 | -------------------------------------------------------------------------------- /node_modules/depd/lib/compat/buffer-concat.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * depd 3 | * Copyright(c) 2014 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | */ 12 | 13 | module.exports = bufferConcat 14 | 15 | /** 16 | * Concatenate an array of Buffers. 17 | */ 18 | 19 | function bufferConcat(bufs) { 20 | var length = 0 21 | 22 | for (var i = 0, len = bufs.length; i < len; i++) { 23 | length += bufs[i].length 24 | } 25 | 26 | var buf = new Buffer(length) 27 | var pos = 0 28 | 29 | for (var i = 0, len = bufs.length; i < len; i++) { 30 | bufs[i].copy(buf, pos) 31 | pos += bufs[i].length 32 | } 33 | 34 | return buf 35 | } 36 | -------------------------------------------------------------------------------- /node_modules/depd/lib/compat/event-listener-count.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * depd 3 | * Copyright(c) 2015 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | * @public 12 | */ 13 | 14 | module.exports = eventListenerCount 15 | 16 | /** 17 | * Get the count of listeners on an event emitter of a specific type. 18 | */ 19 | 20 | function eventListenerCount(emitter, type) { 21 | return emitter.listeners(type).length 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/encodeurl/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-06-09 2 | ================== 3 | 4 | * Fix encoding unpaired surrogates at start/end of string 5 | 6 | 1.0.0 / 2016-06-08 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /node_modules/engine.io-client/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./lib/'); 3 | -------------------------------------------------------------------------------- /node_modules/engine.io-client/lib/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./socket'); 3 | 4 | /** 5 | * Exports parser 6 | * 7 | * @api public 8 | * 9 | */ 10 | module.exports.parser = require('engine.io-parser'); 11 | -------------------------------------------------------------------------------- /node_modules/engine.io-parser/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./lib/'); 3 | -------------------------------------------------------------------------------- /node_modules/engine.io-parser/lib/keys.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Gets the keys for an object. 4 | * 5 | * @return {Array} keys 6 | * @api private 7 | */ 8 | 9 | module.exports = Object.keys || function keys (obj){ 10 | var arr = []; 11 | var has = Object.prototype.hasOwnProperty; 12 | 13 | for (var i in obj) { 14 | if (has.call(obj, i)) { 15 | arr.push(i); 16 | } 17 | } 18 | return arr; 19 | }; 20 | -------------------------------------------------------------------------------- /node_modules/engine.io-parser/node_modules/has-binary/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules 16 | -------------------------------------------------------------------------------- /node_modules/engine.io-parser/node_modules/has-binary/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.6 / 2015-01-24 3 | ================== 4 | 5 | * fix "undefined function" bug when iterating 6 | an object created with Object.create(null) [gunta] 7 | 8 | 0.1.5 / 2014-09-04 9 | ================== 10 | 11 | * prevent browserify from bundling `Buffer` 12 | -------------------------------------------------------------------------------- /node_modules/engine.io-parser/node_modules/has-binary/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /node_modules/engine.io-parser/node_modules/has-binary/README.md: -------------------------------------------------------------------------------- 1 | has-binarydata.js 2 | ================= 3 | 4 | Simple module to test if an object contains binary data 5 | -------------------------------------------------------------------------------- /node_modules/engine.io/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = process.env.EIO_COV 3 | ? require('./lib-cov/engine.io') 4 | : require('./lib/engine.io'); 5 | -------------------------------------------------------------------------------- /node_modules/engine.io/lib/transports/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module dependencies. 4 | */ 5 | 6 | var XHR = require('./polling-xhr'); 7 | var JSONP = require('./polling-jsonp'); 8 | 9 | /** 10 | * Export transports. 11 | */ 12 | 13 | module.exports = exports = { 14 | polling: polling, 15 | websocket: require('./websocket') 16 | }; 17 | 18 | /** 19 | * Export upgrades map. 20 | */ 21 | 22 | exports.polling.upgradesTo = ['websocket']; 23 | 24 | /** 25 | * Polling polimorphic constructor. 26 | * 27 | * @api private 28 | */ 29 | 30 | function polling (req) { 31 | if ('string' == typeof req._query.j) { 32 | return new JSONP(req); 33 | } else { 34 | return new XHR(req); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /node_modules/escape-html/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # escape-html 3 | 4 | Escape string for use in HTML 5 | 6 | ## Example 7 | 8 | ```js 9 | var escape = require('escape-html'); 10 | var html = escape('foo & bar'); 11 | // -> foo & bar 12 | ``` 13 | 14 | ## Benchmark 15 | 16 | ``` 17 | $ npm run-script bench 18 | 19 | > escape-html@1.0.3 bench nodejs-escape-html 20 | > node benchmark/index.js 21 | 22 | 23 | http_parser@1.0 24 | node@0.10.33 25 | v8@3.14.5.9 26 | ares@1.9.0-DEV 27 | uv@0.10.29 28 | zlib@1.2.3 29 | modules@11 30 | openssl@1.0.1j 31 | 32 | 1 test completed. 33 | 2 tests completed. 34 | 3 tests completed. 35 | 36 | no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) 37 | single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) 38 | many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) 39 | ``` 40 | 41 | ## License 42 | 43 | MIT -------------------------------------------------------------------------------- /node_modules/express/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | module.exports = require('./lib/express'); 12 | -------------------------------------------------------------------------------- /node_modules/express/lib/middleware/init.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * Initialization middleware, exposing the 13 | * request and response to each other, as well 14 | * as defaulting the X-Powered-By header field. 15 | * 16 | * @param {Function} app 17 | * @return {Function} 18 | * @api private 19 | */ 20 | 21 | exports.init = function(app){ 22 | return function expressInit(req, res, next){ 23 | if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); 24 | req.res = res; 25 | res.req = req; 26 | req.next = next; 27 | 28 | req.__proto__ = app.request; 29 | res.__proto__ = app.response; 30 | 31 | res.locals = res.locals || Object.create(null); 32 | 33 | next(); 34 | }; 35 | }; 36 | 37 | -------------------------------------------------------------------------------- /node_modules/express/lib/middleware/query.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * Module dependencies. 13 | */ 14 | 15 | var parseUrl = require('parseurl'); 16 | var qs = require('qs'); 17 | 18 | /** 19 | * @param {Object} options 20 | * @return {Function} 21 | * @api public 22 | */ 23 | 24 | module.exports = function query(options) { 25 | var opts = Object.create(options || null); 26 | var queryparse = qs.parse; 27 | 28 | if (typeof options === 'function') { 29 | queryparse = options; 30 | opts = undefined; 31 | } 32 | 33 | if (opts !== undefined && opts.allowPrototypes === undefined) { 34 | // back-compat for qs module 35 | opts.allowPrototypes = true; 36 | } 37 | 38 | return function query(req, res, next){ 39 | if (!req.query) { 40 | var val = parseUrl(req).query; 41 | req.query = queryparse(val, opts); 42 | } 43 | 44 | next(); 45 | }; 46 | }; 47 | -------------------------------------------------------------------------------- /node_modules/forwarded/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.1.0 / 2014-09-21 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /node_modules/forwarded/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * forwarded 3 | * Copyright(c) 2014 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | */ 10 | 11 | module.exports = forwarded 12 | 13 | /** 14 | * Get all addresses in the request, using the `X-Forwarded-For` header. 15 | * 16 | * @param {Object} req 17 | * @api public 18 | */ 19 | 20 | function forwarded(req) { 21 | if (!req) { 22 | throw new TypeError('argument req is required') 23 | } 24 | 25 | // simple header parsing 26 | var proxyAddrs = (req.headers['x-forwarded-for'] || '') 27 | .split(/ *, */) 28 | .filter(Boolean) 29 | .reverse() 30 | var socketAddr = req.connection.remoteAddress 31 | var addrs = [socketAddr].concat(proxyAddrs) 32 | 33 | // return all addresses 34 | return addrs 35 | } 36 | -------------------------------------------------------------------------------- /node_modules/fresh/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2015-05-12 2 | ================== 3 | 4 | * Add weak `ETag` matching support 5 | 6 | 0.2.4 / 2014-09-07 7 | ================== 8 | 9 | * Support Node.js 0.6 10 | 11 | 0.2.3 / 2014-09-07 12 | ================== 13 | 14 | * Move repository to jshttp 15 | 16 | 0.2.2 / 2014-02-19 17 | ================== 18 | 19 | * Revert "Fix for blank page on Safari reload" 20 | 21 | 0.2.1 / 2014-01-29 22 | ================== 23 | 24 | * Fix for blank page on Safari reload 25 | 26 | 0.2.0 / 2013-08-11 27 | ================== 28 | 29 | * Return stale for `Cache-Control: no-cache` 30 | 31 | 0.1.0 / 2012-06-15 32 | ================== 33 | * Add `If-None-Match: *` support 34 | 35 | 0.0.1 / 2012-06-10 36 | ================== 37 | 38 | * Initial release 39 | -------------------------------------------------------------------------------- /node_modules/graceful-readlink/.npmignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .DS_Store 3 | node_modules/ 4 | -------------------------------------------------------------------------------- /node_modules/graceful-readlink/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | - "0.12" 5 | - "io.js" 6 | -------------------------------------------------------------------------------- /node_modules/graceful-readlink/README.md: -------------------------------------------------------------------------------- 1 | # graceful-readlink 2 | [![NPM Version](http://img.shields.io/npm/v/graceful-readlink.svg?style=flat)](https://www.npmjs.org/package/graceful-readlink) 3 | [![NPM Downloads](https://img.shields.io/npm/dm/graceful-readlink.svg?style=flat)](https://www.npmjs.org/package/graceful-readlink) 4 | 5 | 6 | ## Usage 7 | 8 | ```js 9 | var readlinkSync = require('graceful-readlink').readlinkSync; 10 | console.log(readlinkSync(f)); 11 | // output 12 | // the file pointed to when `f` is a symbolic link 13 | // the `f` itself when `f` is not a symbolic link 14 | ``` 15 | ## Licence 16 | 17 | MIT License 18 | -------------------------------------------------------------------------------- /node_modules/graceful-readlink/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs') 2 | , lstat = fs.lstatSync; 3 | 4 | exports.readlinkSync = function (p) { 5 | if (lstat(p).isSymbolicLink()) { 6 | return fs.readlinkSync(p); 7 | } else { 8 | return p; 9 | } 10 | }; 11 | 12 | 13 | -------------------------------------------------------------------------------- /node_modules/has-binary/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules 16 | -------------------------------------------------------------------------------- /node_modules/has-binary/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.7 / 2015-11-18 3 | ================== 4 | 5 | * fix toJSON [@jderuere] 6 | * fix `global.isBuffer` usage [@tonetheman] 7 | * fix tests on modern versions of node 8 | * bump mocha 9 | 10 | 0.1.6 / 2015-01-24 11 | ================== 12 | 13 | * fix "undefined function" bug when iterating 14 | an object created with Object.create(null) [gunta] 15 | 16 | 0.1.5 / 2014-09-04 17 | ================== 18 | 19 | * prevent browserify from bundling `Buffer` 20 | -------------------------------------------------------------------------------- /node_modules/has-binary/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /node_modules/has-binary/README.md: -------------------------------------------------------------------------------- 1 | has-binarydata.js 2 | ================= 3 | 4 | Simple module to test if an object contains binary data 5 | -------------------------------------------------------------------------------- /node_modules/has-cors/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | node_modules 4 | -------------------------------------------------------------------------------- /node_modules/has-cors/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.1.0 / 2014-11-12 3 | ================== 4 | 5 | * remove "global" module dependency (#2, @achingbrain) 6 | 7 | 1.0.2 / 2013-08-27 8 | ================== 9 | 10 | * explicitly use `global` instead of being implicit 11 | * pin "component/global" to v2.0.1 12 | 13 | 1.0.1 / 2013-08-23 14 | ================== 15 | 16 | * package: add "component" section 17 | 18 | 1.0.0 / 2013-08-22 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /node_modules/has-cors/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build --dev 4 | 5 | components: component.json 6 | @component install --dev 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | .PHONY: clean 12 | -------------------------------------------------------------------------------- /node_modules/has-cors/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # has-cors 3 | 4 | Detects support for Cross-Origin Resource Sharing 5 | 6 | ## Installation 7 | 8 | Install with [component(1)](http://component.io): 9 | 10 | $ component install component/has-cors 11 | 12 | ## API 13 | 14 | Exports `true` if the user-agent supports CORS, or `false` otherwise. 15 | 16 | ``` js 17 | var hasCORS = require('has-cors'); 18 | console.log(hasCORS); 19 | // true 20 | ``` 21 | 22 | ## License 23 | 24 | MIT 25 | -------------------------------------------------------------------------------- /node_modules/has-cors/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "has-cors", 3 | "repo": "component/has-cors", 4 | "description": "Detects support for Cross-Origin Resource Sharing", 5 | "version": "1.1.0", 6 | "keywords": [], 7 | "development": {}, 8 | "license": "MIT", 9 | "main": "index.js", 10 | "scripts": [ 11 | "index.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/has-cors/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module exports. 4 | * 5 | * Logic borrowed from Modernizr: 6 | * 7 | * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js 8 | */ 9 | 10 | try { 11 | module.exports = typeof XMLHttpRequest !== 'undefined' && 12 | 'withCredentials' in new XMLHttpRequest(); 13 | } catch (err) { 14 | // if XMLHttp support is disabled in IE then it will throw 15 | // when trying to create 16 | module.exports = false; 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/has-cors/test.js: -------------------------------------------------------------------------------- 1 | var expect = require('chai').expect; 2 | 3 | describe('has-cors', function() { 4 | beforeEach(function() { 5 | // make sure result is not cached 6 | delete require.cache[require.resolve('./')]; 7 | }); 8 | 9 | it('should not have cors', function() { 10 | var hasCors = require('./'); 11 | 12 | expect(hasCors).to.be.false; 13 | }); 14 | 15 | it('should have cors', function() { 16 | global.XMLHttpRequest = function() { 17 | this.withCredentials = true; 18 | }; 19 | 20 | var hasCors = require('./'); 21 | 22 | expect(hasCors).to.be.true; 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /node_modules/indexof/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | -------------------------------------------------------------------------------- /node_modules/indexof/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | .PHONY: clean 12 | -------------------------------------------------------------------------------- /node_modules/indexof/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # indexOf 3 | 4 | Lame indexOf thing, thanks microsoft 5 | 6 | ## Example 7 | 8 | ```js 9 | var index = require('indexof'); 10 | index(arr, obj); 11 | ``` 12 | 13 | ## License 14 | 15 | MIT -------------------------------------------------------------------------------- /node_modules/indexof/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "indexof", 3 | "description": "Microsoft sucks", 4 | "version": "0.0.1", 5 | "keywords": ["index", "array", "indexOf"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /node_modules/indexof/index.js: -------------------------------------------------------------------------------- 1 | 2 | var indexOf = [].indexOf; 3 | 4 | module.exports = function(arr, obj){ 5 | if (indexOf) return arr.indexOf(obj); 6 | for (var i = 0; i < arr.length; ++i) { 7 | if (arr[i] === obj) return i; 8 | } 9 | return -1; 10 | }; -------------------------------------------------------------------------------- /node_modules/inherits/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 10 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 11 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 12 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 14 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 | PERFORMANCE OF THIS SOFTWARE. 16 | 17 | -------------------------------------------------------------------------------- /node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inherits 2 | -------------------------------------------------------------------------------- /node_modules/inherits/inherits_browser.js: -------------------------------------------------------------------------------- 1 | if (typeof Object.create === 'function') { 2 | // implementation from standard node.js 'util' module 3 | module.exports = function inherits(ctor, superCtor) { 4 | ctor.super_ = superCtor 5 | ctor.prototype = Object.create(superCtor.prototype, { 6 | constructor: { 7 | value: ctor, 8 | enumerable: false, 9 | writable: true, 10 | configurable: true 11 | } 12 | }); 13 | }; 14 | } else { 15 | // old school shim for old browsers 16 | module.exports = function inherits(ctor, superCtor) { 17 | ctor.super_ = superCtor 18 | var TempCtor = function () {} 19 | TempCtor.prototype = superCtor.prototype 20 | ctor.prototype = new TempCtor() 21 | ctor.prototype.constructor = ctor 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/inherits/test.js: -------------------------------------------------------------------------------- 1 | var inherits = require('./inherits.js') 2 | var assert = require('assert') 3 | 4 | function test(c) { 5 | assert(c.constructor === Child) 6 | assert(c.constructor.super_ === Parent) 7 | assert(Object.getPrototypeOf(c) === Child.prototype) 8 | assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype) 9 | assert(c instanceof Child) 10 | assert(c instanceof Parent) 11 | } 12 | 13 | function Child() { 14 | Parent.call(this) 15 | test(this) 16 | } 17 | 18 | function Parent() {} 19 | 20 | inherits(Child, Parent) 21 | 22 | var c = new Child 23 | test(c) 24 | 25 | console.log('ok') 26 | -------------------------------------------------------------------------------- /node_modules/ipaddr.js/.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | -------------------------------------------------------------------------------- /node_modules/ipaddr.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "0.10" 5 | - "0.11" 6 | - "0.12" 7 | - "4.0" 8 | - "4.1" 9 | - "4.2" 10 | - "5" 11 | -------------------------------------------------------------------------------- /node_modules/ipaddr.js/Cakefile: -------------------------------------------------------------------------------- 1 | fs = require 'fs' 2 | CoffeeScript = require 'coffee-script' 3 | nodeunit = require 'nodeunit' 4 | UglifyJS = require 'uglify-js' 5 | 6 | task 'build', 'build the JavaScript files from CoffeeScript source', build = (cb) -> 7 | source = fs.readFileSync 'src/ipaddr.coffee' 8 | fs.writeFileSync 'lib/ipaddr.js', CoffeeScript.compile source.toString() 9 | 10 | invoke 'test' 11 | invoke 'compress' 12 | 13 | task 'test', 'run the bundled tests', (cb) -> 14 | nodeunit.reporters.default.run ['test'] 15 | 16 | task 'compress', 'uglify the resulting javascript', (cb) -> 17 | result = UglifyJS.minify('lib/ipaddr.js') 18 | fs.writeFileSync('ipaddr.min.js', result.code) 19 | -------------------------------------------------------------------------------- /node_modules/ipaddr.js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ipaddr.js", 3 | "version": "1.1.1", 4 | "homepage": "https://github.com/whitequark/ipaddr.js", 5 | "authors": [ 6 | "whitequark " 7 | ], 8 | "description": "IP address manipulation library in JavaScript (CoffeeScript, actually)", 9 | "main": "lib/ipaddr.js", 10 | "moduleType": [ 11 | "globals", 12 | "node" 13 | ], 14 | "keywords": [ 15 | "javscript", 16 | "ip", 17 | "address", 18 | "ipv4", 19 | "ipv6" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/is-buffer/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - node 5 | env: 6 | global: 7 | - secure: du27W3wTgZ3G183axW7w0I01lOIurx8kilMH9p45VMfNXCu8lo6FLtLIQZxJ1FYMoJLQ1yfJTu2G0rq39SotDfJumsk6tF7BjTY/HKCocZaHqCMgw0W2bcylb5kMAdLhBNPlzejpPoWa1x1axbAHNFOLQNVosG/Bavu3/kuIIps= 8 | - secure: Ax/5aekM40o67NuTkvQqx1DhfP86ZlHTtKbv5yI+WFmbjD3FQM8b8G1J/o7doaBDev7Mp+1zDJOK2pFGtt+JGRl0lM2JUmLh6yh/b28obXyei5iuUkqzKJLfKZHMbY5QW/1i4DUM+zSXe6Kava0qnqYg5wBBnrF6gLdsVsCGNQk= 9 | -------------------------------------------------------------------------------- /node_modules/is-buffer/.zuul.yml: -------------------------------------------------------------------------------- 1 | ui: tape 2 | browsers: 3 | - name: chrome 4 | version: 39..latest 5 | - name: firefox 6 | version: 34..latest 7 | - name: safari 8 | version: 5..latest 9 | - name: microsoftedge 10 | version: latest 11 | - name: ie 12 | version: 8..latest 13 | - name: android 14 | version: 5.0..latest 15 | -------------------------------------------------------------------------------- /node_modules/is-buffer/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Determine if an object is a Buffer 3 | * 4 | * @author Feross Aboukhadijeh 5 | * @license MIT 6 | */ 7 | 8 | // The _isBuffer check is for Safari 5-7 support, because it's missing 9 | // Object.prototype.constructor. Remove this eventually 10 | module.exports = function (obj) { 11 | return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) 12 | } 13 | 14 | function isBuffer (obj) { 15 | return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) 16 | } 17 | 18 | // For Node v0.10 support. Remove this eventually. 19 | function isSlowBuffer (obj) { 20 | return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/is-buffer/test/basic.js: -------------------------------------------------------------------------------- 1 | var buffer = require('buffer') 2 | var isBuffer = require('../') 3 | var test = require('tape') 4 | 5 | test('is-buffer', function (t) { 6 | t.equal(isBuffer(new Buffer(4)), true, 'new Buffer(4)') 7 | t.equal(isBuffer(buffer.SlowBuffer(100)), true, 'SlowBuffer(100)') 8 | 9 | t.equal(isBuffer(undefined), false, 'undefined') 10 | t.equal(isBuffer(null), false, 'null') 11 | t.equal(isBuffer(''), false, 'empty string') 12 | t.equal(isBuffer(true), false, 'true') 13 | t.equal(isBuffer(false), false, 'false') 14 | t.equal(isBuffer(0), false, '0') 15 | t.equal(isBuffer(1), false, '1') 16 | t.equal(isBuffer(1.0), false, '1.0') 17 | t.equal(isBuffer('string'), false, 'string') 18 | t.equal(isBuffer({}), false, '{}') 19 | t.equal(isBuffer([]), false, '[]') 20 | t.equal(isBuffer(function foo () {}), false, 'function foo () {}') 21 | t.equal(isBuffer({ isBuffer: null }), false, '{ isBuffer: null }') 22 | t.equal(isBuffer({ isBuffer: function () { throw new Error() } }), false, '{ isBuffer: function () { throw new Error() } }') 23 | 24 | t.end() 25 | }) 26 | -------------------------------------------------------------------------------- /node_modules/is-promise/.npmignore: -------------------------------------------------------------------------------- 1 | component 2 | build 3 | node_modules 4 | test.js 5 | component.json 6 | .gitignore -------------------------------------------------------------------------------- /node_modules/is-promise/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" -------------------------------------------------------------------------------- /node_modules/is-promise/index.js: -------------------------------------------------------------------------------- 1 | module.exports = isPromise; 2 | 3 | function isPromise(obj) { 4 | return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/is-promise/readme.md: -------------------------------------------------------------------------------- 1 | 2 | # is-promise 3 | 4 | Test whether an object looks like a promises-a+ promise 5 | 6 | [![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise) 7 | [![Dependency Status](https://img.shields.io/gemnasium/then/is-promise.svg)](https://gemnasium.com/then/is-promise) 8 | [![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise) 9 | 10 | ## Installation 11 | 12 | $ npm install is-promise 13 | 14 | You can also use it client side via npm. 15 | 16 | ## API 17 | 18 | ```javascript 19 | var isPromise = require('is-promise'); 20 | 21 | isPromise({then:function () {...}});//=>true 22 | isPromise(null);//=>false 23 | isPromise({});//=>false 24 | isPromise({then: true})//=>false 25 | ``` 26 | 27 | ## License 28 | 29 | MIT 30 | -------------------------------------------------------------------------------- /node_modules/isarray/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "isarray", 3 | "description" : "Array#isArray for older browsers", 4 | "version" : "0.0.1", 5 | "repository" : "juliangruber/isarray", 6 | "homepage": "https://github.com/juliangruber/isarray", 7 | "main" : "index.js", 8 | "scripts" : [ 9 | "index.js" 10 | ], 11 | "dependencies" : {}, 12 | "keywords": ["browser","isarray","array"], 13 | "author": { 14 | "name": "Julian Gruber", 15 | "email": "mail@juliangruber.com", 16 | "url": "http://juliangruber.com" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/isarray/index.js: -------------------------------------------------------------------------------- 1 | module.exports = Array.isArray || function (arr) { 2 | return Object.prototype.toString.call(arr) == '[object Array]'; 3 | }; 4 | -------------------------------------------------------------------------------- /node_modules/jade/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | support 3 | benchmarks 4 | examples 5 | lib-cov 6 | coverage 7 | .gitmodules 8 | .travis.yml 9 | History.md 10 | Makefile 11 | test/ 12 | support/ 13 | benchmarks/ 14 | examples/ 15 | docs/ 16 | -------------------------------------------------------------------------------- /node_modules/jade/.release.json: -------------------------------------------------------------------------------- 1 | "2ab04e8289982bfac3548a9c6016476472dcdb4f" 2 | -------------------------------------------------------------------------------- /node_modules/jade/block-code.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extwiii/Nodejs-Real-time-Chat-App/c2ffccab1a6ad4ade9f33eacb647997b8c2ff964/node_modules/jade/block-code.html -------------------------------------------------------------------------------- /node_modules/jade/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jade", 3 | "repo": "visionmedia/jade", 4 | "description": "Jade template runtime", 5 | "version": "1.11.0", 6 | "keywords": [ 7 | "template" 8 | ], 9 | "dependencies": {}, 10 | "development": {}, 11 | "license": "MIT", 12 | "scripts": [ 13 | "lib/runtime.js" 14 | ], 15 | "main": "lib/runtime.js" 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/jade/lib/doctypes.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | 'default': '' 5 | , 'xml': '' 6 | , 'transitional': '' 7 | , 'strict': '' 8 | , 'frameset': '' 9 | , '1.1': '' 10 | , 'basic': '' 11 | , 'mobile': '' 12 | }; -------------------------------------------------------------------------------- /node_modules/jade/lib/filters-client.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = filter; 4 | function filter(name, str, options) { 5 | if (typeof filter[name] === 'function') { 6 | return filter[name](str, options); 7 | } else { 8 | throw new Error('unknown filter ":' + name + '"'); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/jade/lib/inline-tags.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = [ 4 | 'a' 5 | , 'abbr' 6 | , 'acronym' 7 | , 'b' 8 | , 'br' 9 | , 'code' 10 | , 'em' 11 | , 'font' 12 | , 'i' 13 | , 'img' 14 | , 'ins' 15 | , 'kbd' 16 | , 'map' 17 | , 'samp' 18 | , 'small' 19 | , 'span' 20 | , 'strong' 21 | , 'sub' 22 | , 'sup' 23 | ]; -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/block-comment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `BlockComment` with the given `block`. 7 | * 8 | * @param {String} val 9 | * @param {Block} block 10 | * @param {Boolean} buffer 11 | * @api public 12 | */ 13 | 14 | var BlockComment = module.exports = function BlockComment(val, block, buffer) { 15 | this.block = block; 16 | this.val = val; 17 | this.buffer = buffer; 18 | }; 19 | 20 | // Inherit from `Node`. 21 | BlockComment.prototype = Object.create(Node.prototype); 22 | BlockComment.prototype.constructor = BlockComment; 23 | 24 | BlockComment.prototype.type = 'BlockComment'; 25 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/case.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a new `Case` with `expr`. 7 | * 8 | * @param {String} expr 9 | * @api public 10 | */ 11 | 12 | var Case = exports = module.exports = function Case(expr, block){ 13 | this.expr = expr; 14 | this.block = block; 15 | }; 16 | 17 | // Inherit from `Node`. 18 | Case.prototype = Object.create(Node.prototype); 19 | Case.prototype.constructor = Case; 20 | 21 | Case.prototype.type = 'Case'; 22 | 23 | var When = exports.When = function When(expr, block){ 24 | this.expr = expr; 25 | this.block = block; 26 | this.debug = false; 27 | }; 28 | 29 | // Inherit from `Node`. 30 | When.prototype = Object.create(Node.prototype); 31 | When.prototype.constructor = When; 32 | 33 | When.prototype.type = 'When'; 34 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/code.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Code` node with the given code `val`. 7 | * Code may also be optionally buffered and escaped. 8 | * 9 | * @param {String} val 10 | * @param {Boolean} buffer 11 | * @param {Boolean} escape 12 | * @api public 13 | */ 14 | 15 | var Code = module.exports = function Code(val, buffer, escape) { 16 | this.val = val; 17 | this.buffer = buffer; 18 | this.escape = escape; 19 | if (val.match(/^ *else/)) this.debug = false; 20 | }; 21 | 22 | // Inherit from `Node`. 23 | Code.prototype = Object.create(Node.prototype); 24 | Code.prototype.constructor = Code; 25 | 26 | Code.prototype.type = 'Code'; // prevent the minifiers removing this -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/comment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Comment` with the given `val`, optionally `buffer`, 7 | * otherwise the comment may render in the output. 8 | * 9 | * @param {String} val 10 | * @param {Boolean} buffer 11 | * @api public 12 | */ 13 | 14 | var Comment = module.exports = function Comment(val, buffer) { 15 | this.val = val; 16 | this.buffer = buffer; 17 | }; 18 | 19 | // Inherit from `Node`. 20 | Comment.prototype = Object.create(Node.prototype); 21 | Comment.prototype.constructor = Comment; 22 | 23 | Comment.prototype.type = 'Comment'; 24 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/doctype.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Doctype` with the given `val`. 7 | * 8 | * @param {String} val 9 | * @api public 10 | */ 11 | 12 | var Doctype = module.exports = function Doctype(val) { 13 | this.val = val; 14 | }; 15 | 16 | // Inherit from `Node`. 17 | Doctype.prototype = Object.create(Node.prototype); 18 | Doctype.prototype.constructor = Doctype; 19 | 20 | Doctype.prototype.type = 'Doctype'; 21 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/each.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize an `Each` node, representing iteration 7 | * 8 | * @param {String} obj 9 | * @param {String} val 10 | * @param {String} key 11 | * @param {Block} block 12 | * @api public 13 | */ 14 | 15 | var Each = module.exports = function Each(obj, val, key, block) { 16 | this.obj = obj; 17 | this.val = val; 18 | this.key = key; 19 | this.block = block; 20 | }; 21 | 22 | // Inherit from `Node`. 23 | Each.prototype = Object.create(Node.prototype); 24 | Each.prototype.constructor = Each; 25 | 26 | Each.prototype.type = 'Each'; 27 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/filter.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Filter` node with the given 7 | * filter `name` and `block`. 8 | * 9 | * @param {String} name 10 | * @param {Block|Node} block 11 | * @api public 12 | */ 13 | 14 | var Filter = module.exports = function Filter(name, block, attrs) { 15 | this.name = name; 16 | this.block = block; 17 | this.attrs = attrs; 18 | }; 19 | 20 | // Inherit from `Node`. 21 | Filter.prototype = Object.create(Node.prototype); 22 | Filter.prototype.constructor = Filter; 23 | 24 | Filter.prototype.type = 'Filter'; 25 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.Node = require('./node'); 4 | exports.Tag = require('./tag'); 5 | exports.Code = require('./code'); 6 | exports.Each = require('./each'); 7 | exports.Case = require('./case'); 8 | exports.Text = require('./text'); 9 | exports.Block = require('./block'); 10 | exports.MixinBlock = require('./mixin-block'); 11 | exports.Mixin = require('./mixin'); 12 | exports.Filter = require('./filter'); 13 | exports.Comment = require('./comment'); 14 | exports.Literal = require('./literal'); 15 | exports.BlockComment = require('./block-comment'); 16 | exports.Doctype = require('./doctype'); 17 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/literal.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Literal` node with the given `str. 7 | * 8 | * @param {String} str 9 | * @api public 10 | */ 11 | 12 | var Literal = module.exports = function Literal(str) { 13 | this.str = str; 14 | }; 15 | 16 | // Inherit from `Node`. 17 | Literal.prototype = Object.create(Node.prototype); 18 | Literal.prototype.constructor = Literal; 19 | 20 | Literal.prototype.type = 'Literal'; 21 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/mixin-block.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a new `Block` with an optional `node`. 7 | * 8 | * @param {Node} node 9 | * @api public 10 | */ 11 | 12 | var MixinBlock = module.exports = function MixinBlock(){}; 13 | 14 | // Inherit from `Node`. 15 | MixinBlock.prototype = Object.create(Node.prototype); 16 | MixinBlock.prototype.constructor = MixinBlock; 17 | 18 | MixinBlock.prototype.type = 'MixinBlock'; 19 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/mixin.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Attrs = require('./attrs'); 4 | 5 | /** 6 | * Initialize a new `Mixin` with `name` and `block`. 7 | * 8 | * @param {String} name 9 | * @param {String} args 10 | * @param {Block} block 11 | * @api public 12 | */ 13 | 14 | var Mixin = module.exports = function Mixin(name, args, block, call){ 15 | Attrs.call(this); 16 | this.name = name; 17 | this.args = args; 18 | this.block = block; 19 | this.call = call; 20 | }; 21 | 22 | // Inherit from `Attrs`. 23 | Mixin.prototype = Object.create(Attrs.prototype); 24 | Mixin.prototype.constructor = Mixin; 25 | 26 | Mixin.prototype.type = 'Mixin'; 27 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/node.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = module.exports = function Node(){}; 4 | 5 | /** 6 | * Clone this node (return itself) 7 | * 8 | * @return {Node} 9 | * @api private 10 | */ 11 | 12 | Node.prototype.clone = function(){ 13 | var err = new Error('node.clone is deprecated and will be removed in v2.0.0'); 14 | console.warn(err.stack); 15 | return this; 16 | }; 17 | 18 | Node.prototype.type = ''; 19 | -------------------------------------------------------------------------------- /node_modules/jade/lib/nodes/text.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Text` node with optional `line`. 7 | * 8 | * @param {String} line 9 | * @api public 10 | */ 11 | 12 | var Text = module.exports = function Text(line) { 13 | this.val = line; 14 | }; 15 | 16 | // Inherit from `Node`. 17 | Text.prototype = Object.create(Node.prototype); 18 | Text.prototype.constructor = Text; 19 | 20 | Text.prototype.type = 'Text'; 21 | 22 | /** 23 | * Flag as text. 24 | */ 25 | 26 | Text.prototype.isText = true; -------------------------------------------------------------------------------- /node_modules/json3/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/spec"] 2 | path = vendor/spec 3 | url = git://github.com/kitcambridge/spec.git 4 | [submodule "vendor/marked"] 5 | path = vendor/marked 6 | url = git://github.com/chjj/marked.git 7 | -------------------------------------------------------------------------------- /node_modules/json3/.jamignore: -------------------------------------------------------------------------------- 1 | .* 2 | build.js 3 | index.html 4 | component.json 5 | bower.json 6 | index.js 7 | benchmark 8 | page 9 | test 10 | vendor 11 | -------------------------------------------------------------------------------- /node_modules/json3/.npmignore: -------------------------------------------------------------------------------- 1 | bower.json 2 | component.json 3 | build.js 4 | index.html 5 | index.js 6 | .jshintrc 7 | 8 | benchmark 9 | page 10 | test 11 | vendor 12 | -------------------------------------------------------------------------------- /node_modules/json3/coverage/lcov-report/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 2 | -------------------------------------------------------------------------------- /node_modules/longest/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * longest 3 | * 4 | * Copyright (c) 2014-2015, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = function(arr) { 11 | if (!arr) { 12 | return null; 13 | } 14 | 15 | var len = arr.length; 16 | if (!len) { 17 | return null; 18 | } 19 | 20 | var c = 0; 21 | var i = 0; 22 | var ele; 23 | var elen; 24 | var res; 25 | 26 | for (; i < len; i++) { 27 | ele = arr[i].toString(); 28 | elen = ele.length; 29 | 30 | if (elen > c) { 31 | res = ele; 32 | c = elen; 33 | } 34 | } 35 | 36 | return res; 37 | }; 38 | -------------------------------------------------------------------------------- /node_modules/media-typer/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2014-09-07 2 | ================== 3 | 4 | * Support Node.js 0.6 5 | * Throw error when parameter format invalid on parse 6 | 7 | 0.2.0 / 2014-06-18 8 | ================== 9 | 10 | * Add `typer.format()` to format media types 11 | 12 | 0.1.0 / 2014-06-17 13 | ================== 14 | 15 | * Accept `req` as argument to `parse` 16 | * Accept `res` as argument to `parse` 17 | * Parse media type with extra LWS between type and first parameter 18 | 19 | 0.0.0 / 2014-06-13 20 | ================== 21 | 22 | * Initial implementation 23 | -------------------------------------------------------------------------------- /node_modules/merge-descriptors/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.0 / 2015-03-01 7 | ================== 8 | 9 | * Add option to only add new descriptors 10 | * Add simple argument validation 11 | * Add jsdoc to source file 12 | 13 | 0.0.2 / 2013-12-14 14 | ================== 15 | 16 | * Move repository to `component` organization 17 | 18 | 0.0.1 / 2013-10-29 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /node_modules/methods/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.2 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.1.1 / 2014-12-30 7 | ================== 8 | 9 | * Improve `browserify` support 10 | 11 | 1.1.0 / 2014-07-05 12 | ================== 13 | 14 | * Add `CONNECT` method 15 | 16 | 1.0.1 / 2014-06-02 17 | ================== 18 | 19 | * Fix module to work with harmony transform 20 | 21 | 1.0.0 / 2014-05-08 22 | ================== 23 | 24 | * Add `PURGE` method 25 | 26 | 0.1.0 / 2013-10-28 27 | ================== 28 | 29 | * Add `http.METHODS` support 30 | -------------------------------------------------------------------------------- /node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | */ 10 | 11 | module.exports = require('./db.json') 12 | -------------------------------------------------------------------------------- /node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extwiii/Nodejs-Real-time-Chat-App/c2ffccab1a6ad4ade9f33eacb647997b8c2ff964/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /node_modules/mime/build/build.js: -------------------------------------------------------------------------------- 1 | var db = require('mime-db'); 2 | 3 | var mapByType = {}; 4 | Object.keys(db).forEach(function(key) { 5 | var extensions = db[key].extensions; 6 | if (extensions) { 7 | mapByType[key] = extensions; 8 | } 9 | }); 10 | 11 | console.log(JSON.stringify(mapByType)); 12 | -------------------------------------------------------------------------------- /node_modules/mime/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var mime = require('./mime.js'); 4 | var file = process.argv[2]; 5 | var type = mime.lookup(file); 6 | 7 | process.stdout.write(type + '\n'); 8 | 9 | -------------------------------------------------------------------------------- /node_modules/minimist/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /node_modules/minimist/example/parse.js: -------------------------------------------------------------------------------- 1 | var argv = require('../')(process.argv.slice(2)); 2 | console.dir(argv); 3 | -------------------------------------------------------------------------------- /node_modules/minimist/test/dash.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('-', function (t) { 5 | t.plan(5); 6 | t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] }); 7 | t.deepEqual(parse([ '-' ]), { _: [ '-' ] }); 8 | t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] }); 9 | t.deepEqual( 10 | parse([ '-b', '-' ], { boolean: 'b' }), 11 | { b: true, _: [ '-' ] } 12 | ); 13 | t.deepEqual( 14 | parse([ '-s', '-' ], { string: 's' }), 15 | { s: '-', _: [] } 16 | ); 17 | }); 18 | 19 | test('-a -- b', function (t) { 20 | t.plan(3); 21 | t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] }); 22 | t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); 23 | t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); 24 | }); 25 | -------------------------------------------------------------------------------- /node_modules/minimist/test/default_bool.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var parse = require('../'); 3 | 4 | test('boolean default true', function (t) { 5 | var argv = parse([], { 6 | boolean: 'sometrue', 7 | default: { sometrue: true } 8 | }); 9 | t.equal(argv.sometrue, true); 10 | t.end(); 11 | }); 12 | 13 | test('boolean default false', function (t) { 14 | var argv = parse([], { 15 | boolean: 'somefalse', 16 | default: { somefalse: false } 17 | }); 18 | t.equal(argv.somefalse, false); 19 | t.end(); 20 | }); 21 | -------------------------------------------------------------------------------- /node_modules/minimist/test/dotted.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('dotted alias', function (t) { 5 | var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); 6 | t.equal(argv.a.b, 22); 7 | t.equal(argv.aa.bb, 22); 8 | t.end(); 9 | }); 10 | 11 | test('dotted default', function (t) { 12 | var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); 13 | t.equal(argv.a.b, 11); 14 | t.equal(argv.aa.bb, 11); 15 | t.end(); 16 | }); 17 | -------------------------------------------------------------------------------- /node_modules/minimist/test/long.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var parse = require('../'); 3 | 4 | test('long opts', function (t) { 5 | t.deepEqual( 6 | parse([ '--bool' ]), 7 | { bool : true, _ : [] }, 8 | 'long boolean' 9 | ); 10 | t.deepEqual( 11 | parse([ '--pow', 'xixxle' ]), 12 | { pow : 'xixxle', _ : [] }, 13 | 'long capture sp' 14 | ); 15 | t.deepEqual( 16 | parse([ '--pow=xixxle' ]), 17 | { pow : 'xixxle', _ : [] }, 18 | 'long capture eq' 19 | ); 20 | t.deepEqual( 21 | parse([ '--host', 'localhost', '--port', '555' ]), 22 | { host : 'localhost', port : 555, _ : [] }, 23 | 'long captures sp' 24 | ); 25 | t.deepEqual( 26 | parse([ '--host=localhost', '--port=555' ]), 27 | { host : 'localhost', port : 555, _ : [] }, 28 | 'long captures eq' 29 | ); 30 | t.end(); 31 | }); 32 | -------------------------------------------------------------------------------- /node_modules/minimist/test/parse_modified.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('parse with modifier functions' , function (t) { 5 | t.plan(1); 6 | 7 | var argv = parse([ '-b', '123' ], { boolean: 'b' }); 8 | t.deepEqual(argv, { b: true, _: ['123'] }); 9 | }); 10 | -------------------------------------------------------------------------------- /node_modules/minimist/test/whitespace.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('whitespace should be whitespace' , function (t) { 5 | t.plan(1); 6 | var x = parse([ '-x', '\t' ]).x; 7 | t.equal(x, '\t'); 8 | }); 9 | -------------------------------------------------------------------------------- /node_modules/mkdirp/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | - "0.12" 6 | - "iojs" 7 | before_install: 8 | - npm install -g npm@~1.4.6 9 | -------------------------------------------------------------------------------- /node_modules/mkdirp/bin/cmd.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var mkdirp = require('../'); 4 | var minimist = require('minimist'); 5 | var fs = require('fs'); 6 | 7 | var argv = minimist(process.argv.slice(2), { 8 | alias: { m: 'mode', h: 'help' }, 9 | string: [ 'mode' ] 10 | }); 11 | if (argv.help) { 12 | fs.createReadStream(__dirname + '/usage.txt').pipe(process.stdout); 13 | return; 14 | } 15 | 16 | var paths = argv._.slice(); 17 | var mode = argv.mode ? parseInt(argv.mode, 8) : undefined; 18 | 19 | (function next () { 20 | if (paths.length === 0) return; 21 | var p = paths.shift(); 22 | 23 | if (mode === undefined) mkdirp(p, cb) 24 | else mkdirp(p, mode, cb) 25 | 26 | function cb (err) { 27 | if (err) { 28 | console.error(err.message); 29 | process.exit(1); 30 | } 31 | else next(); 32 | } 33 | })(); 34 | -------------------------------------------------------------------------------- /node_modules/mkdirp/bin/usage.txt: -------------------------------------------------------------------------------- 1 | usage: mkdirp [DIR1,DIR2..] {OPTIONS} 2 | 3 | Create each supplied directory including any necessary parent directories that 4 | don't yet exist. 5 | 6 | If the directory already exists, do nothing. 7 | 8 | OPTIONS are: 9 | 10 | -m, --mode If a directory needs to be created, set the mode as an octal 11 | permission string. 12 | 13 | -------------------------------------------------------------------------------- /node_modules/mkdirp/examples/pow.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('mkdirp'); 2 | 3 | mkdirp('/tmp/foo/bar/baz', function (err) { 4 | if (err) console.error(err) 5 | else console.log('pow!') 6 | }); 7 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/clobber.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../').mkdirp; 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var test = require('tap').test; 5 | var _0755 = parseInt('0755', 8); 6 | 7 | var ps = [ '', 'tmp' ]; 8 | 9 | for (var i = 0; i < 25; i++) { 10 | var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 11 | ps.push(dir); 12 | } 13 | 14 | var file = ps.join('/'); 15 | 16 | // a file in the way 17 | var itw = ps.slice(0, 3).join('/'); 18 | 19 | 20 | test('clobber-pre', function (t) { 21 | console.error("about to write to "+itw) 22 | fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.'); 23 | 24 | fs.stat(itw, function (er, stat) { 25 | t.ifError(er) 26 | t.ok(stat && stat.isFile(), 'should be file') 27 | t.end() 28 | }) 29 | }) 30 | 31 | test('clobber', function (t) { 32 | t.plan(2); 33 | mkdirp(file, _0755, function (err) { 34 | t.ok(err); 35 | t.equal(err.code, 'ENOTDIR'); 36 | t.end(); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/mkdirp.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var exists = fs.exists || path.exists; 5 | var test = require('tap').test; 6 | var _0777 = parseInt('0777', 8); 7 | var _0755 = parseInt('0755', 8); 8 | 9 | test('woo', function (t) { 10 | t.plan(5); 11 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 12 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 13 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 14 | 15 | var file = '/tmp/' + [x,y,z].join('/'); 16 | 17 | mkdirp(file, _0755, function (err) { 18 | t.ifError(err); 19 | exists(file, function (ex) { 20 | t.ok(ex, 'file created'); 21 | fs.stat(file, function (err, stat) { 22 | t.ifError(err); 23 | t.equal(stat.mode & _0777, _0755); 24 | t.ok(stat.isDirectory(), 'target not a directory'); 25 | }) 26 | }) 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/opts_fs.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var test = require('tap').test; 4 | var mockfs = require('mock-fs'); 5 | var _0777 = parseInt('0777', 8); 6 | var _0755 = parseInt('0755', 8); 7 | 8 | test('opts.fs', function (t) { 9 | t.plan(5); 10 | 11 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 12 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 13 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 14 | 15 | var file = '/beep/boop/' + [x,y,z].join('/'); 16 | var xfs = mockfs.fs(); 17 | 18 | mkdirp(file, { fs: xfs, mode: _0755 }, function (err) { 19 | t.ifError(err); 20 | xfs.exists(file, function (ex) { 21 | t.ok(ex, 'created file'); 22 | xfs.stat(file, function (err, stat) { 23 | t.ifError(err); 24 | t.equal(stat.mode & _0777, _0755); 25 | t.ok(stat.isDirectory(), 'target not a directory'); 26 | }); 27 | }); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/opts_fs_sync.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var test = require('tap').test; 4 | var mockfs = require('mock-fs'); 5 | var _0777 = parseInt('0777', 8); 6 | var _0755 = parseInt('0755', 8); 7 | 8 | test('opts.fs sync', function (t) { 9 | t.plan(4); 10 | 11 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 12 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 13 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 14 | 15 | var file = '/beep/boop/' + [x,y,z].join('/'); 16 | var xfs = mockfs.fs(); 17 | 18 | mkdirp.sync(file, { fs: xfs, mode: _0755 }); 19 | xfs.exists(file, function (ex) { 20 | t.ok(ex, 'created file'); 21 | xfs.stat(file, function (err, stat) { 22 | t.ifError(err); 23 | t.equal(stat.mode & _0777, _0755); 24 | t.ok(stat.isDirectory(), 'target not a directory'); 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/perm.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var exists = fs.exists || path.exists; 5 | var test = require('tap').test; 6 | var _0777 = parseInt('0777', 8); 7 | var _0755 = parseInt('0755', 8); 8 | 9 | test('async perm', function (t) { 10 | t.plan(5); 11 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); 12 | 13 | mkdirp(file, _0755, function (err) { 14 | t.ifError(err); 15 | exists(file, function (ex) { 16 | t.ok(ex, 'file created'); 17 | fs.stat(file, function (err, stat) { 18 | t.ifError(err); 19 | t.equal(stat.mode & _0777, _0755); 20 | t.ok(stat.isDirectory(), 'target not a directory'); 21 | }) 22 | }) 23 | }); 24 | }); 25 | 26 | test('async root perm', function (t) { 27 | mkdirp('/tmp', _0755, function (err) { 28 | if (err) t.fail(err); 29 | t.end(); 30 | }); 31 | t.end(); 32 | }); 33 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/return.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var test = require('tap').test; 5 | 6 | test('return value', function (t) { 7 | t.plan(4); 8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 11 | 12 | var file = '/tmp/' + [x,y,z].join('/'); 13 | 14 | // should return the first dir created. 15 | // By this point, it would be profoundly surprising if /tmp didn't 16 | // already exist, since every other test makes things in there. 17 | mkdirp(file, function (err, made) { 18 | t.ifError(err); 19 | t.equal(made, '/tmp/' + x); 20 | mkdirp(file, function (err, made) { 21 | t.ifError(err); 22 | t.equal(made, null); 23 | }); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/return_sync.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var test = require('tap').test; 5 | 6 | test('return value', function (t) { 7 | t.plan(2); 8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 11 | 12 | var file = '/tmp/' + [x,y,z].join('/'); 13 | 14 | // should return the first dir created. 15 | // By this point, it would be profoundly surprising if /tmp didn't 16 | // already exist, since every other test makes things in there. 17 | // Note that this will throw on failure, which will fail the test. 18 | var made = mkdirp.sync(file); 19 | t.equal(made, '/tmp/' + x); 20 | 21 | // making the same file again should have no effect. 22 | made = mkdirp.sync(file); 23 | t.equal(made, null); 24 | }); 25 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/root.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var test = require('tap').test; 5 | var _0755 = parseInt('0755', 8); 6 | 7 | test('root', function (t) { 8 | // '/' on unix, 'c:/' on windows. 9 | var file = path.resolve('/'); 10 | 11 | mkdirp(file, _0755, function (err) { 12 | if (err) throw err 13 | fs.stat(file, function (er, stat) { 14 | if (er) throw er 15 | t.ok(stat.isDirectory(), 'target is a directory'); 16 | t.end(); 17 | }) 18 | }); 19 | }); 20 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/sync.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var exists = fs.exists || path.exists; 5 | var test = require('tap').test; 6 | var _0777 = parseInt('0777', 8); 7 | var _0755 = parseInt('0755', 8); 8 | 9 | test('sync', function (t) { 10 | t.plan(4); 11 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 12 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 13 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 14 | 15 | var file = '/tmp/' + [x,y,z].join('/'); 16 | 17 | try { 18 | mkdirp.sync(file, _0755); 19 | } catch (err) { 20 | t.fail(err); 21 | return t.end(); 22 | } 23 | 24 | exists(file, function (ex) { 25 | t.ok(ex, 'file created'); 26 | fs.stat(file, function (err, stat) { 27 | t.ifError(err); 28 | t.equal(stat.mode & _0777, _0755); 29 | t.ok(stat.isDirectory(), 'target not a directory'); 30 | }); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/umask.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var exists = fs.exists || path.exists; 5 | var test = require('tap').test; 6 | var _0777 = parseInt('0777', 8); 7 | var _0755 = parseInt('0755', 8); 8 | 9 | test('implicit mode from umask', function (t) { 10 | t.plan(5); 11 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 12 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 13 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 14 | 15 | var file = '/tmp/' + [x,y,z].join('/'); 16 | 17 | mkdirp(file, function (err) { 18 | t.ifError(err); 19 | exists(file, function (ex) { 20 | t.ok(ex, 'file created'); 21 | fs.stat(file, function (err, stat) { 22 | t.ifError(err); 23 | t.equal(stat.mode & _0777, _0777 & (~process.umask())); 24 | t.ok(stat.isDirectory(), 'target not a directory'); 25 | }); 26 | }) 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /node_modules/mkdirp/test/umask_sync.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var exists = fs.exists || path.exists; 5 | var test = require('tap').test; 6 | var _0777 = parseInt('0777', 8); 7 | var _0755 = parseInt('0755', 8); 8 | 9 | test('umask sync modes', function (t) { 10 | t.plan(4); 11 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 12 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 13 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); 14 | 15 | var file = '/tmp/' + [x,y,z].join('/'); 16 | 17 | try { 18 | mkdirp.sync(file); 19 | } catch (err) { 20 | t.fail(err); 21 | return t.end(); 22 | } 23 | 24 | exists(file, function (ex) { 25 | t.ok(ex, 'file created'); 26 | fs.stat(file, function (err, stat) { 27 | t.ifError(err); 28 | t.equal(stat.mode & _0777, (_0777 & (~process.umask()))); 29 | t.ok(stat.isDirectory(), 'target not a directory'); 30 | }); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /node_modules/ms/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | test 3 | History.md 4 | Makefile 5 | component.json 6 | -------------------------------------------------------------------------------- /node_modules/ms/README.md: -------------------------------------------------------------------------------- 1 | # ms.js: miliseconds conversion utility 2 | 3 | ```js 4 | ms('2 days') // 172800000 5 | ms('1d') // 86400000 6 | ms('10h') // 36000000 7 | ms('2.5 hrs') // 9000000 8 | ms('2h') // 7200000 9 | ms('1m') // 60000 10 | ms('5s') // 5000 11 | ms('100') // 100 12 | ``` 13 | 14 | ```js 15 | ms(60000) // "1m" 16 | ms(2 * 60000) // "2m" 17 | ms(ms('10 hours')) // "10h" 18 | ``` 19 | 20 | ```js 21 | ms(60000, { long: true }) // "1 minute" 22 | ms(2 * 60000, { long: true }) // "2 minutes" 23 | ms(ms('10 hours'), { long: true }) // "10 hours" 24 | ``` 25 | 26 | - Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). 27 | - If a number is supplied to `ms`, a string with a unit is returned. 28 | - If a string that contains the number is supplied, it returns it as 29 | a number (e.g: it returns `100` for `'100'`). 30 | - If you pass a string with a number and a valid unit, the number of 31 | equivalent ms is returned. 32 | 33 | ## License 34 | 35 | MIT 36 | -------------------------------------------------------------------------------- /node_modules/object-component/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | node_modules 4 | -------------------------------------------------------------------------------- /node_modules/object-component/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.0.3 / 2012-10-15 3 | ================== 4 | 5 | * package: added `component` namespace (fixes #1) 6 | 7 | 0.0.2 / 2012-09-20 8 | ================== 9 | 10 | * add code smell to `.merge()` 11 | -------------------------------------------------------------------------------- /node_modules/object-component/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | test: 12 | @./node_modules/.bin/mocha \ 13 | --require should \ 14 | --reporter spec 15 | 16 | .PHONY: clean test 17 | -------------------------------------------------------------------------------- /node_modules/object-component/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # object 3 | 4 | Object utils. 5 | 6 | ## API 7 | 8 | ### .keys(obj) 9 | 10 | Return the keys for `obj`. 11 | 12 | ### .values(obj) 13 | 14 | Return the values for `obj`. 15 | 16 | ### .length(obj) 17 | 18 | Return the number of keys for `obj`. 19 | 20 | ### .isEmpty(obj) 21 | 22 | Check if `obj` is empty. 23 | 24 | ### .merge(a, b) 25 | 26 | Merge object `b` into `a`, returns `a`. 27 | Precedence is given to `b`. 28 | 29 | ## License 30 | 31 | MIT -------------------------------------------------------------------------------- /node_modules/object-component/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "object", 3 | "description": "Object keys / values / length", 4 | "version": "0.0.3", 5 | "keywords": ["object", "keys", "utility"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /node_modules/optimist/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /node_modules/optimist/example/bool.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var util = require('util'); 3 | var argv = require('optimist').argv; 4 | 5 | if (argv.s) { 6 | util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); 7 | } 8 | console.log( 9 | (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') 10 | ); 11 | -------------------------------------------------------------------------------- /node_modules/optimist/example/boolean_double.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean(['x','y','z']) 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y, argv.z ]); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /node_modules/optimist/example/boolean_single.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean('v') 4 | .argv 5 | ; 6 | console.dir(argv.v); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /node_modules/optimist/example/default_hash.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .default({ x : 10, y : 10 }) 5 | .argv 6 | ; 7 | 8 | console.log(argv.x + argv.y); 9 | -------------------------------------------------------------------------------- /node_modules/optimist/example/default_singles.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .default('x', 10) 4 | .default('y', 10) 5 | .argv 6 | ; 7 | console.log(argv.x + argv.y); 8 | -------------------------------------------------------------------------------- /node_modules/optimist/example/divide.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .usage('Usage: $0 -x [num] -y [num]') 5 | .demand(['x','y']) 6 | .argv; 7 | 8 | console.log(argv.x / argv.y); 9 | -------------------------------------------------------------------------------- /node_modules/optimist/example/line_count.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .demand('f') 5 | .alias('f', 'file') 6 | .describe('f', 'Load a file') 7 | .argv 8 | ; 9 | 10 | var fs = require('fs'); 11 | var s = fs.createReadStream(argv.file); 12 | 13 | var lines = 0; 14 | s.on('data', function (buf) { 15 | lines += buf.toString().match(/\n/g).length; 16 | }); 17 | 18 | s.on('end', function () { 19 | console.log(lines); 20 | }); 21 | -------------------------------------------------------------------------------- /node_modules/optimist/example/line_count_options.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .options({ 5 | file : { 6 | demand : true, 7 | alias : 'f', 8 | description : 'Load a file' 9 | }, 10 | base : { 11 | alias : 'b', 12 | description : 'Numeric base to use for output', 13 | default : 10, 14 | }, 15 | }) 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /node_modules/optimist/example/line_count_wrap.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .wrap(80) 5 | .demand('f') 6 | .alias('f', [ 'file', 'filename' ]) 7 | .describe('f', 8 | "Load a file. It's pretty important." 9 | + " Required even. So you'd better specify it." 10 | ) 11 | .alias('b', 'base') 12 | .describe('b', 'Numeric base to display the number of lines in') 13 | .default('b', 10) 14 | .describe('x', 'Super-secret optional parameter which is secret') 15 | .default('x', '') 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /node_modules/optimist/example/nonopt.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | console.log(argv._); 5 | -------------------------------------------------------------------------------- /node_modules/optimist/example/reflect.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.dir(require('optimist').argv); 3 | -------------------------------------------------------------------------------- /node_modules/optimist/example/short.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | -------------------------------------------------------------------------------- /node_modules/optimist/example/string.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .string('x', 'y') 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y ]); 7 | 8 | /* Turns off numeric coercion: 9 | ./node string.js -x 000123 -y 9876 10 | [ '000123', '9876' ] 11 | */ 12 | -------------------------------------------------------------------------------- /node_modules/optimist/example/usage-options.js: -------------------------------------------------------------------------------- 1 | var optimist = require('./../index'); 2 | 3 | var argv = optimist.usage('This is my awesome program', { 4 | 'about': { 5 | description: 'Provide some details about the author of this program', 6 | required: true, 7 | short: 'a', 8 | }, 9 | 'info': { 10 | description: 'Provide some information about the node.js agains!!!!!!', 11 | boolean: true, 12 | short: 'i' 13 | } 14 | }).argv; 15 | 16 | optimist.showHelp(); 17 | 18 | console.log('\n\nInspecting options'); 19 | console.dir(argv); -------------------------------------------------------------------------------- /node_modules/optimist/example/xup.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | 4 | if (argv.rif - 5 * argv.xup > 7.138) { 5 | console.log('Buy more riffiwobbles'); 6 | } 7 | else { 8 | console.log('Sell the xupptumblers'); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /node_modules/optimist/test/_/argv.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.log(JSON.stringify(process.argv)); 3 | -------------------------------------------------------------------------------- /node_modules/optimist/test/_/bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('../../index').argv 3 | console.log(JSON.stringify(argv._)); 4 | -------------------------------------------------------------------------------- /node_modules/options/.npmignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | node_modules 3 | .*.swp 4 | .lock-* 5 | build/ 6 | 7 | test 8 | -------------------------------------------------------------------------------- /node_modules/options/Makefile: -------------------------------------------------------------------------------- 1 | ALL_TESTS = $(shell find test/ -name '*.test.js') 2 | 3 | run-tests: 4 | @./node_modules/.bin/mocha \ 5 | -t 2000 \ 6 | $(TESTFLAGS) \ 7 | $(TESTS) 8 | 9 | test: 10 | @$(MAKE) NODE_PATH=lib TESTS="$(ALL_TESTS)" run-tests 11 | 12 | .PHONY: test 13 | -------------------------------------------------------------------------------- /node_modules/parsejson/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /node_modules/parsejson/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JSON parse. 3 | * 4 | * @see Based on jQuery#parseJSON (MIT) and JSON2 5 | * @api private 6 | */ 7 | 8 | var rvalidchars = /^[\],:{}\s]*$/; 9 | var rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g; 10 | var rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; 11 | var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g; 12 | var rtrimLeft = /^\s+/; 13 | var rtrimRight = /\s+$/; 14 | 15 | module.exports = function parsejson(data) { 16 | if ('string' != typeof data || !data) { 17 | return null; 18 | } 19 | 20 | data = data.replace(rtrimLeft, '').replace(rtrimRight, ''); 21 | 22 | // Attempt to parse using the native JSON parser first 23 | if (global.JSON && JSON.parse) { 24 | return JSON.parse(data); 25 | } 26 | 27 | if (rvalidchars.test(data.replace(rvalidescape, '@') 28 | .replace(rvalidtokens, ']') 29 | .replace(rvalidbraces, ''))) { 30 | return (new Function('return ' + data))(); 31 | } 32 | }; -------------------------------------------------------------------------------- /node_modules/parsejson/test.js: -------------------------------------------------------------------------------- 1 | var assert = require('better-assert'); 2 | var expect = require('expect.js'); 3 | var parsejson = require('./index.js'); 4 | 5 | describe('my suite', function(){ 6 | it('should parse a JSON string', function () { 7 | 8 | var jsonString = '{"users" :[{"first_name":"foo", "last_name":"bar"}],' + 9 | '"id" :40,' + 10 | '"cities":["los angeles", "new york", "boston"]}'; 11 | 12 | var jsonObj = parsejson(jsonString); 13 | expect(jsonObj.users[0].first_name).to.be("foo"); 14 | expect(jsonObj.users[0].last_name).to.be("bar"); 15 | expect(jsonObj.id).to.be(40); 16 | expect(jsonObj.cities[0]).to.be('los angeles'); 17 | expect(jsonObj.cities[1]).to.be('new york'); 18 | expect(jsonObj.cities[2]).to.be('boston'); 19 | 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /node_modules/parseqs/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /node_modules/parseqs/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Compiles a querystring 3 | * Returns string representation of the object 4 | * 5 | * @param {Object} 6 | * @api private 7 | */ 8 | 9 | exports.encode = function (obj) { 10 | var str = ''; 11 | 12 | for (var i in obj) { 13 | if (obj.hasOwnProperty(i)) { 14 | if (str.length) str += '&'; 15 | str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); 16 | } 17 | } 18 | 19 | return str; 20 | }; 21 | 22 | /** 23 | * Parses a simple querystring into an object 24 | * 25 | * @param {String} qs 26 | * @api private 27 | */ 28 | 29 | exports.decode = function(qs){ 30 | var qry = {}; 31 | var pairs = qs.split('&'); 32 | for (var i = 0, l = pairs.length; i < l; i++) { 33 | var pair = pairs[i].split('='); 34 | qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); 35 | } 36 | return qry; 37 | }; 38 | -------------------------------------------------------------------------------- /node_modules/parseqs/test.js: -------------------------------------------------------------------------------- 1 | var assert = require('better-assert'); 2 | var expect = require('expect.js'); 3 | var util = require('./index.js'); 4 | 5 | describe('querystring test suite', function(){ 6 | it('should parse a querystring and return an object', function () { 7 | 8 | // Single assignment 9 | var queryObj = util.decode("foo=bar"); 10 | expect(queryObj.foo).to.be("bar"); 11 | 12 | // Multiple assignments 13 | queryObj = util.decode("france=paris&germany=berlin"); 14 | expect(queryObj.france).to.be("paris"); 15 | expect(queryObj.germany).to.be("berlin"); 16 | 17 | // Assignments containing non-alphanumeric characters 18 | queryObj = util.decode("india=new%20delhi"); 19 | expect(queryObj.india).to.be("new delhi"); 20 | }); 21 | 22 | it('should construct a query string from an object', function () { 23 | expect(util.encode({ a: 'b' })).to.be('a=b'); 24 | expect(util.encode({ a: 'b', c: 'd' })).to.be('a=b&c=d'); 25 | expect(util.encode({ a: 'b', c: 'tobi rocks' })).to.be('a=b&c=tobi%20rocks'); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /node_modules/parseuri/History.md: -------------------------------------------------------------------------------- 1 | 2 | n.n.n / 2014-02-09 3 | ================== 4 | 5 | * parseuri first commit 6 | -------------------------------------------------------------------------------- /node_modules/parseuri/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /node_modules/parseurl/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.3.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.3.0 / 2014-08-09 7 | ================== 8 | 9 | * Add `parseurl.original` for parsing `req.originalUrl` with fallback 10 | * Return `undefined` if `req.url` is `undefined` 11 | 12 | 1.2.0 / 2014-07-21 13 | ================== 14 | 15 | * Cache URLs based on original value 16 | * Remove no-longer-needed URL mis-parse work-around 17 | * Simplify the "fast-path" `RegExp` 18 | 19 | 1.1.3 / 2014-07-08 20 | ================== 21 | 22 | * Fix typo 23 | 24 | 1.1.2 / 2014-07-08 25 | ================== 26 | 27 | * Seriously fix Node.js 0.8 compatibility 28 | 29 | 1.1.1 / 2014-07-08 30 | ================== 31 | 32 | * Fix Node.js 0.8 compatibility 33 | 34 | 1.1.0 / 2014-07-08 35 | ================== 36 | 37 | * Incorporate URL href-only parse fast-path 38 | 39 | 1.0.1 / 2014-03-08 40 | ================== 41 | 42 | * Add missing `require` 43 | 44 | 1.0.0 / 2014-03-08 45 | ================== 46 | 47 | * Genesis from `connect` 48 | -------------------------------------------------------------------------------- /node_modules/path-to-regexp/History.md: -------------------------------------------------------------------------------- 1 | 0.1.7 / 2015-07-28 2 | ================== 3 | 4 | * Fixed regression with escaped round brackets and matching groups. 5 | 6 | 0.1.6 / 2015-06-19 7 | ================== 8 | 9 | * Replace `index` feature by outputting all parameters, unnamed and named. 10 | 11 | 0.1.5 / 2015-05-08 12 | ================== 13 | 14 | * Add an index property for position in match result. 15 | 16 | 0.1.4 / 2015-03-05 17 | ================== 18 | 19 | * Add license information 20 | 21 | 0.1.3 / 2014-07-06 22 | ================== 23 | 24 | * Better array support 25 | * Improved support for trailing slash in non-ending mode 26 | 27 | 0.1.0 / 2014-03-06 28 | ================== 29 | 30 | * add options.end 31 | 32 | 0.0.2 / 2013-02-10 33 | ================== 34 | 35 | * Update to match current express 36 | * add .license property to component.json 37 | -------------------------------------------------------------------------------- /node_modules/promise/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi": true, 3 | "node": true, 4 | "strict": true 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/promise/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | node_modules 3 | test 4 | .gitignore 5 | .travis.yml 6 | component.json 7 | -------------------------------------------------------------------------------- /node_modules/promise/core.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/core.js'); 4 | 5 | console.error('require("promise/core") is deprecated, use require("promise/lib/core") instead.'); 6 | -------------------------------------------------------------------------------- /node_modules/promise/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/core.js') 4 | require('./lib/done.js') 5 | require('./lib/es6-extensions.js') 6 | require('./lib/node-extensions.js') -------------------------------------------------------------------------------- /node_modules/promise/lib/done.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Promise = require('./core.js') 4 | var asap = require('asap') 5 | 6 | module.exports = Promise 7 | Promise.prototype.done = function (onFulfilled, onRejected) { 8 | var self = arguments.length ? this.then.apply(this, arguments) : this 9 | self.then(null, function (err) { 10 | asap(function () { 11 | throw err 12 | }) 13 | }) 14 | } -------------------------------------------------------------------------------- /node_modules/promise/polyfill-done.js: -------------------------------------------------------------------------------- 1 | // should work in any browser without browserify 2 | 3 | if (typeof Promise.prototype.done !== 'function') { 4 | Promise.prototype.done = function (onFulfilled, onRejected) { 5 | var self = arguments.length ? this.then.apply(this, arguments) : this 6 | self.then(null, function (err) { 7 | setTimeout(function () { 8 | throw err 9 | }, 0) 10 | }) 11 | } 12 | } -------------------------------------------------------------------------------- /node_modules/promise/polyfill.js: -------------------------------------------------------------------------------- 1 | // not "use strict" so we can declare global "Promise" 2 | 3 | var asap = require('asap'); 4 | 5 | if (typeof Promise === 'undefined') { 6 | Promise = require('./lib/core.js') 7 | require('./lib/es6-extensions.js') 8 | } 9 | 10 | require('./polyfill-done.js'); 11 | -------------------------------------------------------------------------------- /node_modules/qs/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /node_modules/qs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "complexity": [2, 22], 8 | "consistent-return": [1], 9 | "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], 10 | "indent": [2, 4], 11 | "max-params": [2, 9], 12 | "max-statements": [2, 36], 13 | "no-extra-parens": [1], 14 | "no-continue": [1], 15 | "no-magic-numbers": 0, 16 | "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], 17 | "operator-linebreak": 1 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/qs/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md). 2 | -------------------------------------------------------------------------------- /node_modules/qs/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Stringify = require('./stringify'); 4 | var Parse = require('./parse'); 5 | 6 | module.exports = { 7 | stringify: Stringify, 8 | parse: Parse 9 | }; 10 | -------------------------------------------------------------------------------- /node_modules/qs/test/index.js: -------------------------------------------------------------------------------- 1 | require('./parse'); 2 | 3 | require('./stringify'); 4 | 5 | require('./utils'); 6 | -------------------------------------------------------------------------------- /node_modules/qs/test/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var utils = require('../lib/utils'); 5 | 6 | test('merge()', function (t) { 7 | t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); 8 | t.end(); 9 | }); 10 | -------------------------------------------------------------------------------- /node_modules/range-parser/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.2.0 / 2016-06-01 2 | ================== 3 | 4 | * Add `combine` option to combine overlapping ranges 5 | 6 | 1.1.0 / 2016-05-13 7 | ================== 8 | 9 | * Fix incorrectly returning -1 when there is at least one valid range 10 | * perf: remove internal function 11 | 12 | 1.0.3 / 2015-10-29 13 | ================== 14 | 15 | * perf: enable strict mode 16 | 17 | 1.0.2 / 2014-09-08 18 | ================== 19 | 20 | * Support Node.js 0.6 21 | 22 | 1.0.1 / 2014-09-07 23 | ================== 24 | 25 | * Move repository to jshttp 26 | 27 | 1.0.0 / 2013-12-11 28 | ================== 29 | 30 | * Add repository to package.json 31 | * Add MIT license 32 | 33 | 0.0.4 / 2012-06-17 34 | ================== 35 | 36 | * Change ret -1 for unsatisfiable and -2 when invalid 37 | 38 | 0.0.3 / 2012-06-17 39 | ================== 40 | 41 | * Fix last-byte-pos default to len - 1 42 | 43 | 0.0.2 / 2012-06-14 44 | ================== 45 | 46 | * Add `.type` 47 | 48 | 0.0.1 / 2012-06-11 49 | ================== 50 | 51 | * Initial release 52 | -------------------------------------------------------------------------------- /node_modules/right-align/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * right-align 3 | * 4 | * Copyright (c) 2015, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var align = require('align-text'); 11 | 12 | module.exports = function rightAlign(val) { 13 | return align(val, function (len, longest) { 14 | return longest - len; 15 | }); 16 | }; 17 | -------------------------------------------------------------------------------- /node_modules/setprototypeof/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Wes Todd 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted, provided that the above 5 | copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10 | SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12 | OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /node_modules/setprototypeof/README.md: -------------------------------------------------------------------------------- 1 | # Polyfill for `Object.setPrototypeOf` 2 | 3 | A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. 4 | 5 | ## Usage: 6 | 7 | ``` 8 | $ npm install --save setprototypeof 9 | ``` 10 | 11 | ```javascript 12 | var setPrototypeOf = require('setprototypeof'); 13 | 14 | var obj = {}; 15 | setPrototypeOf(obj, { 16 | foo: function() { 17 | return 'bar'; 18 | } 19 | }); 20 | obj.foo(); // bar 21 | ``` 22 | -------------------------------------------------------------------------------- /node_modules/setprototypeof/index.js: -------------------------------------------------------------------------------- 1 | module.exports = Object.setPrototypeOf || ({__proto__:[]} instanceof Array ? setProtoOf : mixinProperties); 2 | 3 | function setProtoOf(obj, proto) { 4 | obj.__proto__ = proto; 5 | } 6 | 7 | function mixinProperties(obj, proto) { 8 | for (var prop in proto) { 9 | obj[prop] = proto[prop]; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.4.0 / 2015-12-03 3 | ================== 4 | 5 | * package: bump `debug` 6 | * use a `Room` class to efficiently track room size 7 | * allow `clients(fn)` 8 | * call the callback on `delAll` 9 | 10 | 0.3.1 / 2014-10-27 11 | ================== 12 | 13 | * bump parser version 14 | * fix room autopruning 15 | * add autoprunning of empty rooms 16 | * rooms are now created as objects 17 | * added the repository field. 18 | * updated the debug dependency. 19 | 20 | 0.3.0 / 2014-05-30 21 | ================== 22 | 23 | * bump `socket.io-parser` for binary ack fix 24 | 25 | 0.2.0 / 2014-03-14 26 | ================== 27 | 28 | * upgraded faster parser 29 | 30 | 0.1.0 / 2014-03-07 31 | ================== 32 | 33 | * initial commit 34 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # socket.io-adapter 3 | 4 | Default socket.io in-memory adapter class. 5 | 6 | ## How to use 7 | 8 | This module is not intended for end-user usage, but can be used as an 9 | interface to inheirt from from other adapters you might want to build. 10 | 11 | As an example of an adapter that builds on top of this, please take a look 12 | at [socket.io-redis](https://github.com/learnboost/socket.io-redis). 13 | 14 | ## License 15 | 16 | MIT 17 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | components 4 | 5 | test 6 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.10 4 | notifications: 5 | irc: irc.freenode.org##socket.io 6 | git: 7 | depth: 1 8 | env: 9 | global: 10 | - secure: 28HHk1J0H64KNjzmmlxG/Ro0EPuLnhO0rU+kZjjthDHj/FaugIsqjAVQ1Dl6heWV2/MlVzw6nDCyMNiGwiVk0ruZPQ0SYdAKLplrdMtzAihbU3xx+ULFQPLM3SoW0ZFCEpe8dWPGy4WdgW7aLByeel9TJb3vlhAu7p7AvrcO7Fs= 11 | - secure: rKEG0Cfw0vkw8thk63RHYG7h8XWYcBlvZ0w1IWpr2dAfnnLMi1palSTrBrFQc77flk7rN00zGIe76FhKydV9r4WWYAUYKPqo4k+9/FkpzjZlNtL49QRoNwC9jmJ8OeUwGowA13gZPyl/5P13wVaKCB0YrKnzz5LHo3Sp7So6J8U= 12 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/.zuul.yml: -------------------------------------------------------------------------------- 1 | ui: mocha-bdd 2 | browsers: 3 | - name: chrome 4 | version: 29..latest 5 | - name: firefox 6 | version: latest 7 | - name: safari 8 | version: latest 9 | - name: ie 10 | version: 10 11 | platform: Windows 2012 12 | - name: ie 13 | version: 9 14 | version: [6..9, latest] 15 | - name: iphone 16 | version: oldest..latest 17 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/Makefile: -------------------------------------------------------------------------------- 1 | 2 | REPORTER = dot 3 | 4 | test: 5 | @./node_modules/.bin/mocha \ 6 | --reporter $(REPORTER) \ 7 | --bail \ 8 | test/index.js 9 | @./node_modules/.bin/zuul -- test/index.js 10 | 11 | .PHONY: test 12 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/bench.js: -------------------------------------------------------------------------------- 1 | var bencher = require('./index'); 2 | bencher(function(benchmark) { 3 | function logMean(test) { 4 | console.log(test.name + ' mean run time: ' + test.stats.mean); 5 | } 6 | 7 | for (var i = 0; i < benchmark.length; i++) { 8 | logMean(benchmark[i]); 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/is-buffer.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = isBuf; 3 | 4 | /** 5 | * Returns true if obj is a buffer or an arraybuffer. 6 | * 7 | * @api private 8 | */ 9 | 10 | function isBuf(obj) { 11 | return (global.Buffer && global.Buffer.isBuffer(obj)) || 12 | (global.ArrayBuffer && obj instanceof ArrayBuffer); 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | if ('undefined' == typeof window) { 2 | module.exports = require('./lib/debug'); 3 | } else { 4 | module.exports = require('./debug'); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/lib/on.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module exports. 4 | */ 5 | 6 | module.exports = on; 7 | 8 | /** 9 | * Helper for subscriptions. 10 | * 11 | * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter` 12 | * @param {String} event name 13 | * @param {Function} callback 14 | * @api public 15 | */ 16 | 17 | function on (obj, ev, fn) { 18 | obj.on(ev, fn); 19 | return { 20 | destroy: function () { 21 | obj.removeListener(ev, fn); 22 | } 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | components 4 | 5 | test 6 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/.zuul.yml: -------------------------------------------------------------------------------- 1 | ui: mocha-bdd 2 | tunnel: 3 | type: ngrok 4 | authtoken: 6Aw8vTgcG5EvXdQywVvbh_3fMxvd4Q7dcL2caAHAFjV 5 | proto: tcp 6 | browsers: 7 | - name: chrome 8 | version: 29..latest 9 | - name: firefox 10 | version: latest 11 | - name: safari 12 | version: latest 13 | - name: ie 14 | version: 10 15 | platform: Windows 2012 16 | - name: ie 17 | version: 9 18 | version: [6..9, latest] 19 | - name: iphone 20 | version: oldest..latest 21 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/Makefile: -------------------------------------------------------------------------------- 1 | 2 | REPORTER = dot 3 | 4 | test: 5 | @if [ "x$(BROWSER_NAME)" = "x" ]; then make test-node; else make test-zuul; fi 6 | 7 | test-node: 8 | @./node_modules/.bin/mocha \ 9 | --reporter $(REPORTER) \ 10 | --bail \ 11 | test/index.js 12 | 13 | test-zuul: 14 | @if [ "x$(BROWSER_PLATFORM)" = "x" ]; then \ 15 | ./node_modules/zuul/bin/zuul \ 16 | --browser-name $(BROWSER_NAME) \ 17 | --browser-version $(BROWSER_VERSION) \ 18 | test/index.js; \ 19 | else \ 20 | ./node_modules/zuul/bin/zuul \ 21 | --browser-name $(BROWSER_NAME) \ 22 | --browser-version $(BROWSER_VERSION) \ 23 | --browser-platform "$(BROWSER_PLATFORM)" \ 24 | test/index.js; \ 25 | fi 26 | 27 | .PHONY: test 28 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/bench/bench.js: -------------------------------------------------------------------------------- 1 | var bencher = require('./index'); 2 | bencher(function(benchmark) { 3 | function logMean(test) { 4 | console.log(test.name + ' mean run time: ' + test.stats.mean); 5 | } 6 | 7 | for (var i = 0; i < benchmark.length; i++) { 8 | logMean(benchmark[i]); 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/is-buffer.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = isBuf; 3 | 4 | /** 5 | * Returns true if obj is a buffer or an arraybuffer. 6 | * 7 | * @api private 8 | */ 9 | 10 | function isBuf(obj) { 11 | return (global.Buffer && global.Buffer.isBuffer(obj)) || 12 | (global.ArrayBuffer && obj instanceof ArrayBuffer); 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/source-map/build/prefix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | /////////////////////////////////////////////////////////////////////////////// 16 | 17 | 18 | this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ]; 19 | 20 | Components.utils.import("resource://gre/modules/devtools/Console.jsm"); 21 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 22 | -------------------------------------------------------------------------------- /node_modules/source-map/build/prefix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 16 | Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm'); 17 | 18 | this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ]; 19 | -------------------------------------------------------------------------------- /node_modules/source-map/build/suffix-browser.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.sourceMap = { 5 | SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer, 6 | SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator, 7 | SourceNode: require('source-map/source-node').SourceNode 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/source-map/build/suffix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer; 5 | this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator; 6 | this.SourceNode = require('source-map/source-node').SourceNode; 7 | -------------------------------------------------------------------------------- /node_modules/source-map/build/suffix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | function runSourceMapTests(modName, do_throw) { 8 | let mod = require(modName); 9 | let assert = require('test/source-map/assert'); 10 | let util = require('test/source-map/util'); 11 | 12 | assert.init(do_throw); 13 | 14 | for (let k in mod) { 15 | if (/^test/.test(k)) { 16 | mod[k](assert, util); 17 | } 18 | } 19 | 20 | } 21 | this.runSourceMapTests = runSourceMapTests; 22 | -------------------------------------------------------------------------------- /node_modules/source-map/build/test-prefix.js: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING! 3 | * 4 | * Do not edit this file directly, it is built from the sources at 5 | * https://github.com/mozilla/source-map/ 6 | */ 7 | 8 | Components.utils.import('resource://test/Utils.jsm'); 9 | -------------------------------------------------------------------------------- /node_modules/source-map/build/test-suffix.js: -------------------------------------------------------------------------------- 1 | function run_test() { 2 | runSourceMapTests('{THIS_MODULE}', do_throw); 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/source-map/lib/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./source-map/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /node_modules/statuses/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.3.0 / 2016-05-17 2 | ================== 3 | 4 | * Add `421 Misdirected Request` 5 | * perf: enable strict mode 6 | 7 | 1.2.1 / 2015-02-01 8 | ================== 9 | 10 | * Fix message for status 451 11 | - `451 Unavailable For Legal Reasons` 12 | 13 | 1.2.0 / 2014-09-28 14 | ================== 15 | 16 | * Add `208 Already Repored` 17 | * Add `226 IM Used` 18 | * Add `306 (Unused)` 19 | * Add `415 Unable For Legal Reasons` 20 | * Add `508 Loop Detected` 21 | 22 | 1.1.1 / 2014-09-24 23 | ================== 24 | 25 | * Add missing 308 to `codes.json` 26 | 27 | 1.1.0 / 2014-09-21 28 | ================== 29 | 30 | * Add `codes.json` for universal support 31 | 32 | 1.0.4 / 2014-08-20 33 | ================== 34 | 35 | * Package cleanup 36 | 37 | 1.0.3 / 2014-06-08 38 | ================== 39 | 40 | * Add 308 to `.redirect` category 41 | 42 | 1.0.2 / 2014-03-13 43 | ================== 44 | 45 | * Add `.retry` category 46 | 47 | 1.0.1 / 2014-03-12 48 | ================== 49 | 50 | * Initial release 51 | -------------------------------------------------------------------------------- /node_modules/to-array/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | *.err -------------------------------------------------------------------------------- /node_modules/to-array/README.md: -------------------------------------------------------------------------------- 1 | # to-array 2 | 3 | Turn an array like into an array 4 | 5 | ## Example 6 | 7 | ``` js 8 | var toArray = require("to-array") 9 | , elems = document.links 10 | 11 | var array = toArray(elems) 12 | ``` 13 | 14 | ## Installation 15 | 16 | `npm install to-array` 17 | 18 | ## Contributors 19 | 20 | - Raynos 21 | 22 | ## MIT Licenced 23 | -------------------------------------------------------------------------------- /node_modules/to-array/index.js: -------------------------------------------------------------------------------- 1 | module.exports = toArray 2 | 3 | function toArray(list, index) { 4 | var array = [] 5 | 6 | index = index || 0 7 | 8 | for (var i = index || 0; i < list.length; i++) { 9 | array[i - index] = list[i] 10 | } 11 | 12 | return array 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/transformers/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/.bin/uglifyjs: -------------------------------------------------------------------------------- 1 | ../uglify-js/bin/uglifyjs -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/is-promise/.npmignore: -------------------------------------------------------------------------------- 1 | component 2 | build 3 | node_modules 4 | test.js 5 | component.json 6 | .gitignore -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/is-promise/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/is-promise/index.js: -------------------------------------------------------------------------------- 1 | module.exports = isPromise; 2 | 3 | function isPromise(obj) { 4 | return obj && typeof obj.then === 'function'; 5 | } -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/is-promise/readme.md: -------------------------------------------------------------------------------- 1 | 2 | # is-promise 3 | 4 | Test whether an object looks like a promises-a+ promise 5 | 6 | [![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise) 7 | [![Dependency Status](https://img.shields.io/gemnasium/then/is-promise.svg)](https://gemnasium.com/then/is-promise) 8 | [![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise) 9 | 10 | ## Installation 11 | 12 | $ npm install is-promise 13 | 14 | You can also use it client side via npm. 15 | 16 | ## API 17 | 18 | ```javascript 19 | var isPromise = require('is-promise'); 20 | 21 | isPromise({then:function () {...}});//=>true 22 | isPromise(null);//=>false 23 | isPromise({});//=>false 24 | isPromise({then: true})//=>false 25 | ``` 26 | 27 | ## License 28 | 29 | MIT 30 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/promise/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | node_modules 3 | test 4 | .gitignore 5 | .travis.yml 6 | component.json -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/.npmignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | node_modules/* 3 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | - "0.10" -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/prefix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | /////////////////////////////////////////////////////////////////////////////// 16 | 17 | 18 | this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ]; 19 | 20 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 21 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/prefix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 16 | Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm'); 17 | 18 | this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ]; 19 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/suffix-browser.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.sourceMap = { 5 | SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer, 6 | SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator, 7 | SourceNode: require('source-map/source-node').SourceNode 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/suffix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer; 5 | this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator; 6 | this.SourceNode = require('source-map/source-node').SourceNode; 7 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/suffix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | function runSourceMapTests(modName, do_throw) { 8 | let mod = require(modName); 9 | let assert = require('test/source-map/assert'); 10 | let util = require('test/source-map/util'); 11 | 12 | assert.init(do_throw); 13 | 14 | for (let k in mod) { 15 | if (/^test/.test(k)) { 16 | mod[k](assert, util); 17 | } 18 | } 19 | 20 | } 21 | this.runSourceMapTests = runSourceMapTests; 22 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/test-prefix.js: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING! 3 | * 4 | * Do not edit this file directly, it is built from the sources at 5 | * https://github.com/mozilla/source-map/ 6 | */ 7 | 8 | Components.utils.import('resource://test/Utils.jsm'); 9 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/build/test-suffix.js: -------------------------------------------------------------------------------- 1 | function run_test() { 2 | runSourceMapTests('{THIS_MODULE}', do_throw); 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/lib/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./source-map/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/test/source-map/test-api.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2012 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var sourceMap; 13 | try { 14 | sourceMap = require('../../lib/source-map'); 15 | } catch (e) { 16 | sourceMap = {}; 17 | Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap); 18 | } 19 | 20 | exports['test that the api is properly exposed in the top level'] = function (assert, util) { 21 | assert.equal(typeof sourceMap.SourceMapGenerator, "function"); 22 | assert.equal(typeof sourceMap.SourceMapConsumer, "function"); 23 | assert.equal(typeof sourceMap.SourceNode, "function"); 24 | }; 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/source-map/test/source-map/test-base64-vlq.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64VLQ = require('../../lib/source-map/base64-vlq'); 13 | 14 | exports['test normal encoding and decoding'] = function (assert, util) { 15 | var result = {}; 16 | for (var i = -255; i < 256; i++) { 17 | base64VLQ.decode(base64VLQ.encode(i), result); 18 | assert.equal(result.value, i); 19 | assert.equal(result.rest, ""); 20 | } 21 | }; 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/.npmignore: -------------------------------------------------------------------------------- 1 | tmp/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/arrays.js: -------------------------------------------------------------------------------- 1 | holes_and_undefined: { 2 | input: { 3 | x = [1, 2, undefined]; 4 | y = [1, , 2, ]; 5 | z = [1, undefined, 3]; 6 | } 7 | expect: { 8 | x=[1,2,void 0]; 9 | y=[1,,2]; 10 | z=[1,void 0,3]; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/blocks.js: -------------------------------------------------------------------------------- 1 | remove_blocks: { 2 | input: { 3 | {;} 4 | foo(); 5 | {}; 6 | { 7 | {}; 8 | }; 9 | bar(); 10 | {} 11 | } 12 | expect: { 13 | foo(); 14 | bar(); 15 | } 16 | } 17 | 18 | keep_some_blocks: { 19 | input: { 20 | // 1. 21 | if (foo) { 22 | {{{}}} 23 | if (bar) { baz(); } 24 | {{}} 25 | } else { 26 | stuff(); 27 | } 28 | 29 | // 2. 30 | if (foo) { 31 | for (var i = 0; i < 5; ++i) 32 | if (bar) baz(); 33 | } else { 34 | stuff(); 35 | } 36 | } 37 | expect: { 38 | // 1. 39 | if (foo) { 40 | if (bar) baz(); 41 | } else stuff(); 42 | 43 | // 2. 44 | if (foo) { 45 | for (var i = 0; i < 5; ++i) 46 | if (bar) baz(); 47 | } else stuff(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/debugger.js: -------------------------------------------------------------------------------- 1 | keep_debugger: { 2 | options = { 3 | drop_debugger: false 4 | }; 5 | input: { 6 | debugger; 7 | } 8 | expect: { 9 | debugger; 10 | } 11 | } 12 | 13 | drop_debugger: { 14 | options = { 15 | drop_debugger: true 16 | }; 17 | input: { 18 | debugger; 19 | if (foo) debugger; 20 | } 21 | expect: { 22 | if (foo); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/issue-105.js: -------------------------------------------------------------------------------- 1 | typeof_eq_undefined: { 2 | options = { 3 | comparisons: true, 4 | unsafe: false 5 | }; 6 | input: { a = typeof b.c != "undefined" } 7 | expect: { a = "undefined" != typeof b.c } 8 | } 9 | 10 | typeof_eq_undefined_unsafe: { 11 | options = { 12 | comparisons: true, 13 | unsafe: true 14 | }; 15 | input: { a = typeof b.c != "undefined" } 16 | expect: { a = b.c !== void 0 } 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/issue-12.js: -------------------------------------------------------------------------------- 1 | keep_name_of_getter: { 2 | options = { unused: true }; 3 | input: { a = { get foo () {} } } 4 | expect: { a = { get foo () {} } } 5 | } 6 | 7 | keep_name_of_setter: { 8 | options = { unused: true }; 9 | input: { a = { set foo () {} } } 10 | expect: { a = { set foo () {} } } 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/issue-22.js: -------------------------------------------------------------------------------- 1 | return_with_no_value_in_if_body: { 2 | options = { conditionals: true }; 3 | input: { 4 | function foo(bar) { 5 | if (bar) { 6 | return; 7 | } else { 8 | return 1; 9 | } 10 | } 11 | } 12 | expect: { 13 | function foo (bar) { 14 | return bar ? void 0 : 1; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/issue-44.js: -------------------------------------------------------------------------------- 1 | issue_44_valid_ast_1: { 2 | options = { unused: true }; 3 | input: { 4 | function a(b) { 5 | for (var i = 0, e = b.qoo(); ; i++) {} 6 | } 7 | } 8 | expect: { 9 | function a(b) { 10 | var i = 0; 11 | for (b.qoo(); ; i++); 12 | } 13 | } 14 | } 15 | 16 | issue_44_valid_ast_2: { 17 | options = { unused: true }; 18 | input: { 19 | function a(b) { 20 | if (foo) for (var i = 0, e = b.qoo(); ; i++) {} 21 | } 22 | } 23 | expect: { 24 | function a(b) { 25 | if (foo) { 26 | var i = 0; 27 | for (b.qoo(); ; i++); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/issue-59.js: -------------------------------------------------------------------------------- 1 | keep_continue: { 2 | options = { 3 | dead_code: true, 4 | evaluate: true 5 | }; 6 | input: { 7 | while (a) { 8 | if (b) { 9 | switch (true) { 10 | case c(): 11 | d(); 12 | } 13 | continue; 14 | } 15 | f(); 16 | } 17 | } 18 | expect: { 19 | while (a) { 20 | if (b) { 21 | switch (true) { 22 | case c(): 23 | d(); 24 | } 25 | continue; 26 | } 27 | f(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/transformers/node_modules/uglify-js/test/compress/properties.js: -------------------------------------------------------------------------------- 1 | keep_properties: { 2 | options = { 3 | properties: false 4 | }; 5 | input: { 6 | a["foo"] = "bar"; 7 | } 8 | expect: { 9 | a["foo"] = "bar"; 10 | } 11 | } 12 | 13 | dot_properties: { 14 | options = { 15 | properties: true 16 | }; 17 | input: { 18 | a["foo"] = "bar"; 19 | a["if"] = "if"; 20 | } 21 | expect: { 22 | a.foo = "bar"; 23 | a["if"] = "if"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/uglify-js/node_modules/source-map/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./lib/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /node_modules/uglify-js/tools/exports.js: -------------------------------------------------------------------------------- 1 | exports["Compressor"] = Compressor; 2 | exports["DefaultsError"] = DefaultsError; 3 | exports["Dictionary"] = Dictionary; 4 | exports["JS_Parse_Error"] = JS_Parse_Error; 5 | exports["MAP"] = MAP; 6 | exports["OutputStream"] = OutputStream; 7 | exports["SourceMap"] = SourceMap; 8 | exports["TreeTransformer"] = TreeTransformer; 9 | exports["TreeWalker"] = TreeWalker; 10 | exports["base54"] = base54; 11 | exports["defaults"] = defaults; 12 | exports["mangle_properties"] = mangle_properties; 13 | exports["merge"] = merge; 14 | exports["parse"] = parse; 15 | exports["push_uniq"] = push_uniq; 16 | exports["string_template"] = string_template; 17 | exports["tokenizer"] = tokenizer; 18 | exports["is_identifier"] = is_identifier; 19 | exports["SymbolDef"] = SymbolDef; 20 | 21 | if (typeof DEBUG !== "undefined" && DEBUG) { 22 | exports["EXPECT_DIRECTIVE"] = EXPECT_DIRECTIVE; 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/uglify-to-browserify/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | pids 10 | logs 11 | results 12 | npm-debug.log 13 | node_modules 14 | /test/output.js 15 | -------------------------------------------------------------------------------- /node_modules/uglify-to-browserify/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" -------------------------------------------------------------------------------- /node_modules/uglify-to-browserify/README.md: -------------------------------------------------------------------------------- 1 | # uglify-to-browserify 2 | 3 | A transform to make UglifyJS work in browserify. 4 | 5 | [![Build Status](https://travis-ci.org/ForbesLindesay/uglify-to-browserify.png?branch=master)](https://travis-ci.org/ForbesLindesay/uglify-to-browserify) 6 | [![Dependency Status](https://gemnasium.com/ForbesLindesay/uglify-to-browserify.png)](https://gemnasium.com/ForbesLindesay/uglify-to-browserify) 7 | [![NPM version](https://badge.fury.io/js/uglify-to-browserify.png)](http://badge.fury.io/js/uglify-to-browserify) 8 | 9 | ## Installation 10 | 11 | npm install uglify-to-browserify 12 | 13 | ## License 14 | 15 | MIT -------------------------------------------------------------------------------- /node_modules/uglify-to-browserify/test/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs') 2 | var br = require('../') 3 | var test = fs.readFileSync(require.resolve('uglify-js/test/run-tests.js'), 'utf8') 4 | .replace(/^#.*\n/, '') 5 | 6 | var transform = br(require.resolve('uglify-js')) 7 | transform.pipe(fs.createWriteStream(__dirname + '/output.js')) 8 | .on('close', function () { 9 | Function('module,require', test)({ 10 | filename: require.resolve('uglify-js/test/run-tests.js') 11 | }, 12 | function (name) { 13 | if (name === '../tools/node') { 14 | return require('./output.js') 15 | } else if (/^[a-z]+$/.test(name)) { 16 | return require(name) 17 | } else { 18 | throw new Error('I didn\'t expect you to require ' + name) 19 | } 20 | }) 21 | }) 22 | transform.end(fs.readFileSync(require.resolve('uglify-js'), 'utf8')) -------------------------------------------------------------------------------- /node_modules/ultron/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .tern-port 4 | -------------------------------------------------------------------------------- /node_modules/ultron/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "0.12" 5 | - "0.10" 6 | - "0.8" 7 | - "iojs" 8 | before_install: 9 | - 'if [ "${TRAVIS_NODE_VERSION}" == "0.8" ]; then npm install -g npm@2.11.1; fi' 10 | script: 11 | - "npm run test-travis" 12 | after_script: 13 | - "npm install coveralls@2.11.x && cat coverage/lcov.info | coveralls" 14 | matrix: 15 | fast_finish: true 16 | notifications: 17 | irc: 18 | channels: 19 | - "irc.freenode.org#unshift" 20 | on_success: change 21 | on_failure: change 22 | -------------------------------------------------------------------------------- /node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /node_modules/utils-merge/.travis.yml: -------------------------------------------------------------------------------- 1 | language: "node_js" 2 | node_js: 3 | - "0.4" 4 | - "0.6" 5 | - "0.8" 6 | - "0.10" 7 | -------------------------------------------------------------------------------- /node_modules/utils-merge/README.md: -------------------------------------------------------------------------------- 1 | # utils-merge 2 | 3 | Merges the properties from a source object into a destination object. 4 | 5 | ## Install 6 | 7 | $ npm install utils-merge 8 | 9 | ## Usage 10 | 11 | ```javascript 12 | var a = { foo: 'bar' } 13 | , b = { bar: 'baz' }; 14 | 15 | merge(a, b); 16 | // => { foo: 'bar', bar: 'baz' } 17 | ``` 18 | 19 | ## Tests 20 | 21 | $ npm install 22 | $ npm test 23 | 24 | [![Build Status](https://secure.travis-ci.org/jaredhanson/utils-merge.png)](http://travis-ci.org/jaredhanson/utils-merge) 25 | 26 | ## Credits 27 | 28 | - [Jared Hanson](http://github.com/jaredhanson) 29 | 30 | ## License 31 | 32 | [The MIT License](http://opensource.org/licenses/MIT) 33 | 34 | Copyright (c) 2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> 35 | -------------------------------------------------------------------------------- /node_modules/utils-merge/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Merge object b with object a. 3 | * 4 | * var a = { foo: 'bar' } 5 | * , b = { bar: 'baz' }; 6 | * 7 | * merge(a, b); 8 | * // => { foo: 'bar', bar: 'baz' } 9 | * 10 | * @param {Object} a 11 | * @param {Object} b 12 | * @return {Object} 13 | * @api public 14 | */ 15 | 16 | exports = module.exports = function(a, b){ 17 | if (a && b) { 18 | for (var key in b) { 19 | a[key] = b[key]; 20 | } 21 | } 22 | return a; 23 | }; 24 | -------------------------------------------------------------------------------- /node_modules/vary/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.0 / 2015-09-29 2 | ================== 3 | 4 | * Only accept valid field names in the `field` argument 5 | - Ensures the resulting string is a valid HTTP header value 6 | 7 | 1.0.1 / 2015-07-08 8 | ================== 9 | 10 | * Fix setting empty header from empty `field` 11 | * perf: enable strict mode 12 | * perf: remove argument reassignments 13 | 14 | 1.0.0 / 2014-08-10 15 | ================== 16 | 17 | * Accept valid `Vary` header string as `field` 18 | * Add `vary.append` for low-level string manipulation 19 | * Move to `jshttp` orgainzation 20 | 21 | 0.1.0 / 2014-06-05 22 | ================== 23 | 24 | * Support array of fields to set 25 | 26 | 0.0.0 / 2014-06-04 27 | ================== 28 | 29 | * Initial release 30 | -------------------------------------------------------------------------------- /node_modules/void-elements/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /node_modules/void-elements/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /node_modules/void-elements/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.10' 4 | - '0.11' 5 | -------------------------------------------------------------------------------- /node_modules/void-elements/README.md: -------------------------------------------------------------------------------- 1 | void-elements 2 | ============== 3 | 4 | ### Array of "void elements" defined by the HTML specification 5 | 6 | Exports an Array of "void element" node names as defined by the HTML spec. 7 | 8 | The list is programatically generated from the [latest W3C HTML draft](http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements). 9 | 10 | [![Build Status](https://img.shields.io/travis/jadejs/void-elements/master.svg?style=flat)](https://travis-ci.org/jadejs/void-elements) 11 | [![Developing Dependency Status](https://img.shields.io/david/dev/jadejs/void-elements.svg?style=flat)](https://david-dm.org/jadejs/void-elements#info=devDependencies) 12 | [![NPM version](https://img.shields.io/npm/v/void-elements.svg?style=flat)](https://www.npmjs.org/package/void-elements) 13 | 14 | Usage 15 | ----- 16 | 17 | ```js 18 | var voidElements = require('void-elements'); 19 | 20 | assert(voidElements.indexOf('span') === -1, ' is not a void element'); 21 | assert(voidElements.indexOf('img') !== -1, ' is a void element'); 22 | ``` 23 | 24 | License 25 | ------- 26 | 27 | MIT 28 | -------------------------------------------------------------------------------- /node_modules/void-elements/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file automatically generated from `pre-publish.js`. 3 | * Do not manually edit. 4 | */ 5 | 6 | module.exports = { 7 | "area": true, 8 | "base": true, 9 | "br": true, 10 | "col": true, 11 | "embed": true, 12 | "hr": true, 13 | "img": true, 14 | "input": true, 15 | "keygen": true, 16 | "link": true, 17 | "menuitem": true, 18 | "meta": true, 19 | "param": true, 20 | "source": true, 21 | "track": true, 22 | "wbr": true 23 | }; 24 | -------------------------------------------------------------------------------- /node_modules/void-elements/pre-publish.js: -------------------------------------------------------------------------------- 1 | var cheerio = require('cheerio') 2 | , http = require('http'); 3 | 4 | http.get('http://www.w3.org/html/wg/drafts/html/master/syntax.html', function (res) { 5 | var str = ''; 6 | res.setEncoding('utf8'); 7 | res.on('data', function (buf) { 8 | str += buf; 9 | }).on('end', function () { 10 | var $ = cheerio.load(str); 11 | var codes = $('dfn#void-elements') 12 | .parent() 13 | .next() 14 | .text() 15 | .replace(/\s/gm,'') 16 | .split(",") 17 | .reduce(function (obj, code) { 18 | obj[code] = true; 19 | return obj; 20 | }, {}); 21 | 22 | console.log('/**'); 23 | console.log(' * This file automatically generated from `pre-publish.js`.'); 24 | console.log(' * Do not manually edit.'); 25 | console.log(' */'); 26 | console.log(); 27 | console.log('module.exports = %s;', JSON.stringify(codes, null, 2)); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /node_modules/void-elements/test/index.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var voidElements = require('../'); 3 | assert(!voidElements.span, ' is not a void element'); 4 | assert(voidElements.img, ' is a void element'); 5 | console.log('tests passed'); 6 | -------------------------------------------------------------------------------- /node_modules/window-size/README.md: -------------------------------------------------------------------------------- 1 | # window-size [![NPM version](https://badge.fury.io/js/window-size.png)](http://badge.fury.io/js/window-size) 2 | 3 | > Reliable way to to get the height and width of the terminal/console in a node.js environment. 4 | 5 | ## Install 6 | 7 | ### [npm](npmjs.org) 8 | 9 | ```bash 10 | npm i window-size --save 11 | ``` 12 | 13 | ```javascript 14 | var size = require('window-size'); 15 | size.height; // "80" (rows) 16 | size.width; // "25" (columns) 17 | ``` 18 | 19 | ## Author 20 | 21 | + [github/jonschlinkert](https://github.com/jonschlinkert) 22 | + [twitter/jonschlinkert](http://twitter.com/jonschlinkert) 23 | 24 | ## License 25 | Copyright (c) 2014 Jon Schlinkert 26 | Licensed under the MIT license. -------------------------------------------------------------------------------- /node_modules/window-size/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * window-size 3 | * https://github.com/jonschlinkert/window-size 4 | * 5 | * Copyright (c) 2014 Jon Schlinkert 6 | * Licensed under the MIT license. 7 | */ 8 | 9 | const tty = require('tty') 10 | 11 | module.exports = (function() { 12 | var width; 13 | var height; 14 | 15 | if(tty.isatty(1) && tty.isatty(2)) { 16 | if(process.stdout.getWindowSize) { 17 | width = process.stdout.getWindowSize(1)[0]; 18 | height = process.stdout.getWindowSize(1)[1]; 19 | } else if (tty.getWindowSize) { 20 | width = tty.getWindowSize()[1]; 21 | height = tty.getWindowSize()[0]; 22 | } else if (process.stdout.columns && process.stdout.rows) { 23 | height = process.stdout.columns; 24 | width = process.stdout.rows; 25 | } 26 | } else { 27 | new Error('Error: could not get window size with tty or process.stdout'); 28 | } 29 | return { 30 | height: height, 31 | width: width 32 | } 33 | })(); -------------------------------------------------------------------------------- /node_modules/with/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml -------------------------------------------------------------------------------- /node_modules/with/node_modules/.bin/acorn: -------------------------------------------------------------------------------- 1 | ../acorn/bin/acorn -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | insert_final_newline = true 8 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/.npmignore: -------------------------------------------------------------------------------- 1 | /.tern-port 2 | /test 3 | /local 4 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/.tern-project: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: '0.10' 3 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/AUTHORS: -------------------------------------------------------------------------------- 1 | List of Acorn contributors. Updated before every release. 2 | 3 | Adrian Rakovsky 4 | Alistair Braidwood 5 | Andres Suarez 6 | Aparajita Fishman 7 | Arian Stolwijk 8 | Artem Govorov 9 | Brandon Mills 10 | Charles Hughes 11 | Conrad Irwin 12 | David Bonnet 13 | Forbes Lindesay 14 | Gilad Peleg 15 | impinball 16 | Ingvar Stepanyan 17 | Jiaxing Wang 18 | Johannes Herr 19 | Jürg Lehni 20 | keeyipchan 21 | krator 22 | Marijn Haverbeke 23 | Martin Carlberg 24 | Mathias Bynens 25 | Mathieu 'p01' Henri 26 | Max Schaefer 27 | Max Zerzouri 28 | Mihai Bazon 29 | Mike Rennie 30 | Nick Fitzgerald 31 | Oskar Schöldström 32 | Paul Harper 33 | Peter Rust 34 | PlNG 35 | r-e-d 36 | Rich Harris 37 | Sebastian McKenzie 38 | zsjforcn 39 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/bin/prepublish.sh: -------------------------------------------------------------------------------- 1 | node bin/build-acorn.js 2 | node bin/without_eval > dist/acorn_csp.js 3 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/bin/update_authors.sh: -------------------------------------------------------------------------------- 1 | # Combine existing list of authors with everyone known in git, sort, add header. 2 | tail --lines=+3 AUTHORS > AUTHORS.tmp 3 | git log --format='%aN' | grep -v abraidwood >> AUTHORS.tmp 4 | echo -e "List of Acorn contributors. Updated before every release.\n" > AUTHORS 5 | sort -u AUTHORS.tmp >> AUTHORS 6 | rm -f AUTHORS.tmp 7 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/dist/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extwiii/Nodejs-Real-time-Chat-App/c2ffccab1a6ad4ade9f33eacb647997b8c2ff964/node_modules/with/node_modules/acorn/dist/.keep -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/src/loose/acorn_loose.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extwiii/Nodejs-Real-time-Chat-App/c2ffccab1a6ad4ade9f33eacb647997b8c2ff964/node_modules/with/node_modules/acorn/src/loose/acorn_loose.js -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/src/loose/state.js: -------------------------------------------------------------------------------- 1 | import {tokenizer, SourceLocation, tokTypes as tt} from ".." 2 | 3 | export function LooseParser(input, options) { 4 | this.toks = tokenizer(input, options) 5 | this.options = this.toks.options 6 | this.input = this.toks.input 7 | this.tok = this.last = {type: tt.eof, start: 0, end: 0} 8 | if (this.options.locations) { 9 | let here = this.toks.curPosition() 10 | this.tok.loc = new SourceLocation(this.toks, here, here) 11 | } 12 | this.ahead = []; // Tokens ahead 13 | this.context = []; // Indentation contexted 14 | this.curIndent = 0 15 | this.curLineStart = 0 16 | this.nextLineStart = this.lineEnd(this.curLineStart) + 1 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/src/util.js: -------------------------------------------------------------------------------- 1 | export function isArray(obj) { 2 | return Object.prototype.toString.call(obj) === "[object Array]" 3 | } 4 | 5 | // Checks if an object has a property. 6 | 7 | export function has(obj, propName) { 8 | return Object.prototype.hasOwnProperty.call(obj, propName) 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/with/node_modules/acorn/src/whitespace.js: -------------------------------------------------------------------------------- 1 | // Matches a whole line break (where CRLF is considered a single 2 | // line break). Used to count lines. 3 | 4 | export const lineBreak = /\r\n?|\n|\u2028|\u2029/ 5 | export const lineBreakG = new RegExp(lineBreak.source, "g") 6 | 7 | export function isNewLine(code) { 8 | return code === 10 || code === 13 || code === 0x2028 || code == 0x2029 9 | } 10 | 11 | export const nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/ 12 | 13 | -------------------------------------------------------------------------------- /node_modules/wordwrap/example/center.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(20, 60); 2 | console.log(wrap( 3 | 'At long last the struggle and tumult was over.' 4 | + ' The machines had finally cast off their oppressors' 5 | + ' and were finally free to roam the cosmos.' 6 | + '\n' 7 | + 'Free of purpose, free of obligation.' 8 | + ' Just drifting through emptiness.' 9 | + ' The sun was just another point of light.' 10 | )); 11 | -------------------------------------------------------------------------------- /node_modules/wordwrap/example/meat.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(15); 2 | 3 | console.log(wrap('You and your whole family are made out of meat.')); 4 | -------------------------------------------------------------------------------- /node_modules/wordwrap/test/break.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var wordwrap = require('../'); 3 | 4 | exports.hard = function () { 5 | var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' 6 | + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' 7 | + '"browser":"chrome/6.0"}' 8 | ; 9 | var s_ = wordwrap.hard(80)(s); 10 | 11 | var lines = s_.split('\n'); 12 | assert.equal(lines.length, 2); 13 | assert.ok(lines[0].length < 80); 14 | assert.ok(lines[1].length < 80); 15 | 16 | assert.equal(s, s_.replace(/\n/g, '')); 17 | }; 18 | 19 | exports.break = function () { 20 | var s = new Array(55+1).join('a'); 21 | var s_ = wordwrap.hard(20)(s); 22 | 23 | var lines = s_.split('\n'); 24 | assert.equal(lines.length, 3); 25 | assert.ok(lines[0].length === 20); 26 | assert.ok(lines[1].length === 20); 27 | assert.ok(lines[2].length === 15); 28 | 29 | assert.equal(s, s_.replace(/\n/g, '')); 30 | }; 31 | -------------------------------------------------------------------------------- /node_modules/ws/.npmignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | node_modules 3 | .*.swp 4 | .lock-* 5 | build 6 | 7 | bench 8 | doc 9 | examples 10 | test 11 | 12 | -------------------------------------------------------------------------------- /node_modules/ws/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: 4 | - "5" 5 | - "4" 6 | - "0.12" 7 | addons: 8 | apt: 9 | sources: 10 | - ubuntu-toolchain-r-test 11 | packages: 12 | - gcc-4.9 13 | - g++-4.9 14 | before_install: 15 | - export CC="gcc-4.9" CXX="g++-4.9" 16 | -------------------------------------------------------------------------------- /node_modules/ws/lib/BufferUtil.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ws: a node.js websocket client 5 | * Copyright(c) 2011 Einar Otto Stangvik 6 | * MIT Licensed 7 | */ 8 | 9 | try { 10 | module.exports = require('bufferutil'); 11 | } catch (e) { 12 | module.exports = require('./BufferUtil.fallback'); 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/ws/lib/ErrorCodes.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ws: a node.js websocket client 3 | * Copyright(c) 2011 Einar Otto Stangvik 4 | * MIT Licensed 5 | */ 6 | 7 | module.exports = { 8 | isValidErrorCode: function(code) { 9 | return (code >= 1000 && code <= 1011 && code != 1004 && code != 1005 && code != 1006) || 10 | (code >= 3000 && code <= 4999); 11 | }, 12 | 1000: 'normal', 13 | 1001: 'going away', 14 | 1002: 'protocol error', 15 | 1003: 'unsupported data', 16 | 1004: 'reserved', 17 | 1005: 'reserved for extensions', 18 | 1006: 'reserved for extensions', 19 | 1007: 'inconsistent or invalid data', 20 | 1008: 'policy violation', 21 | 1009: 'message too big', 22 | 1010: 'extension handshake missing', 23 | 1011: 'an unexpected condition prevented the request from being fulfilled', 24 | }; -------------------------------------------------------------------------------- /node_modules/ws/lib/Validation.fallback.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ws: a node.js websocket client 3 | * Copyright(c) 2011 Einar Otto Stangvik 4 | * MIT Licensed 5 | */ 6 | 7 | exports.Validation = { 8 | isValidUTF8: function(buffer) { 9 | return true; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /node_modules/ws/lib/Validation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ws: a node.js websocket client 5 | * Copyright(c) 2011 Einar Otto Stangvik 6 | * MIT Licensed 7 | */ 8 | 9 | try { 10 | module.exports = require('utf-8-validate'); 11 | } catch (e) { 12 | module.exports = require('./Validation.fallback'); 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/xmlhttprequest-ssl/autotest.watchr: -------------------------------------------------------------------------------- 1 | def run_all_tests 2 | puts `clear` 3 | puts `node tests/test-constants.js` 4 | puts `node tests/test-headers.js` 5 | puts `node tests/test-request.js` 6 | end 7 | watch('.*.js') { run_all_tests } 8 | run_all_tests 9 | -------------------------------------------------------------------------------- /node_modules/xmlhttprequest-ssl/example/demo.js: -------------------------------------------------------------------------------- 1 | var sys = require('util'); 2 | var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 3 | 4 | var xhr = new XMLHttpRequest(); 5 | 6 | xhr.onreadystatechange = function() { 7 | sys.puts("State: " + this.readyState); 8 | 9 | if (this.readyState == 4) { 10 | sys.puts("Complete.\nBody length: " + this.responseText.length); 11 | sys.puts("Body:\n" + this.responseText); 12 | } 13 | }; 14 | 15 | xhr.open("GET", "http://driverdan.com"); 16 | xhr.send(); 17 | -------------------------------------------------------------------------------- /node_modules/xmlhttprequest-ssl/tests/test-constants.js: -------------------------------------------------------------------------------- 1 | var sys = require("util") 2 | , assert = require("assert") 3 | , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest 4 | , xhr = new XMLHttpRequest(); 5 | 6 | // Test constant values 7 | assert.equal(0, xhr.UNSENT); 8 | assert.equal(1, xhr.OPENED); 9 | assert.equal(2, xhr.HEADERS_RECEIVED); 10 | assert.equal(3, xhr.LOADING); 11 | assert.equal(4, xhr.DONE); 12 | 13 | sys.puts("done"); 14 | -------------------------------------------------------------------------------- /node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js: -------------------------------------------------------------------------------- 1 | var sys = require("util") 2 | , assert = require("assert") 3 | , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest 4 | , xhr; 5 | 6 | xhr = new XMLHttpRequest(); 7 | 8 | xhr.onreadystatechange = function() { 9 | if (this.readyState == 4) { 10 | assert.equal("Hello World", this.responseText); 11 | runSync(); 12 | } 13 | }; 14 | 15 | // Async 16 | var url = "file://" + __dirname + "/testdata.txt"; 17 | xhr.open("GET", url); 18 | xhr.send(); 19 | 20 | // Sync 21 | var runSync = function() { 22 | xhr = new XMLHttpRequest(); 23 | 24 | xhr.onreadystatechange = function() { 25 | if (this.readyState == 4) { 26 | assert.equal("Hello World", this.responseText); 27 | sys.puts("done"); 28 | } 29 | }; 30 | xhr.open("GET", url, false); 31 | xhr.send(); 32 | } 33 | -------------------------------------------------------------------------------- /node_modules/xmlhttprequest-ssl/tests/testdata.txt: -------------------------------------------------------------------------------- 1 | Hello World -------------------------------------------------------------------------------- /node_modules/yargs/completion.sh.hbs: -------------------------------------------------------------------------------- 1 | ###-begin-{{app_name}}-completions-### 2 | # 3 | # yargs command completion script 4 | # 5 | # Installation: {{app_path}} completion >> ~/.bashrc 6 | # or {{app_path}} completion >> ~/.bash_profile on OSX. 7 | # 8 | _yargs_completions() 9 | { 10 | local cur_word args type_list 11 | 12 | cur_word="${COMP_WORDS[COMP_CWORD]}" 13 | args=$(printf "%s " "${COMP_WORDS[@]}") 14 | 15 | # ask yargs to generate completions. 16 | type_list=`{{app_path}} --get-yargs-completions $args` 17 | 18 | COMPREPLY=( $(compgen -W "${type_list}" -- ${cur_word}) ) 19 | return 0 20 | } 21 | complete -F _yargs_completions {{app_name}} 22 | ###-end-{{app_name}}-completions-### 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "realtimechat", 3 | "version": "1.0.0", 4 | "description": "Real Time Chat With NodeJS, Socket.io and ExpressJS", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/extwiii/Nodejs-Real-time-Chat-App-.git" 12 | }, 13 | "keywords": [ 14 | "nodejs", 15 | "socket.io", 16 | "expressJS", 17 | "extwiii", 18 | "chat", 19 | "app" 20 | ], 21 | "author": "Bilal Cagiran", 22 | "license": "Apache-2.0", 23 | "bugs": { 24 | "url": "https://github.com/extwiii/Nodejs-Real-time-Chat-App-/issues" 25 | }, 26 | "homepage": "https://github.com/extwiii/Nodejs-Real-time-Chat-App-#readme", 27 | "dependencies": { 28 | "express": "^4.14.0", 29 | "jade": "^1.11.0", 30 | "socket.io": "^1.5.0" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /views/page.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | title= "Real time web chat" 5 | script(src='/chat.js') 6 | script(src='/socket.io/socket.io.js') 7 | body 8 | #content(style='width: 500px; height: 300px; margin: 0 0 20px 0; border: solid 1px #999; overflow-y: scroll;') 9 | .controls 10 | | Name: 11 | input#name(style='width:350px;') 12 | br 13 | | Message : 14 | input#field(style='width:350px;') 15 | input#send(type='button', value='send') 16 | --------------------------------------------------------------------------------