├── .DS_Store ├── .gitignore ├── Procfile ├── README.md ├── app.js ├── client ├── .DS_Store ├── README.md ├── build │ ├── asset-manifest.json │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ ├── precache-manifest.07db7a979aa9759aef3051540ddccaa3.js │ ├── robots.txt │ ├── service-worker.js │ └── static │ │ ├── css │ │ ├── main.cf0a5a8c.chunk.css │ │ └── main.cf0a5a8c.chunk.css.map │ │ └── js │ │ ├── 2.4d8a0161.chunk.js │ │ ├── 2.4d8a0161.chunk.js.LICENSE.txt │ │ ├── 2.4d8a0161.chunk.js.map │ │ ├── main.6f1325f0.chunk.js │ │ ├── main.6f1325f0.chunk.js.map │ │ ├── runtime-main.09b85ec0.js │ │ └── runtime-main.09b85ec0.js.map ├── package-lock.json ├── package.json ├── public │ ├── .DS_Store │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt └── src │ ├── .DS_Store │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── action │ ├── action.js │ └── type.js │ ├── assets │ ├── .DS_Store │ ├── 212021.gif │ ├── logo_transparent.png │ └── profile.png │ ├── component │ ├── .DS_Store │ ├── PrivateRoute.js │ ├── checkout │ │ ├── Checkout.js │ │ └── Checkout.module.css │ ├── dashboard │ │ └── Dashboard.js │ ├── favlistdetail │ │ ├── FavListDetail.js │ │ └── FavListDetail.module.css │ ├── findpassword │ │ ├── FindPassword.js │ │ └── FindPassword.module.css │ ├── login │ │ ├── Login.js │ │ └── Login.module.css │ ├── main │ │ ├── Main.js │ │ └── Main.module.css │ ├── nav │ │ ├── Nav.js │ │ └── Nav.module.css │ ├── orderSummary │ │ ├── OrderSummary.js │ │ └── OrderSummary.module.css │ ├── orderhistory │ │ ├── OrderHistory.js │ │ └── OrderHistory.module.css │ ├── payment │ │ ├── Payment.js │ │ └── Payment.module.css │ ├── products │ │ ├── ProductDetail.js │ │ ├── ProductDetail.module.css │ │ ├── Products.js │ │ └── Products.module.css │ ├── resetPassword │ │ ├── ResetPassword.js │ │ └── ResetPassword.module.css │ ├── shippingInfo │ │ ├── ShippingInfo.js │ │ └── ShippingInfo.module.css │ ├── shoppingcart │ │ ├── ShoppingCart.js │ │ └── ShoppingCart.module.css │ ├── signup │ │ ├── Signup.js │ │ └── Signup.module.css │ └── ui │ │ ├── FilterSort.js │ │ ├── FilterSort.module.css │ │ ├── objects.js │ │ └── paypal │ │ ├── PayPal.js │ │ └── PayPal.module.css │ ├── index.css │ ├── index.js │ ├── logo.svg │ ├── middleware │ └── middleware.js │ ├── reducer │ ├── authReducer.js │ ├── backendDataReducer.js │ ├── errorReducer.js │ ├── favoriteListReducer.js │ ├── index.js │ ├── isUserLoginReducer.js │ ├── orderReducer.js │ └── shoppingCartReducer.js │ ├── serviceWorker.js │ └── setupTests.js ├── controllers ├── auth.js └── products.js ├── middleware └── is-auth.js ├── models ├── order.js ├── products.js └── users.js ├── node_modules ├── .bin │ ├── is-ci │ ├── mime │ ├── nodemon │ ├── nodetouch │ ├── nopt │ ├── rc │ └── semver ├── @sindresorhus │ └── is │ │ ├── dist │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.js.map │ │ ├── license │ │ ├── package.json │ │ └── readme.md ├── @szmarczak │ └── http-timer │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ └── source │ │ └── index.js ├── abbrev │ ├── LICENSE │ ├── README.md │ ├── abbrev.js │ └── package.json ├── accepts │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── ansi-align │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── node_modules │ │ └── string-width │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── ansi-regex │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── ansi-styles │ ├── index.d.ts │ ├── 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 ├── balanced-match │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── index.js │ └── package.json ├── binary-extensions │ ├── binary-extensions.json │ ├── binary-extensions.json.d.ts │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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.d.ts │ ├── 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 ├── cacheable-request │ ├── LICENSE │ ├── README.md │ ├── node_modules │ │ ├── get-stream │ │ │ ├── buffer-stream.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ │ └── lowercase-keys │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ ├── package.json │ └── src │ │ └── index.js ├── camelcase │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── chalk │ ├── index.d.ts │ ├── license │ ├── node_modules │ │ ├── has-flag │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ │ └── supports-color │ │ │ ├── browser.js │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ ├── package.json │ ├── readme.md │ └── source │ │ ├── index.js │ │ ├── templates.js │ │ └── util.js ├── 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.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── clone-response │ ├── LICENSE │ ├── README.md │ ├── package.json │ └── src │ │ └── index.js ├── color-convert │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── conversions.js │ ├── index.js │ ├── package.json │ └── route.js ├── color-name │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── 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 ├── crypto-random-string │ ├── index.d.ts │ ├── 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 ├── decompress-response │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── deep-extend │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ └── deep-extend.js │ └── package.json ├── defer-to-connect │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── index.d.ts │ │ └── index.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.d.ts │ ├── 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 ├── emoji-regex │ ├── LICENSE-MIT.txt │ ├── README.md │ ├── es2015 │ │ ├── index.js │ │ └── text.js │ ├── index.d.ts │ ├── index.js │ ├── package.json │ └── text.js ├── encodeurl │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── end-of-stream │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── escape-goat │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── escape-html │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ └── package.json ├── etag │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── express │ ├── History.md │ ├── LICENSE │ ├── Readme.md │ ├── index.js │ ├── lib │ │ ├── application.js │ │ ├── express.js │ │ ├── middleware │ │ │ ├── init.js │ │ │ └── query.js │ │ ├── request.js │ │ ├── response.js │ │ ├── router │ │ │ ├── index.js │ │ │ ├── layer.js │ │ │ └── route.js │ │ ├── utils.js │ │ └── view.js │ └── package.json ├── 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 ├── fsevents │ ├── LICENSE │ ├── README.md │ ├── fsevents.d.ts │ ├── fsevents.js │ ├── fsevents.node │ └── 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.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── got │ ├── license │ ├── package.json │ ├── readme.md │ └── source │ │ ├── as-promise.js │ │ ├── as-stream.js │ │ ├── create.js │ │ ├── errors.js │ │ ├── get-response.js │ │ ├── index.js │ │ ├── known-hook-events.js │ │ ├── merge.js │ │ ├── normalize-arguments.js │ │ ├── progress.js │ │ ├── request-as-event-emitter.js │ │ └── utils │ │ ├── deep-freeze.js │ │ ├── get-body-size.js │ │ ├── is-form-data.js │ │ ├── timed-out.js │ │ └── url-to-options.js ├── graceful-fs │ ├── LICENSE │ ├── README.md │ ├── clone.js │ ├── graceful-fs.js │ ├── legacy-streams.js │ ├── package.json │ └── polyfills.js ├── has-flag │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── has-yarn │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── http-cache-semantics │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── 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 ├── 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 │ ├── CHANGELOG.md │ ├── 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.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-npm │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-number │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── is-obj │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-path-inside │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-typedarray │ ├── LICENSE.md │ ├── README.md │ ├── index.js │ ├── package.json │ └── test.js ├── is-yarn-global │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── json-buffer │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── index.js ├── keyv │ ├── LICENSE │ ├── README.md │ ├── package.json │ └── src │ │ └── index.js ├── latest-version │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── lowercase-keys │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── make-dir │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── node_modules │ │ ├── .bin │ │ │ └── semver │ │ └── semver │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bin │ │ │ └── semver.js │ │ │ ├── package.json │ │ │ ├── range.bnf │ │ │ └── semver.js │ ├── 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 ├── mimic-response │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 ├── normalize-url │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── on-finished │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── once │ ├── LICENSE │ ├── README.md │ ├── once.js │ └── package.json ├── p-cancelable │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── package-json │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── node_modules │ │ ├── .bin │ │ │ └── semver │ │ └── semver │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bin │ │ │ └── semver.js │ │ │ ├── package.json │ │ │ ├── range.bnf │ │ │ └── semver.js │ ├── package.json │ └── readme.md ├── parseurl │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── 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 ├── prepend-http │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── proxy-addr │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── pstree.remy │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── index.js │ │ ├── tree.js │ │ └── utils.js │ ├── package.json │ └── tests │ │ ├── fixtures │ │ ├── index.js │ │ ├── out1 │ │ └── out2 │ │ └── index.test.js ├── pump │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── test-browser.js │ └── test-node.js ├── pupa │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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 │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── base64.js │ ├── index.js │ ├── package.json │ ├── registry-url.js │ └── test │ │ ├── auth-token.test.js │ │ └── registry-url.test.js ├── registry-url │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── responselike │ ├── LICENSE │ ├── README.md │ ├── package.json │ └── src │ │ └── index.js ├── 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.d.ts │ ├── index.js │ ├── license │ ├── node_modules │ │ ├── .bin │ │ │ └── semver │ │ └── semver │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bin │ │ │ └── semver.js │ │ │ ├── package.json │ │ │ ├── range.bnf │ │ │ └── semver.js │ ├── 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 ├── signal-exit │ ├── CHANGELOG.md │ ├── LICENSE.txt │ ├── README.md │ ├── index.js │ ├── package.json │ └── signals.js ├── statuses │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── codes.json │ ├── index.js │ └── package.json ├── string-width │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── node_modules │ │ ├── ansi-regex │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ │ ├── emoji-regex │ │ │ ├── LICENSE-MIT.txt │ │ │ ├── README.md │ │ │ ├── es2015 │ │ │ │ ├── index.js │ │ │ │ └── text.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── text.js │ │ ├── is-fullwidth-code-point │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ │ └── strip-ansi │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── license │ │ │ ├── package.json │ │ │ └── readme.md │ ├── package.json │ └── readme.md ├── strip-ansi │ ├── index.d.ts │ ├── 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.d.ts │ ├── index.js │ ├── license │ ├── package.json │ ├── readme.md │ └── vendor │ │ ├── .DS_Store │ │ ├── macos │ │ ├── .DS_Store │ │ └── term-size │ │ └── windows │ │ └── term-size.exe ├── to-readable-stream │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── 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-fest │ ├── index.d.ts │ ├── license │ ├── package.json │ ├── readme.md │ └── source │ │ ├── basic.d.ts │ │ ├── except.d.ts │ │ ├── literal-union.d.ts │ │ ├── merge-exclusive.d.ts │ │ ├── merge.d.ts │ │ ├── mutable.d.ts │ │ ├── opaque.d.ts │ │ ├── package-json.d.ts │ │ ├── partial-deep.d.ts │ │ ├── promisable.d.ts │ │ ├── readonly-deep.d.ts │ │ ├── require-at-least-one.d.ts │ │ ├── require-exactly-one.d.ts │ │ ├── set-optional.d.ts │ │ └── set-required.d.ts ├── type-is │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── typedarray-to-buffer │ ├── .airtap.yml │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── basic.js ├── undefsafe │ ├── .jscsrc │ ├── .jshintrc │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── example.js │ ├── lib │ │ └── undefsafe.js │ └── package.json ├── unique-string │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── unpipe │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── 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 ├── widest-line │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── wrappy │ ├── LICENSE │ ├── README.md │ ├── package.json │ └── wrappy.js ├── write-file-atomic │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json └── xdg-basedir │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── package-lock.json ├── package.json └── routes ├── auth.js └── products.js /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | .env 4 | 5 | keys.js 6 | 7 | .DS_Store 8 | 9 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: node app.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # L&S Kids Clothing Store(MERN) 2 | 3 | 4 | 5 |

Hey, 🖐 This is my MERN stack E-Commerce Website aiming to sell my kiddos clothes. Of course, selling is not the point. Honing my coding skill is the primary reason.

6 |

The stack: MongoDB, Express, React, Node.js. Redux for the global state management.

7 |

Here is the deomo. 👉https://morning-castle-57375.herokuapp.com/

8 | 9 |

If you like the project, don't forget to give me a star🌟 or buy me a coffee.

10 | -------------------------------------------------------------------------------- /client/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/.DS_Store -------------------------------------------------------------------------------- /client/build/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "main.css": "/static/css/main.cf0a5a8c.chunk.css", 4 | "main.js": "/static/js/main.6f1325f0.chunk.js", 5 | "main.js.map": "/static/js/main.6f1325f0.chunk.js.map", 6 | "runtime-main.js": "/static/js/runtime-main.09b85ec0.js", 7 | "runtime-main.js.map": "/static/js/runtime-main.09b85ec0.js.map", 8 | "static/js/2.4d8a0161.chunk.js": "/static/js/2.4d8a0161.chunk.js", 9 | "static/js/2.4d8a0161.chunk.js.map": "/static/js/2.4d8a0161.chunk.js.map", 10 | "index.html": "/index.html", 11 | "precache-manifest.07db7a979aa9759aef3051540ddccaa3.js": "/precache-manifest.07db7a979aa9759aef3051540ddccaa3.js", 12 | "service-worker.js": "/service-worker.js", 13 | "static/css/main.cf0a5a8c.chunk.css.map": "/static/css/main.cf0a5a8c.chunk.css.map", 14 | "static/js/2.4d8a0161.chunk.js.LICENSE.txt": "/static/js/2.4d8a0161.chunk.js.LICENSE.txt" 15 | }, 16 | "entrypoints": [ 17 | "static/js/runtime-main.09b85ec0.js", 18 | "static/js/2.4d8a0161.chunk.js", 19 | "static/css/main.cf0a5a8c.chunk.css", 20 | "static/js/main.6f1325f0.chunk.js" 21 | ] 22 | } -------------------------------------------------------------------------------- /client/build/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/build/favicon.ico -------------------------------------------------------------------------------- /client/build/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/build/logo192.png -------------------------------------------------------------------------------- /client/build/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/build/logo512.png -------------------------------------------------------------------------------- /client/build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/build/precache-manifest.07db7a979aa9759aef3051540ddccaa3.js: -------------------------------------------------------------------------------- 1 | self.__precacheManifest = (self.__precacheManifest || []).concat([ 2 | { 3 | "revision": "55da4b324184d62a28ff0cb7c84fc792", 4 | "url": "/index.html" 5 | }, 6 | { 7 | "revision": "fdc106bbb4c2d1e18eb8", 8 | "url": "/static/css/main.cf0a5a8c.chunk.css" 9 | }, 10 | { 11 | "revision": "5bf96dafc2bfeae0f9a9", 12 | "url": "/static/js/2.4d8a0161.chunk.js" 13 | }, 14 | { 15 | "revision": "4274e1fda1b3d215c14740400b5c04ad", 16 | "url": "/static/js/2.4d8a0161.chunk.js.LICENSE.txt" 17 | }, 18 | { 19 | "revision": "fdc106bbb4c2d1e18eb8", 20 | "url": "/static/js/main.6f1325f0.chunk.js" 21 | }, 22 | { 23 | "revision": "9b4e396c183e42c1fa5c", 24 | "url": "/static/js/runtime-main.09b85ec0.js" 25 | } 26 | ]); -------------------------------------------------------------------------------- /client/build/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /client/public/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/public/.DS_Store -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/public/logo512.png -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /client/src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/src/.DS_Store -------------------------------------------------------------------------------- /client/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /client/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | const { getByText } = render(); 7 | const linkElement = getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /client/src/assets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/src/assets/.DS_Store -------------------------------------------------------------------------------- /client/src/assets/212021.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/src/assets/212021.gif -------------------------------------------------------------------------------- /client/src/assets/logo_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/src/assets/logo_transparent.png -------------------------------------------------------------------------------- /client/src/assets/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/src/assets/profile.png -------------------------------------------------------------------------------- /client/src/component/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/client/src/component/.DS_Store -------------------------------------------------------------------------------- /client/src/component/checkout/Checkout.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | /* background-color: rebeccapurple; */ 3 | width: 80vw; 4 | margin-left: auto; 5 | margin-right: auto; 6 | } -------------------------------------------------------------------------------- /client/src/component/dashboard/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {connect} from 'react-redux'; 3 | import {withRouter} from 'react-router'; 4 | import {logoutUser} from '../../action/action'; 5 | 6 | const Dashboard = (props) => { 7 | 8 | const logoutHandler = () => { 9 | props.dispatch(logoutUser(props.history)) 10 | } 11 | 12 | return ( 13 |
14 |

Hey there, {props.auth.user.userName}

15 |
You are logged in a full-stack MERN application.
16 | 17 |
18 | ) 19 | }; 20 | 21 | const mapStateToProps = (state) => { 22 | return { 23 | auth: state.auth 24 | } 25 | } 26 | 27 | export default connect(mapStateToProps)(withRouter(Dashboard)); 28 | -------------------------------------------------------------------------------- /client/src/component/main/Main.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | background-color: rgb(255, 255, 255); 3 | margin-top: 0px; 4 | z-index: 100; 5 | height: 80px; 6 | display: flex; 7 | justify-content: flex-end; 8 | position: sticky; 9 | top: 0; 10 | /* -webkit-box-shadow: 0px 10px 20px 0px rgba(240, 240, 240, 1); 11 | -moz-box-shadow: 0px 10px 20px 0px rgba(240, 240, 240, 1); 12 | box-shadow: 0px 10px 20px 0px rgba(240, 240, 240, 1); */ 13 | } 14 | 15 | .Logo { 16 | position: absolute; 17 | top: 20px; 18 | right: 70vw; 19 | } 20 | 21 | .List { 22 | list-style: none; 23 | margin: auto 12px; 24 | margin-right: 20px; 25 | } 26 | 27 | .Nav { 28 | position: sticky; 29 | top: 0; 30 | z-index: 1000; 31 | } 32 | 33 | @media only screen and (min-width: 768px) { 34 | .Logo { 35 | position: absolute; 36 | top: 20px; 37 | /* right: 84vw; */ 38 | left: 80px; 39 | } 40 | } -------------------------------------------------------------------------------- /client/src/component/nav/Nav.module.css: -------------------------------------------------------------------------------- 1 | .List { 2 | list-style: none; 3 | /* background-color: red; */ 4 | border: none; 5 | width: 160px; 6 | margin-left: auto; 7 | margin-right: auto; 8 | margin: 0; 9 | padding: 0; 10 | text-align: center; 11 | box-sizing: border-box; 12 | } 13 | 14 | .ListItem { 15 | /* background-color: green; */ 16 | margin: 24px auto; 17 | color: #1a1918; 18 | font-weight: 600; 19 | font-size: 16px; 20 | } 21 | 22 | .Button { 23 | /* background-color: yellow; */ 24 | margin-top: 24px; 25 | height: 44px; 26 | width: 160px; 27 | margin-bottom: 24px; 28 | border: none; 29 | background-color: #fc5359; 30 | color: white; 31 | font-weight: 600; 32 | } 33 | 34 | .SignupButton { 35 | height: 44px; 36 | width: 160px; 37 | margin-bottom: 24px; 38 | border: #fc5359; 39 | background-color: #ffddde; 40 | color: #fc5359; 41 | font-weight: 600; 42 | } 43 | 44 | .Alink { 45 | text-decoration: none; 46 | color: black; 47 | } -------------------------------------------------------------------------------- /client/src/component/orderSummary/OrderSummary.module.css: -------------------------------------------------------------------------------- 1 | .SubContainer { 2 | /* background-color: yellow; */ 3 | width: 80vw; 4 | margin-left: auto; 5 | margin-right: auto; 6 | } 7 | 8 | .ListContainer { 9 | padding-inline-start: 0; 10 | } 11 | 12 | .List { 13 | list-style: none; 14 | } 15 | 16 | .Image { 17 | width: 80px; 18 | height: auto; 19 | } 20 | 21 | hr { 22 | border: 1px solid #eeeeee; 23 | } 24 | 25 | @media only screen and (min-width: 768px) { 26 | .SubContainer { 27 | /* background-color: yellow; */ 28 | width: 80vw; 29 | margin-left: auto; 30 | margin-right: auto; 31 | display: flex; 32 | flex-direction: column; 33 | } 34 | .ListContainer { 35 | /* background-color: red; */ 36 | padding-inline-start: 0; 37 | } 38 | .Image { 39 | width: 180px; 40 | height: auto; 41 | } 42 | } -------------------------------------------------------------------------------- /client/src/component/orderhistory/OrderHistory.module.css: -------------------------------------------------------------------------------- 1 | .SubContainer { 2 | /* background-color: yellow; */ 3 | width: 80vw; 4 | margin-left: auto; 5 | margin-right: auto; 6 | } 7 | 8 | .ListContainer { 9 | padding-inline-start: 0; 10 | } 11 | 12 | .List { 13 | list-style: none; 14 | } 15 | 16 | .Image { 17 | width: 80px; 18 | height: auto; 19 | } 20 | 21 | hr { 22 | border: 1px solid #eeeeee; 23 | } 24 | 25 | @media only screen and (min-width: 768px) { 26 | .SubContainer { 27 | /* background-color: yellow; */ 28 | width: 80vw; 29 | margin-left: auto; 30 | margin-right: auto; 31 | display: flex; 32 | flex-direction: column; 33 | } 34 | .ListContainer { 35 | /* background-color: red; */ 36 | padding-inline-start: 0; 37 | } 38 | .Image { 39 | width: 180px; 40 | height: auto; 41 | } 42 | } -------------------------------------------------------------------------------- /client/src/component/payment/Payment.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | /* background-color: rebeccapurple; */ 3 | width: 80vw; 4 | margin-left: auto; 5 | margin-right: auto; 6 | } -------------------------------------------------------------------------------- /client/src/component/products/ProductDetail.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | /* background-color: red; */ 3 | margin-top: 80px; 4 | } 5 | 6 | .List { 7 | /* background-color: yellow; */ 8 | list-style: none; 9 | margin-top: -60px; 10 | } 11 | 12 | .Image { 13 | display: inline-block; 14 | width: 300px; 15 | height: auto; 16 | margin-left: auto; 17 | margin-right: auto; 18 | object-fit: contain; 19 | } 20 | 21 | .Button { 22 | height: 44px; 23 | width: 160px; 24 | margin-top: 12px; 25 | background-color: #333333; 26 | color: #eeeeee; 27 | font-weight: 300; 28 | border: none; 29 | } 30 | 31 | .FavButton { 32 | background-color: transparent; 33 | border-style: none; 34 | position: absolute; 35 | display: block; 36 | margin-top: -28%; 37 | margin-left: 2%; 38 | font-size: 20px; 39 | } 40 | 41 | @media only screen and (min-width: 768px) { 42 | .FavButton { 43 | margin-top: -10%; 44 | } 45 | } -------------------------------------------------------------------------------- /client/src/component/resetPassword/ResetPassword.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | /* background-color: red; */ 3 | width: 90vw; 4 | height: 100vh; 5 | margin-left: auto; 6 | margin-right: auto; 7 | display: flex; 8 | flex-direction: column; 9 | } 10 | 11 | .LabelContainer { 12 | /* background-color: red; */ 13 | margin-bottom: 4px; 14 | } 15 | 16 | .Input { 17 | width: 88vw; 18 | height: 40px; 19 | margin-bottom: 12px; 20 | border-style: solid 1px black; 21 | } 22 | 23 | .Button { 24 | margin-top: 12px; 25 | width: 90vw; 26 | height: 48px; 27 | border: none; 28 | background-color: #fc5359; 29 | color: #1a1918; 30 | font-weight: 600; 31 | } 32 | 33 | @media only screen and (min-width: 768px) { 34 | .Container { 35 | width: 40vw; 36 | } 37 | .Input { 38 | width: 40vw; 39 | } 40 | .Button { 41 | width: 41vw; 42 | } 43 | .ErrorMessage { 44 | width: 38vw; 45 | } 46 | .Link { 47 | margin-right: 440px; 48 | } 49 | } -------------------------------------------------------------------------------- /client/src/component/shippingInfo/ShippingInfo.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | /* background-color: red; */ 3 | width: 80vw; 4 | /* height: 100vh; */ 5 | margin-left: auto; 6 | margin-right: auto; 7 | display: flex; 8 | flex-direction: column; 9 | } 10 | 11 | .LabelContainer { 12 | /* background-color: red; */ 13 | margin-bottom: 4px; 14 | } 15 | 16 | .Input { 17 | width: 78vw; 18 | height: 40px; 19 | margin-bottom: 12px; 20 | border-style: solid 1px black; 21 | } 22 | 23 | .Button { 24 | margin-top: 12px; 25 | width: 80vw; 26 | height: 48px; 27 | border: none; 28 | background-color: #fc5359; 29 | color: #1a1918; 30 | font-weight: 600; 31 | } -------------------------------------------------------------------------------- /client/src/component/ui/paypal/PayPal.module.css: -------------------------------------------------------------------------------- 1 | .Container { 2 | /* background-color: rebeccapurple; */ 3 | width: 80vw; 4 | margin-left: auto; 5 | margin-right: auto; 6 | } 7 | 8 | .Price { 9 | margin-left: 8px; 10 | } 11 | 12 | .Button { 13 | margin-top: 12px; 14 | width: 80vw; 15 | height: 48px; 16 | border: none; 17 | background-color: #fc5359; 18 | color: #1a1918; 19 | font-weight: 600; 20 | } -------------------------------------------------------------------------------- /client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: 'Montserrat', 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 4 | -webkit-font-smoothing: antialiased; 5 | -moz-osx-font-smoothing: grayscale; 6 | } 7 | 8 | code { 9 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; 10 | } -------------------------------------------------------------------------------- /client/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | // import {BrowserRouter} from 'react-router-dom'; 4 | import './index.css'; 5 | import App from './App'; 6 | import * as serviceWorker from './serviceWorker'; 7 | 8 | ReactDOM.render( 9 | , 10 | document.getElementById('root') 11 | ); 12 | 13 | // If you want your app to work offline and load faster, you can change 14 | // unregister() to register() below. Note this comes with some pitfalls. 15 | // Learn more about service workers: https://bit.ly/CRA-PWA 16 | serviceWorker.unregister(); 17 | -------------------------------------------------------------------------------- /client/src/middleware/middleware.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | 3 | const setAuthToken = (token) => { 4 | if (token) { 5 | axios.defaults.headers.common['Authorization'] = 'Bearer ' + token; 6 | } else { 7 | delete axios.defaults.headers.common["Authorization"]; 8 | } 9 | }; 10 | 11 | export default setAuthToken; -------------------------------------------------------------------------------- /client/src/reducer/backendDataReducer.js: -------------------------------------------------------------------------------- 1 | import { GET_BACKEND_DATA } from '../action/type'; 2 | 3 | const initialState = { 4 | backendData: '' 5 | } 6 | 7 | const backendDataReducer = (state = initialState, action) => { 8 | switch (action.type) { 9 | case 'GET_BACKEND_DATA': 10 | return { 11 | ...state, 12 | backendData: action.payload 13 | } 14 | default: 15 | return state; 16 | } 17 | } 18 | 19 | export default backendDataReducer; -------------------------------------------------------------------------------- /client/src/reducer/errorReducer.js: -------------------------------------------------------------------------------- 1 | import { GET_ERROR, CLEAR_ERROR, LOGIN_FAIL } from '../action/type'; 2 | 3 | const initialState = { 4 | message: null, 5 | hasError: false 6 | }; 7 | 8 | const errorReducer = (state = initialState, action) => { 9 | switch (action.type) { 10 | case 'GET_ERROR': 11 | case 'LOGIN_FAIL': 12 | case 'SIGNUP_FAIL': 13 | return { 14 | ...state, 15 | message: action.payload, 16 | hasError: true 17 | } 18 | case 'CLEAR_ERROR': 19 | return { 20 | ...state, 21 | message: null 22 | } 23 | default: 24 | return state 25 | } 26 | } 27 | 28 | 29 | export default errorReducer; -------------------------------------------------------------------------------- /client/src/reducer/favoriteListReducer.js: -------------------------------------------------------------------------------- 1 | import * as actionTypes from '../action/type'; 2 | 3 | const initialState = { 4 | favoriteList: [] 5 | } 6 | 7 | const favoriteListReducer = (state = initialState, action) => { 8 | switch (action.type) { 9 | case actionTypes.ADD_PRODUCT_FAVORITE_LIST: 10 | return { 11 | ...state, 12 | favoriteList: [...state.favoriteList, action.payload] 13 | } 14 | case actionTypes.REMOVE_PRODUCT_FAVORITE_LIST: 15 | return { 16 | ...state, 17 | favoriteList: state.favoriteList.filter(id => id !== action.payload) 18 | } 19 | case actionTypes.GET_PRODUCT_FAVORITE_LIST: 20 | return {...state, favoriteList: action.payload } 21 | case actionTypes.EMPTY_PRODUCT_FAVORITE_LIST: 22 | return { 23 | ...state, 24 | favoriteList: [] 25 | }; 26 | default: 27 | return state 28 | } 29 | } 30 | 31 | 32 | export default favoriteListReducer; -------------------------------------------------------------------------------- /client/src/reducer/isUserLoginReducer.js: -------------------------------------------------------------------------------- 1 | import * as actionTypes from '../action/type'; 2 | 3 | const initialState = { 4 | user: {} 5 | } 6 | 7 | const isUserLoginReducer = (state = initialState, action) => { 8 | switch (action.type) { 9 | case actionTypes.LOGIN_REQUEST: 10 | return { 11 | loading: true 12 | } 13 | case actionTypes.LOGIN_SUCCESS: 14 | return { 15 | loading: false, 16 | user: action.payload 17 | } 18 | case actionTypes.LOGIN_FAIL: 19 | return { 20 | loading: false, 21 | error: action.payload 22 | } 23 | case actionTypes.USER_LOGOUT: 24 | return {} 25 | default: 26 | return state 27 | } 28 | }; 29 | 30 | export default isUserLoginReducer; -------------------------------------------------------------------------------- /client/src/reducer/orderReducer.js: -------------------------------------------------------------------------------- 1 | import * as actionTypes from '../action/type'; 2 | 3 | const initialState = { 4 | shippingInfo: {}, 5 | paymentInfo: {}, 6 | order: {} 7 | } 8 | 9 | const orderReducer = (state = initialState, action) => { 10 | switch (action.type) { 11 | case actionTypes.SAVE_SHIPPING_INFORMATION: 12 | return { 13 | ...state, 14 | shippingInfo: action.payload 15 | } 16 | case actionTypes.SAVE_PAYMENT: 17 | return { 18 | ...state, 19 | paymentInfo: action.payload 20 | } 21 | case actionTypes.ON_SUCCESS_BUY: 22 | return { 23 | ...state, 24 | order: action.payload.data.result 25 | } 26 | default: 27 | return state 28 | } 29 | } 30 | 31 | 32 | export default orderReducer; -------------------------------------------------------------------------------- /client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /models/products.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const Schema = mongoose.Schema; 4 | 5 | const productsSchema = new Schema({ 6 | name: { 7 | type: String, 8 | required: true 9 | }, 10 | gender: { 11 | type: String, 12 | required: true 13 | }, 14 | price: { 15 | type: Number, 16 | required: true 17 | }, 18 | size: { 19 | type: String, 20 | required: true 21 | }, 22 | stock: { 23 | type: Number, 24 | require: true 25 | }, 26 | category: { 27 | type: String, 28 | required: true 29 | }, 30 | image: { 31 | type: String, 32 | required: true 33 | }, 34 | userId: { 35 | type: Schema.Types.ObjectId, 36 | ref: 'User', 37 | required: true 38 | } 39 | }); 40 | 41 | 42 | module.exports = mongoose.model('Products', productsSchema); -------------------------------------------------------------------------------- /node_modules/.bin/is-ci: -------------------------------------------------------------------------------- 1 | ../is-ci/bin.js -------------------------------------------------------------------------------- /node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | ../mime/cli.js -------------------------------------------------------------------------------- /node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | ../nodemon/bin/nodemon.js -------------------------------------------------------------------------------- /node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | ../touch/bin/nodetouch.js -------------------------------------------------------------------------------- /node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | ../nopt/bin/nopt.js -------------------------------------------------------------------------------- /node_modules/.bin/rc: -------------------------------------------------------------------------------- 1 | ../rc/cli.js -------------------------------------------------------------------------------- /node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | ../semver/bin/semver -------------------------------------------------------------------------------- /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/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-align/node_modules/string-width/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stripAnsi = require('strip-ansi'); 3 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 4 | const emojiRegex = require('emoji-regex')(); 5 | 6 | module.exports = input => { 7 | input = input.replace(emojiRegex, ' '); 8 | 9 | if (typeof input !== 'string' || input.length === 0) { 10 | return 0; 11 | } 12 | 13 | input = stripAnsi(input); 14 | 15 | let width = 0; 16 | 17 | for (let i = 0; i < input.length; i++) { 18 | const code = input.codePointAt(i); 19 | 20 | // Ignore control characters 21 | if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { 22 | continue; 23 | } 24 | 25 | // Ignore combining characters 26 | if (code >= 0x300 && code <= 0x36F) { 27 | continue; 28 | } 29 | 30 | // Surrogates 31 | if (code > 0xFFFF) { 32 | i++; 33 | } 34 | 35 | width += isFullwidthCodePoint(code) ? 2 : 1; 36 | } 37 | 38 | return width; 39 | }; 40 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = options => { 4 | options = Object.assign({ 5 | onlyFirst: false 6 | }, options); 7 | 8 | const pattern = [ 9 | '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', 10 | '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' 11 | ].join('|'); 12 | 13 | return new RegExp(pattern, options.onlyFirst ? undefined : 'g'); 14 | }; 15 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/ansi-styles/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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/balanced-match/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | .gitignore 3 | .travis.yml 4 | Makefile 5 | example.js 6 | -------------------------------------------------------------------------------- /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/boxen/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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/cacheable-request/node_modules/lowercase-keys/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Lowercase the keys of an object. 3 | 4 | @returns A new object with the keys lowercased. 5 | 6 | @example 7 | ``` 8 | import lowercaseKeys = require('lowercase-keys'); 9 | 10 | lowercaseKeys({FOO: true, bAr: false}); 11 | //=> {foo: true, bar: false} 12 | ``` 13 | */ 14 | declare function lowercaseKeys(object: {[key: string]: T}): {[key: string]: T}; 15 | 16 | export = lowercaseKeys; 17 | -------------------------------------------------------------------------------- /node_modules/cacheable-request/node_modules/lowercase-keys/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = object => { 3 | const result = {}; 4 | 5 | for (const [key, value] of Object.entries(object)) { 6 | result[key.toLowerCase()] = value; 7 | } 8 | 9 | return result; 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/cacheable-request/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 lowercase-keys 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const 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 | Returns a new object with the keys lowercased. 28 | 29 | 30 | ## License 31 | 32 | MIT © [Sindre Sorhus](https://sindresorhus.com) 33 | -------------------------------------------------------------------------------- /node_modules/camelcase/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/chalk/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/chalk/node_modules/has-flag/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag. 3 | 4 | @param flag - CLI flag to look for. The `--` prefix is optional. 5 | @param argv - CLI arguments. Default: `process.argv`. 6 | @returns Whether the flag exists. 7 | 8 | @example 9 | ``` 10 | // $ ts-node foo.ts -f --unicorn --foo=bar -- --rainbow 11 | 12 | // foo.ts 13 | import hasFlag = require('has-flag'); 14 | 15 | hasFlag('unicorn'); 16 | //=> true 17 | 18 | hasFlag('--unicorn'); 19 | //=> true 20 | 21 | hasFlag('f'); 22 | //=> true 23 | 24 | hasFlag('-f'); 25 | //=> true 26 | 27 | hasFlag('foo=bar'); 28 | //=> true 29 | 30 | hasFlag('foo'); 31 | //=> false 32 | 33 | hasFlag('rainbow'); 34 | //=> false 35 | ``` 36 | */ 37 | declare function hasFlag(flag: string, argv?: string[]): boolean; 38 | 39 | export = hasFlag; 40 | -------------------------------------------------------------------------------- /node_modules/chalk/node_modules/has-flag/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = (flag, argv = process.argv) => { 4 | const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); 5 | const position = argv.indexOf(prefix + flag); 6 | const terminatorPosition = argv.indexOf('--'); 7 | return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/chalk/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/cli-boxes/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const cliBoxes = require('./boxes.json'); 3 | 4 | module.exports = cliBoxes; 5 | // TODO: Remove this for the next major release 6 | module.exports.default = cliBoxes; 7 | -------------------------------------------------------------------------------- /node_modules/clone-response/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const PassThrough = require('stream').PassThrough; 4 | const mimicResponse = require('mimic-response'); 5 | 6 | const cloneResponse = response => { 7 | if (!(response && response.pipe)) { 8 | throw new TypeError('Parameter `response` must be a response stream.'); 9 | } 10 | 11 | const clone = new PassThrough(); 12 | mimicResponse(response, clone); 13 | 14 | return response.pipe(clone); 15 | }; 16 | 17 | module.exports = cloneResponse; 18 | -------------------------------------------------------------------------------- /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/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/crypto-random-string/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Generate a [cryptographically strong](https://en.m.wikipedia.org/wiki/Strong_cryptography) random string. 3 | 4 | @param length - Length of the returned string. 5 | @returns A [`hex`](https://en.wikipedia.org/wiki/Hexadecimal) string. 6 | 7 | @example 8 | ``` 9 | import cryptoRandomString = require('crypto-random-string'); 10 | 11 | cryptoRandomString(10); 12 | //=> '2cf05d94db' 13 | ``` 14 | */ 15 | declare function cryptoRandomString(length: number): string; 16 | 17 | export = cryptoRandomString; 18 | -------------------------------------------------------------------------------- /node_modules/crypto-random-string/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const crypto = require('crypto'); 3 | 4 | module.exports = length => { 5 | if (!Number.isFinite(length)) { 6 | throw new TypeError('Expected a finite number'); 7 | } 8 | 9 | return crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length); 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/decompress-response/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const PassThrough = require('stream').PassThrough; 3 | const zlib = require('zlib'); 4 | const mimicResponse = require('mimic-response'); 5 | 6 | module.exports = response => { 7 | // TODO: Use Array#includes when targeting Node.js 6 8 | if (['gzip', 'deflate'].indexOf(response.headers['content-encoding']) === -1) { 9 | return response; 10 | } 11 | 12 | const unzip = zlib.createUnzip(); 13 | const stream = new PassThrough(); 14 | 15 | mimicResponse(response, stream); 16 | 17 | unzip.on('error', err => { 18 | if (err.code === 'Z_BUF_ERROR') { 19 | stream.end(); 20 | return; 21 | } 22 | 23 | stream.emit('error', err); 24 | }); 25 | 26 | response.pipe(unzip).pipe(stream); 27 | 28 | return stream; 29 | }; 30 | -------------------------------------------------------------------------------- /node_modules/decompress-response/readme.md: -------------------------------------------------------------------------------- 1 | # decompress-response [![Build Status](https://travis-ci.org/sindresorhus/decompress-response.svg?branch=master)](https://travis-ci.org/sindresorhus/decompress-response) 2 | 3 | > Decompress a HTTP response if needed 4 | 5 | Decompresses the [response](https://nodejs.org/api/http.html#http_class_http_incomingmessage) from [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) if it's gzipped or deflated, otherwise just passes it through. 6 | 7 | Used by [`got`](https://github.com/sindresorhus/got). 8 | 9 | 10 | ## Install 11 | 12 | ``` 13 | $ npm install decompress-response 14 | ``` 15 | 16 | 17 | ## Usage 18 | 19 | ```js 20 | const http = require('http'); 21 | const decompressResponse = require('decompress-response'); 22 | 23 | http.get('http://sindresorhus.com', response => { 24 | response = decompressResponse(response); 25 | }); 26 | ``` 27 | 28 | 29 | ## License 30 | 31 | MIT © [Sindre Sorhus](https://sindresorhus.com) 32 | -------------------------------------------------------------------------------- /node_modules/deep-extend/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/deep-extend'); 2 | -------------------------------------------------------------------------------- /node_modules/defer-to-connect/README.md: -------------------------------------------------------------------------------- 1 | # defer-to-connect 2 | 3 | > The safe way to handle the `connect` socket event 4 | 5 | [![Coverage Status](https://coveralls.io/repos/github/szmarczak/defer-to-connect/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/defer-to-connect?branch=master) 6 | 7 | Once you receive the socket, it may be already connected (or disconnected).
8 | To avoid checking that, use `defer-to-connect`. It'll do that for you. 9 | 10 | ## Usage 11 | 12 | ```js 13 | const deferToConnect = require('defer-to-connect'); 14 | 15 | deferToConnect(socket, () => { 16 | console.log('Connected!'); 17 | }); 18 | ``` 19 | 20 | ## API 21 | 22 | ### deferToConnect(socket, connectListener) 23 | 24 | Calls `connectListener()` when connected. 25 | 26 | ### deferToConnect(socket, listeners) 27 | 28 | #### listeners 29 | 30 | An object representing `connect`, `secureConnect` and `close` properties. 31 | 32 | Calls `connect()` when the socket is connected.
33 | Calls `secureConnect()` when the socket is securely connected.
34 | Calls `close()` when the socket is destroyed. 35 | 36 | ## License 37 | 38 | MIT 39 | -------------------------------------------------------------------------------- /node_modules/defer-to-connect/dist/index.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import { Socket } from 'net'; 3 | import { TLSSocket } from 'tls'; 4 | interface Listeners { 5 | connect?: () => void; 6 | secureConnect?: () => void; 7 | close?: (hadError: boolean) => void; 8 | } 9 | declare const deferToConnect: (socket: Socket | TLSSocket, fn: Listeners | (() => void)) => void; 10 | export default deferToConnect; 11 | -------------------------------------------------------------------------------- /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/dot-prop/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/emoji-regex/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'emoji-regex' { 2 | function emojiRegex(): RegExp; 3 | 4 | export default emojiRegex; 5 | } 6 | -------------------------------------------------------------------------------- /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/escape-goat/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.htmlEscape = string => string 4 | .replace(/&/g, '&') 5 | .replace(/"/g, '"') 6 | .replace(/'/g, ''') 7 | .replace(//g, '>'); 9 | 10 | exports.htmlUnescape = htmlString => htmlString 11 | .replace(/>/g, '>') 12 | .replace(/</g, '<') 13 | .replace(/�?39;/g, '\'') 14 | .replace(/"/g, '"') 15 | .replace(/&/g, '&'); 16 | 17 | exports.htmlEscapeTag = (strings, ...values) => { 18 | let output = strings[0]; 19 | for (let i = 0; i < values.length; i++) { 20 | output = output + exports.htmlEscape(String(values[i])) + strings[i + 1]; 21 | } 22 | 23 | return output; 24 | }; 25 | 26 | exports.htmlUnescapeTag = (strings, ...values) => { 27 | let output = strings[0]; 28 | for (let i = 0; i < values.length; i++) { 29 | output = output + exports.htmlUnescape(String(values[i])) + strings[i + 1]; 30 | } 31 | 32 | return output; 33 | }; 34 | -------------------------------------------------------------------------------- /node_modules/escape-goat/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/escape-html/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # escape-html 3 | 4 | Escape string for use in HTML 5 | 6 | ## Example 7 | 8 | ```js 9 | var escape = require('escape-html'); 10 | var html = escape('foo & bar'); 11 | // -> foo & bar 12 | ``` 13 | 14 | ## Benchmark 15 | 16 | ``` 17 | $ npm run-script bench 18 | 19 | > escape-html@1.0.3 bench nodejs-escape-html 20 | > node benchmark/index.js 21 | 22 | 23 | http_parser@1.0 24 | node@0.10.33 25 | v8@3.14.5.9 26 | ares@1.9.0-DEV 27 | uv@0.10.29 28 | zlib@1.2.3 29 | modules@11 30 | openssl@1.0.1j 31 | 32 | 1 test completed. 33 | 2 tests completed. 34 | 3 tests completed. 35 | 36 | no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) 37 | single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) 38 | many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) 39 | ``` 40 | 41 | ## License 42 | 43 | MIT -------------------------------------------------------------------------------- /node_modules/express/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | module.exports = require('./lib/express'); 12 | -------------------------------------------------------------------------------- /node_modules/express/lib/middleware/init.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * 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/fsevents/fsevents.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/node_modules/fsevents/fsevents.node -------------------------------------------------------------------------------- /node_modules/get-stream/buffer-stream.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const {PassThrough} = require('stream'); 3 | 4 | module.exports = options => { 5 | options = Object.assign({}, options); 6 | 7 | const {array} = options; 8 | let {encoding} = options; 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/get-stream/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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/global-dirs/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/got/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/got/source/get-response.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const decompressResponse = require('decompress-response'); 3 | const is = require('@sindresorhus/is'); 4 | const mimicResponse = require('mimic-response'); 5 | const progress = require('./progress'); 6 | 7 | module.exports = (response, options, emitter) => { 8 | const downloadBodySize = Number(response.headers['content-length']) || null; 9 | 10 | const progressStream = progress.download(response, emitter, downloadBodySize); 11 | 12 | mimicResponse(response, progressStream); 13 | 14 | const newResponse = options.decompress === true && 15 | is.function(decompressResponse) && 16 | options.method !== 'HEAD' ? decompressResponse(progressStream) : progressStream; 17 | 18 | if (!options.decompress && ['gzip', 'deflate'].includes(response.headers['content-encoding'])) { 19 | options.encoding = null; 20 | } 21 | 22 | emitter.emit('response', newResponse); 23 | 24 | emitter.emit('downloadProgress', { 25 | percent: 0, 26 | transferred: 0, 27 | total: downloadBodySize 28 | }); 29 | 30 | response.pipe(progressStream); 31 | }; 32 | -------------------------------------------------------------------------------- /node_modules/got/source/known-hook-events.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = [ 4 | 'beforeError', 5 | 'init', 6 | 'beforeRequest', 7 | 'beforeRedirect', 8 | 'beforeRetry', 9 | 'afterResponse' 10 | ]; 11 | -------------------------------------------------------------------------------- /node_modules/got/source/utils/deep-freeze.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const is = require('@sindresorhus/is'); 3 | 4 | module.exports = function deepFreeze(object) { 5 | for (const [key, value] of Object.entries(object)) { 6 | if (is.plainObject(value) || is.array(value)) { 7 | deepFreeze(object[key]); 8 | } 9 | } 10 | 11 | return Object.freeze(object); 12 | }; 13 | -------------------------------------------------------------------------------- /node_modules/got/source/utils/get-body-size.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const fs = require('fs'); 3 | const util = require('util'); 4 | const is = require('@sindresorhus/is'); 5 | const isFormData = require('./is-form-data'); 6 | 7 | module.exports = async options => { 8 | const {body} = options; 9 | 10 | if (options.headers['content-length']) { 11 | return Number(options.headers['content-length']); 12 | } 13 | 14 | if (!body && !options.stream) { 15 | return 0; 16 | } 17 | 18 | if (is.string(body)) { 19 | return Buffer.byteLength(body); 20 | } 21 | 22 | if (isFormData(body)) { 23 | return util.promisify(body.getLength.bind(body))(); 24 | } 25 | 26 | if (body instanceof fs.ReadStream) { 27 | const {size} = await util.promisify(fs.stat)(body.path); 28 | return size; 29 | } 30 | 31 | return null; 32 | }; 33 | -------------------------------------------------------------------------------- /node_modules/got/source/utils/is-form-data.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const is = require('@sindresorhus/is'); 3 | 4 | module.exports = body => is.nodeStream(body) && is.function(body.getBoundary); 5 | -------------------------------------------------------------------------------- /node_modules/got/source/utils/url-to-options.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const is = require('@sindresorhus/is'); 3 | 4 | module.exports = url => { 5 | const options = { 6 | protocol: url.protocol, 7 | hostname: url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname, 8 | hash: url.hash, 9 | search: url.search, 10 | pathname: url.pathname, 11 | href: url.href 12 | }; 13 | 14 | if (is.string(url.port) && url.port.length > 0) { 15 | options.port = Number(url.port); 16 | } 17 | 18 | if (url.username || url.password) { 19 | options.auth = `${url.username}:${url.password}`; 20 | } 21 | 22 | options.path = is.null(url.search) ? url.pathname : `${url.pathname}${url.search}`; 23 | 24 | return options; 25 | }; 26 | -------------------------------------------------------------------------------- /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-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/has-flag/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/has-yarn/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const hasYarn: { 2 | /** 3 | * Check if a project is using [Yarn](https://yarnpkg.com). 4 | * 5 | * @param cwd - Current working directory. Default: `process.cwd()`. 6 | * @returns Whether the project uses Yarn. 7 | */ 8 | (cwd?: string): boolean; 9 | 10 | // TODO: Remove this for the next major release, refactor the whole definition to: 11 | // declare function hasYarn(cwd?: string): boolean; 12 | // export = hasYarn; 13 | default: typeof hasYarn; 14 | }; 15 | 16 | export = hasYarn; 17 | -------------------------------------------------------------------------------- /node_modules/has-yarn/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const fs = require('fs'); 4 | 5 | const hasYarn = (cwd = process.cwd()) => fs.existsSync(path.resolve(cwd, 'yarn.lock')); 6 | 7 | module.exports = hasYarn; 8 | // TODO: Remove this for the next major release 9 | module.exports.default = hasYarn; 10 | -------------------------------------------------------------------------------- /node_modules/has-yarn/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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/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/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## v2.0.0 4 | 5 | Breaking changes: 6 | 7 | * Drop support for Node.js end-of-life versions: 0.10, 0.12, 4, 5, 7, 8 | and 9 9 | 10 | Other changes: 11 | 12 | See [ci-info 13 | changelog](https://github.com/watson/ci-info/blob/master/CHANGELOG.md#v200) 14 | for a list of newly supported CI servers. 15 | -------------------------------------------------------------------------------- /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.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if your package was installed globally. 3 | 4 | @example 5 | ``` 6 | import isInstalledGlobally = require('is-installed-globally'); 7 | 8 | // With `npm install your-package` 9 | console.log(isInstalledGlobally); 10 | //=> false 11 | 12 | // With `npm install --global your-package` 13 | console.log(isInstalledGlobally); 14 | //=> true 15 | ``` 16 | */ 17 | declare const isInstalledGlobally: boolean; 18 | 19 | export = isInstalledGlobally; 20 | -------------------------------------------------------------------------------- /node_modules/is-installed-globally/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const fs = require('fs'); 3 | const globalDirs = require('global-dirs'); 4 | const isPathInside = require('is-path-inside'); 5 | 6 | module.exports = (() => { 7 | try { 8 | return ( 9 | isPathInside(__dirname, globalDirs.yarn.packages) || 10 | isPathInside(__dirname, fs.realpathSync(globalDirs.npm.packages)) 11 | ); 12 | } catch (_) { 13 | return false; 14 | } 15 | })(); 16 | -------------------------------------------------------------------------------- /node_modules/is-npm/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if your code is running as an [npm](https://docs.npmjs.com/misc/scripts) or [yarn](https://yarnpkg.com/lang/en/docs/cli/run/) script. 3 | 4 | @example 5 | ``` 6 | import {isNpmOrYarn} from 'is-npm'; 7 | 8 | if (isNpmOrYarn) { 9 | console.log('Running as an npm or yarn script!'); 10 | } 11 | ``` 12 | */ 13 | export const isNpmOrYarn: boolean; 14 | 15 | /** 16 | Check if your code is running as an [npm](https://docs.npmjs.com/misc/scripts) script. 17 | 18 | @example 19 | ``` 20 | import {isNpm} from 'is-npm'; 21 | 22 | if (isNpm) { 23 | console.log('Running as an npm script!'); 24 | } 25 | ``` 26 | */ 27 | export const isNpm: boolean; 28 | 29 | /** 30 | Check if your code is running as a [yarn](https://yarnpkg.com/lang/en/docs/cli/run/) script. 31 | 32 | @example 33 | ``` 34 | import {isYarn} from 'is-npm'; 35 | 36 | if (isYarn) { 37 | console.log('Running as a yarn script!'); 38 | } 39 | ``` 40 | */ 41 | export const isYarn: boolean; 42 | -------------------------------------------------------------------------------- /node_modules/is-npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const userAgent = process.env.npm_config_user_agent; 4 | const isYarn = Boolean(userAgent && userAgent.startsWith('yarn')); 5 | const isNpm = Boolean(userAgent && userAgent.startsWith('npm')); 6 | 7 | module.exports.isNpmOrYarn = isNpm || isYarn; 8 | module.exports.isNpm = isNpm; 9 | module.exports.isYarn = isYarn; 10 | -------------------------------------------------------------------------------- /node_modules/is-npm/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if a value is an object. 3 | 4 | Keep in mind that array, function, regexp, etc, are objects in JavaScript. 5 | 6 | @example 7 | ``` 8 | import isObject = require('is-obj'); 9 | 10 | isObject({foo: 'bar'}); 11 | //=> true 12 | 13 | isObject([1, 2, 3]); 14 | //=> true 15 | 16 | isObject('foo'); 17 | //=> false 18 | ``` 19 | */ 20 | declare function isObject(value: unknown): value is object; 21 | 22 | export = isObject; 23 | -------------------------------------------------------------------------------- /node_modules/is-obj/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = value => { 4 | const type = typeof value; 5 | return value !== null && (type === 'object' || type === 'function'); 6 | }; 7 | -------------------------------------------------------------------------------- /node_modules/is-obj/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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 is-obj 13 | ``` 14 | 15 | 16 | ## Usage 17 | 18 | ```js 19 | const isObject = require('is-obj'); 20 | 21 | isObject({foo: 'bar'}); 22 | //=> true 23 | 24 | isObject([1, 2, 3]); 25 | //=> true 26 | 27 | isObject('foo'); 28 | //=> false 29 | ``` 30 | 31 | 32 | ## Related 33 | 34 | - [is](https://github.com/sindresorhus/is) - Type check values 35 | 36 | 37 | ## License 38 | 39 | MIT © [Sindre Sorhus](https://sindresorhus.com) 40 | -------------------------------------------------------------------------------- /node_modules/is-path-inside/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if a path is inside another path. 3 | 4 | Note that relative paths are resolved against `process.cwd()` to make them absolute. 5 | 6 | _Important:_ This package is meant for use with path manipulation. It does not check if the paths exist nor does it resolve symlinks. You should not use this as a security mechanism to guard against access to certain places on the file system. 7 | 8 | @example 9 | ``` 10 | import isPathInside = require('is-path-inside'); 11 | 12 | isPathInside('a/b/c', 'a/b'); 13 | //=> true 14 | 15 | isPathInside('a/b/c', 'x/y'); 16 | //=> false 17 | 18 | isPathInside('a/b/c', 'a/b/c'); 19 | //=> false 20 | 21 | isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus'); 22 | //=> true 23 | ``` 24 | */ 25 | declare function isPathInside(childPath: string, parentPath: string): boolean; 26 | 27 | export = isPathInside; 28 | -------------------------------------------------------------------------------- /node_modules/is-path-inside/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | 4 | module.exports = (childPath, parentPath) => { 5 | childPath = path.resolve(childPath); 6 | parentPath = path.resolve(parentPath); 7 | 8 | if (process.platform === 'win32') { 9 | childPath = childPath.toLowerCase(); 10 | parentPath = parentPath.toLowerCase(); 11 | } 12 | 13 | if (childPath === parentPath) { 14 | return false; 15 | } 16 | 17 | childPath += path.sep; 18 | parentPath += path.sep; 19 | 20 | return childPath.startsWith(parentPath); 21 | }; 22 | -------------------------------------------------------------------------------- /node_modules/is-typedarray/README.md: -------------------------------------------------------------------------------- 1 | # is-typedarray [![locked](http://badges.github.io/stability-badges/dist/locked.svg)](http://github.com/badges/stability-badges) 2 | 3 | Detect whether or not an object is a 4 | [Typed Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays). 5 | 6 | ## Usage 7 | 8 | [![NPM](https://nodei.co/npm/is-typedarray.png)](https://nodei.co/npm/is-typedarray/) 9 | 10 | ### isTypedArray(array) 11 | 12 | Returns `true` when array is a Typed Array, and `false` when it is not. 13 | 14 | ## License 15 | 16 | MIT. See [LICENSE.md](http://github.com/hughsk/is-typedarray/blob/master/LICENSE.md) for details. 17 | -------------------------------------------------------------------------------- /node_modules/is-yarn-global/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | - "6" 5 | -------------------------------------------------------------------------------- /node_modules/is-yarn-global/README.md: -------------------------------------------------------------------------------- 1 | # is-yarn-global 2 | 3 | [![](https://img.shields.io/travis/LitoMore/is-yarn-global/master.svg)](https://travis-ci.org/LitoMore/is-yarn-global) 4 | [![](https://img.shields.io/npm/v/is-yarn-global.svg)](https://www.npmjs.com/package/is-yarn-global) 5 | [![](https://img.shields.io/npm/l/is-yarn-global.svg)](https://github.com/LitoMore/is-yarn-global/blob/master/LICENSE) 6 | [![](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo) 7 | 8 | Check if installed by yarn globally without any `fs` calls 9 | 10 | ## Install 11 | 12 | ```bash 13 | $ npm install is-yarn-global 14 | ``` 15 | 16 | ## Usage 17 | 18 | Just require it in your package. 19 | 20 | ```javascript 21 | const isYarnGlobal = require('is-yarn-global'); 22 | 23 | console.log(isYarnGlobal()); 24 | ``` 25 | 26 | ## License 27 | 28 | MIT © [LitoMore](https://github.com/LitoMore) 29 | -------------------------------------------------------------------------------- /node_modules/is-yarn-global/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | 5 | module.exports = function () { 6 | const isWindows = process.platform === 'win32'; 7 | const yarnPath = isWindows ? path.join('Yarn', 'config', 'global') : path.join('.config', 'yarn', 'global'); 8 | if (__dirname.includes(yarnPath)) { 9 | return true; 10 | } 11 | return false; 12 | }; 13 | -------------------------------------------------------------------------------- /node_modules/json-buffer/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | node_modules/* 3 | npm_debug.log 4 | -------------------------------------------------------------------------------- /node_modules/json-buffer/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.10' 4 | -------------------------------------------------------------------------------- /node_modules/json-buffer/README.md: -------------------------------------------------------------------------------- 1 | # json-buffer 2 | 3 | JSON functions that can convert buffers! 4 | 5 | [![build status](https://secure.travis-ci.org/dominictarr/json-buffer.png)](http://travis-ci.org/dominictarr/json-buffer) 6 | 7 | [![testling badge](https://ci.testling.com/dominictarr/json-buffer.png)](https://ci.testling.com/dominictarr/json-buffer) 8 | 9 | JSON mangles buffers by converting to an array... 10 | which isn't helpful. json-buffers converts to base64 instead, 11 | and deconverts base64 to a buffer. 12 | 13 | ``` js 14 | var JSONB = require('json-buffer') 15 | var Buffer = require('buffer').Buffer 16 | 17 | var str = JSONB.stringify(new Buffer('hello there!')) 18 | 19 | console.log(JSONB.parse(str)) //GET a BUFFER back 20 | ``` 21 | 22 | ## License 23 | 24 | MIT 25 | -------------------------------------------------------------------------------- /node_modules/latest-version/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const packageJson = require('package-json'); 3 | 4 | const lastestVersion = async (packageName, options) => { 5 | const {version} = await packageJson(packageName.toLowerCase(), options); 6 | return version; 7 | }; 8 | 9 | module.exports = lastestVersion; 10 | // TODO: Remove this for the next major release 11 | module.exports.default = lastestVersion; 12 | -------------------------------------------------------------------------------- /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/make-dir/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/make-dir/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | ../semver/bin/semver.js -------------------------------------------------------------------------------- /node_modules/make-dir/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/make-dir/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/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/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/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/mimic-response/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // We define these manually to ensure they're always copied 4 | // even if they would move up the prototype chain 5 | // https://nodejs.org/api/http.html#http_class_http_incomingmessage 6 | const knownProps = [ 7 | 'destroy', 8 | 'setTimeout', 9 | 'socket', 10 | 'headers', 11 | 'trailers', 12 | 'rawHeaders', 13 | 'statusCode', 14 | 'httpVersion', 15 | 'httpVersionMinor', 16 | 'httpVersionMajor', 17 | 'rawTrailers', 18 | 'statusMessage' 19 | ]; 20 | 21 | module.exports = (fromStream, toStream) => { 22 | const fromProps = new Set(Object.keys(fromStream).concat(knownProps)); 23 | 24 | for (const prop of fromProps) { 25 | // Don't overwrite existing properties 26 | if (prop in toStream) { 27 | continue; 28 | } 29 | 30 | toStream[prop] = typeof fromStream[prop] === 'function' ? fromStream[prop].bind(fromStream) : fromStream[prop]; 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /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/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/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /node_modules/once/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/once/once.js: -------------------------------------------------------------------------------- 1 | var wrappy = require('wrappy') 2 | module.exports = wrappy(once) 3 | module.exports.strict = wrappy(onceStrict) 4 | 5 | once.proto = once(function () { 6 | Object.defineProperty(Function.prototype, 'once', { 7 | value: function () { 8 | return once(this) 9 | }, 10 | configurable: true 11 | }) 12 | 13 | Object.defineProperty(Function.prototype, 'onceStrict', { 14 | value: function () { 15 | return onceStrict(this) 16 | }, 17 | configurable: true 18 | }) 19 | }) 20 | 21 | function once (fn) { 22 | var f = function () { 23 | if (f.called) return f.value 24 | f.called = true 25 | return f.value = fn.apply(this, arguments) 26 | } 27 | f.called = false 28 | return f 29 | } 30 | 31 | function onceStrict (fn) { 32 | var f = function () { 33 | if (f.called) 34 | throw new Error(f.onceError) 35 | f.called = true 36 | return f.value = fn.apply(this, arguments) 37 | } 38 | var name = fn.name || 'Function wrapped with `once`' 39 | f.onceError = name + " shouldn't be called more than once" 40 | f.called = false 41 | return f 42 | } 43 | -------------------------------------------------------------------------------- /node_modules/p-cancelable/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/package-json/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/package-json/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | ../semver/bin/semver.js -------------------------------------------------------------------------------- /node_modules/package-json/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/package-json/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/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 = (url, opts) => { 3 | if (typeof url !== 'string') { 4 | throw new TypeError(`Expected \`url\` to be of type \`string\`, got \`${typeof url}\``); 5 | } 6 | 7 | url = url.trim(); 8 | opts = Object.assign({https: false}, opts); 9 | 10 | if (/^\.*\/|^(?!localhost)\w+:/.test(url)) { 11 | return url; 12 | } 13 | 14 | return url.replace(/^(?!(?:\w+:)?\/\/)/, opts.https ? 'https://' : 'http://'); 15 | }; 16 | -------------------------------------------------------------------------------- /node_modules/prepend-http/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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 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 | prependHttp('todomvc.com', {https: true}); 28 | //=> 'https://todomvc.com' 29 | ``` 30 | 31 | 32 | ## API 33 | 34 | ### prependHttp(url, [options]) 35 | 36 | #### url 37 | 38 | Type: `string` 39 | 40 | URL to prepend `http://` on. 41 | 42 | #### options 43 | 44 | Type: `Object` 45 | 46 | ##### https 47 | 48 | Type: `boolean`
49 | Default: `false` 50 | 51 | Prepend `https://` instead of `http://`. 52 | 53 | 54 | ## License 55 | 56 | MIT © [Sindre Sorhus](https://sindresorhus.com) 57 | -------------------------------------------------------------------------------- /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/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2019 Remy Sharp, https://remysharp.com 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. 8 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/README.md: -------------------------------------------------------------------------------- 1 | # pstree.remy 2 | 3 | > Cross platform ps-tree (including unix flavours without ps) 4 | 5 | ## Installation 6 | 7 | ```shel 8 | npm install pstree.remy 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | const psTree = psTree require('pstree.remy'); 15 | 16 | psTree(PID, (err, pids) => { 17 | if (err) { 18 | console.error(err); 19 | } 20 | console.log(pids) 21 | }); 22 | 23 | console.log(psTree.hasPS 24 | ? "This platform has the ps shell command" 25 | : "This platform does not have the ps shell command"); 26 | ``` 27 | -------------------------------------------------------------------------------- /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) => 25 | callback( 26 | null, 27 | res.map((p) => p.PID) 28 | ) 29 | ) 30 | .catch((error) => callback(error)); 31 | }; 32 | 33 | if (!module.parent) { 34 | module.exports(process.argv[2], (e, pids) => console.log(pids)); 35 | } 36 | 37 | module.exports.hasPS = hasPS; 38 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/lib/tree.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | 3 | module.exports = function (rootPid, callback) { 4 | const pidsOfInterest = new Set([parseInt(rootPid, 10)]); 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 | const pids = line.split(/\s+/); 21 | const ppid = parseInt(pids[0], 10); 22 | 23 | if (pidsOfInterest.has(ppid)) { 24 | const pid = parseInt(pids[1], 10); 25 | acc.push(pid); 26 | pidsOfInterest.add(pid); 27 | } 28 | 29 | return acc; 30 | }, []); 31 | 32 | callback(null, res); 33 | } catch (e) { 34 | callback(e, null); 35 | } 36 | }); 37 | }; 38 | -------------------------------------------------------------------------------- /node_modules/pstree.remy/tests/fixtures/index.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | function run() { 3 | spawn( 4 | 'sh', 5 | ['-c', 'node -e "setInterval(() => console.log(`running`), 200)"'], 6 | { 7 | stdio: 'pipe', 8 | } 9 | ); 10 | } 11 | 12 | var runCallCount = process.argv[2] || 1; 13 | for (var i = 0; i < runCallCount; i++) run(); 14 | -------------------------------------------------------------------------------- /node_modules/pump/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | 5 | script: "npm test" 6 | -------------------------------------------------------------------------------- /node_modules/pupa/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Simple micro templating. 3 | 4 | @param template - Text with placeholders for `data` properties. 5 | @param data - Data to interpolate into `template`. 6 | 7 | @example 8 | ``` 9 | import pupa = require('pupa'); 10 | 11 | pupa('The mobile number of {name} is {phone.mobile}', { 12 | name: 'Sindre', 13 | phone: { 14 | mobile: '609 24 363' 15 | } 16 | }); 17 | //=> 'The mobile number of Sindre is 609 24 363' 18 | 19 | pupa('I like {0} and {1}', ['🦄', '🐮']); 20 | //=> 'I like 🦄 and 🐮' 21 | 22 | // Double braces encodes the HTML entities to avoid code injection 23 | pupa('I like {{0}} and {{1}}', ['
🦄
', '🐮']); 24 | //=> 'I like <br>🦄</br> and <i>🐮</i>' 25 | ``` 26 | */ 27 | declare function pupa( 28 | template: string, 29 | data: unknown[] | {[key: string]: any} 30 | ): string; 31 | 32 | export = pupa; 33 | -------------------------------------------------------------------------------- /node_modules/pupa/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const {htmlEscape} = require('escape-goat'); 3 | 4 | module.exports = (template, data) => { 5 | if (typeof template !== 'string') { 6 | throw new TypeError(`Expected a \`string\` in the first argument, got \`${typeof template}\``); 7 | } 8 | 9 | if (typeof data !== 'object') { 10 | throw new TypeError(`Expected an \`object\` or \`Array\` in the second argument, got \`${typeof data}\``); 11 | } 12 | 13 | const doubleBraceRegex = /{{(.*?)}}/g; 14 | 15 | if (doubleBraceRegex.test(template)) { 16 | template = template.replace(doubleBraceRegex, (_, key) => { 17 | let result = data; 18 | 19 | for (const property of key.split('.')) { 20 | result = result ? result[property] : ''; 21 | } 22 | 23 | return htmlEscape(String(result)); 24 | }); 25 | } 26 | 27 | const braceRegex = /{(.*?)}/g; 28 | 29 | return template.replace(braceRegex, (_, key) => { 30 | let result = data; 31 | 32 | for (const property of key.split('.')) { 33 | result = result ? result[property] : ''; 34 | } 35 | 36 | return String(result); 37 | }); 38 | }; 39 | -------------------------------------------------------------------------------- /node_modules/pupa/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /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/base64.js: -------------------------------------------------------------------------------- 1 | function decodeBase64 (base64) { 2 | return Buffer.from(base64, 'base64').toString('utf8') 3 | } 4 | 5 | function encodeBase64 (string) { 6 | return Buffer.from(string, 'utf8').toString('base64') 7 | } 8 | 9 | module.exports = { 10 | decodeBase64: decodeBase64, 11 | encodeBase64: encodeBase64 12 | } 13 | -------------------------------------------------------------------------------- /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.d.ts: -------------------------------------------------------------------------------- 1 | declare const registryUrl: { 2 | /** 3 | Get the set npm registry URL. 4 | 5 | @param scope - Retrieve the registry URL associated with an [npm scope](https://docs.npmjs.com/misc/scope). If the provided scope is not in the user's `.npmrc` file, then `registry-url` will check for the existence of `registry`, or if that's not set, fallback to the default npm registry. 6 | 7 | @example 8 | ``` 9 | import registryUrl = require('registry-url'); 10 | 11 | // # .npmrc 12 | // registry = 'https://custom-registry.com/' 13 | 14 | console.log(registryUrl()); 15 | //=> 'https://custom-registry.com/' 16 | 17 | 18 | // # .npmrc 19 | // @myco:registry = 'https://custom-registry.com/' 20 | 21 | console.log(registryUrl('@myco')); 22 | //=> 'https://custom-registry.com/' 23 | ``` 24 | */ 25 | (scope?: string): string; 26 | 27 | // TODO: Remove this for the next major release, refactor the whole definition to: 28 | // declare function registryUrl(scope?: string): string; 29 | // export = registryUrl; 30 | default: typeof registryUrl; 31 | }; 32 | 33 | export = registryUrl; 34 | -------------------------------------------------------------------------------- /node_modules/registry-url/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const rc = require('rc'); 3 | 4 | const registryUrl = scope => { 5 | const result = rc('npm', {registry: 'https://registry.npmjs.org/'}); 6 | const url = result[`${scope}:registry`] || result.config_registry || result.registry; 7 | return url.slice(-1) === '/' ? url : `${url}/`; 8 | }; 9 | 10 | module.exports = registryUrl; 11 | // TODO: Remove this for the next major release 12 | module.exports.default = registryUrl; 13 | -------------------------------------------------------------------------------- /node_modules/registry-url/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/responselike/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Luke Childs 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. 20 | -------------------------------------------------------------------------------- /node_modules/responselike/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Readable = require('stream').Readable; 4 | const lowercaseKeys = require('lowercase-keys'); 5 | 6 | class Response extends Readable { 7 | constructor(statusCode, headers, body, url) { 8 | if (typeof statusCode !== 'number') { 9 | throw new TypeError('Argument `statusCode` should be a number'); 10 | } 11 | if (typeof headers !== 'object') { 12 | throw new TypeError('Argument `headers` should be an object'); 13 | } 14 | if (!(body instanceof Buffer)) { 15 | throw new TypeError('Argument `body` should be a buffer'); 16 | } 17 | if (typeof url !== 'string') { 18 | throw new TypeError('Argument `url` should be a string'); 19 | } 20 | 21 | super(); 22 | this.statusCode = statusCode; 23 | this.headers = lowercaseKeys(headers); 24 | this.body = body; 25 | this.url = url; 26 | } 27 | 28 | _read() { 29 | this.push(this.body); 30 | this.push(null); 31 | } 32 | } 33 | 34 | module.exports = Response; 35 | -------------------------------------------------------------------------------- /node_modules/semver-diff/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const semver = require('semver'); 3 | 4 | module.exports = (versionA, versionB) => { 5 | versionA = semver.parse(versionA); 6 | versionB = semver.parse(versionB); 7 | 8 | if (semver.compareBuild(versionA, versionB) >= 0) { 9 | return; 10 | } 11 | 12 | return semver.diff(versionA, versionB) || 'build'; 13 | }; 14 | -------------------------------------------------------------------------------- /node_modules/semver-diff/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /node_modules/semver-diff/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | ../semver/bin/semver.js -------------------------------------------------------------------------------- /node_modules/semver-diff/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-diff/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/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/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/string-width/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const stringWidth: { 2 | /** 3 | Get the visual width of 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](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. 6 | 7 | @example 8 | ``` 9 | import stringWidth = require('string-width'); 10 | 11 | stringWidth('a'); 12 | //=> 1 13 | 14 | stringWidth('古'); 15 | //=> 2 16 | 17 | stringWidth('\u001B[1m古\u001B[22m'); 18 | //=> 2 19 | ``` 20 | */ 21 | (string: string): number; 22 | 23 | // TODO: remove this in the next major version, refactor the whole definition to: 24 | // declare function stringWidth(string: string): number; 25 | // export = stringWidth; 26 | default: typeof stringWidth; 27 | } 28 | 29 | export = stringWidth; 30 | -------------------------------------------------------------------------------- /node_modules/string-width/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stripAnsi = require('strip-ansi'); 3 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 4 | const emojiRegex = require('emoji-regex'); 5 | 6 | const stringWidth = string => { 7 | string = string.replace(emojiRegex(), ' '); 8 | 9 | if (typeof string !== 'string' || string.length === 0) { 10 | return 0; 11 | } 12 | 13 | string = stripAnsi(string); 14 | 15 | let width = 0; 16 | 17 | for (let i = 0; i < string.length; i++) { 18 | const code = string.codePointAt(i); 19 | 20 | // Ignore control characters 21 | if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { 22 | continue; 23 | } 24 | 25 | // Ignore combining characters 26 | if (code >= 0x300 && code <= 0x36F) { 27 | continue; 28 | } 29 | 30 | // Surrogates 31 | if (code > 0xFFFF) { 32 | i++; 33 | } 34 | 35 | width += isFullwidthCodePoint(code) ? 2 : 1; 36 | } 37 | 38 | return width; 39 | }; 40 | 41 | module.exports = stringWidth; 42 | // TODO: remove this in the next major version 43 | module.exports.default = stringWidth; 44 | -------------------------------------------------------------------------------- /node_modules/string-width/node_modules/ansi-regex/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace ansiRegex { 2 | interface Options { 3 | /** 4 | Match only the first ANSI escape. 5 | 6 | @default false 7 | */ 8 | onlyFirst: boolean; 9 | } 10 | } 11 | 12 | /** 13 | Regular expression for matching ANSI escape codes. 14 | 15 | @example 16 | ``` 17 | import ansiRegex = require('ansi-regex'); 18 | 19 | ansiRegex().test('\u001B[4mcake\u001B[0m'); 20 | //=> true 21 | 22 | ansiRegex().test('cake'); 23 | //=> false 24 | 25 | '\u001B[4mcake\u001B[0m'.match(ansiRegex()); 26 | //=> ['\u001B[4m', '\u001B[0m'] 27 | 28 | '\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); 29 | //=> ['\u001B[4m'] 30 | 31 | '\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); 32 | //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] 33 | ``` 34 | */ 35 | declare function ansiRegex(options?: ansiRegex.Options): RegExp; 36 | 37 | export = ansiRegex; 38 | -------------------------------------------------------------------------------- /node_modules/string-width/node_modules/ansi-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = ({onlyFirst = false} = {}) => { 4 | const pattern = [ 5 | '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', 6 | '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' 7 | ].join('|'); 8 | 9 | return new RegExp(pattern, onlyFirst ? undefined : 'g'); 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/string-width/node_modules/emoji-regex/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'emoji-regex' { 2 | function emojiRegex(): RegExp; 3 | 4 | export default emojiRegex; 5 | } 6 | 7 | declare module 'emoji-regex/text' { 8 | function emojiRegex(): RegExp; 9 | 10 | export default emojiRegex; 11 | } 12 | 13 | declare module 'emoji-regex/es2015' { 14 | function emojiRegex(): RegExp; 15 | 16 | export default emojiRegex; 17 | } 18 | 19 | declare module 'emoji-regex/es2015/text' { 20 | function emojiRegex(): RegExp; 21 | 22 | export default emojiRegex; 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/string-width/node_modules/is-fullwidth-code-point/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | 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). 3 | 4 | @param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. 5 | 6 | @example 7 | ``` 8 | import isFullwidthCodePoint from 'is-fullwidth-code-point'; 9 | 10 | isFullwidthCodePoint('谢'.codePointAt(0)); 11 | //=> true 12 | 13 | isFullwidthCodePoint('a'.codePointAt(0)); 14 | //=> false 15 | ``` 16 | */ 17 | export default function isFullwidthCodePoint(codePoint: number): boolean; 18 | -------------------------------------------------------------------------------- /node_modules/string-width/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 is-fullwidth-code-point 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 17 | 18 | isFullwidthCodePoint('谢'.codePointAt(0)); 19 | //=> true 20 | 21 | isFullwidthCodePoint('a'.codePointAt(0)); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## API 27 | 28 | ### isFullwidthCodePoint(codePoint) 29 | 30 | #### codePoint 31 | 32 | Type: `number` 33 | 34 | The [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/string-width/node_modules/strip-ansi/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. 3 | 4 | @example 5 | ``` 6 | import stripAnsi = require('strip-ansi'); 7 | 8 | stripAnsi('\u001B[4mUnicorn\u001B[0m'); 9 | //=> 'Unicorn' 10 | 11 | stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); 12 | //=> 'Click' 13 | ``` 14 | */ 15 | declare function stripAnsi(string: string): string; 16 | 17 | export = stripAnsi; 18 | -------------------------------------------------------------------------------- /node_modules/string-width/node_modules/strip-ansi/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const ansiRegex = require('ansi-regex'); 3 | 4 | module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; 5 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. 3 | 4 | @example 5 | ``` 6 | import stripAnsi from 'strip-ansi'; 7 | 8 | stripAnsi('\u001B[4mUnicorn\u001B[0m'); 9 | //=> 'Unicorn' 10 | 11 | stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); 12 | //=> 'Click' 13 | ``` 14 | */ 15 | export default function stripAnsi(string: string): string; 16 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const ansiRegex = require('ansi-regex'); 3 | 4 | const stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; 5 | 6 | module.exports = stripAnsi; 7 | module.exports.default = stripAnsi; 8 | -------------------------------------------------------------------------------- /node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/term-size/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace terminalSize { 2 | interface Size { 3 | columns: number; 4 | rows: number; 5 | } 6 | } 7 | 8 | /** 9 | Reliably get the terminal window size. 10 | 11 | @example 12 | ``` 13 | import terminalSize = require('term-size'); 14 | 15 | terminalSize(); 16 | //=> {columns: 143, rows: 24} 17 | ``` 18 | */ 19 | declare function terminalSize(): terminalSize.Size; 20 | 21 | export = terminalSize; 22 | -------------------------------------------------------------------------------- /node_modules/term-size/vendor/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/node_modules/term-size/vendor/.DS_Store -------------------------------------------------------------------------------- /node_modules/term-size/vendor/macos/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/node_modules/term-size/vendor/macos/.DS_Store -------------------------------------------------------------------------------- /node_modules/term-size/vendor/macos/term-size: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/node_modules/term-size/vendor/macos/term-size -------------------------------------------------------------------------------- /node_modules/term-size/vendor/windows/term-size.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xnslx/mern-stack-application/0130082a01bce6646cc21e2c04be027528e52873/node_modules/term-size/vendor/windows/term-size.exe -------------------------------------------------------------------------------- /node_modules/to-readable-stream/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const {Readable} = require('stream'); 3 | 4 | module.exports = input => ( 5 | new Readable({ 6 | read() { 7 | this.push(input); 8 | this.push(null); 9 | } 10 | }) 11 | ); 12 | -------------------------------------------------------------------------------- /node_modules/to-readable-stream/readme.md: -------------------------------------------------------------------------------- 1 | # to-readable-stream [![Build Status](https://travis-ci.org/sindresorhus/to-readable-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/to-readable-stream) 2 | 3 | > Convert a string/Buffer/Uint8Array to a [readable stream](https://nodejs.org/api/stream.html#stream_readable_streams) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install to-readable-stream 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const toReadableStream = require('to-readable-stream'); 17 | 18 | toReadableStream('🦄🌈').pipe(process.stdout); 19 | ``` 20 | 21 | 22 | ## API 23 | 24 | ### toReadableStream(input) 25 | 26 | Returns a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_readable_streams). 27 | 28 | #### input 29 | 30 | Type: `string` `Buffer` `Uint8Array` 31 | 32 | Value to convert to a stream. 33 | 34 | 35 | ## Related 36 | 37 | - [into-stream](https://github.com/sindresorhus/into-stream) - More advanced version of this module 38 | 39 | 40 | ## License 41 | 42 | MIT © [Sindre Sorhus](https://sindresorhus.com) 43 | -------------------------------------------------------------------------------- /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/type-fest/index.d.ts: -------------------------------------------------------------------------------- 1 | // Basic 2 | export * from './source/basic'; 3 | 4 | // Utilities 5 | export {Except} from './source/except'; 6 | export {Mutable} from './source/mutable'; 7 | export {Merge} from './source/merge'; 8 | export {MergeExclusive} from './source/merge-exclusive'; 9 | export {RequireAtLeastOne} from './source/require-at-least-one'; 10 | export {RequireExactlyOne} from './source/require-exactly-one'; 11 | export {PartialDeep} from './source/partial-deep'; 12 | export {ReadonlyDeep} from './source/readonly-deep'; 13 | export {LiteralUnion} from './source/literal-union'; 14 | export {Promisable} from './source/promisable'; 15 | export {Opaque} from './source/opaque'; 16 | export {SetOptional} from './source/set-optional'; 17 | export {SetRequired} from './source/set-required'; 18 | 19 | // Miscellaneous 20 | export {PackageJson} from './source/package-json'; 21 | -------------------------------------------------------------------------------- /node_modules/type-fest/source/except.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Create a type from an object type without certain keys. 3 | 4 | This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically. 5 | 6 | Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/30825) if you want to have the stricter version as a built-in in TypeScript. 7 | 8 | @example 9 | ``` 10 | import {Except} from 'type-fest'; 11 | 12 | type Foo = { 13 | a: number; 14 | b: string; 15 | c: boolean; 16 | }; 17 | 18 | type FooWithoutA = Except; 19 | //=> {b: string}; 20 | ``` 21 | */ 22 | export type Except = Pick>; 23 | -------------------------------------------------------------------------------- /node_modules/type-fest/source/merge.d.ts: -------------------------------------------------------------------------------- 1 | import {Except} from './except'; 2 | 3 | /** 4 | Merge two types into a new type. Keys of the second type overrides keys of the first type. 5 | 6 | @example 7 | ``` 8 | import {Merge} from 'type-fest'; 9 | 10 | type Foo = { 11 | a: number; 12 | b: string; 13 | }; 14 | 15 | type Bar = { 16 | b: number; 17 | }; 18 | 19 | const ab: Merge = {a: 1, b: 2}; 20 | ``` 21 | */ 22 | export type Merge = Except> & SecondType; 23 | -------------------------------------------------------------------------------- /node_modules/type-fest/source/mutable.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Convert an object with `readonly` keys into a mutable object. Inverse of `Readonly`. 3 | 4 | This can be used to [store and mutate options within a class](https://github.com/sindresorhus/pageres/blob/4a5d05fca19a5fbd2f53842cbf3eb7b1b63bddd2/source/index.ts#L72), [edit `readonly` objects within tests](https://stackoverflow.com/questions/50703834), and [construct a `readonly` object within a function](https://github.com/Microsoft/TypeScript/issues/24509). 5 | 6 | @example 7 | ``` 8 | import {Mutable} from 'type-fest'; 9 | 10 | type Foo = { 11 | readonly a: number; 12 | readonly b: string; 13 | }; 14 | 15 | const mutableFoo: Mutable = {a: 1, b: '2'}; 16 | mutableFoo.a = 3; 17 | ``` 18 | */ 19 | export type Mutable = { 20 | // For each `Key` in the keys of `ObjectType`, make a mapped type by removing the `readonly` modifier from the key. 21 | -readonly [KeyType in keyof ObjectType]: ObjectType[KeyType]; 22 | }; 23 | -------------------------------------------------------------------------------- /node_modules/type-fest/source/promisable.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Create a type that represents either the value or the value wrapped in `PromiseLike`. 3 | 4 | Use-cases: 5 | - A function accepts a callback that may either return a value synchronously or may return a promised value. 6 | - This type could be the return type of `Promise#then()`, `Promise#catch()`, and `Promise#finally()` callbacks. 7 | 8 | Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/31394) if you want to have this type as a built-in in TypeScript. 9 | 10 | @example 11 | ``` 12 | import {Promisable} from 'type-fest'; 13 | 14 | async function logger(getLogEntry: () => Promisable): Promise { 15 | const entry = await getLogEntry(); 16 | console.log(entry); 17 | } 18 | 19 | logger(() => 'foo'); 20 | logger(() => Promise.resolve('bar')); 21 | ``` 22 | */ 23 | export type Promisable = T | PromiseLike; 24 | -------------------------------------------------------------------------------- /node_modules/type-fest/source/require-at-least-one.d.ts: -------------------------------------------------------------------------------- 1 | import {Except} from './except'; 2 | 3 | /** 4 | Create a type that requires at least one of the given keys. The remaining keys are kept as is. 5 | 6 | @example 7 | ``` 8 | import {RequireAtLeastOne} from 'type-fest'; 9 | 10 | type Responder = { 11 | text?: () => string; 12 | json?: () => string; 13 | 14 | secure?: boolean; 15 | }; 16 | 17 | const responder: RequireAtLeastOne = { 18 | json: () => '{"message": "ok"}', 19 | secure: true 20 | }; 21 | ``` 22 | */ 23 | export type RequireAtLeastOne = 24 | { 25 | // For each Key in KeysType make a mapped type 26 | [Key in KeysType]: ( 27 | // …by picking that Key's type and making it required 28 | Required> 29 | ) 30 | }[KeysType] 31 | // …then, make intersection types by adding the remaining keys to each mapped type. 32 | & Except; 33 | -------------------------------------------------------------------------------- /node_modules/typedarray-to-buffer/.airtap.yml: -------------------------------------------------------------------------------- 1 | sauce_connect: true 2 | loopback: airtap.local 3 | browsers: 4 | - name: chrome 5 | version: latest 6 | - name: firefox 7 | version: latest 8 | - name: safari 9 | version: latest 10 | - name: microsoftedge 11 | version: latest 12 | - name: ie 13 | version: latest 14 | - name: iphone 15 | version: latest 16 | -------------------------------------------------------------------------------- /node_modules/typedarray-to-buffer/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - lts/* 4 | addons: 5 | sauce_connect: true 6 | hosts: 7 | - airtap.local 8 | env: 9 | global: 10 | - secure: i51rE9rZGHbcZWlL58j3H1qtL23OIV2r0X4TcQKNI3pw2mubdHFJmfPNNO19ItfReu8wwQMxOehKamwaNvqMiKWyHfn/QcThFQysqzgGZ6AgnUbYx9od6XFNDeWd1sVBf7QBAL07y7KWlYGWCwFwWjabSVySzQhEBdisPcskfkI= 11 | - secure: BKq6/5z9LK3KDkTjs7BGeBZ1KsWgz+MsAXZ4P64NSeVGFaBdXU45+ww1mwxXFt5l22/mhyOQZfebQl+kGVqRSZ+DEgQeCymkNZ6CD8c6w6cLuOJXiXwuu/cDM2DD0tfGeu2YZC7yEikP7BqEFwH3D324rRzSGLF2RSAAwkOI7bE= 12 | -------------------------------------------------------------------------------- /node_modules/typedarray-to-buffer/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Convert a typed array to a Buffer without a copy 3 | * 4 | * Author: Feross Aboukhadijeh 5 | * License: MIT 6 | * 7 | * `npm install typedarray-to-buffer` 8 | */ 9 | 10 | var isTypedArray = require('is-typedarray').strict 11 | 12 | module.exports = function typedarrayToBuffer (arr) { 13 | if (isTypedArray(arr)) { 14 | // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer 15 | var buf = Buffer.from(arr.buffer) 16 | if (arr.byteLength !== arr.buffer.byteLength) { 17 | // Respect the "view", i.e. byteOffset and byteLength, without doing a copy 18 | buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength) 19 | } 20 | return buf 21 | } else { 22 | // Pass through all other types to `Buffer.from` 23 | return Buffer.from(arr) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /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.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Generate a unique random string. 3 | 4 | @returns A 32 character unique string. Matches the length of MD5, which is [unique enough](https://stackoverflow.com/a/2444336/64949) for non-crypto purposes. 5 | 6 | @example 7 | ``` 8 | import uniqueString = require('unique-string'); 9 | 10 | uniqueString(); 11 | //=> 'b4de2a49c8ffa3fbee04446f045483b2' 12 | ``` 13 | */ 14 | declare function uniqueString(): string; 15 | 16 | export = uniqueString; 17 | -------------------------------------------------------------------------------- /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 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](https://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/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 | (async () => { 10 | // Exit process when offline 11 | setTimeout(process.exit, 1000 * 30); 12 | 13 | const update = await updateNotifier.fetchInfo(); 14 | 15 | // Only update the last update check time on success 16 | updateNotifier.config.set('lastUpdateCheck', Date.now()); 17 | 18 | if (update.type && update.type !== 'latest') { 19 | updateNotifier.config.set('update', update); 20 | } 21 | 22 | // Call process exit explicitly to terminate the child process, 23 | // otherwise the child process will run forever, according to the Node.js docs 24 | process.exit(); 25 | })().catch(error => { 26 | console.error(error); 27 | process.exit(1); 28 | }); 29 | -------------------------------------------------------------------------------- /node_modules/url-parse-lax/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const url = require('url'); 3 | const prependHttp = require('prepend-http'); 4 | 5 | module.exports = (input, options) => { 6 | if (typeof input !== 'string') { 7 | throw new TypeError(`Expected \`url\` to be of type \`string\`, got \`${typeof input}\` instead.`); 8 | } 9 | 10 | const finalUrl = prependHttp(input, Object.assign({https: true}, options)); 11 | return url.parse(finalUrl); 12 | }; 13 | -------------------------------------------------------------------------------- /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/widest-line/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const widestLine: { 2 | /** 3 | Get the visual width of the widest line in a string - the number of columns required to display it. 4 | 5 | @example 6 | ``` 7 | import widestLine = require('widest-line'); 8 | 9 | widestLine('古\n\u001B[1m@\u001B[22m'); 10 | //=> 2 11 | ``` 12 | */ 13 | (input: string): number; 14 | 15 | // TODO: remove this in the next major version, refactor definition to: 16 | // declare function widestLine(input: string): number; 17 | // export = widestLine; 18 | default: typeof widestLine; 19 | }; 20 | 21 | export = widestLine; 22 | -------------------------------------------------------------------------------- /node_modules/widest-line/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stringWidth = require('string-width'); 3 | 4 | const widestLine = input => { 5 | let max = 0; 6 | 7 | for (const line of input.split('\n')) { 8 | max = Math.max(max, stringWidth(line)); 9 | } 10 | 11 | return max; 12 | }; 13 | 14 | module.exports = widestLine; 15 | // TODO: remove this in the next major version 16 | module.exports.default = widestLine; 17 | -------------------------------------------------------------------------------- /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/wrappy/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/wrappy/README.md: -------------------------------------------------------------------------------- 1 | # wrappy 2 | 3 | Callback wrapping utility 4 | 5 | ## USAGE 6 | 7 | ```javascript 8 | var wrappy = require("wrappy") 9 | 10 | // var wrapper = wrappy(wrapperFunction) 11 | 12 | // make sure a cb is called only once 13 | // See also: http://npm.im/once for this specific use case 14 | var once = wrappy(function (cb) { 15 | var called = false 16 | return function () { 17 | if (called) return 18 | called = true 19 | return cb.apply(this, arguments) 20 | } 21 | }) 22 | 23 | function printBoo () { 24 | console.log('boo') 25 | } 26 | // has some rando property 27 | printBoo.iAmBooPrinter = true 28 | 29 | var onlyPrintOnce = once(printBoo) 30 | 31 | onlyPrintOnce() // prints 'boo' 32 | onlyPrintOnce() // does nothing 33 | 34 | // random property is retained! 35 | assert.equal(onlyPrintOnce.iAmBooPrinter, true) 36 | ``` 37 | -------------------------------------------------------------------------------- /node_modules/wrappy/wrappy.js: -------------------------------------------------------------------------------- 1 | // Returns a wrapper function that returns a wrapped callback 2 | // The wrapper function should do some stuff, and return a 3 | // presumably different callback function. 4 | // This makes sure that own properties are retained, so that 5 | // decorations and such are not lost along the way. 6 | module.exports = wrappy 7 | function wrappy (fn, cb) { 8 | if (fn && cb) return wrappy(fn)(cb) 9 | 10 | if (typeof fn !== 'function') 11 | throw new TypeError('need wrapper function') 12 | 13 | Object.keys(fn).forEach(function (k) { 14 | wrapper[k] = fn[k] 15 | }) 16 | 17 | return wrapper 18 | 19 | function wrapper() { 20 | var args = new Array(arguments.length) 21 | for (var i = 0; i < args.length; i++) { 22 | args[i] = arguments[i] 23 | } 24 | var ret = fn.apply(this, args) 25 | var cb = args[args.length-1] 26 | if (typeof ret === 'function' && ret !== cb) { 27 | Object.keys(cb).forEach(function (k) { 28 | ret[k] = cb[k] 29 | }) 30 | } 31 | return ret 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /node_modules/write-file-atomic/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 3.0.0 2 | 3 | * Implement options.tmpfileCreated callback. 4 | * Drop Node.js 6, modernize code, return Promise from async function. 5 | * Support write TypedArray's like in node fs.writeFile. 6 | * Remove graceful-fs dependency. 7 | 8 | # 2.4.3 9 | 10 | * Ignore errors raised by `fs.closeSync` when cleaning up after a write 11 | error. 12 | 13 | # 2.4.2 14 | 15 | * A pair of patches to fix some fd leaks. We would leak fds with sync use 16 | when errors occured and with async use any time fsync was not in use. (#34) 17 | 18 | # 2.4.1 19 | 20 | * Fix a bug where `signal-exit` instances would be leaked. This was fixed when addressing #35. 21 | 22 | # 2.4.0 23 | 24 | ## Features 25 | 26 | * Allow chown and mode options to be set to false to disable the defaulting behavior. (#20) 27 | * Support passing encoding strings in options slot for compat with Node.js API. (#31) 28 | * Add support for running inside of worker threads (#37) 29 | 30 | ## Fixes 31 | 32 | * Remove unneeded call when returning success (#36) 33 | -------------------------------------------------------------------------------- /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/xdg-basedir/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const os = require('os'); 3 | const path = require('path'); 4 | 5 | const homeDirectory = os.homedir(); 6 | const {env} = process; 7 | 8 | exports.data = env.XDG_DATA_HOME || 9 | (homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined); 10 | 11 | exports.config = env.XDG_CONFIG_HOME || 12 | (homeDirectory ? path.join(homeDirectory, '.config') : undefined); 13 | 14 | exports.cache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined); 15 | 16 | exports.runtime = env.XDG_RUNTIME_DIR || undefined; 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 | --------------------------------------------------------------------------------