├── .vs ├── ProjectSettings.json ├── VSWorkspaceState.json ├── multiplayer-card-project │ ├── config │ │ └── applicationhost.config │ └── v16 │ │ └── .suo └── slnx.sqlite ├── client ├── .babelrc ├── .gitignore ├── LICENSE ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── src │ ├── assets │ │ ├── CyanCardBack.png │ │ ├── CyanCardFront.png │ │ ├── MagentaCardBack.png │ │ └── MagentaCardFront.png │ ├── helpers │ │ ├── card.js │ │ ├── dealer.js │ │ └── zone.js │ ├── index.js │ └── scenes │ │ └── game.js └── webpack │ ├── base.js │ └── prod.js ├── node_modules ├── .bin │ ├── is-ci │ ├── is-ci.cmd │ ├── is-ci.ps1 │ ├── mime │ ├── mime.cmd │ ├── mime.ps1 │ ├── nodemon │ ├── nodemon.cmd │ ├── nodemon.ps1 │ ├── nodetouch │ ├── nodetouch.cmd │ ├── nodetouch.ps1 │ ├── nopt │ ├── nopt.cmd │ ├── nopt.ps1 │ ├── rc │ ├── rc.cmd │ ├── rc.ps1 │ ├── semver │ ├── semver.cmd │ ├── semver.ps1 │ ├── which │ ├── which.cmd │ └── which.ps1 ├── abbrev │ ├── LICENSE │ ├── README.md │ ├── abbrev.js │ └── package.json ├── accepts │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── after │ ├── .npmignore │ ├── .travis.yml │ ├── LICENCE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── after-test.js ├── ansi-align │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── ansi-regex │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── ansi-styles │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── anymatch │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── array-flatten │ ├── LICENSE │ ├── README.md │ ├── array-flatten.js │ └── package.json ├── arraybuffer.slice │ ├── .npmignore │ ├── LICENCE │ ├── Makefile │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── slice-buffer.js ├── async-limiter │ ├── .eslintignore │ ├── .nycrc │ ├── .travis.yml │ ├── LICENSE │ ├── index.js │ ├── package.json │ └── readme.md ├── backo2 │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── balanced-match │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── index.js │ └── package.json ├── base64-arraybuffer │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE-MIT │ ├── README.md │ ├── lib │ │ └── base64-arraybuffer.js │ └── package.json ├── base64id │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── lib │ │ └── base64id.js │ └── package.json ├── better-assert │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── example.js │ ├── index.js │ └── package.json ├── binary-extensions │ ├── binary-extensions.json │ ├── binary-extensions.json.d.ts │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── blob │ ├── .idea │ │ ├── blob.iml │ │ ├── inspectionProfiles │ │ │ └── profiles_settings.xml │ │ ├── markdown-navigator.xml │ │ ├── markdown-navigator │ │ │ └── profiles_settings.xml │ │ ├── modules.xml │ │ ├── vcs.xml │ │ └── workspace.xml │ ├── .zuul.yml │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── body-parser │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── read.js │ │ └── types │ │ │ ├── json.js │ │ │ ├── raw.js │ │ │ ├── text.js │ │ │ └── urlencoded.js │ └── package.json ├── boxen │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── brace-expansion │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── braces │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── compile.js │ │ ├── constants.js │ │ ├── expand.js │ │ ├── parse.js │ │ ├── stringify.js │ │ └── utils.js │ └── package.json ├── bytes │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── callsite │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── index.js │ └── package.json ├── camelcase │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── capture-stack-trace │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── chalk │ ├── index.js │ ├── index.js.flow │ ├── license │ ├── package.json │ ├── readme.md │ ├── templates.js │ └── types │ │ └── index.d.ts ├── chokidar │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── constants.js │ │ ├── fsevents-handler.js │ │ └── nodefs-handler.js │ ├── package.json │ └── types │ │ └── index.d.ts ├── ci-info │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── vendors.json ├── cli-boxes │ ├── boxes.json │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── color-convert │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── conversions.js │ ├── index.js │ ├── package.json │ └── route.js ├── color-name │ ├── .eslintrc.json │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test.js ├── component-bind │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ └── package.json ├── component-emitter │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── component-inherit │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test │ │ └── inherit.js ├── concat-map │ ├── .travis.yml │ ├── LICENSE │ ├── README.markdown │ ├── example │ │ └── map.js │ ├── index.js │ ├── package.json │ └── test │ │ └── map.js ├── configstore │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 ├── create-error-class │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── cross-spawn │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── enoent.js │ │ ├── parse.js │ │ └── util │ │ │ ├── escapeArgument.js │ │ │ ├── escapeCommand.js │ │ │ ├── hasEmptyArgumentBug.js │ │ │ ├── readShebang.js │ │ │ └── resolveCommand.js │ └── package.json ├── crypto-random-string │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── debug │ ├── .coveralls.yml │ ├── .eslintrc │ ├── .npmignore │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── component.json │ ├── karma.conf.js │ ├── node.js │ ├── package.json │ └── src │ │ ├── browser.js │ │ ├── debug.js │ │ ├── index.js │ │ ├── inspector-log.js │ │ └── node.js ├── deep-extend │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ └── deep-extend.js │ └── package.json ├── depd │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ ├── lib │ │ ├── browser │ │ │ └── index.js │ │ └── compat │ │ │ ├── callsite-tostring.js │ │ │ ├── event-listener-count.js │ │ │ └── index.js │ └── package.json ├── destroy │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── dot-prop │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── duplexer3 │ ├── LICENSE.md │ ├── 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 │ ├── LICENSE │ ├── README.md │ ├── engine.io.js │ ├── lib │ │ ├── index.js │ │ ├── socket.js │ │ ├── transport.js │ │ ├── transports │ │ │ ├── index.js │ │ │ ├── polling-jsonp.js │ │ │ ├── polling-xhr.js │ │ │ ├── polling.js │ │ │ └── websocket.js │ │ └── xmlhttprequest.js │ ├── node_modules │ │ ├── debug │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── debug.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ ├── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ │ └── ws │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── browser.js │ │ │ ├── index.js │ │ │ ├── lib │ │ │ ├── buffer-util.js │ │ │ ├── constants.js │ │ │ ├── event-target.js │ │ │ ├── extension.js │ │ │ ├── permessage-deflate.js │ │ │ ├── receiver.js │ │ │ ├── sender.js │ │ │ ├── validation.js │ │ │ ├── websocket-server.js │ │ │ └── websocket.js │ │ │ └── package.json │ └── package.json ├── engine.io-parser │ ├── LICENSE │ ├── Readme.md │ ├── lib │ │ ├── browser.js │ │ ├── index.js │ │ ├── keys.js │ │ └── utf8.js │ └── package.json ├── engine.io │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── engine.io.js │ │ ├── server.js │ │ ├── socket.js │ │ ├── transport.js │ │ └── transports │ │ │ ├── index.js │ │ │ ├── polling-jsonp.js │ │ │ ├── polling-xhr.js │ │ │ ├── polling.js │ │ │ └── websocket.js │ ├── node_modules │ │ ├── cookie │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── debug │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── debug.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ └── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── escape-html │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── escape-string-regexp │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── etag │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── execa │ ├── index.js │ ├── lib │ │ ├── errname.js │ │ └── stdio.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 ├── fill-range │ ├── LICENSE │ ├── README.md │ ├── index.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 ├── get-stream │ ├── buffer-stream.js │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── glob-parent │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── global-dirs │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── got │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── graceful-fs │ ├── LICENSE │ ├── README.md │ ├── clone.js │ ├── graceful-fs.js │ ├── legacy-streams.js │ ├── package.json │ └── polyfills.js ├── has-binary2 │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── has-cors │ ├── .npmignore │ ├── History.md │ ├── Makefile │ ├── Readme.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test.js ├── has-flag │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── http-errors │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── iconv-lite │ ├── Changelog.md │ ├── LICENSE │ ├── README.md │ ├── encodings │ │ ├── dbcs-codec.js │ │ ├── dbcs-data.js │ │ ├── index.js │ │ ├── internal.js │ │ ├── sbcs-codec.js │ │ ├── sbcs-data-generated.js │ │ ├── sbcs-data.js │ │ ├── tables │ │ │ ├── big5-added.json │ │ │ ├── cp936.json │ │ │ ├── cp949.json │ │ │ ├── cp950.json │ │ │ ├── eucjp.json │ │ │ ├── gb18030-ranges.json │ │ │ ├── gbk-added.json │ │ │ └── shiftjis.json │ │ ├── utf16.js │ │ └── utf7.js │ ├── lib │ │ ├── bom-handling.js │ │ ├── extend-node.js │ │ ├── index.d.ts │ │ ├── index.js │ │ └── streams.js │ └── package.json ├── ignore-by-default │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── import-lazy │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── imurmurhash │ ├── README.md │ ├── imurmurhash.js │ ├── imurmurhash.min.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 ├── ini │ ├── LICENSE │ ├── README.md │ ├── ini.js │ └── package.json ├── ipaddr.js │ ├── LICENSE │ ├── README.md │ ├── ipaddr.min.js │ ├── lib │ │ ├── ipaddr.js │ │ └── ipaddr.js.d.ts │ └── package.json ├── is-binary-path │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-ci │ ├── LICENSE │ ├── README.md │ ├── bin.js │ ├── index.js │ └── package.json ├── is-extglob │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── is-fullwidth-code-point │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-glob │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── is-installed-globally │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-npm │ ├── index.js │ ├── package.json │ └── readme.md ├── is-number │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── is-obj │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-path-inside │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-redirect │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-retry-allowed │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-stream │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── isarray │ ├── README.md │ ├── index.js │ └── package.json ├── isexe │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── mode.js │ ├── package.json │ ├── test │ │ └── basic.js │ └── windows.js ├── latest-version │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── lowercase-keys │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── lru-cache │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── make-dir │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── cli.js │ ├── mime.js │ ├── package.json │ ├── src │ │ ├── build.js │ │ └── test.js │ └── types.json ├── minimatch │ ├── LICENSE │ ├── README.md │ ├── minimatch.js │ └── package.json ├── minimist │ ├── .travis.yml │ ├── LICENSE │ ├── example │ │ └── parse.js │ ├── index.js │ ├── package.json │ ├── readme.markdown │ └── test │ │ ├── all_bool.js │ │ ├── bool.js │ │ ├── dash.js │ │ ├── default_bool.js │ │ ├── dotted.js │ │ ├── kv_short.js │ │ ├── long.js │ │ ├── num.js │ │ ├── parse.js │ │ ├── parse_modified.js │ │ ├── proto.js │ │ ├── short.js │ │ ├── stop_early.js │ │ ├── unknown.js │ │ └── whitespace.js ├── ms │ ├── index.js │ ├── license.md │ ├── package.json │ └── readme.md ├── negotiator │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── charset.js │ │ ├── encoding.js │ │ ├── language.js │ │ └── mediaType.js │ └── package.json ├── nodemon │ ├── .jscsrc │ ├── .jshintrc │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── nodemon.js │ │ └── postinstall.js │ ├── commitlint.config.js │ ├── doc │ │ └── cli │ │ │ ├── authors.txt │ │ │ ├── config.txt │ │ │ ├── help.txt │ │ │ ├── logo.txt │ │ │ ├── options.txt │ │ │ ├── topics.txt │ │ │ ├── usage.txt │ │ │ └── whoami.txt │ ├── lib │ │ ├── cli │ │ │ ├── index.js │ │ │ └── parse.js │ │ ├── config │ │ │ ├── command.js │ │ │ ├── defaults.js │ │ │ ├── exec.js │ │ │ ├── index.js │ │ │ └── load.js │ │ ├── help │ │ │ └── index.js │ │ ├── index.js │ │ ├── monitor │ │ │ ├── index.js │ │ │ ├── match.js │ │ │ ├── run.js │ │ │ ├── signals.js │ │ │ └── watch.js │ │ ├── nodemon.js │ │ ├── rules │ │ │ ├── add.js │ │ │ ├── index.js │ │ │ └── parse.js │ │ ├── spawn.js │ │ ├── utils │ │ │ ├── bus.js │ │ │ ├── clone.js │ │ │ ├── colour.js │ │ │ ├── index.js │ │ │ ├── log.js │ │ │ └── merge.js │ │ └── version.js │ ├── node_modules │ │ ├── debug │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── debug.js │ │ │ ├── node.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ └── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── nopt │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── nopt.js │ ├── examples │ │ └── my-program.js │ ├── lib │ │ └── nopt.js │ └── package.json ├── normalize-path │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── npm-run-path │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 ├── p-finally │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── package-json │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── parseqs │ ├── .npmignore │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── index.js │ ├── package.json │ └── test.js ├── parseuri │ ├── .npmignore │ ├── History.md │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── index.js │ ├── package.json │ └── test.js ├── parseurl │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── path-is-inside │ ├── LICENSE.txt │ ├── lib │ │ └── path-is-inside.js │ └── package.json ├── path-key │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── path-to-regexp │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── picomatch │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── constants.js │ │ ├── parse.js │ │ ├── picomatch.js │ │ ├── scan.js │ │ └── utils.js │ └── package.json ├── pify │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── prepend-http │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── proxy-addr │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── pseudomap │ ├── LICENSE │ ├── README.md │ ├── map.js │ ├── package.json │ ├── pseudomap.js │ └── test │ │ └── basic.js ├── pstree.remy │ ├── .travis.yml │ ├── LICENSE │ ├── lib │ │ ├── index.js │ │ ├── tree.js │ │ └── utils.js │ ├── package.json │ └── tests │ │ ├── fixtures │ │ ├── index.js │ │ ├── out1 │ │ └── out2 │ │ └── index.test.js ├── qs │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── dist │ │ └── qs.js │ ├── lib │ │ ├── formats.js │ │ ├── index.js │ │ ├── parse.js │ │ ├── stringify.js │ │ └── utils.js │ ├── package.json │ └── test │ │ ├── .eslintrc │ │ ├── index.js │ │ ├── parse.js │ │ ├── stringify.js │ │ └── utils.js ├── range-parser │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── raw-body │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── rc │ ├── LICENSE.APACHE2 │ ├── LICENSE.BSD │ ├── LICENSE.MIT │ ├── README.md │ ├── browser.js │ ├── cli.js │ ├── index.js │ ├── lib │ │ └── utils.js │ ├── package.json │ └── test │ │ ├── ini.js │ │ ├── nested-env-vars.js │ │ └── test.js ├── readdirp │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── registry-auth-token │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── base64.js │ ├── index.js │ ├── package.json │ ├── registry-url.js │ ├── test │ │ ├── auth-token.test.js │ │ └── registry-url.test.js │ └── yarn.lock ├── registry-url │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── safe-buffer │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── safer-buffer │ ├── LICENSE │ ├── Porting-Buffer.md │ ├── Readme.md │ ├── dangerous.js │ ├── package.json │ ├── safer.js │ └── tests.js ├── semver-diff │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── semver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── semver │ ├── package.json │ ├── range.bnf │ └── semver.js ├── send │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── node_modules │ │ └── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── serve-static │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── setprototypeof │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── shebang-command │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── shebang-regex │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── signal-exit │ ├── CHANGELOG.md │ ├── LICENSE.txt │ ├── README.md │ ├── index.js │ ├── package.json │ └── signals.js ├── socket.io-adapter │ ├── .idea │ │ ├── $CACHE_FILE$ │ │ ├── inspectionProfiles │ │ │ └── profiles_settings.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ ├── socket.io-adapter.iml │ │ ├── vcs.xml │ │ └── workspace.xml │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── socket.io-client │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── socket.io.dev.js │ │ ├── socket.io.dev.js.map │ │ ├── socket.io.js │ │ ├── socket.io.js.map │ │ ├── socket.io.slim.dev.js │ │ ├── socket.io.slim.dev.js.map │ │ ├── socket.io.slim.js │ │ └── socket.io.slim.js.map │ ├── lib │ │ ├── index.js │ │ ├── manager.js │ │ ├── on.js │ │ ├── socket.js │ │ └── url.js │ ├── node_modules │ │ ├── debug │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── debug.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ ├── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ │ └── socket.io-parser │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── binary.js │ │ │ ├── index.js │ │ │ ├── is-buffer.js │ │ │ ├── node_modules │ │ │ ├── debug │ │ │ │ ├── .coveralls.yml │ │ │ │ ├── .eslintrc │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── karma.conf.js │ │ │ │ ├── node.js │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ │ ├── browser.js │ │ │ │ │ ├── debug.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── node.js │ │ │ └── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ │ └── package.json │ └── package.json ├── socket.io-parser │ ├── LICENSE │ ├── Readme.md │ ├── binary.js │ ├── index.js │ ├── is-buffer.js │ ├── node_modules │ │ ├── debug │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── debug.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ └── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── socket.io │ ├── LICENSE │ ├── Readme.md │ ├── lib │ │ ├── client.js │ │ ├── index.js │ │ ├── namespace.js │ │ ├── parent-namespace.js │ │ └── socket.js │ ├── node_modules │ │ ├── debug │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── debug.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── common.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ └── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── statuses │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── codes.json │ ├── index.js │ └── package.json ├── string-width │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── strip-ansi │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── strip-eof │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── strip-json-comments │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── supports-color │ ├── browser.js │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── term-size │ ├── index.js │ ├── license │ ├── package.json │ ├── readme.md │ └── vendor │ │ ├── macos │ │ └── term-size │ │ └── windows │ │ └── term-size.exe ├── timed-out │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── to-array │ ├── .npmignore │ ├── LICENCE │ ├── README.md │ ├── index.js │ └── package.json ├── to-regex-range │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── toidentifier │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── touch │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── nodetouch.js │ ├── index.js │ └── package.json ├── type-is │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── undefsafe │ ├── .jscsrc │ ├── .jshintrc │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── example.js │ ├── lib │ │ └── undefsafe.js │ └── package.json ├── unique-string │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── unpipe │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── unzip-response │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── update-notifier │ ├── check.js │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── url-parse-lax │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── utils-merge │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── vary │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── which │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── which │ ├── package.json │ └── which.js ├── widest-line │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── write-file-atomic │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── ws │ ├── LICENSE │ ├── README.md │ ├── browser.js │ ├── index.js │ ├── lib │ │ ├── buffer-util.js │ │ ├── constants.js │ │ ├── event-target.js │ │ ├── extension.js │ │ ├── limiter.js │ │ ├── permessage-deflate.js │ │ ├── receiver.js │ │ ├── sender.js │ │ ├── stream.js │ │ ├── validation.js │ │ ├── websocket-server.js │ │ └── websocket.js │ └── package.json ├── xdg-basedir │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 ├── yallist │ ├── LICENSE │ ├── README.md │ ├── iterator.js │ ├── package.json │ └── yallist.js └── yeast │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── package-lock.json ├── package.json └── server.js /.vs/ProjectSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "CurrentProjectSetting": null 3 | } -------------------------------------------------------------------------------- /.vs/VSWorkspaceState.json: -------------------------------------------------------------------------------- 1 | { 2 | "ExpandedNodes": [ 3 | "", 4 | "\\client", 5 | "\\client\\src", 6 | "\\client\\src\\helpers", 7 | "\\client\\src\\scenes" 8 | ], 9 | "SelectedNode": "\\client\\src\\scenes\\game.js", 10 | "PreviewInSolutionExplorer": false 11 | } -------------------------------------------------------------------------------- /.vs/multiplayer-card-project/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/.vs/multiplayer-card-project/v16/.suo -------------------------------------------------------------------------------- /.vs/slnx.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/.vs/slnx.sqlite -------------------------------------------------------------------------------- /client/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/env", { 4 | "targets": { 5 | "browsers": [ 6 | ">0.25%", 7 | "not ie 11", 8 | "not op_mini all" 9 | ] 10 | }, 11 | "modules": false 12 | }] 13 | ], 14 | } 15 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # System and IDE files 2 | Thumbs.db 3 | .DS_Store 4 | .idea 5 | *.suo 6 | *.sublime-project 7 | *.sublime-workspace 8 | 9 | # Vendors 10 | node_modules/ 11 | 12 | # Build 13 | dist/ 14 | /npm-debug.log 15 | -------------------------------------------------------------------------------- /client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /client/src/assets/CyanCardBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/client/src/assets/CyanCardBack.png -------------------------------------------------------------------------------- /client/src/assets/CyanCardFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/client/src/assets/CyanCardFront.png -------------------------------------------------------------------------------- /client/src/assets/MagentaCardBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/client/src/assets/MagentaCardBack.png -------------------------------------------------------------------------------- /client/src/assets/MagentaCardFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/client/src/assets/MagentaCardFront.png -------------------------------------------------------------------------------- /client/src/helpers/card.js: -------------------------------------------------------------------------------- 1 | export default class Card { 2 | constructor(scene) { 3 | this.render = (x, y, sprite) => { 4 | let card = scene.add.image(x, y, sprite).setScale(0.3, 0.3).setInteractive(); 5 | scene.input.setDraggable(card); 6 | return card; 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /client/src/helpers/dealer.js: -------------------------------------------------------------------------------- 1 | import Card from './card' 2 | 3 | export default class Dealer { 4 | constructor(scene) { 5 | this.dealCards = () => { 6 | let playerSprite; 7 | let opponentSprite; 8 | if (scene.isPlayerA) { 9 | playerSprite = 'cyanCardFront'; 10 | opponentSprite = 'magentaCardBack'; 11 | } else { 12 | playerSprite = 'magentaCardFront'; 13 | opponentSprite = 'cyanCardBack'; 14 | }; 15 | for (let i = 0; i < 5; i++) { 16 | let playerCard = new Card(scene); 17 | playerCard.render(475 + (i * 100), 650, playerSprite); 18 | 19 | let opponentCard = new Card(scene); 20 | scene.opponentCards.push(opponentCard.render(475 + (i * 100), 125, opponentSprite).disableInteractive()); 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /client/src/helpers/zone.js: -------------------------------------------------------------------------------- 1 | export default class Zone { 2 | constructor(scene) { 3 | this.renderZone = () => { 4 | let dropZone = scene.add.zone(700, 375, 900, 250).setRectangleDropZone(900, 250); 5 | dropZone.setData({ cards: 0 }); 6 | return dropZone; 7 | }; 8 | this.renderOutline = (dropZone) => { 9 | let dropZoneOutline = scene.add.graphics(); 10 | dropZoneOutline.lineStyle(4, 0xff69b4); 11 | dropZoneOutline.strokeRect(dropZone.x - dropZone.input.hitArea.width / 2, dropZone.y - dropZone.input.hitArea.height / 2, dropZone.input.hitArea.width, dropZone.input.hitArea.height) 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /client/src/index.js: -------------------------------------------------------------------------------- 1 | import Phaser from "phaser"; 2 | import Game from "./scenes/game" 3 | 4 | const config = { 5 | type: Phaser.AUTO, 6 | parent: "phaser-example", 7 | width: 1280, 8 | height: 780, 9 | scene: [ 10 | Game 11 | ] 12 | }; 13 | 14 | const game = new Phaser.Game(config); -------------------------------------------------------------------------------- /client/webpack/base.js: -------------------------------------------------------------------------------- 1 | const webpack = require("webpack"); 2 | const path = require("path"); 3 | const HtmlWebpackPlugin = require("html-webpack-plugin"); 4 | const { CleanWebpackPlugin } = require("clean-webpack-plugin"); 5 | 6 | module.exports = { 7 | mode: "development", 8 | devtool: "eval-source-map", 9 | module: { 10 | rules: [ 11 | { 12 | test: /\.js$/, 13 | exclude: /node_modules/, 14 | use: { 15 | loader: "babel-loader" 16 | } 17 | }, 18 | { 19 | test: [/\.vert$/, /\.frag$/], 20 | use: "raw-loader" 21 | }, 22 | { 23 | test: /\.(gif|png|jpe?g|svg|xml)$/i, 24 | use: "file-loader" 25 | } 26 | ] 27 | }, 28 | plugins: [ 29 | new CleanWebpackPlugin({ 30 | root: path.resolve(__dirname, "../") 31 | }), 32 | new webpack.DefinePlugin({ 33 | CANVAS_RENDERER: JSON.stringify(true), 34 | WEBGL_RENDERER: JSON.stringify(true) 35 | }), 36 | new HtmlWebpackPlugin({ 37 | template: "./index.html" 38 | }) 39 | ] 40 | }; 41 | -------------------------------------------------------------------------------- /client/webpack/prod.js: -------------------------------------------------------------------------------- 1 | const merge = require("webpack-merge"); 2 | const path = require("path"); 3 | const base = require("./base"); 4 | const TerserPlugin = require("terser-webpack-plugin"); 5 | 6 | module.exports = merge(base, { 7 | mode: "production", 8 | output: { 9 | filename: "bundle.min.js" 10 | }, 11 | devtool: false, 12 | performance: { 13 | maxEntrypointSize: 900000, 14 | maxAssetSize: 900000 15 | }, 16 | optimization: { 17 | minimizer: [ 18 | new TerserPlugin({ 19 | terserOptions: { 20 | output: { 21 | comments: false 22 | } 23 | } 24 | }) 25 | ] 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /node_modules/.bin/is-ci: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../is-ci/bin.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../is-ci/bin.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/is-ci.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\is-ci\bin.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/is-ci.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../is-ci/bin.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../is-ci/bin.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../mime/cli.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../mime/cli.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\mime\cli.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/mime.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../mime/cli.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../nodemon/bin/nodemon.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/nodemon.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/nodemon.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../touch/bin/nodetouch.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/nodetouch.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/nodetouch.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../nopt/bin/nopt.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/nopt.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/nopt.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../nopt/bin/nopt.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/rc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../rc/cli.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../rc/cli.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/rc.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\rc\cli.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/rc.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../rc/cli.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../rc/cli.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../semver/bin/semver" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\semver\bin\semver" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/semver.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../semver/bin/semver" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/.bin/which: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../which/bin/which" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../which/bin/which" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/which.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\which\bin\which" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /node_modules/.bin/which.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../which/bin/which" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../which/bin/which" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /node_modules/abbrev/README.md: -------------------------------------------------------------------------------- 1 | # abbrev-js 2 | 3 | Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). 4 | 5 | Usage: 6 | 7 | var abbrev = require("abbrev"); 8 | abbrev("foo", "fool", "folding", "flop"); 9 | 10 | // returns: 11 | { fl: 'flop' 12 | , flo: 'flop' 13 | , flop: 'flop' 14 | , fol: 'folding' 15 | , fold: 'folding' 16 | , foldi: 'folding' 17 | , foldin: 'folding' 18 | , folding: 'folding' 19 | , foo: 'foo' 20 | , fool: 'fool' 21 | } 22 | 23 | This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. 24 | -------------------------------------------------------------------------------- /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 | - 0.10 7 | - 0.12 8 | - 4.2.4 9 | - 5.4.1 10 | - iojs-1 11 | - iojs-2 12 | - iojs-3 13 | -------------------------------------------------------------------------------- /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/ansi-align/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Contributors 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose 4 | with or without fee is hereby granted, provided that the above copyright notice 5 | and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 9 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 11 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 12 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 13 | THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = () => { 4 | const pattern = [ 5 | '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)', 6 | '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))' 7 | ].join('|'); 8 | 9 | return new RegExp(pattern, 'g'); 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/anymatch/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/anymatch/index.d.ts: -------------------------------------------------------------------------------- 1 | type AnymatchFn = (testString: string) => boolean; 2 | type AnymatchPattern = string|RegExp|AnymatchFn; 3 | type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] 4 | type AnymatchTester = { 5 | (testString: string|any[], returnIndex: true): number; 6 | (testString: string|any[]): boolean; 7 | } 8 | 9 | type PicomatchOptions = {dot: boolean}; 10 | 11 | declare const anymatch: { 12 | (matchers: AnymatchMatcher): AnymatchTester; 13 | (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; 14 | (matchers: AnymatchMatcher, testString: string|any[]): boolean; 15 | } 16 | 17 | export {AnymatchMatcher as Matcher} 18 | export {AnymatchTester as Tester} 19 | export default anymatch 20 | -------------------------------------------------------------------------------- /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-limiter/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage 2 | .nyc_output -------------------------------------------------------------------------------- /node_modules/async-limiter/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "check-coverage": false, 3 | "lines": 99, 4 | "statements": 99, 5 | "functions": 99, 6 | "branches": 99, 7 | "include": [ 8 | "index.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /node_modules/async-limiter/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | - "8" 5 | - "10" 6 | - "node" 7 | script: npm run travis 8 | cache: 9 | yarn: true 10 | -------------------------------------------------------------------------------- /node_modules/async-limiter/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2017 Samuel Reed 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /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/balanced-match/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | .gitignore 3 | .travis.yml 4 | Makefile 5 | example.js 6 | -------------------------------------------------------------------------------- /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/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # [2.0.0](https://github.com/faeldt/base64id/compare/1.0.0...2.0.0) (2019-05-27) 2 | 3 | 4 | ### Code Refactoring 5 | 6 | * **buffer:** replace deprecated Buffer constructor usage ([#11](https://github.com/faeldt/base64id/issues/11)) ([ccfba54](https://github.com/faeldt/base64id/commit/ccfba54)) 7 | 8 | 9 | ### BREAKING CHANGES 10 | 11 | * **buffer:** drop support for Node.js ≤ 4.4.x and 5.0.0 - 5.9.x 12 | 13 | See: https://nodejs.org/en/docs/guides/buffer-constructor-deprecation/ 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /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 base64id 13 | 14 | ## Usage 15 | 16 | var base64id = require('base64id'); 17 | 18 | var id = base64id.generateId(); 19 | -------------------------------------------------------------------------------- /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/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | List of binary file extensions. 3 | 4 | @example 5 | ``` 6 | import binaryExtensions = require('binary-extensions'); 7 | 8 | console.log(binaryExtensions); 9 | //=> ['3ds', '3g2', …] 10 | ``` 11 | */ 12 | declare const binaryExtensions: readonly string[]; 13 | 14 | export = binaryExtensions; 15 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/readme.md: -------------------------------------------------------------------------------- 1 | # binary-extensions [![Build Status](https://travis-ci.org/sindresorhus/binary-extensions.svg?branch=master)](https://travis-ci.org/sindresorhus/binary-extensions) 2 | 3 | > List of binary file extensions 4 | 5 | The list is just a [JSON file](binary-extensions.json) and can be used anywhere. 6 | 7 | 8 | ## Install 9 | 10 | ``` 11 | $ npm install binary-extensions 12 | ``` 13 | 14 | 15 | ## Usage 16 | 17 | ```js 18 | const binaryExtensions = require('binary-extensions'); 19 | 20 | console.log(binaryExtensions); 21 | //=> ['3ds', '3g2', …] 22 | ``` 23 | 24 | 25 | ## Related 26 | 27 | - [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file 28 | - [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions 29 | 30 | 31 | ## License 32 | 33 | MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) 34 | -------------------------------------------------------------------------------- /node_modules/blob/.idea/blob.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /node_modules/blob/.idea/markdown-navigator/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /node_modules/blob/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /node_modules/blob/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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 | A cross-browser `Blob` that falls back to `BlobBuilder` when appropriate. 4 | If neither is available, it exports `undefined`. 5 | 6 | ## Installation 7 | 8 | ``` bash 9 | $ npm install blob 10 | ``` 11 | 12 | ## Example 13 | 14 | ``` js 15 | var Blob = require('blob'); 16 | var b = new Blob(['hi', 'constructing', 'a', 'blob']); 17 | ``` 18 | 19 | ## License 20 | 21 | MIT 22 | -------------------------------------------------------------------------------- /node_modules/blob/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "blob", 3 | "repo": "webmodules/blob", 4 | "description": "Abstracts out Blob and uses BlobBulder in cases where it is supported with any vendor prefix.", 5 | "version": "0.0.4", 6 | "license": "MIT", 7 | "dependencies": {}, 8 | "scripts": [ 9 | "index.js" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/braces/lib/stringify.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('./utils'); 4 | 5 | module.exports = (ast, options = {}) => { 6 | let stringify = (node, parent = {}) => { 7 | let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); 8 | let invalidNode = node.invalid === true && options.escapeInvalid === true; 9 | let output = ''; 10 | 11 | if (node.value) { 12 | if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { 13 | return '\\' + node.value; 14 | } 15 | return node.value; 16 | } 17 | 18 | if (node.value) { 19 | return node.value; 20 | } 21 | 22 | if (node.nodes) { 23 | for (let child of node.nodes) { 24 | output += stringify(child); 25 | } 26 | } 27 | return output; 28 | }; 29 | 30 | return stringify(ast); 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /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/capture-stack-trace/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = Error.captureStackTrace || function (error) { 4 | var container = new Error(); 5 | 6 | Object.defineProperty(error, 'stack', { 7 | configurable: true, 8 | get: function getStack() { 9 | var stack = container.stack; 10 | 11 | Object.defineProperty(this, 'stack', { 12 | value: stack 13 | }); 14 | 15 | return stack; 16 | } 17 | }); 18 | }; 19 | -------------------------------------------------------------------------------- /node_modules/capture-stack-trace/readme.md: -------------------------------------------------------------------------------- 1 | # capture-stack-trace [![Build Status](https://travis-ci.org/floatdrop/capture-stack-trace.svg?branch=master)](https://travis-ci.org/floatdrop/capture-stack-trace) 2 | 3 | > Ponyfill for Error.captureStackTrace 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save capture-stack-trace 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var captureStackTrace = require('capture-stack-trace'); 17 | 18 | captureStackTrace({}); 19 | // => {stack: ...} 20 | ``` 21 | 22 | 23 | ## API 24 | 25 | ### captureStackTrace(error) 26 | 27 | #### error 28 | 29 | *Required* 30 | Type: `Object` 31 | 32 | Target Object, that will recieve stack property. 33 | 34 | ## License 35 | 36 | MIT © [Vsevolod Strukchinsky](http://github.com/floatdrop) 37 | -------------------------------------------------------------------------------- /node_modules/cli-boxes/boxes.json: -------------------------------------------------------------------------------- 1 | { 2 | "single": { 3 | "topLeft": "┌", 4 | "topRight": "┐", 5 | "bottomRight": "┘", 6 | "bottomLeft": "└", 7 | "vertical": "│", 8 | "horizontal": "─" 9 | }, 10 | "double": { 11 | "topLeft": "╔", 12 | "topRight": "╗", 13 | "bottomRight": "╝", 14 | "bottomLeft": "╚", 15 | "vertical": "║", 16 | "horizontal": "═" 17 | }, 18 | "round": { 19 | "topLeft": "╭", 20 | "topRight": "╮", 21 | "bottomRight": "╯", 22 | "bottomLeft": "╰", 23 | "vertical": "│", 24 | "horizontal": "─" 25 | }, 26 | "single-double": { 27 | "topLeft": "╓", 28 | "topRight": "╖", 29 | "bottomRight": "╜", 30 | "bottomLeft": "╙", 31 | "vertical": "║", 32 | "horizontal": "─" 33 | }, 34 | "double-single": { 35 | "topLeft": "╒", 36 | "topRight": "╕", 37 | "bottomRight": "╛", 38 | "bottomLeft": "╘", 39 | "vertical": "│", 40 | "horizontal": "═" 41 | }, 42 | "classic": { 43 | "topLeft": "+", 44 | "topRight": "+", 45 | "bottomRight": "+", 46 | "bottomLeft": "+", 47 | "vertical": "|", 48 | "horizontal": "-" 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /node_modules/cli-boxes/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('./boxes.json'); 3 | -------------------------------------------------------------------------------- /node_modules/color-name/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2015 Dmitry Ivanov 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /node_modules/color-name/README.md: -------------------------------------------------------------------------------- 1 | A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. 2 | 3 | [![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) 4 | 5 | 6 | ```js 7 | var colors = require('color-name'); 8 | colors.red //[255,0,0] 9 | ``` 10 | 11 | 12 | -------------------------------------------------------------------------------- /node_modules/color-name/test.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | var names = require('./'); 4 | var assert = require('assert'); 5 | 6 | assert.deepEqual(names.red, [255,0,0]); 7 | assert.deepEqual(names.aliceblue, [240,248,255]); 8 | -------------------------------------------------------------------------------- /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-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/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /node_modules/concat-map/example/map.js: -------------------------------------------------------------------------------- 1 | var concatMap = require('../'); 2 | var xs = [ 1, 2, 3, 4, 5, 6 ]; 3 | var ys = concatMap(xs, function (x) { 4 | return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; 5 | }); 6 | console.dir(ys); 7 | -------------------------------------------------------------------------------- /node_modules/concat-map/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function (xs, fn) { 2 | var res = []; 3 | for (var i = 0; i < xs.length; i++) { 4 | var x = fn(xs[i], i); 5 | if (isArray(x)) res.push.apply(res, x); 6 | else res.push(x); 7 | } 8 | return res; 9 | }; 10 | 11 | var isArray = Array.isArray || function (xs) { 12 | return Object.prototype.toString.call(xs) === '[object Array]'; 13 | }; 14 | -------------------------------------------------------------------------------- /node_modules/content-type/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.4 / 2017-09-11 2 | ================== 3 | 4 | * perf: skip parameter parsing when no parameters 5 | 6 | 1.0.3 / 2017-09-10 7 | ================== 8 | 9 | * perf: remove argument reassignment 10 | 11 | 1.0.2 / 2016-05-09 12 | ================== 13 | 14 | * perf: enable strict mode 15 | 16 | 1.0.1 / 2015-02-13 17 | ================== 18 | 19 | * Improve missing `Content-Type` header error message 20 | 21 | 1.0.0 / 2015-02-01 22 | ================== 23 | 24 | * Initial implementation, derived from `media-typer@0.3.0` 25 | -------------------------------------------------------------------------------- /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/cross-spawn/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 5.0.0 - 2016-10-30 2 | 3 | - Add support for `options.shell` 4 | - Improve parsing of shebangs by using [`shebang-command`](https://github.com/kevva/shebang-command) module 5 | - Refactor some code to make it more clear 6 | - Update README caveats 7 | -------------------------------------------------------------------------------- /node_modules/cross-spawn/lib/util/escapeArgument.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function escapeArgument(arg, quote) { 4 | // Convert to string 5 | arg = '' + arg; 6 | 7 | // If we are not going to quote the argument, 8 | // escape shell metacharacters, including double and single quotes: 9 | if (!quote) { 10 | arg = arg.replace(/([()%!^<>&|;,"'\s])/g, '^$1'); 11 | } else { 12 | // Sequence of backslashes followed by a double quote: 13 | // double up all the backslashes and escape the double quote 14 | arg = arg.replace(/(\\*)"/g, '$1$1\\"'); 15 | 16 | // Sequence of backslashes followed by the end of the string 17 | // (which will become a double quote later): 18 | // double up all the backslashes 19 | arg = arg.replace(/(\\*)$/, '$1$1'); 20 | 21 | // All other backslashes occur literally 22 | 23 | // Quote the whole thing: 24 | arg = '"' + arg + '"'; 25 | } 26 | 27 | return arg; 28 | } 29 | 30 | module.exports = escapeArgument; 31 | -------------------------------------------------------------------------------- /node_modules/cross-spawn/lib/util/escapeCommand.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var escapeArgument = require('./escapeArgument'); 4 | 5 | function escapeCommand(command) { 6 | // Do not escape if this command is not dangerous.. 7 | // We do this so that commands like "echo" or "ifconfig" work 8 | // Quoting them, will make them unaccessible 9 | return /^[a-z0-9_-]+$/i.test(command) ? command : escapeArgument(command, true); 10 | } 11 | 12 | module.exports = escapeCommand; 13 | -------------------------------------------------------------------------------- /node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // See: https://github.com/IndigoUnited/node-cross-spawn/pull/34#issuecomment-221623455 4 | function hasEmptyArgumentBug() { 5 | var nodeVer; 6 | 7 | if (process.platform !== 'win32') { 8 | return false; 9 | } 10 | 11 | nodeVer = process.version.substr(1).split('.').map(function (num) { 12 | return parseInt(num, 10); 13 | }); 14 | 15 | return (nodeVer[0] === 0 && nodeVer[1] < 12); 16 | } 17 | 18 | module.exports = hasEmptyArgumentBug(); 19 | -------------------------------------------------------------------------------- /node_modules/cross-spawn/lib/util/readShebang.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var fs = require('fs'); 4 | var LRU = require('lru-cache'); 5 | var shebangCommand = require('shebang-command'); 6 | 7 | var shebangCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec 8 | 9 | function readShebang(command) { 10 | var buffer; 11 | var fd; 12 | var shebang; 13 | 14 | // Check if it is in the cache first 15 | if (shebangCache.has(command)) { 16 | return shebangCache.get(command); 17 | } 18 | 19 | // Read the first 150 bytes from the file 20 | buffer = new Buffer(150); 21 | 22 | try { 23 | fd = fs.openSync(command, 'r'); 24 | fs.readSync(fd, buffer, 0, 150, 0); 25 | fs.closeSync(fd); 26 | } catch (e) { /* empty */ } 27 | 28 | // Attempt to extract shebang (null is returned if not a shebang) 29 | shebang = shebangCommand(buffer.toString()); 30 | 31 | // Store the shebang in the cache 32 | shebangCache.set(command, shebang); 33 | 34 | return shebang; 35 | } 36 | 37 | module.exports = readShebang; 38 | -------------------------------------------------------------------------------- /node_modules/cross-spawn/lib/util/resolveCommand.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var path = require('path'); 4 | var which = require('which'); 5 | var LRU = require('lru-cache'); 6 | 7 | var commandCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec 8 | 9 | function resolveCommand(command, noExtension) { 10 | var resolved; 11 | 12 | noExtension = !!noExtension; 13 | resolved = commandCache.get(command + '!' + noExtension); 14 | 15 | // Check if its resolved in the cache 16 | if (commandCache.has(command)) { 17 | return commandCache.get(command); 18 | } 19 | 20 | try { 21 | resolved = !noExtension ? 22 | which.sync(command) : 23 | which.sync(command, { pathExt: path.delimiter + (process.env.PATHEXT || '') }); 24 | } catch (e) { /* empty */ } 25 | 26 | commandCache.set(command + '!' + noExtension, resolved); 27 | 28 | return resolved; 29 | } 30 | 31 | module.exports = resolveCommand; 32 | -------------------------------------------------------------------------------- /node_modules/crypto-random-string/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const crypto = require('crypto'); 3 | 4 | module.exports = len => { 5 | if (!Number.isFinite(len)) { 6 | throw new TypeError('Expected a finite number'); 7 | } 8 | 9 | return crypto.randomBytes(Math.ceil(len / 2)).toString('hex').slice(0, len); 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /node_modules/debug/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "rules": { 7 | "no-console": 0, 8 | "no-empty": [1, { "allowEmptyCatch": true }] 9 | }, 10 | "extends": "eslint:recommended" 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | coverage 9 | bower.json 10 | -------------------------------------------------------------------------------- /node_modules/debug/.travis.yml: -------------------------------------------------------------------------------- 1 | 2 | language: node_js 3 | node_js: 4 | - "6" 5 | - "5" 6 | - "4" 7 | 8 | install: 9 | - make node_modules 10 | 11 | script: 12 | - make lint 13 | - make test 14 | - make coveralls 15 | -------------------------------------------------------------------------------- /node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.6.9", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "src/browser.js", 12 | "scripts": [ 13 | "src/browser.js", 14 | "src/debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/debug/src/inspector-log.js: -------------------------------------------------------------------------------- 1 | module.exports = inspectorLog; 2 | 3 | // black hole 4 | const nullStream = new (require('stream').Writable)(); 5 | nullStream._write = () => {}; 6 | 7 | /** 8 | * Outputs a `console.log()` to the Node.js Inspector console *only*. 9 | */ 10 | function inspectorLog() { 11 | const stdout = console._stdout; 12 | console._stdout = nullStream; 13 | console.log.apply(console, arguments); 14 | console._stdout = stdout; 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/deep-extend/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/deep-extend'); 2 | -------------------------------------------------------------------------------- /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.2 / 2018-01-21 2 | ================== 3 | 4 | * Fix encoding `%` as last character 5 | 6 | 1.0.1 / 2016-06-09 7 | ================== 8 | 9 | * Fix encoding unpaired surrogates at start/end of string 10 | 11 | 1.0.0 / 2016-06-08 12 | ================== 13 | 14 | * Initial release 15 | -------------------------------------------------------------------------------- /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-client/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer / nwjs process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/engine.io-client/node_modules/ws/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function() { 4 | throw new Error( 5 | 'ws does not work in the browser. Browser clients must use the native ' + 6 | 'WebSocket object' 7 | ); 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/engine.io-client/node_modules/ws/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const WebSocket = require('./lib/websocket'); 4 | 5 | WebSocket.Server = require('./lib/websocket-server'); 6 | WebSocket.Receiver = require('./lib/receiver'); 7 | WebSocket.Sender = require('./lib/sender'); 8 | 9 | module.exports = WebSocket; 10 | -------------------------------------------------------------------------------- /node_modules/engine.io-client/node_modules/ws/lib/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'], 5 | GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', 6 | kStatusCode: Symbol('status-code'), 7 | kWebSocket: Symbol('websocket'), 8 | EMPTY_BUFFER: Buffer.alloc(0), 9 | NOOP: () => {} 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/engine.io-client/node_modules/ws/lib/validation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | try { 4 | const isValidUTF8 = require('utf-8-validate'); 5 | 6 | exports.isValidUTF8 = 7 | typeof isValidUTF8 === 'object' 8 | ? isValidUTF8.Validation.isValidUTF8 // utf-8-validate@<3.0.0 9 | : isValidUTF8; 10 | } catch (e) /* istanbul ignore next */ { 11 | exports.isValidUTF8 = () => true; 12 | } 13 | 14 | /** 15 | * Checks if a status code is allowed in a close frame. 16 | * 17 | * @param {Number} code The status code 18 | * @return {Boolean} `true` if the status code is valid, else `false` 19 | * @public 20 | */ 21 | exports.isValidStatusCode = (code) => { 22 | return ( 23 | (code >= 1000 && 24 | code <= 1013 && 25 | code !== 1004 && 26 | code !== 1005 && 27 | code !== 1006) || 28 | (code >= 3000 && code <= 4999) 29 | ); 30 | }; 31 | -------------------------------------------------------------------------------- /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/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 polymorphic 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/engine.io/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer / nwjs process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /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/escape-string-regexp/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; 4 | 5 | module.exports = function (str) { 6 | if (typeof str !== 'string') { 7 | throw new TypeError('Expected a string'); 8 | } 9 | 10 | return str.replace(matchOperatorsRe, '\\$&'); 11 | }; 12 | -------------------------------------------------------------------------------- /node_modules/escape-string-regexp/readme.md: -------------------------------------------------------------------------------- 1 | # escape-string-regexp [![Build Status](https://travis-ci.org/sindresorhus/escape-string-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-string-regexp) 2 | 3 | > Escape RegExp special characters 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save escape-string-regexp 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const escapeStringRegexp = require('escape-string-regexp'); 17 | 18 | const escapedString = escapeStringRegexp('how much $ for a unicorn?'); 19 | //=> 'how much \$ for a unicorn\?' 20 | 21 | new RegExp(escapedString); 22 | ``` 23 | 24 | 25 | ## License 26 | 27 | MIT © [Sindre Sorhus](http://sindresorhus.com) 28 | -------------------------------------------------------------------------------- /node_modules/execa/lib/stdio.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const alias = ['stdin', 'stdout', 'stderr']; 3 | 4 | const hasAlias = opts => alias.some(x => Boolean(opts[x])); 5 | 6 | module.exports = opts => { 7 | if (!opts) { 8 | return null; 9 | } 10 | 11 | if (opts.stdio && hasAlias(opts)) { 12 | throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`); 13 | } 14 | 15 | if (typeof opts.stdio === 'string') { 16 | return opts.stdio; 17 | } 18 | 19 | const stdio = opts.stdio || []; 20 | 21 | if (!Array.isArray(stdio)) { 22 | throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); 23 | } 24 | 25 | const result = []; 26 | const len = Math.max(stdio.length, alias.length); 27 | 28 | for (let i = 0; i < len; i++) { 29 | let value = null; 30 | 31 | if (stdio[i] !== undefined) { 32 | value = stdio[i]; 33 | } else if (opts[alias[i]] !== undefined) { 34 | value = opts[alias[i]]; 35 | } 36 | 37 | result[i] = value; 38 | } 39 | 40 | return result; 41 | }; 42 | -------------------------------------------------------------------------------- /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 | * Module dependencies. 13 | * @private 14 | */ 15 | 16 | var setPrototypeOf = require('setprototypeof') 17 | 18 | /** 19 | * Initialization middleware, exposing the 20 | * request and response to each other, as well 21 | * as defaulting the X-Powered-By header field. 22 | * 23 | * @param {Function} app 24 | * @return {Function} 25 | * @api private 26 | */ 27 | 28 | exports.init = function(app){ 29 | return function expressInit(req, res, next){ 30 | if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); 31 | req.res = res; 32 | res.req = req; 33 | req.next = next; 34 | 35 | setPrototypeOf(req, app.request) 36 | setPrototypeOf(res, app.response) 37 | 38 | res.locals = res.locals || Object.create(null); 39 | 40 | next(); 41 | }; 42 | }; 43 | 44 | -------------------------------------------------------------------------------- /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 merge = require('utils-merge') 16 | var parseUrl = require('parseurl'); 17 | var qs = require('qs'); 18 | 19 | /** 20 | * @param {Object} options 21 | * @return {Function} 22 | * @api public 23 | */ 24 | 25 | module.exports = function query(options) { 26 | var opts = merge({}, options) 27 | var queryparse = qs.parse; 28 | 29 | if (typeof options === 'function') { 30 | queryparse = options; 31 | opts = undefined; 32 | } 33 | 34 | if (opts !== undefined && opts.allowPrototypes === undefined) { 35 | // back-compat for qs module 36 | opts.allowPrototypes = true; 37 | } 38 | 39 | return function query(req, res, next){ 40 | if (!req.query) { 41 | var val = parseUrl(req).query; 42 | req.query = queryparse(val, opts); 43 | } 44 | 45 | next(); 46 | }; 47 | }; 48 | -------------------------------------------------------------------------------- /node_modules/forwarded/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.1.2 / 2017-09-14 2 | ================== 3 | 4 | * perf: improve header parsing 5 | * perf: reduce overhead when no `X-Forwarded-For` header 6 | 7 | 0.1.1 / 2017-09-10 8 | ================== 9 | 10 | * Fix trimming leading / trailing OWS 11 | * perf: hoist regular expression 12 | 13 | 0.1.0 / 2014-09-21 14 | ================== 15 | 16 | * Initial release 17 | -------------------------------------------------------------------------------- /node_modules/get-stream/buffer-stream.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const PassThrough = require('stream').PassThrough; 3 | 4 | module.exports = opts => { 5 | opts = Object.assign({}, opts); 6 | 7 | const array = opts.array; 8 | let encoding = opts.encoding; 9 | const buffer = encoding === 'buffer'; 10 | let objectMode = false; 11 | 12 | if (array) { 13 | objectMode = !(encoding || buffer); 14 | } else { 15 | encoding = encoding || 'utf8'; 16 | } 17 | 18 | if (buffer) { 19 | encoding = null; 20 | } 21 | 22 | let len = 0; 23 | const ret = []; 24 | const stream = new PassThrough({objectMode}); 25 | 26 | if (encoding) { 27 | stream.setEncoding(encoding); 28 | } 29 | 30 | stream.on('data', chunk => { 31 | ret.push(chunk); 32 | 33 | if (objectMode) { 34 | len = ret.length; 35 | } else { 36 | len += chunk.length; 37 | } 38 | }); 39 | 40 | stream.getBufferedValue = () => { 41 | if (array) { 42 | return ret; 43 | } 44 | 45 | return buffer ? Buffer.concat(ret, len) : ret.join(''); 46 | }; 47 | 48 | stream.getBufferedLength = () => len; 49 | 50 | return stream; 51 | }; 52 | -------------------------------------------------------------------------------- /node_modules/glob-parent/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2015, 2019 Elan Shanker 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/graceful-fs/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/graceful-fs/clone.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = clone 4 | 5 | function clone (obj) { 6 | if (obj === null || typeof obj !== 'object') 7 | return obj 8 | 9 | if (obj instanceof Object) 10 | var copy = { __proto__: obj.__proto__ } 11 | else 12 | var copy = Object.create(null) 13 | 14 | Object.getOwnPropertyNames(obj).forEach(function (key) { 15 | Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) 16 | }) 17 | 18 | return copy 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/has-binary2/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/has-flag/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = (flag, argv) => { 3 | argv = argv || process.argv; 4 | const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); 5 | const pos = argv.indexOf(prefix + flag); 6 | const terminatorPos = argv.indexOf('--'); 7 | return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/iconv-lite/encodings/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Update this array if you add/rename/remove files in this directory. 4 | // We support Browserify by skipping automatic module discovery and requiring modules directly. 5 | var modules = [ 6 | require("./internal"), 7 | require("./utf16"), 8 | require("./utf7"), 9 | require("./sbcs-codec"), 10 | require("./sbcs-data"), 11 | require("./sbcs-data-generated"), 12 | require("./dbcs-codec"), 13 | require("./dbcs-data"), 14 | ]; 15 | 16 | // Put all encoding/alias/codec definitions to single object and export it. 17 | for (var i = 0; i < modules.length; i++) { 18 | var module = modules[i]; 19 | for (var enc in module) 20 | if (Object.prototype.hasOwnProperty.call(module, enc)) 21 | exports[enc] = module[enc]; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/iconv-lite/lib/index.d.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. 4 | * REQUIREMENT: This definition is dependent on the @types/node definition. 5 | * Install with `npm install @types/node --save-dev` 6 | *--------------------------------------------------------------------------------------------*/ 7 | 8 | declare module 'iconv-lite' { 9 | export function decode(buffer: Buffer, encoding: string, options?: Options): string; 10 | 11 | export function encode(content: string, encoding: string, options?: Options): Buffer; 12 | 13 | export function encodingExists(encoding: string): boolean; 14 | 15 | export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; 16 | 17 | export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; 18 | } 19 | 20 | export interface Options { 21 | stripBOM?: boolean; 22 | addBOM?: boolean; 23 | defaultEncoding?: string; 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/ignore-by-default/LICENSE: -------------------------------------------------------------------------------- 1 | ISC License (ISC) 2 | Copyright (c) 2016, Mark Wubben 3 | 4 | Permission to use, copy, modify, and/or distribute this software for any purpose 5 | with or without fee is hereby granted, provided that the above copyright notice 6 | and this permission notice appear in all copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 9 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 10 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 11 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 12 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 13 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 14 | THIS SOFTWARE. 15 | -------------------------------------------------------------------------------- /node_modules/ignore-by-default/README.md: -------------------------------------------------------------------------------- 1 | # ignore-by-default 2 | 3 | This is a package aimed at Node.js development tools. It provides a list of 4 | directories that should probably be ignored by such tools, e.g. when watching 5 | for file changes. 6 | 7 | It's used by [AVA](https://www.npmjs.com/package/ava) and 8 | [nodemon](https://www.npmjs.com/package/nodemon). 9 | 10 | [Please contribute!](./CONTRIBUTING.md) 11 | 12 | ## Installation 13 | 14 | ``` 15 | npm install --save ignore-by-default 16 | ``` 17 | 18 | ## Usage 19 | 20 | The `ignore-by-default` module exports a `directories()` function, which will 21 | return an array of directory names. These are the ones you should ignore. 22 | 23 | ```js 24 | // ['.git', '.sass_cache', …] 25 | var ignoredDirectories = require('ignore-by-default').directories() 26 | ``` 27 | -------------------------------------------------------------------------------- /node_modules/ignore-by-default/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | exports.directories = function () { 4 | return [ 5 | '.git', // Git repository files, see 6 | '.nyc_output', // Temporary directory where nyc stores coverage data, see 7 | '.sass-cache', // Cache folder for node-sass, see 8 | 'bower_components', // Where Bower packages are installed, see 9 | 'coverage', // Standard output directory for code coverage reports, see 10 | 'node_modules' // Where Node modules are installed, see 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /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 | try { 2 | var util = require('util'); 3 | if (typeof util.inherits !== 'function') throw ''; 4 | module.exports = util.inherits; 5 | } catch (e) { 6 | module.exports = require('./inherits_browser.js'); 7 | } 8 | -------------------------------------------------------------------------------- /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/ini/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if a file path is a binary file. 3 | 4 | @example 5 | ``` 6 | import isBinaryPath = require('is-binary-path'); 7 | 8 | isBinaryPath('source/unicorn.png'); 9 | //=> true 10 | 11 | isBinaryPath('source/unicorn.txt'); 12 | //=> false 13 | ``` 14 | */ 15 | declare function isBinaryPath(filePath: string): boolean; 16 | 17 | export = isBinaryPath; 18 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const binaryExtensions = require('binary-extensions'); 4 | 5 | const extensions = new Set(binaryExtensions); 6 | 7 | module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); 8 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/readme.md: -------------------------------------------------------------------------------- 1 | # is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) 2 | 3 | > Check if a file path is a binary file 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install is-binary-path 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isBinaryPath = require('is-binary-path'); 17 | 18 | isBinaryPath('source/unicorn.png'); 19 | //=> true 20 | 21 | isBinaryPath('source/unicorn.txt'); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## Related 27 | 28 | - [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions 29 | - [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) 35 | -------------------------------------------------------------------------------- /node_modules/is-ci/bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict' 3 | 4 | process.exit(require('./') ? 0 : 1) 5 | -------------------------------------------------------------------------------- /node_modules/is-ci/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = require('ci-info').isCI 4 | -------------------------------------------------------------------------------- /node_modules/is-extglob/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-extglob 3 | * 4 | * Copyright (c) 2014-2016, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | module.exports = function isExtglob(str) { 9 | if (typeof str !== 'string' || str === '') { 10 | return false; 11 | } 12 | 13 | var match; 14 | while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { 15 | if (match[2]) return true; 16 | str = str.slice(match.index + match[0].length); 17 | } 18 | 19 | return false; 20 | }; 21 | -------------------------------------------------------------------------------- /node_modules/is-fullwidth-code-point/readme.md: -------------------------------------------------------------------------------- 1 | # is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) 2 | 3 | > Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-fullwidth-code-point 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 17 | 18 | isFullwidthCodePoint('谢'.codePointAt()); 19 | //=> true 20 | 21 | isFullwidthCodePoint('a'.codePointAt()); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## API 27 | 28 | ### isFullwidthCodePoint(input) 29 | 30 | #### input 31 | 32 | Type: `number` 33 | 34 | [Code point](https://en.wikipedia.org/wiki/Code_point) of a character. 35 | 36 | 37 | ## License 38 | 39 | MIT © [Sindre Sorhus](https://sindresorhus.com) 40 | -------------------------------------------------------------------------------- /node_modules/is-installed-globally/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const globalDirs = require('global-dirs'); 3 | const isPathInside = require('is-path-inside'); 4 | 5 | module.exports = isPathInside(__dirname, globalDirs.yarn.packages) || isPathInside(__dirname, globalDirs.npm.packages); 6 | -------------------------------------------------------------------------------- /node_modules/is-npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = 'npm_config_username' in process.env || 3 | 'npm_package_name' in process.env || 4 | 'npm_config_heading' in process.env; 5 | -------------------------------------------------------------------------------- /node_modules/is-npm/readme.md: -------------------------------------------------------------------------------- 1 | # is-npm [![Build Status](https://travis-ci.org/sindresorhus/is-npm.svg?branch=master)](https://travis-ci.org/sindresorhus/is-npm) 2 | 3 | > Check if your code is running as an [npm script](https://www.npmjs.org/doc/misc/npm-scripts.html) 4 | 5 | 6 | ## Install 7 | 8 | ```sh 9 | $ npm install --save is-npm 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isNpm = require('is-npm'); 17 | console.log(isNpm); 18 | ``` 19 | 20 | ```sh 21 | $ node foo.js 22 | #=> false 23 | $ npm run foo 24 | #=> true 25 | ``` 26 | 27 | 28 | ## License 29 | 30 | MIT © [Sindre Sorhus](http://sindresorhus.com) 31 | -------------------------------------------------------------------------------- /node_modules/is-number/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-number 3 | * 4 | * Copyright (c) 2014-present, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = function(num) { 11 | if (typeof num === 'number') { 12 | return num - num === 0; 13 | } 14 | if (typeof num === 'string' && num.trim() !== '') { 15 | return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); 16 | } 17 | return false; 18 | }; 19 | -------------------------------------------------------------------------------- /node_modules/is-obj/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (x) { 3 | var type = typeof x; 4 | return x !== null && (type === 'object' || type === 'function'); 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/is-obj/readme.md: -------------------------------------------------------------------------------- 1 | # is-obj [![Build Status](https://travis-ci.org/sindresorhus/is-obj.svg?branch=master)](https://travis-ci.org/sindresorhus/is-obj) 2 | 3 | > Check if a value is an object 4 | 5 | Keep in mind that array, function, regexp, etc, are objects in JavaScript.
6 | See [`is-plain-obj`](https://github.com/sindresorhus/is-plain-obj) if you want to check for plain objects. 7 | 8 | 9 | ## Install 10 | 11 | ``` 12 | $ npm install --save is-obj 13 | ``` 14 | 15 | 16 | ## Usage 17 | 18 | ```js 19 | const isObj = require('is-obj'); 20 | 21 | isObj({foo: 'bar'}); 22 | //=> true 23 | 24 | isObj([1, 2, 3]); 25 | //=> true 26 | 27 | isObj('foo'); 28 | //=> false 29 | ``` 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](https://sindresorhus.com) 35 | -------------------------------------------------------------------------------- /node_modules/is-path-inside/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path'); 3 | var pathIsInside = require('path-is-inside'); 4 | 5 | module.exports = function (a, b) { 6 | a = path.resolve(a); 7 | b = path.resolve(b); 8 | 9 | if (a === b) { 10 | return false; 11 | } 12 | 13 | return pathIsInside(a, b); 14 | }; 15 | -------------------------------------------------------------------------------- /node_modules/is-path-inside/readme.md: -------------------------------------------------------------------------------- 1 | # is-path-inside [![Build Status](https://travis-ci.org/sindresorhus/is-path-inside.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-inside) 2 | 3 | > Check if a path is inside another path 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-path-inside 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isPathInside = require('is-path-inside'); 17 | 18 | isPathInside('a/b/c', 'a/b'); 19 | //=> true 20 | 21 | isPathInside('a/b/c', 'x/y'); 22 | //=> false 23 | 24 | isPathInside('a/b/c', 'a/b/c'); 25 | //=> false 26 | 27 | isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus'); 28 | //=> true 29 | ``` 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](http://sindresorhus.com) 35 | -------------------------------------------------------------------------------- /node_modules/is-redirect/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (x) { 3 | if (typeof x !== 'number') { 4 | throw new TypeError('Expected a number'); 5 | } 6 | 7 | return x === 300 || 8 | x === 301 || 9 | x === 302 || 10 | x === 303 || 11 | x === 305 || 12 | x === 307 || 13 | x === 308; 14 | }; 15 | -------------------------------------------------------------------------------- /node_modules/is-redirect/readme.md: -------------------------------------------------------------------------------- 1 | # is-redirect [![Build Status](https://travis-ci.org/sindresorhus/is-redirect.svg?branch=master)](https://travis-ci.org/sindresorhus/is-redirect) 2 | 3 | > Check if a number is a [redirect HTTP status code](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-redirect 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isRedirect = require('is-redirect'); 17 | 18 | isRedirect(302); 19 | //=> true 20 | 21 | isRedirect(200); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## License 27 | 28 | MIT © [Sindre Sorhus](http://sindresorhus.com) 29 | -------------------------------------------------------------------------------- /node_modules/is-retry-allowed/readme.md: -------------------------------------------------------------------------------- 1 | # is-retry-allowed [![Build Status](https://travis-ci.org/floatdrop/is-retry-allowed.svg?branch=master)](https://travis-ci.org/floatdrop/is-retry-allowed) 2 | 3 | Is retry allowed for Error? 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-retry-allowed 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isRetryAllowed = require('is-retry-allowed'); 17 | 18 | isRetryAllowed({code: 'ETIMEDOUT'}); 19 | //=> true 20 | 21 | isRetryAllowed({code: 'ENOTFOUND'}); 22 | //=> false 23 | 24 | isRetryAllowed({}); 25 | //=> true 26 | ``` 27 | 28 | 29 | ## API 30 | 31 | ### isRetryAllowed(error) 32 | 33 | #### error 34 | 35 | Type: `object` 36 | 37 | Object with `code` property, which will be used to determine retry. 38 | 39 | 40 | ## License 41 | 42 | MIT © [Vsevolod Strukchinsky](http://github.com/floatdrop) 43 | -------------------------------------------------------------------------------- /node_modules/is-stream/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var isStream = module.exports = function (stream) { 4 | return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'; 5 | }; 6 | 7 | isStream.writable = function (stream) { 8 | return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object'; 9 | }; 10 | 11 | isStream.readable = function (stream) { 12 | return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object'; 13 | }; 14 | 15 | isStream.duplex = function (stream) { 16 | return isStream.writable(stream) && isStream.readable(stream); 17 | }; 18 | 19 | isStream.transform = function (stream) { 20 | return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object'; 21 | }; 22 | -------------------------------------------------------------------------------- /node_modules/is-stream/readme.md: -------------------------------------------------------------------------------- 1 | # is-stream [![Build Status](https://travis-ci.org/sindresorhus/is-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/is-stream) 2 | 3 | > Check if something is a [Node.js stream](https://nodejs.org/api/stream.html) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-stream 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const fs = require('fs'); 17 | const isStream = require('is-stream'); 18 | 19 | isStream(fs.createReadStream('unicorn.png')); 20 | //=> true 21 | 22 | isStream({}); 23 | //=> false 24 | ``` 25 | 26 | 27 | ## API 28 | 29 | ### isStream(stream) 30 | 31 | #### isStream.writable(stream) 32 | 33 | #### isStream.readable(stream) 34 | 35 | #### isStream.duplex(stream) 36 | 37 | #### isStream.transform(stream) 38 | 39 | 40 | ## License 41 | 42 | MIT © [Sindre Sorhus](https://sindresorhus.com) 43 | -------------------------------------------------------------------------------- /node_modules/isarray/index.js: -------------------------------------------------------------------------------- 1 | var toString = {}.toString; 2 | 3 | module.exports = Array.isArray || function (arr) { 4 | return toString.call(arr) == '[object Array]'; 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/isexe/.npmignore: -------------------------------------------------------------------------------- 1 | .nyc_output/ 2 | coverage/ 3 | -------------------------------------------------------------------------------- /node_modules/isexe/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/isexe/mode.js: -------------------------------------------------------------------------------- 1 | module.exports = isexe 2 | isexe.sync = sync 3 | 4 | var fs = require('fs') 5 | 6 | function isexe (path, options, cb) { 7 | fs.stat(path, function (er, stat) { 8 | cb(er, er ? false : checkStat(stat, options)) 9 | }) 10 | } 11 | 12 | function sync (path, options) { 13 | return checkStat(fs.statSync(path), options) 14 | } 15 | 16 | function checkStat (stat, options) { 17 | return stat.isFile() && checkMode(stat, options) 18 | } 19 | 20 | function checkMode (stat, options) { 21 | var mod = stat.mode 22 | var uid = stat.uid 23 | var gid = stat.gid 24 | 25 | var myUid = options.uid !== undefined ? 26 | options.uid : process.getuid && process.getuid() 27 | var myGid = options.gid !== undefined ? 28 | options.gid : process.getgid && process.getgid() 29 | 30 | var u = parseInt('100', 8) 31 | var g = parseInt('010', 8) 32 | var o = parseInt('001', 8) 33 | var ug = u | g 34 | 35 | var ret = (mod & o) || 36 | (mod & g) && gid === myGid || 37 | (mod & u) && uid === myUid || 38 | (mod & ug) && myUid === 0 39 | 40 | return ret 41 | } 42 | -------------------------------------------------------------------------------- /node_modules/isexe/windows.js: -------------------------------------------------------------------------------- 1 | module.exports = isexe 2 | isexe.sync = sync 3 | 4 | var fs = require('fs') 5 | 6 | function checkPathExt (path, options) { 7 | var pathext = options.pathExt !== undefined ? 8 | options.pathExt : process.env.PATHEXT 9 | 10 | if (!pathext) { 11 | return true 12 | } 13 | 14 | pathext = pathext.split(';') 15 | if (pathext.indexOf('') !== -1) { 16 | return true 17 | } 18 | for (var i = 0; i < pathext.length; i++) { 19 | var p = pathext[i].toLowerCase() 20 | if (p && path.substr(-p.length).toLowerCase() === p) { 21 | return true 22 | } 23 | } 24 | return false 25 | } 26 | 27 | function checkStat (stat, path, options) { 28 | if (!stat.isSymbolicLink() && !stat.isFile()) { 29 | return false 30 | } 31 | return checkPathExt(path, options) 32 | } 33 | 34 | function isexe (path, options, cb) { 35 | fs.stat(path, function (er, stat) { 36 | cb(er, er ? false : checkStat(stat, path, options)) 37 | }) 38 | } 39 | 40 | function sync (path, options) { 41 | return checkStat(fs.statSync(path), path, options) 42 | } 43 | -------------------------------------------------------------------------------- /node_modules/latest-version/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const packageJson = require('package-json'); 3 | 4 | module.exports = name => packageJson(name.toLowerCase()).then(data => data.version); 5 | -------------------------------------------------------------------------------- /node_modules/lowercase-keys/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (obj) { 3 | var ret = {}; 4 | var keys = Object.keys(Object(obj)); 5 | 6 | for (var i = 0; i < keys.length; i++) { 7 | ret[keys[i].toLowerCase()] = obj[keys[i]]; 8 | } 9 | 10 | return ret; 11 | }; 12 | -------------------------------------------------------------------------------- /node_modules/lowercase-keys/readme.md: -------------------------------------------------------------------------------- 1 | # lowercase-keys [![Build Status](https://travis-ci.org/sindresorhus/lowercase-keys.svg?branch=master)](https://travis-ci.org/sindresorhus/lowercase-keys) 2 | 3 | > Lowercase the keys of an object 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save lowercase-keys 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var lowercaseKeys = require('lowercase-keys'); 17 | 18 | lowercaseKeys({FOO: true, bAr: false}); 19 | //=> {foo: true, bar: false} 20 | ``` 21 | 22 | 23 | ## API 24 | 25 | ### lowercaseKeys(object) 26 | 27 | Lowercases the keys and returns a new object. 28 | 29 | 30 | 31 | ## License 32 | 33 | MIT © [Sindre Sorhus](http://sindresorhus.com) 34 | -------------------------------------------------------------------------------- /node_modules/lru-cache/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /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/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /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/minimatch/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/minimist/.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/minimist/example/parse.js: -------------------------------------------------------------------------------- 1 | var argv = require('../')(process.argv.slice(2)); 2 | console.log(argv); 3 | -------------------------------------------------------------------------------- /node_modules/minimist/test/all_bool.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('flag boolean true (default all --args to boolean)', function (t) { 5 | var argv = parse(['moo', '--honk', 'cow'], { 6 | boolean: true 7 | }); 8 | 9 | t.deepEqual(argv, { 10 | honk: true, 11 | _: ['moo', 'cow'] 12 | }); 13 | 14 | t.deepEqual(typeof argv.honk, 'boolean'); 15 | t.end(); 16 | }); 17 | 18 | test('flag boolean true only affects double hyphen arguments without equals signs', function (t) { 19 | var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], { 20 | boolean: true 21 | }); 22 | 23 | t.deepEqual(argv, { 24 | honk: true, 25 | tacos: 'good', 26 | p: 55, 27 | _: ['moo', 'cow'] 28 | }); 29 | 30 | t.deepEqual(typeof argv.honk, 'boolean'); 31 | t.end(); 32 | }); 33 | -------------------------------------------------------------------------------- /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 | 26 | test('move arguments after the -- into their own `--` array', function(t) { 27 | t.plan(1); 28 | t.deepEqual( 29 | parse([ '--name', 'John', 'before', '--', 'after' ], { '--': true }), 30 | { name: 'John', _: [ 'before' ], '--': [ 'after' ] }); 31 | }); 32 | -------------------------------------------------------------------------------- /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 | 22 | test('boolean default to null', function (t) { 23 | var argv = parse([], { 24 | boolean: 'maybe', 25 | default: { maybe: null } 26 | }); 27 | t.equal(argv.maybe, null); 28 | var argv = parse(['--maybe'], { 29 | boolean: 'maybe', 30 | default: { maybe: null } 31 | }); 32 | t.equal(argv.maybe, true); 33 | t.end(); 34 | 35 | }) 36 | -------------------------------------------------------------------------------- /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 | 18 | test('dotted default with no alias', function (t) { 19 | var argv = parse('', {default: {'a.b': 11}}); 20 | t.equal(argv.a.b, 11); 21 | t.end(); 22 | }); 23 | -------------------------------------------------------------------------------- /node_modules/minimist/test/kv_short.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('short -k=v' , function (t) { 5 | t.plan(1); 6 | 7 | var argv = parse([ '-b=123' ]); 8 | t.deepEqual(argv, { b: 123, _: [] }); 9 | }); 10 | 11 | test('multi short -k=v' , function (t) { 12 | t.plan(1); 13 | 14 | var argv = parse([ '-a=whatever', '-b=robots' ]); 15 | t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] }); 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/num.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('nums', function (t) { 5 | var argv = parse([ 6 | '-x', '1234', 7 | '-y', '5.67', 8 | '-z', '1e7', 9 | '-w', '10f', 10 | '--hex', '0xdeadbeef', 11 | '789' 12 | ]); 13 | t.deepEqual(argv, { 14 | x : 1234, 15 | y : 5.67, 16 | z : 1e7, 17 | w : '10f', 18 | hex : 0xdeadbeef, 19 | _ : [ 789 ] 20 | }); 21 | t.deepEqual(typeof argv.x, 'number'); 22 | t.deepEqual(typeof argv.y, 'number'); 23 | t.deepEqual(typeof argv.z, 'number'); 24 | t.deepEqual(typeof argv.w, 'string'); 25 | t.deepEqual(typeof argv.hex, 'number'); 26 | t.deepEqual(typeof argv._[0], 'number'); 27 | t.end(); 28 | }); 29 | 30 | test('already a number', function (t) { 31 | var argv = parse([ '-x', 1234, 789 ]); 32 | t.deepEqual(argv, { x : 1234, _ : [ 789 ] }); 33 | t.deepEqual(typeof argv.x, 'number'); 34 | t.deepEqual(typeof argv._[0], 'number'); 35 | t.end(); 36 | }); 37 | -------------------------------------------------------------------------------- /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/stop_early.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('stops parsing on the first non-option when stopEarly is set', function (t) { 5 | var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], { 6 | stopEarly: true 7 | }); 8 | 9 | t.deepEqual(argv, { 10 | aaa: 'bbb', 11 | _: ['ccc', '--ddd'] 12 | }); 13 | 14 | t.end(); 15 | }); 16 | -------------------------------------------------------------------------------- /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/nodemon/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "node-style-guide", 3 | "requireCapitalizedComments": null, 4 | "requireSpacesInAnonymousFunctionExpression": { 5 | "beforeOpeningCurlyBrace": true, 6 | "beforeOpeningRoundBrace": true 7 | }, 8 | "disallowSpacesInNamedFunctionExpression": { 9 | "beforeOpeningRoundBrace": true 10 | }, 11 | "excludeFiles": ["node_modules/**"], 12 | "disallowSpacesInFunction": null 13 | } -------------------------------------------------------------------------------- /node_modules/nodemon/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | "camelcase": true, 4 | "curly": true, 5 | "devel": true, 6 | "eqeqeq": true, 7 | "forin": true, 8 | "indent": 2, 9 | "noarg": true, 10 | "node": true, 11 | "quotmark": "single", 12 | "undef": true, 13 | "strict": false, 14 | "unused": true 15 | } 16 | 17 | -------------------------------------------------------------------------------- /node_modules/nodemon/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - ~/.npm 5 | notifications: 6 | email: false 7 | node_js: 8 | - '12' 9 | - '11' 10 | - '10' 11 | - '8' 12 | before_install: 13 | - if [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" >> .npmrc; fi 14 | after_success: 15 | - npm run semantic-release 16 | branches: 17 | except: 18 | - /^v\d+\.\d+\.\d+$/ 19 | -------------------------------------------------------------------------------- /node_modules/nodemon/bin/nodemon.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const cli = require('../lib/cli'); 4 | const nodemon = require('../lib/'); 5 | const options = cli.parse(process.argv); 6 | 7 | nodemon(options); 8 | 9 | const fs = require('fs'); 10 | 11 | // checks for available update and returns an instance 12 | const pkg = JSON.parse(fs.readFileSync(__dirname + '/../package.json')); 13 | 14 | if (pkg.version.indexOf('0.0.0') !== 0 && options.noUpdateNotifier !== true) { 15 | require('update-notifier')({ pkg }).notify(); 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/nodemon/bin/postinstall.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | function main() { 4 | if (process.env.SUPPRESS_SUPPORT) { 5 | return; 6 | } 7 | 8 | try { 9 | const Configstore = require('configstore'); 10 | const pkg = require(__dirname + '/../package.json'); 11 | const now = Date.now(); 12 | 13 | var week = 1000 * 60 * 60 * 24 * 7; 14 | 15 | // create a Configstore instance with an unique ID e.g. 16 | // Package name and optionally some default values 17 | const conf = new Configstore(pkg.name); 18 | const last = conf.get('lastCheck'); 19 | 20 | if (!last || now - week > last) { 21 | console.log('\u001b[32mLove nodemon? You can now support the project via the open collective:\u001b[22m\u001b[39m\n > \u001b[96m\u001b[1mhttps://opencollective.com/nodemon/donate\u001b[0m\n'); 22 | conf.set('lastCheck', now); 23 | } 24 | } catch (e) { 25 | console.log('\u001b[32mLove nodemon? You can now support the project via the open collective:\u001b[22m\u001b[39m\n > \u001b[96m\u001b[1mhttps://opencollective.com/nodemon/donate\u001b[0m\n'); 26 | } 27 | } 28 | 29 | main(); 30 | -------------------------------------------------------------------------------- /node_modules/nodemon/commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rules: { 3 | 'body-tense': [0, 'never', 0], 4 | lang: 'eng', 5 | }, 6 | extends: ['@commitlint/config-angular'], 7 | }; 8 | -------------------------------------------------------------------------------- /node_modules/nodemon/doc/cli/authors.txt: -------------------------------------------------------------------------------- 1 | 2 | Remy Sharp - author and maintainer 3 | https://github.com/remy 4 | https://twitter.com/rem 5 | 6 | Contributors: https://github.com/remy/nodemon/graphs/contributors ❤︎ 7 | 8 | Please help make nodemon better: https://github.com/remy/nodemon/ 9 | -------------------------------------------------------------------------------- /node_modules/nodemon/doc/cli/logo.txt: -------------------------------------------------------------------------------- 1 | ; ; 2 | kO. x0 3 | KMX, .:x0kc. 'KMN 4 | 0MMM0: 'oKMMMMMMMXd, ;OMMMX 5 | oMMMMMWKOONMMMMMMMMMMMMMWOOKWMMMMMx 6 | OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK. 7 | .oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd. 8 | KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN 9 | KMMMMMMMMMMMMMMW0k0WMMMMMMMMMMMMMMW 10 | KMMMMMMMMMMMNk:. :xNMMMMMMMMMMMW 11 | KMMMMMMMMMMK OMMMMMMMMMMW 12 | KMMMMMMMMMMO xMMMMMMMMMMN 13 | KMMMMMMMMMMO xMMMMMMMMMMN 14 | KMMMMMMMMMMO xMMMMMMMMMMN 15 | KMMMMMMMMMMO xMMMMMMMMMMN 16 | KMMMMMMMMMMO xMMMMMMMMMMN 17 | KMMMMMMMMMNc ;NMMMMMMMMMN 18 | KMMMMMW0o' .lOWMMMMMN 19 | KMMKd; ,oKMMN 20 | kX: ,K0 -------------------------------------------------------------------------------- /node_modules/nodemon/doc/cli/topics.txt: -------------------------------------------------------------------------------- 1 | 2 | options .................. show all available nodemon options 3 | config ................... default config options using nodemon.json 4 | authors .................. contributors to this project 5 | logo ..................... <3 6 | whoami ................... I, AM, NODEMON \o/ 7 | 8 | Please support https://github.com/remy/nodemon/ 9 | -------------------------------------------------------------------------------- /node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /node_modules/nodemon/lib/config/defaults.js: -------------------------------------------------------------------------------- 1 | var ignoreRoot = require('ignore-by-default').directories(); 2 | 3 | // default options for config.options 4 | module.exports = { 5 | restartable: 'rs', 6 | colours: true, 7 | execMap: { 8 | py: 'python', 9 | rb: 'ruby', 10 | ts: 'ts-node', 11 | // more can be added here such as ls: lsc - but please ensure it's cross 12 | // compatible with linux, mac and windows, or make the default.js 13 | // dynamically append the `.cmd` for node based utilities 14 | }, 15 | ignoreRoot: ignoreRoot.map(_ => `**/${_}/**`), 16 | watch: ['*.*'], 17 | stdin: true, 18 | runOnChangeOnly: false, 19 | verbose: false, 20 | signal: 'SIGUSR2', 21 | // 'stdout' refers to the default behaviour of a required nodemon's child, 22 | // but also includes stderr. If this is false, data is still dispatched via 23 | // nodemon.on('stdout/stderr') 24 | stdout: true, 25 | watchOptions: { 26 | 27 | }, 28 | }; 29 | -------------------------------------------------------------------------------- /node_modules/nodemon/lib/help/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | const supportsColor = require('supports-color'); 4 | 5 | module.exports = help; 6 | 7 | const highlight = supportsColor.stdout ? '\x1B\[$1m' : ''; 8 | 9 | function help(item) { 10 | if (!item) { 11 | item = 'help'; 12 | } else if (item === true) { // if used with -h or --help and no args 13 | item = 'help'; 14 | } 15 | 16 | // cleanse the filename to only contain letters 17 | // aka: /\W/g but figured this was eaiser to read 18 | item = item.replace(/[^a-z]/gi, ''); 19 | 20 | try { 21 | var dir = path.join(__dirname, '..', '..', 'doc', 'cli', item + '.txt'); 22 | var body = fs.readFileSync(dir, 'utf8'); 23 | return body.replace(/\\x1B\[(.)m/g, highlight); 24 | } catch (e) { 25 | return '"' + item + '" help can\'t be found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /node_modules/nodemon/lib/monitor/signals.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SIGHUP: 1, 3 | SIGINT: 2, 4 | SIGQUIT: 3, 5 | SIGILL: 4, 6 | SIGTRAP: 5, 7 | SIGABRT: 6, 8 | SIGBUS: 7, 9 | SIGFPE: 8, 10 | SIGKILL: 9, 11 | SIGUSR1: 10, 12 | SIGSEGV: 11, 13 | SIGUSR2: 12, 14 | SIGPIPE: 13, 15 | SIGALRM: 14, 16 | SIGTERM: 15, 17 | SIGSTKFLT: 16, 18 | SIGCHLD: 17, 19 | SIGCONT: 18, 20 | SIGSTOP: 19, 21 | SIGTSTP: 20, 22 | SIGTTIN: 21, 23 | SIGTTOU: 22, 24 | SIGURG: 23, 25 | SIGXCPU: 24, 26 | SIGXFSZ: 25, 27 | SIGVTALRM: 26, 28 | SIGPROF: 27, 29 | SIGWINCH: 28, 30 | SIGIO: 29, 31 | SIGPWR: 30, 32 | SIGSYS: 31, 33 | SIGRTMIN: 35, 34 | } 35 | -------------------------------------------------------------------------------- /node_modules/nodemon/lib/rules/parse.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var fs = require('fs'); 3 | 4 | /** 5 | * Parse the nodemon config file, supporting both old style 6 | * plain text config file, and JSON version of the config 7 | * 8 | * @param {String} filename 9 | * @param {Function} callback 10 | */ 11 | function parse(filename, callback) { 12 | var rules = { 13 | ignore: [], 14 | watch: [], 15 | }; 16 | 17 | fs.readFile(filename, 'utf8', function (err, content) { 18 | 19 | if (err) { 20 | return callback(err); 21 | } 22 | 23 | var json = null; 24 | try { 25 | json = JSON.parse(content); 26 | } catch (e) {} 27 | 28 | if (json !== null) { 29 | rules = { 30 | ignore: json.ignore || [], 31 | watch: json.watch || [], 32 | }; 33 | 34 | return callback(null, rules); 35 | } 36 | 37 | // otherwise return the raw file 38 | return callback(null, { raw: content.split(/\n/) }); 39 | }); 40 | } 41 | 42 | module.exports = parse; 43 | 44 | -------------------------------------------------------------------------------- /node_modules/nodemon/lib/utils/clone.js: -------------------------------------------------------------------------------- 1 | module.exports = clone; 2 | 3 | // via http://stackoverflow.com/a/728694/22617 4 | function clone(obj) { 5 | // Handle the 3 simple types, and null or undefined 6 | if (null === obj || 'object' !== typeof obj) { 7 | return obj; 8 | } 9 | 10 | var copy; 11 | 12 | // Handle Date 13 | if (obj instanceof Date) { 14 | copy = new Date(); 15 | copy.setTime(obj.getTime()); 16 | return copy; 17 | } 18 | 19 | // Handle Array 20 | if (obj instanceof Array) { 21 | copy = []; 22 | for (var i = 0, len = obj.length; i < len; i++) { 23 | copy[i] = clone(obj[i]); 24 | } 25 | return copy; 26 | } 27 | 28 | // Handle Object 29 | if (obj instanceof Object) { 30 | copy = {}; 31 | for (var attr in obj) { 32 | if (obj.hasOwnProperty && obj.hasOwnProperty(attr)) { 33 | copy[attr] = clone(obj[attr]); 34 | } 35 | } 36 | return copy; 37 | } 38 | 39 | throw new Error('Unable to copy obj! Its type isn\'t supported.'); 40 | } -------------------------------------------------------------------------------- /node_modules/nodemon/lib/utils/colour.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Encodes a string in a colour: red, yellow or green 3 | * @param {String} c colour to highlight in 4 | * @param {String} str the string to encode 5 | * @return {String} coloured string for terminal printing 6 | */ 7 | function colour(c, str) { 8 | return (colour[c] || colour.black) + str + colour.black; 9 | } 10 | 11 | function strip(str) { 12 | re.lastIndex = 0; // reset position 13 | return str.replace(re, ''); 14 | } 15 | 16 | colour.red = '\x1B[31m'; 17 | colour.yellow = '\x1B[33m'; 18 | colour.green = '\x1B[32m'; 19 | colour.black = '\x1B[39m'; 20 | 21 | var reStr = Object.keys(colour).map(key => colour[key]).join('|'); 22 | var re = new RegExp(('(' + reStr + ')').replace(/\[/g, '\\['), 'g'); 23 | 24 | colour.strip = strip; 25 | 26 | module.exports = colour; 27 | -------------------------------------------------------------------------------- /node_modules/nodemon/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /node_modules/nodemon/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /** 4 | * Detect Electron renderer / nwjs process, which is node, but we should 5 | * treat as a browser. 6 | */ 7 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 8 | module.exports = require('./browser.js'); 9 | } else { 10 | module.exports = require('./node.js'); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /node_modules/npm-run-path/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const pathKey = require('path-key'); 4 | 5 | module.exports = opts => { 6 | opts = Object.assign({ 7 | cwd: process.cwd(), 8 | path: process.env[pathKey()] 9 | }, opts); 10 | 11 | let prev; 12 | let pth = path.resolve(opts.cwd); 13 | const ret = []; 14 | 15 | while (prev !== pth) { 16 | ret.push(path.join(pth, 'node_modules/.bin')); 17 | prev = pth; 18 | pth = path.resolve(pth, '..'); 19 | } 20 | 21 | // ensure the running `node` binary is used 22 | ret.push(path.dirname(process.execPath)); 23 | 24 | return ret.concat(opts.path).join(path.delimiter); 25 | }; 26 | 27 | module.exports.env = opts => { 28 | opts = Object.assign({ 29 | env: process.env 30 | }, opts); 31 | 32 | const env = Object.assign({}, opts.env); 33 | const path = pathKey({env}); 34 | 35 | opts.path = env[path]; 36 | env[path] = module.exports(opts); 37 | 38 | return env; 39 | }; 40 | -------------------------------------------------------------------------------- /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/p-finally/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = (promise, onFinally) => { 3 | onFinally = onFinally || (() => {}); 4 | 5 | return promise.then( 6 | val => new Promise(resolve => { 7 | resolve(onFinally()); 8 | }).then(() => val), 9 | err => new Promise(resolve => { 10 | resolve(onFinally()); 11 | }).then(() => { 12 | throw err; 13 | }) 14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /node_modules/parseqs/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | npm-debug.log -------------------------------------------------------------------------------- /node_modules/parseqs/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /node_modules/parseqs/README.md: -------------------------------------------------------------------------------- 1 | Provides methods for converting an object into string representation, and vice versa. 2 | -------------------------------------------------------------------------------- /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/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .node_modules/* -------------------------------------------------------------------------------- /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/parseuri/README.md: -------------------------------------------------------------------------------- 1 | # parseuri 2 | Module for parsing URI's in engine.io-client 3 | -------------------------------------------------------------------------------- /node_modules/path-is-inside/lib/path-is-inside.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var path = require("path"); 4 | 5 | module.exports = function (thePath, potentialParent) { 6 | // For inside-directory checking, we want to allow trailing slashes, so normalize. 7 | thePath = stripTrailingSep(thePath); 8 | potentialParent = stripTrailingSep(potentialParent); 9 | 10 | // Node treats only Windows as case-insensitive in its path module; we follow those conventions. 11 | if (process.platform === "win32") { 12 | thePath = thePath.toLowerCase(); 13 | potentialParent = potentialParent.toLowerCase(); 14 | } 15 | 16 | return thePath.lastIndexOf(potentialParent, 0) === 0 && 17 | ( 18 | thePath[potentialParent.length] === path.sep || 19 | thePath[potentialParent.length] === undefined 20 | ); 21 | }; 22 | 23 | function stripTrailingSep(thePath) { 24 | if (thePath[thePath.length - 1] === path.sep) { 25 | return thePath.slice(0, -1); 26 | } 27 | return thePath; 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/path-key/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = opts => { 3 | opts = opts || {}; 4 | 5 | const env = opts.env || process.env; 6 | const platform = opts.platform || process.platform; 7 | 8 | if (platform !== 'win32') { 9 | return 'PATH'; 10 | } 11 | 12 | return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; 13 | }; 14 | -------------------------------------------------------------------------------- /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/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /node_modules/prepend-http/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (url) { 3 | if (typeof url !== 'string') { 4 | throw new TypeError('Expected a string, got ' + typeof url); 5 | } 6 | 7 | url = url.trim(); 8 | 9 | if (/^\.*\/|^(?!localhost)\w+:/.test(url)) { 10 | return url; 11 | } 12 | 13 | return url.replace(/^(?!(?:\w+:)?\/\/)/, 'http://'); 14 | }; 15 | -------------------------------------------------------------------------------- /node_modules/prepend-http/readme.md: -------------------------------------------------------------------------------- 1 | # prepend-http [![Build Status](https://travis-ci.org/sindresorhus/prepend-http.svg?branch=master)](https://travis-ci.org/sindresorhus/prepend-http) 2 | 3 | > Prepend `http://` to humanized URLs like `todomvc.com` and `localhost` 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save prepend-http 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const prependHttp = require('prepend-http'); 17 | 18 | prependHttp('todomvc.com'); 19 | //=> 'http://todomvc.com' 20 | 21 | prependHttp('localhost'); 22 | //=> 'http://localhost' 23 | 24 | prependHttp('http://todomvc.com'); 25 | //=> 'http://todomvc.com' 26 | ``` 27 | 28 | 29 | ## License 30 | 31 | MIT © [Sindre Sorhus](https://sindresorhus.com) 32 | -------------------------------------------------------------------------------- /node_modules/pseudomap/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/pseudomap/map.js: -------------------------------------------------------------------------------- 1 | if (process.env.npm_package_name === 'pseudomap' && 2 | process.env.npm_lifecycle_script === 'test') 3 | process.env.TEST_PSEUDOMAP = 'true' 4 | 5 | if (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) { 6 | module.exports = Map 7 | } else { 8 | module.exports = require('./pseudomap') 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - ~/.npm 5 | notifications: 6 | email: false 7 | node_js: 8 | - '8' 9 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/lib/index.js: -------------------------------------------------------------------------------- 1 | const exec = require('child_process').exec; 2 | const tree = require('./tree'); 3 | const utils = require('./utils'); 4 | var hasPS = true; 5 | 6 | // discover if the OS has `ps`, and therefore can use psTree 7 | exec('ps', error => { 8 | module.exports.hasPS = hasPS = !error; 9 | }); 10 | 11 | module.exports = function main(pid, callback) { 12 | if (typeof pid === 'number') { 13 | pid = pid.toString(); 14 | } 15 | 16 | if (hasPS && !process.env.NO_PS) { 17 | return tree(pid, callback); 18 | } 19 | 20 | utils 21 | .getStat() 22 | .then(utils.tree) 23 | .then(tree => utils.pidsForTree(tree, pid)) 24 | .then(res => callback(null, res.map(p => p.PID))) 25 | .catch(error => callback(error)); 26 | }; 27 | 28 | if (!module.parent) { 29 | module.exports(process.argv[2], (e, pids) => console.log(pids)); 30 | } 31 | 32 | module.exports.hasPS = hasPS; 33 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/lib/tree.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | 3 | module.exports = function(rootPid, callback) { 4 | const tree = {}; 5 | var output = ''; 6 | 7 | // *nix 8 | const ps = spawn('ps', ['-A', '-o', 'ppid,pid']); 9 | ps.stdout.on('data', data => { 10 | output += data.toString('ascii'); 11 | }); 12 | 13 | ps.on('close', () => { 14 | try { 15 | const res = output 16 | .split('\n') 17 | .slice(1) 18 | .map(_ => _.trim()) 19 | .reduce((acc, line) => { 20 | if (line.indexOf(rootPid + ' ') === 0) { 21 | const pid = line.split(/\s+/).pop(); 22 | acc.push(parseInt(pid, 10)); 23 | rootPid = pid; 24 | } 25 | 26 | return acc; 27 | }, []); 28 | 29 | callback(null, res); 30 | } catch (e) { 31 | callback(e, null); 32 | } 33 | }); 34 | }; 35 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/tests/fixtures/index.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | const sub = spawn( 3 | 'sh', 4 | ['-c', 'node -e "setInterval(() => console.log(`running`), 200)"'], 5 | { 6 | stdio: 'pipe', 7 | } 8 | ); 9 | -------------------------------------------------------------------------------- /node_modules/qs/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | max_line_length = 160 11 | 12 | [test/*] 13 | max_line_length = off 14 | 15 | [*.md] 16 | max_line_length = off 17 | 18 | [*.json] 19 | max_line_length = off 20 | 21 | [Makefile] 22 | max_line_length = off 23 | 24 | [CHANGELOG.md] 25 | indent_style = space 26 | indent_size = 2 27 | 28 | [LICENSE] 29 | indent_size = 2 30 | max_line_length = off 31 | -------------------------------------------------------------------------------- /node_modules/qs/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /node_modules/qs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "complexity": 0, 8 | "consistent-return": 1, 9 | "func-name-matching": 0, 10 | "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], 11 | "indent": [2, 4], 12 | "max-lines-per-function": [2, { "max": 150 }], 13 | "max-params": [2, 14], 14 | "max-statements": [2, 52], 15 | "multiline-comment-style": 0, 16 | "no-continue": 1, 17 | "no-magic-numbers": 0, 18 | "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], 19 | "operator-linebreak": [2, "before"], 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/qs/lib/formats.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var replace = String.prototype.replace; 4 | var percentTwenties = /%20/g; 5 | 6 | module.exports = { 7 | 'default': 'RFC3986', 8 | formatters: { 9 | RFC1738: function (value) { 10 | return replace.call(value, percentTwenties, '+'); 11 | }, 12 | RFC3986: function (value) { 13 | return value; 14 | } 15 | }, 16 | RFC1738: 'RFC1738', 17 | RFC3986: 'RFC3986' 18 | }; 19 | -------------------------------------------------------------------------------- /node_modules/qs/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var stringify = require('./stringify'); 4 | var parse = require('./parse'); 5 | var formats = require('./formats'); 6 | 7 | module.exports = { 8 | formats: formats, 9 | parse: parse, 10 | stringify: stringify 11 | }; 12 | -------------------------------------------------------------------------------- /node_modules/qs/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "consistent-return": 2, 6 | "function-paren-newline": 0, 7 | "max-lines": 0, 8 | "max-lines-per-function": 0, 9 | "max-nested-callbacks": [2, 3], 10 | "max-statements": 0, 11 | "no-buffer-constructor": 0, 12 | "no-extend-native": 0, 13 | "no-magic-numbers": 0, 14 | "object-curly-newline": 0, 15 | "sort-keys": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/qs/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./parse'); 4 | 5 | require('./stringify'); 6 | 7 | require('./utils'); 8 | -------------------------------------------------------------------------------- /node_modules/rc/LICENSE.APACHE2: -------------------------------------------------------------------------------- 1 | Apache License, Version 2.0 2 | 3 | Copyright (c) 2011 Dominic Tarr 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | -------------------------------------------------------------------------------- /node_modules/rc/browser.js: -------------------------------------------------------------------------------- 1 | 2 | // when this is loaded into the browser, 3 | // just use the defaults... 4 | 5 | module.exports = function (name, defaults) { 6 | return defaults 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/rc/cli.js: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env node 2 | var rc = require('./index') 3 | 4 | console.log(JSON.stringify(rc(process.argv[2]), false, 2)) 5 | -------------------------------------------------------------------------------- /node_modules/rc/test/ini.js: -------------------------------------------------------------------------------- 1 | var cc =require('../lib/utils') 2 | var INI = require('ini') 3 | var assert = require('assert') 4 | 5 | function test(obj) { 6 | 7 | var _json, _ini 8 | var json = cc.parse (_json = JSON.stringify(obj)) 9 | var ini = cc.parse (_ini = INI.stringify(obj)) 10 | console.log(_ini, _json) 11 | assert.deepEqual(json, ini) 12 | } 13 | 14 | 15 | test({hello: true}) 16 | 17 | -------------------------------------------------------------------------------- /node_modules/registry-auth-token/.npmignore: -------------------------------------------------------------------------------- 1 | .editorconfig 2 | .eslintignore 3 | .eslintrc 4 | .travis.yml 5 | npm-debug.log 6 | coverage 7 | -------------------------------------------------------------------------------- /node_modules/registry-auth-token/base64.js: -------------------------------------------------------------------------------- 1 | const safeBuffer = require('safe-buffer').Buffer 2 | 3 | function decodeBase64 (base64) { 4 | return safeBuffer.from(base64, 'base64').toString('utf8') 5 | } 6 | 7 | function encodeBase64 (string) { 8 | return safeBuffer.from(string, 'utf8').toString('base64') 9 | } 10 | 11 | module.exports = { 12 | decodeBase64: decodeBase64, 13 | encodeBase64: encodeBase64 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/registry-auth-token/registry-url.js: -------------------------------------------------------------------------------- 1 | module.exports = function (scope, npmrc) { 2 | var rc = npmrc || require('rc')('npm', {registry: 'https://registry.npmjs.org/'}) 3 | var url = rc[scope + ':registry'] || rc.registry 4 | return url.slice(-1) === '/' ? url : url + '/' 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/registry-url/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (scope) { 3 | var rc = require('rc')('npm', {registry: 'https://registry.npmjs.org/'}); 4 | var url = rc[scope + ':registry'] || rc.registry; 5 | return url.slice(-1) === '/' ? url : url + '/'; 6 | }; 7 | -------------------------------------------------------------------------------- /node_modules/semver-diff/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var semver = require('semver'); 3 | 4 | module.exports = function (a, b) { 5 | if (semver.gt(a, b)) { 6 | return null; 7 | } 8 | 9 | a = semver.parse(a); 10 | b = semver.parse(b); 11 | 12 | for (var key in a) { 13 | if (key === 'major' || key === 'minor' || key === 'patch') { 14 | if (a[key] !== b[key]) { 15 | return key; 16 | } 17 | } 18 | 19 | if (key === 'prerelease' || key === 'build') { 20 | if (JSON.stringify(a[key]) !== JSON.stringify(b[key])) { 21 | return key; 22 | } 23 | } 24 | } 25 | 26 | return null; 27 | }; 28 | -------------------------------------------------------------------------------- /node_modules/semver/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # changes log 2 | 3 | ## 5.7 4 | 5 | * Add `minVersion` method 6 | 7 | ## 5.6 8 | 9 | * Move boolean `loose` param to an options object, with 10 | backwards-compatibility protection. 11 | * Add ability to opt out of special prerelease version handling with 12 | the `includePrerelease` option flag. 13 | 14 | ## 5.5 15 | 16 | * Add version coercion capabilities 17 | 18 | ## 5.4 19 | 20 | * Add intersection checking 21 | 22 | ## 5.3 23 | 24 | * Add `minSatisfying` method 25 | 26 | ## 5.2 27 | 28 | * Add `prerelease(v)` that returns prerelease components 29 | 30 | ## 5.1 31 | 32 | * Add Backus-Naur for ranges 33 | * Remove excessively cute inspection methods 34 | 35 | ## 5.0 36 | 37 | * Remove AMD/Browserified build artifacts 38 | * Fix ltr and gtr when using the `*` range 39 | * Fix for range `*` with a prerelease identifier 40 | -------------------------------------------------------------------------------- /node_modules/semver/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/semver/range.bnf: -------------------------------------------------------------------------------- 1 | range-set ::= range ( logical-or range ) * 2 | logical-or ::= ( ' ' ) * '||' ( ' ' ) * 3 | range ::= hyphen | simple ( ' ' simple ) * | '' 4 | hyphen ::= partial ' - ' partial 5 | simple ::= primitive | partial | tilde | caret 6 | primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial 7 | partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? 8 | xr ::= 'x' | 'X' | '*' | nr 9 | nr ::= '0' | [1-9] ( [0-9] ) * 10 | tilde ::= '~' partial 11 | caret ::= '^' partial 12 | qualifier ::= ( '-' pre )? ( '+' build )? 13 | pre ::= parts 14 | build ::= parts 15 | parts ::= part ( '.' part ) * 16 | part ::= nr | [-0-9A-Za-z]+ 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 | [![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) 4 | [![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) 5 | [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard) 6 | 7 | A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. 8 | 9 | ## Usage: 10 | 11 | ``` 12 | $ npm install --save setprototypeof 13 | ``` 14 | 15 | ```javascript 16 | var setPrototypeOf = require('setprototypeof') 17 | 18 | var obj = {} 19 | setPrototypeOf(obj, { 20 | foo: function () { 21 | return 'bar' 22 | } 23 | }) 24 | obj.foo() // bar 25 | ``` 26 | 27 | TypeScript is also supported: 28 | 29 | ```typescript 30 | import setPrototypeOf = require('setprototypeof') 31 | ``` 32 | -------------------------------------------------------------------------------- /node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /node_modules/setprototypeof/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint no-proto: 0 */ 3 | module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) 4 | 5 | function setProtoOf (obj, proto) { 6 | obj.__proto__ = proto 7 | return obj 8 | } 9 | 10 | function mixinProperties (obj, proto) { 11 | for (var prop in proto) { 12 | if (!obj.hasOwnProperty(prop)) { 13 | obj[prop] = proto[prop] 14 | } 15 | } 16 | return obj 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/setprototypeof/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint-env mocha */ 3 | /* eslint no-proto: 0 */ 4 | var assert = require('assert') 5 | var setPrototypeOf = require('..') 6 | 7 | describe('setProtoOf(obj, proto)', function () { 8 | it('should merge objects', function () { 9 | var obj = { a: 1, b: 2 } 10 | var proto = { b: 3, c: 4 } 11 | var mergeObj = setPrototypeOf(obj, proto) 12 | 13 | if (Object.getPrototypeOf) { 14 | assert.strictEqual(Object.getPrototypeOf(obj), proto) 15 | } else if ({ __proto__: [] } instanceof Array) { 16 | assert.strictEqual(obj.__proto__, proto) 17 | } else { 18 | assert.strictEqual(obj.a, 1) 19 | assert.strictEqual(obj.b, 2) 20 | assert.strictEqual(obj.c, 4) 21 | } 22 | assert.strictEqual(mergeObj, obj) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /node_modules/shebang-command/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var shebangRegex = require('shebang-regex'); 3 | 4 | module.exports = function (str) { 5 | var match = str.match(shebangRegex); 6 | 7 | if (!match) { 8 | return null; 9 | } 10 | 11 | var arr = match[0].replace(/#! ?/, '').split(' '); 12 | var bin = arr[0].split('/').pop(); 13 | var arg = arr[1]; 14 | 15 | return (bin === 'env' ? 16 | arg : 17 | bin + (arg ? ' ' + arg : '') 18 | ); 19 | }; 20 | -------------------------------------------------------------------------------- /node_modules/shebang-command/readme.md: -------------------------------------------------------------------------------- 1 | # shebang-command [![Build Status](https://travis-ci.org/kevva/shebang-command.svg?branch=master)](https://travis-ci.org/kevva/shebang-command) 2 | 3 | > Get the command from a shebang 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save shebang-command 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const shebangCommand = require('shebang-command'); 17 | 18 | shebangCommand('#!/usr/bin/env node'); 19 | //=> 'node' 20 | 21 | shebangCommand('#!/bin/bash'); 22 | //=> 'bash' 23 | ``` 24 | 25 | 26 | ## API 27 | 28 | ### shebangCommand(string) 29 | 30 | #### string 31 | 32 | Type: `string` 33 | 34 | String containing a shebang. 35 | 36 | 37 | ## License 38 | 39 | MIT © [Kevin Martensson](http://github.com/kevva) 40 | -------------------------------------------------------------------------------- /node_modules/shebang-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = /^#!.*/; 3 | -------------------------------------------------------------------------------- /node_modules/shebang-regex/readme.md: -------------------------------------------------------------------------------- 1 | # shebang-regex [![Build Status](https://travis-ci.org/sindresorhus/shebang-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/shebang-regex) 2 | 3 | > Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save shebang-regex 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var shebangRegex = require('shebang-regex'); 17 | var str = '#!/usr/bin/env node\nconsole.log("unicorns");'; 18 | 19 | shebangRegex.test(str); 20 | //=> true 21 | 22 | shebangRegex.exec(str)[0]; 23 | //=> '#!/usr/bin/env node' 24 | ``` 25 | 26 | 27 | ## License 28 | 29 | MIT © [Sindre Sorhus](http://sindresorhus.com) 30 | -------------------------------------------------------------------------------- /node_modules/signal-exit/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2015, Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software 6 | for any purpose with or without fee is hereby granted, provided 7 | that the above copyright notice and this permission notice 8 | appear in all copies. 9 | 10 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 12 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE 13 | LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES 14 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 15 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 16 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.idea/$CACHE_FILE$: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | General 12 | 13 | 14 | XPath 15 | 16 | 17 | 18 | 19 | AngularJS 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.idea/socket.io-adapter.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /node_modules/socket.io-adapter/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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 inherit 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-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-client/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer / nwjs process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = isBuf; 3 | 4 | var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function'; 5 | var withNativeArrayBuffer = typeof ArrayBuffer === 'function'; 6 | 7 | var isView = function (obj) { 8 | return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer); 9 | }; 10 | 11 | /** 12 | * Returns true if obj is a buffer or an arraybuffer. 13 | * 14 | * @api private 15 | */ 16 | 17 | function isBuf(obj) { 18 | return (withNativeBuffer && Buffer.isBuffer(obj)) || 19 | (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))); 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "globals": { 7 | "chrome": true 8 | }, 9 | "rules": { 10 | "no-console": 0, 11 | "no-empty": [1, { "allowEmptyCatch": true }] 12 | }, 13 | "extends": "eslint:recommended" 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | coverage 9 | bower.json 10 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - "4" 7 | - "6" 8 | - "8" 9 | 10 | install: 11 | - make install 12 | 13 | script: 14 | - make lint 15 | - make test 16 | 17 | matrix: 18 | include: 19 | - node_js: '8' 20 | env: BROWSER=1 21 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process === 'undefined' || process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/is-buffer.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = isBuf; 3 | 4 | var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function'; 5 | var withNativeArrayBuffer = typeof ArrayBuffer === 'function'; 6 | 7 | var isView = function (obj) { 8 | return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer); 9 | }; 10 | 11 | /** 12 | * Returns true if obj is a buffer or an arraybuffer. 13 | * 14 | * @api private 15 | */ 16 | 17 | function isBuf(obj) { 18 | return (withNativeBuffer && Buffer.isBuffer(obj)) || 19 | (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))); 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/socket.io-parser/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer / nwjs process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/socket.io/lib/parent-namespace.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Namespace = require('./namespace'); 4 | 5 | let count = 0; 6 | 7 | class ParentNamespace extends Namespace { 8 | 9 | constructor(server) { 10 | super(server, '/_' + (count++)); 11 | this.children = new Set(); 12 | } 13 | 14 | initAdapter() {} 15 | 16 | emit() { 17 | const args = Array.prototype.slice.call(arguments); 18 | 19 | this.children.forEach(nsp => { 20 | nsp.rooms = this.rooms; 21 | nsp.flags = this.flags; 22 | nsp.emit.apply(nsp, args); 23 | }); 24 | this.rooms = []; 25 | this.flags = {}; 26 | } 27 | 28 | createChild(name) { 29 | const namespace = new Namespace(this.server, name); 30 | namespace.fns = this.fns.slice(0); 31 | this.listeners('connect').forEach(listener => namespace.on('connect', listener)); 32 | this.listeners('connection').forEach(listener => namespace.on('connection', listener)); 33 | this.children.add(namespace); 34 | this.server.nsps[name] = namespace; 35 | return namespace; 36 | } 37 | } 38 | 39 | module.exports = ParentNamespace; 40 | -------------------------------------------------------------------------------- /node_modules/socket.io/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer / nwjs process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/string-width/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stripAnsi = require('strip-ansi'); 3 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 4 | 5 | module.exports = str => { 6 | if (typeof str !== 'string' || str.length === 0) { 7 | return 0; 8 | } 9 | 10 | str = stripAnsi(str); 11 | 12 | let width = 0; 13 | 14 | for (let i = 0; i < str.length; i++) { 15 | const code = str.codePointAt(i); 16 | 17 | // Ignore control characters 18 | if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { 19 | continue; 20 | } 21 | 22 | // Ignore combining characters 23 | if (code >= 0x300 && code <= 0x36F) { 24 | continue; 25 | } 26 | 27 | // Surrogates 28 | if (code > 0xFFFF) { 29 | i++; 30 | } 31 | 32 | width += isFullwidthCodePoint(code) ? 2 : 1; 33 | } 34 | 35 | return width; 36 | }; 37 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const ansiRegex = require('ansi-regex'); 3 | 4 | module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input; 5 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/readme.md: -------------------------------------------------------------------------------- 1 | # strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) 2 | 3 | > Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install strip-ansi 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const stripAnsi = require('strip-ansi'); 17 | 18 | stripAnsi('\u001B[4mUnicorn\u001B[0m'); 19 | //=> 'Unicorn' 20 | ``` 21 | 22 | 23 | ## Related 24 | 25 | - [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module 26 | - [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes 27 | - [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes 28 | - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right 29 | 30 | 31 | ## Maintainers 32 | 33 | - [Sindre Sorhus](https://github.com/sindresorhus) 34 | - [Josh Junon](https://github.com/qix-) 35 | 36 | 37 | ## License 38 | 39 | MIT 40 | -------------------------------------------------------------------------------- /node_modules/strip-eof/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (x) { 3 | var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt(); 4 | var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt(); 5 | 6 | if (x[x.length - 1] === lf) { 7 | x = x.slice(0, x.length - 1); 8 | } 9 | 10 | if (x[x.length - 1] === cr) { 11 | x = x.slice(0, x.length - 1); 12 | } 13 | 14 | return x; 15 | }; 16 | -------------------------------------------------------------------------------- /node_modules/strip-eof/readme.md: -------------------------------------------------------------------------------- 1 | # strip-eof [![Build Status](https://travis-ci.org/sindresorhus/strip-eof.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-eof) 2 | 3 | > Strip the [End-Of-File](https://en.wikipedia.org/wiki/End-of-file) (EOF) character from a string/buffer 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save strip-eof 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const stripEof = require('strip-eof'); 17 | 18 | stripEof('foo\nbar\n\n'); 19 | //=> 'foo\nbar\n' 20 | 21 | stripEof(new Buffer('foo\nbar\n\n')).toString(); 22 | //=> 'foo\nbar\n' 23 | ``` 24 | 25 | 26 | ## License 27 | 28 | MIT © [Sindre Sorhus](http://sindresorhus.com) 29 | -------------------------------------------------------------------------------- /node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/term-size/vendor/macos/term-size: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/node_modules/term-size/vendor/macos/term-size -------------------------------------------------------------------------------- /node_modules/term-size/vendor/windows/term-size.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sominator/multiplayer-card-project/7376519535afa3aec60f64b058964fefbf24e7c0/node_modules/term-size/vendor/windows/term-size.exe -------------------------------------------------------------------------------- /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/toidentifier/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * toidentifier 3 | * Copyright(c) 2016 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | * @public 10 | */ 11 | 12 | module.exports = toIdentifier 13 | 14 | /** 15 | * Trasform the given string into a JavaScript identifier 16 | * 17 | * @param {string} str 18 | * @returns {string} 19 | * @public 20 | */ 21 | 22 | function toIdentifier (str) { 23 | return str 24 | .split(' ') 25 | .map(function (token) { 26 | return token.slice(0, 1).toUpperCase() + token.slice(1) 27 | }) 28 | .join('') 29 | .replace(/[^ _0-9a-z]/gi, '') 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/touch/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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/undefsafe/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "node-style-guide", 3 | "requireCapitalizedComments": null, 4 | "requireSpacesInAnonymousFunctionExpression": { 5 | "beforeOpeningCurlyBrace": true, 6 | "beforeOpeningRoundBrace": true 7 | }, 8 | "disallowSpacesInNamedFunctionExpression": { 9 | "beforeOpeningRoundBrace": true 10 | }, 11 | "excludeFiles": ["node_modules/**"], 12 | "disallowSpacesInFunction": null 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/undefsafe/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": false, 3 | "camelcase": true, 4 | "curly": true, 5 | "devel": true, 6 | "eqeqeq": true, 7 | "forin": true, 8 | "indent": 2, 9 | "noarg": true, 10 | "node": true, 11 | "quotmark": "single", 12 | "undef": true, 13 | "strict": false, 14 | "unused": true 15 | } 16 | 17 | -------------------------------------------------------------------------------- /node_modules/undefsafe/.npmignore: -------------------------------------------------------------------------------- 1 | # .npmignore file 2 | test/ 3 | -------------------------------------------------------------------------------- /node_modules/undefsafe/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | cache: 4 | directories: 5 | - node_modules 6 | notifications: 7 | email: false 8 | node_js: 9 | - '4' 10 | before_install: 11 | - npm i -g npm@^2.0.0 12 | before_script: 13 | - npm prune 14 | after_success: 15 | - npm run semantic-release 16 | branches: 17 | except: 18 | - "/^v\\d+\\.\\d+\\.\\d+$/" 19 | -------------------------------------------------------------------------------- /node_modules/undefsafe/example.js: -------------------------------------------------------------------------------- 1 | var undefsafe = require('undefsafe'); 2 | 3 | var object = { 4 | a: { 5 | b: { 6 | c: 1, 7 | d: [1, 2, 3], 8 | e: 'remy' 9 | } 10 | } 11 | }; 12 | 13 | console.log(undefsafe(object, 'a.b.e')); // "remy" 14 | console.log(undefsafe(object, 'a.b.not.found')); // undefined 15 | -------------------------------------------------------------------------------- /node_modules/unique-string/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const cryptoRandomString = require('crypto-random-string'); 3 | 4 | module.exports = () => cryptoRandomString(32); 5 | -------------------------------------------------------------------------------- /node_modules/unique-string/readme.md: -------------------------------------------------------------------------------- 1 | # unique-string [![Build Status](https://travis-ci.org/sindresorhus/unique-string.svg?branch=master)](https://travis-ci.org/sindresorhus/unique-string) 2 | 3 | > Generate a unique random string 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save unique-string 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const uniqueString = require('unique-string'); 17 | 18 | uniqueString(); 19 | //=> 'b4de2a49c8ffa3fbee04446f045483b2' 20 | ``` 21 | 22 | 23 | ## API 24 | 25 | ### uniqueString() 26 | 27 | Returns a 32 character unique string. Matches the length of MD5, which is [unique enough](http://stackoverflow.com/a/2444336/64949) for non-crypto purposes. 28 | 29 | 30 | ## License 31 | 32 | MIT © [Sindre Sorhus](https://sindresorhus.com) 33 | -------------------------------------------------------------------------------- /node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /node_modules/unzip-response/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const PassThrough = require('stream').PassThrough; 3 | const zlib = require('zlib'); 4 | 5 | module.exports = res => { 6 | // TODO: use Array#includes when targeting Node.js 6 7 | if (['gzip', 'deflate'].indexOf(res.headers['content-encoding']) === -1) { 8 | return res; 9 | } 10 | 11 | const unzip = zlib.createUnzip(); 12 | const stream = new PassThrough(); 13 | 14 | stream.httpVersion = res.httpVersion; 15 | stream.headers = res.headers; 16 | stream.rawHeaders = res.rawHeaders; 17 | stream.trailers = res.trailers; 18 | stream.rawTrailers = res.rawTrailers; 19 | stream.setTimeout = res.setTimeout.bind(res); 20 | stream.statusCode = res.statusCode; 21 | stream.statusMessage = res.statusMessage; 22 | stream.socket = res.socket; 23 | 24 | unzip.on('error', err => { 25 | if (err.code === 'Z_BUF_ERROR') { 26 | stream.end(); 27 | return; 28 | } 29 | 30 | stream.emit('error', err); 31 | }); 32 | 33 | res.pipe(unzip).pipe(stream); 34 | 35 | return stream; 36 | }; 37 | -------------------------------------------------------------------------------- /node_modules/unzip-response/readme.md: -------------------------------------------------------------------------------- 1 | # unzip-response [![Build Status](https://travis-ci.org/sindresorhus/unzip-response.svg?branch=master)](https://travis-ci.org/sindresorhus/unzip-response) 2 | 3 | > Unzip a HTTP response if needed 4 | 5 | Unzips the response from [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) if it's gzipped/deflated, otherwise just passes it through. 6 | 7 | 8 | ## Install 9 | 10 | ``` 11 | $ npm install --save unzip-response 12 | ``` 13 | 14 | 15 | ## Usage 16 | 17 | ```js 18 | const http = require('http'); 19 | const unzipResponse = require('unzip-response'); 20 | 21 | http.get('http://sindresorhus.com', res => { 22 | res = unzipResponse(res); 23 | }); 24 | ``` 25 | 26 | 27 | ## License 28 | 29 | MIT © [Sindre Sorhus](https://sindresorhus.com) 30 | -------------------------------------------------------------------------------- /node_modules/update-notifier/check.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable unicorn/no-process-exit */ 2 | 'use strict'; 3 | let updateNotifier = require('.'); 4 | 5 | const options = JSON.parse(process.argv[2]); 6 | 7 | updateNotifier = new updateNotifier.UpdateNotifier(options); 8 | 9 | updateNotifier.checkNpm().then(update => { 10 | // Only update the last update check time on success 11 | updateNotifier.config.set('lastUpdateCheck', Date.now()); 12 | 13 | if (update.type && update.type !== 'latest') { 14 | updateNotifier.config.set('update', update); 15 | } 16 | 17 | // Call process exit explicitly to terminate the child process 18 | // Otherwise the child process will run forever, according to the Node.js docs 19 | process.exit(); 20 | }).catch(() => { 21 | process.exit(1); 22 | }); 23 | -------------------------------------------------------------------------------- /node_modules/url-parse-lax/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var url = require('url'); 3 | var prependHttp = require('prepend-http'); 4 | 5 | module.exports = function (x) { 6 | var withProtocol = prependHttp(x); 7 | var parsed = url.parse(withProtocol); 8 | 9 | if (withProtocol !== x) { 10 | parsed.protocol = null; 11 | } 12 | 13 | return parsed; 14 | }; 15 | -------------------------------------------------------------------------------- /node_modules/utils-merge/.npmignore: -------------------------------------------------------------------------------- 1 | CONTRIBUTING.md 2 | Makefile 3 | docs/ 4 | examples/ 5 | reports/ 6 | test/ 7 | 8 | .jshintrc 9 | .travis.yml 10 | -------------------------------------------------------------------------------- /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.2 / 2017-09-23 2 | ================== 3 | 4 | * perf: improve header token parsing speed 5 | 6 | 1.1.1 / 2017-03-20 7 | ================== 8 | 9 | * perf: hoist regular expression 10 | 11 | 1.1.0 / 2015-09-29 12 | ================== 13 | 14 | * Only accept valid field names in the `field` argument 15 | - Ensures the resulting string is a valid HTTP header value 16 | 17 | 1.0.1 / 2015-07-08 18 | ================== 19 | 20 | * Fix setting empty header from empty `field` 21 | * perf: enable strict mode 22 | * perf: remove argument reassignments 23 | 24 | 1.0.0 / 2014-08-10 25 | ================== 26 | 27 | * Accept valid `Vary` header string as `field` 28 | * Add `vary.append` for low-level string manipulation 29 | * Move to `jshttp` orgainzation 30 | 31 | 0.1.0 / 2014-06-05 32 | ================== 33 | 34 | * Support array of fields to set 35 | 36 | 0.0.0 / 2014-06-04 37 | ================== 38 | 39 | * Initial release 40 | -------------------------------------------------------------------------------- /node_modules/which/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/widest-line/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stringWidth = require('string-width'); 3 | 4 | module.exports = input => { 5 | let max = 0; 6 | for (const s of input.split('\n')) max = Math.max(max, stringWidth(s)); 7 | return max; 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/widest-line/readme.md: -------------------------------------------------------------------------------- 1 | # widest-line [![Build Status](https://travis-ci.org/sindresorhus/widest-line.svg?branch=master)](https://travis-ci.org/sindresorhus/widest-line) 2 | 3 | > Get the visual width of the widest line in a string - the number of columns required to display it 4 | 5 | Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. 6 | 7 | Useful to be able to know the maximum width a string will take up in the terminal. 8 | 9 | 10 | ## Install 11 | 12 | ``` 13 | $ npm install widest-line 14 | ``` 15 | 16 | 17 | ## Usage 18 | 19 | ```js 20 | const widestLine = require('widest-line'); 21 | 22 | widestLine('古\n\u001B[1m@\u001B[22m'); 23 | //=> 2 24 | ``` 25 | 26 | 27 | ## Related 28 | 29 | - [string-width](https://github.com/sindresorhus/string-width) - Get the visual width of a string 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](https://sindresorhus.com) 35 | -------------------------------------------------------------------------------- /node_modules/write-file-atomic/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2.4.3 2 | 3 | * Ignore errors raised by `fs.closeSync` when cleaning up after a write 4 | error. 5 | 6 | # 2.4.2 7 | 8 | * A pair of patches to fix some fd leaks. We would leak fds with sync use 9 | when errors occured and with async use any time fsync was not in use. (#34) 10 | 11 | # 2.4.1 12 | 13 | * Fix a bug where `signal-exit` instances would be leaked. This was fixed when addressing #35. 14 | 15 | # 2.4.0 16 | 17 | ## Features 18 | 19 | * Allow chown and mode options to be set to false to disable the defaulting behavior. (#20) 20 | * Support passing encoding strings in options slot for compat with Node.js API. (#31) 21 | * Add support for running inside of worker threads (#37) 22 | 23 | ## Fixes 24 | 25 | * Remove unneeded call when returning success (#36) 26 | -------------------------------------------------------------------------------- /node_modules/write-file-atomic/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Rebecca Turner 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | 7 | -------------------------------------------------------------------------------- /node_modules/ws/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function() { 4 | throw new Error( 5 | 'ws does not work in the browser. Browser clients must use the native ' + 6 | 'WebSocket object' 7 | ); 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/ws/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const WebSocket = require('./lib/websocket'); 4 | 5 | WebSocket.createWebSocketStream = require('./lib/stream'); 6 | WebSocket.Server = require('./lib/websocket-server'); 7 | WebSocket.Receiver = require('./lib/receiver'); 8 | WebSocket.Sender = require('./lib/sender'); 9 | 10 | module.exports = WebSocket; 11 | -------------------------------------------------------------------------------- /node_modules/ws/lib/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'], 5 | GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', 6 | kStatusCode: Symbol('status-code'), 7 | kWebSocket: Symbol('websocket'), 8 | EMPTY_BUFFER: Buffer.alloc(0), 9 | NOOP: () => {} 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/ws/lib/validation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | try { 4 | const isValidUTF8 = require('utf-8-validate'); 5 | 6 | exports.isValidUTF8 = 7 | typeof isValidUTF8 === 'object' 8 | ? isValidUTF8.Validation.isValidUTF8 // utf-8-validate@<3.0.0 9 | : isValidUTF8; 10 | } catch (e) /* istanbul ignore next */ { 11 | exports.isValidUTF8 = () => true; 12 | } 13 | 14 | /** 15 | * Checks if a status code is allowed in a close frame. 16 | * 17 | * @param {Number} code The status code 18 | * @return {Boolean} `true` if the status code is valid, else `false` 19 | * @public 20 | */ 21 | exports.isValidStatusCode = (code) => { 22 | return ( 23 | (code >= 1000 && 24 | code <= 1014 && 25 | code !== 1004 && 26 | code !== 1005 && 27 | code !== 1006) || 28 | (code >= 3000 && code <= 4999) 29 | ); 30 | }; 31 | -------------------------------------------------------------------------------- /node_modules/xdg-basedir/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const os = require('os'); 3 | const path = require('path'); 4 | 5 | const home = os.homedir(); 6 | const env = process.env; 7 | 8 | exports.data = env.XDG_DATA_HOME || 9 | (home ? path.join(home, '.local', 'share') : null); 10 | 11 | exports.config = env.XDG_CONFIG_HOME || 12 | (home ? path.join(home, '.config') : null); 13 | 14 | exports.cache = env.XDG_CACHE_HOME || (home ? path.join(home, '.cache') : null); 15 | 16 | exports.runtime = env.XDG_RUNTIME_DIR || null; 17 | 18 | exports.dataDirs = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':'); 19 | 20 | if (exports.data) { 21 | exports.dataDirs.unshift(exports.data); 22 | } 23 | 24 | exports.configDirs = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':'); 25 | 26 | if (exports.config) { 27 | exports.configDirs.unshift(exports.config); 28 | } 29 | -------------------------------------------------------------------------------- /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/yallist/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 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 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/yallist/iterator.js: -------------------------------------------------------------------------------- 1 | var Yallist = require('./yallist.js') 2 | 3 | Yallist.prototype[Symbol.iterator] = function* () { 4 | for (let walker = this.head; walker; walker = walker.next) { 5 | yield walker.value 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "multiplayer-card-project", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "nodemon server.js" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "express": "^4.17.1", 13 | "nodemon": "^2.0.2", 14 | "socket.io": "^2.3.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const server = require('express')(); 2 | const http = require('http').createServer(server); 3 | const io = require('socket.io')(http); 4 | let players = []; 5 | 6 | io.on('connection', function (socket) { 7 | console.log('A user connected: ' + socket.id); 8 | 9 | players.push(socket.id); 10 | 11 | if (players.length === 1) { 12 | io.emit('isPlayerA'); 13 | }; 14 | 15 | socket.on('dealCards', function () { 16 | io.emit('dealCards'); 17 | }); 18 | 19 | socket.on('cardPlayed', function (gameObject, isPlayerA) { 20 | io.emit('cardPlayed', gameObject, isPlayerA); 21 | }); 22 | 23 | socket.on('disconnect', function () { 24 | console.log('A user disconnected: ' + socket.id); 25 | players = players.filter(player => player !== socket.id); 26 | }); 27 | }); 28 | 29 | http.listen(3000, function () { 30 | console.log('Server started!'); 31 | }); --------------------------------------------------------------------------------