├── Lesson1 └── node js.odp ├── Lesson10 ├── app.js └── view │ ├── 404.html │ ├── contact.html │ └── index.html ├── Lesson11-17 ├── app.js ├── node_modules │ ├── .bin │ │ ├── mime │ │ ├── mime.cmd │ │ └── mime.ps1 │ ├── .package-lock.json │ ├── accepts │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── array-flatten │ │ ├── LICENSE │ │ ├── README.md │ │ ├── array-flatten.js │ │ └── package.json │ ├── body-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── read.js │ │ │ └── types │ │ │ │ ├── json.js │ │ │ │ ├── raw.js │ │ │ │ ├── text.js │ │ │ │ └── urlencoded.js │ │ └── package.json │ ├── bytes │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── call-bind │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── callBound.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── callBound.js │ │ │ └── index.js │ ├── content-disposition │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── content-type │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── cookie-signature │ │ ├── .npmignore │ │ ├── History.md │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── cookie │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── depd │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ └── browser │ │ │ │ └── index.js │ │ └── package.json │ ├── destroy │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ee-first │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── encodeurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── escape-html │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── etag │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── express │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── application.js │ │ │ ├── express.js │ │ │ ├── middleware │ │ │ │ ├── init.js │ │ │ │ └── query.js │ │ │ ├── request.js │ │ │ ├── response.js │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ ├── layer.js │ │ │ │ └── route.js │ │ │ ├── utils.js │ │ │ └── view.js │ │ └── package.json │ ├── finalhandler │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── function-bind │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .jscs.json │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ └── index.js │ ├── get-intrinsic │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── GetIntrinsic.js │ ├── has-symbols │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── shams.js │ │ └── test │ │ │ ├── index.js │ │ │ ├── shams │ │ │ ├── core-js.js │ │ │ └── get-own-property-symbols.js │ │ │ └── tests.js │ ├── has │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ └── test │ │ │ └── index.js │ ├── 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 │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── ipaddr.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ipaddr.min.js │ │ ├── lib │ │ │ ├── ipaddr.js │ │ │ └── ipaddr.js.d.ts │ │ └── package.json │ ├── media-typer │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── merge-descriptors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── methods │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cli.js │ │ ├── mime.js │ │ ├── package.json │ │ ├── src │ │ │ ├── build.js │ │ │ └── test.js │ │ └── types.json │ ├── 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 │ ├── object-inspect │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── example │ │ │ ├── all.js │ │ │ ├── circular.js │ │ │ ├── fn.js │ │ │ └── inspect.js │ │ ├── index.js │ │ ├── package-support.json │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── test-core-js.js │ │ ├── test │ │ │ ├── bigint.js │ │ │ ├── browser │ │ │ │ └── dom.js │ │ │ ├── circular.js │ │ │ ├── deep.js │ │ │ ├── element.js │ │ │ ├── err.js │ │ │ ├── fakes.js │ │ │ ├── fn.js │ │ │ ├── has.js │ │ │ ├── holes.js │ │ │ ├── indent-option.js │ │ │ ├── inspect.js │ │ │ ├── lowbyte.js │ │ │ ├── number.js │ │ │ ├── quoteStyle.js │ │ │ ├── toStringTag.js │ │ │ ├── undef.js │ │ │ └── values.js │ │ └── util.inspect.js │ ├── on-finished │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── parseurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── path-to-regexp │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── proxy-addr │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── range-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── send │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── side-channel │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── statuses │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codes.json │ │ ├── index.js │ │ └── package.json │ ├── toidentifier │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── type-is │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── utils-merge │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ └── vary │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json ├── package-lock.json ├── package.json └── public │ ├── contact.html │ └── index.html ├── Lesson18 ├── app.js └── lesson.js ├── Lesson19 ├── app.js ├── lesson.js ├── node_modules │ ├── .bin │ │ ├── nodemon │ │ ├── nodemon.cmd │ │ ├── nodemon.ps1 │ │ ├── nodetouch │ │ ├── nodetouch.cmd │ │ ├── nodetouch.ps1 │ │ ├── nopt │ │ ├── nopt.cmd │ │ ├── nopt.ps1 │ │ ├── semver │ │ ├── semver.cmd │ │ └── semver.ps1 │ ├── .package-lock.json │ ├── abbrev │ │ ├── LICENSE │ │ ├── README.md │ │ ├── abbrev.js │ │ └── package.json │ ├── anymatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── balanced-match │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── bignumber.js │ │ ├── CHANGELOG.md │ │ ├── LICENCE │ │ ├── README.md │ │ ├── bignumber.d.ts │ │ ├── bignumber.js │ │ ├── bignumber.min.js │ │ ├── bignumber.min.js.map │ │ ├── bignumber.mjs │ │ ├── doc │ │ │ └── API.html │ │ └── package.json │ ├── binary-extensions │ │ ├── binary-extensions.json │ │ ├── binary-extensions.json.d.ts │ │ ├── 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 │ ├── chokidar │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── constants.js │ │ │ ├── fsevents-handler.js │ │ │ └── nodefs-handler.js │ │ ├── package.json │ │ └── types │ │ │ └── index.d.ts │ ├── concat-map │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.markdown │ │ ├── example │ │ │ └── map.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── map.js │ ├── core-util-is │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ │ └── util.js │ │ └── package.json │ ├── debug │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── node.js │ │ ├── package.json │ │ └── src │ │ │ ├── browser.js │ │ │ ├── common.js │ │ │ ├── index.js │ │ │ └── node.js │ ├── fill-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── glob-parent │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── has-flag │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── ignore-by-default │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── is-binary-path │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-extglob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-glob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-number │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── isarray │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── Makefile │ │ ├── README.md │ │ ├── component.json │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── minimatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── minimatch.js │ │ └── package.json │ ├── ms │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── mysql │ │ ├── Changes.md │ │ ├── License │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── Connection.js │ │ │ ├── ConnectionConfig.js │ │ │ ├── Pool.js │ │ │ ├── PoolCluster.js │ │ │ ├── PoolConfig.js │ │ │ ├── PoolConnection.js │ │ │ ├── PoolNamespace.js │ │ │ ├── PoolSelector.js │ │ │ └── protocol │ │ │ │ ├── Auth.js │ │ │ │ ├── BufferList.js │ │ │ │ ├── PacketHeader.js │ │ │ │ ├── PacketWriter.js │ │ │ │ ├── Parser.js │ │ │ │ ├── Protocol.js │ │ │ │ ├── ResultSet.js │ │ │ │ ├── SqlString.js │ │ │ │ ├── Timer.js │ │ │ │ ├── constants │ │ │ │ ├── charsets.js │ │ │ │ ├── client.js │ │ │ │ ├── errors.js │ │ │ │ ├── field_flags.js │ │ │ │ ├── server_status.js │ │ │ │ ├── ssl_profiles.js │ │ │ │ └── types.js │ │ │ │ ├── packets │ │ │ │ ├── AuthSwitchRequestPacket.js │ │ │ │ ├── AuthSwitchResponsePacket.js │ │ │ │ ├── ClientAuthenticationPacket.js │ │ │ │ ├── ComChangeUserPacket.js │ │ │ │ ├── ComPingPacket.js │ │ │ │ ├── ComQueryPacket.js │ │ │ │ ├── ComQuitPacket.js │ │ │ │ ├── ComStatisticsPacket.js │ │ │ │ ├── EmptyPacket.js │ │ │ │ ├── EofPacket.js │ │ │ │ ├── ErrorPacket.js │ │ │ │ ├── Field.js │ │ │ │ ├── FieldPacket.js │ │ │ │ ├── HandshakeInitializationPacket.js │ │ │ │ ├── LocalDataFilePacket.js │ │ │ │ ├── LocalInfileRequestPacket.js │ │ │ │ ├── OkPacket.js │ │ │ │ ├── OldPasswordPacket.js │ │ │ │ ├── ResultSetHeaderPacket.js │ │ │ │ ├── RowDataPacket.js │ │ │ │ ├── SSLRequestPacket.js │ │ │ │ ├── StatisticsPacket.js │ │ │ │ ├── UseOldPasswordPacket.js │ │ │ │ └── index.js │ │ │ │ └── sequences │ │ │ │ ├── ChangeUser.js │ │ │ │ ├── Handshake.js │ │ │ │ ├── Ping.js │ │ │ │ ├── Query.js │ │ │ │ ├── Quit.js │ │ │ │ ├── Sequence.js │ │ │ │ ├── Statistics.js │ │ │ │ └── index.js │ │ └── package.json │ ├── nodemon │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ ├── nodemon.js │ │ │ └── windows-kill.exe │ │ ├── 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 │ │ └── 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 │ ├── picomatch │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── constants.js │ │ │ ├── parse.js │ │ │ ├── picomatch.js │ │ │ ├── scan.js │ │ │ └── utils.js │ │ └── package.json │ ├── process-nextick-args │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── 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 │ ├── readable-stream │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── GOVERNANCE.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc │ │ │ └── wg-meetings │ │ │ │ └── 2015-01-30.md │ │ ├── duplex-browser.js │ │ ├── duplex.js │ │ ├── lib │ │ │ ├── _stream_duplex.js │ │ │ ├── _stream_passthrough.js │ │ │ ├── _stream_readable.js │ │ │ ├── _stream_transform.js │ │ │ ├── _stream_writable.js │ │ │ └── internal │ │ │ │ └── streams │ │ │ │ ├── BufferList.js │ │ │ │ ├── destroy.js │ │ │ │ ├── stream-browser.js │ │ │ │ └── stream.js │ │ ├── package.json │ │ ├── passthrough.js │ │ ├── readable-browser.js │ │ ├── readable.js │ │ ├── transform.js │ │ ├── writable-browser.js │ │ └── writable.js │ ├── readdirp │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── safe-buffer │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── semver │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── semver │ │ ├── package.json │ │ ├── range.bnf │ │ └── semver.js │ ├── simple-update-notifier │ │ ├── LICENSE │ │ ├── README.md │ │ ├── build │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── node_modules │ │ │ ├── .bin │ │ │ │ ├── semver │ │ │ │ ├── semver.cmd │ │ │ │ └── semver.ps1 │ │ │ └── semver │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── bin │ │ │ │ └── semver.js │ │ │ │ ├── classes │ │ │ │ ├── comparator.js │ │ │ │ ├── index.js │ │ │ │ ├── range.js │ │ │ │ └── semver.js │ │ │ │ ├── functions │ │ │ │ ├── clean.js │ │ │ │ ├── cmp.js │ │ │ │ ├── coerce.js │ │ │ │ ├── compare-build.js │ │ │ │ ├── compare-loose.js │ │ │ │ ├── compare.js │ │ │ │ ├── diff.js │ │ │ │ ├── eq.js │ │ │ │ ├── gt.js │ │ │ │ ├── gte.js │ │ │ │ ├── inc.js │ │ │ │ ├── lt.js │ │ │ │ ├── lte.js │ │ │ │ ├── major.js │ │ │ │ ├── minor.js │ │ │ │ ├── neq.js │ │ │ │ ├── parse.js │ │ │ │ ├── patch.js │ │ │ │ ├── prerelease.js │ │ │ │ ├── rcompare.js │ │ │ │ ├── rsort.js │ │ │ │ ├── satisfies.js │ │ │ │ ├── sort.js │ │ │ │ └── valid.js │ │ │ │ ├── index.js │ │ │ │ ├── internal │ │ │ │ ├── constants.js │ │ │ │ ├── debug.js │ │ │ │ ├── identifiers.js │ │ │ │ └── re.js │ │ │ │ ├── package.json │ │ │ │ ├── range.bnf │ │ │ │ └── ranges │ │ │ │ ├── gtr.js │ │ │ │ ├── intersects.js │ │ │ │ ├── ltr.js │ │ │ │ ├── max-satisfying.js │ │ │ │ ├── min-satisfying.js │ │ │ │ ├── min-version.js │ │ │ │ ├── outside.js │ │ │ │ ├── to-comparators.js │ │ │ │ └── valid.js │ │ ├── package.json │ │ └── src │ │ │ ├── borderedText.ts │ │ │ ├── cache.spec.ts │ │ │ ├── cache.ts │ │ │ ├── getDistVersion.spec.ts │ │ │ ├── getDistVersion.ts │ │ │ ├── hasNewVersion.spec.ts │ │ │ ├── hasNewVersion.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── isNpmOrYarn.ts │ │ │ └── types.ts │ ├── sqlstring │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ └── SqlString.js │ │ └── package.json │ ├── string_decoder │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ │ └── string_decoder.js │ │ └── package.json │ ├── supports-color │ │ ├── browser.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── to-regex-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── touch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── nodetouch.js │ │ ├── index.js │ │ └── package.json │ ├── undefsafe │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── release.yml │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── lib │ │ │ └── undefsafe.js │ │ └── package.json │ └── util-deprecate │ │ ├── History.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── browser.js │ │ ├── node.js │ │ └── package.json ├── package-lock.json └── package.json ├── Lesson20 ├── app.js ├── callbacks.js ├── node_modules │ ├── .bin │ │ ├── nodemon │ │ ├── nodemon.cmd │ │ ├── nodemon.ps1 │ │ ├── nodetouch │ │ ├── nodetouch.cmd │ │ ├── nodetouch.ps1 │ │ ├── nopt │ │ ├── nopt.cmd │ │ ├── nopt.ps1 │ │ ├── semver │ │ ├── semver.cmd │ │ └── semver.ps1 │ ├── .package-lock.json │ ├── abbrev │ │ ├── LICENSE │ │ ├── README.md │ │ ├── abbrev.js │ │ └── package.json │ ├── anymatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── balanced-match │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── bignumber.js │ │ ├── CHANGELOG.md │ │ ├── LICENCE │ │ ├── README.md │ │ ├── bignumber.d.ts │ │ ├── bignumber.js │ │ ├── bignumber.min.js │ │ ├── bignumber.min.js.map │ │ ├── bignumber.mjs │ │ ├── doc │ │ │ └── API.html │ │ └── package.json │ ├── binary-extensions │ │ ├── binary-extensions.json │ │ ├── binary-extensions.json.d.ts │ │ ├── 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 │ ├── chokidar │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── constants.js │ │ │ ├── fsevents-handler.js │ │ │ └── nodefs-handler.js │ │ ├── package.json │ │ └── types │ │ │ └── index.d.ts │ ├── concat-map │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.markdown │ │ ├── example │ │ │ └── map.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── map.js │ ├── core-util-is │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ │ └── util.js │ │ └── package.json │ ├── debug │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── node.js │ │ ├── package.json │ │ └── src │ │ │ ├── browser.js │ │ │ ├── common.js │ │ │ ├── index.js │ │ │ └── node.js │ ├── denque │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── fill-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── generate-function │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── glob-parent │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── has-flag │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── iconv-lite │ │ ├── .github │ │ │ └── dependabot.yml │ │ ├── .idea │ │ │ ├── codeStyles │ │ │ │ ├── Project.xml │ │ │ │ └── codeStyleConfig.xml │ │ │ ├── iconv-lite.iml │ │ │ ├── inspectionProfiles │ │ │ │ └── Project_Default.xml │ │ │ ├── modules.xml │ │ │ └── vcs.xml │ │ ├── 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 │ │ │ ├── utf32.js │ │ │ └── utf7.js │ │ ├── lib │ │ │ ├── bom-handling.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── streams.js │ │ └── package.json │ ├── ignore-by-default │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── is-binary-path │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-extglob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-glob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-number │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-property │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── is-property.js │ │ └── package.json │ ├── isarray │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── Makefile │ │ ├── README.md │ │ ├── component.json │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── long │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ └── umd │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── package.json │ ├── lru-cache │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── cjs │ │ │ │ ├── index-cjs.d.ts │ │ │ │ ├── index-cjs.d.ts.map │ │ │ │ ├── index-cjs.js │ │ │ │ ├── index-cjs.js.map │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.d.ts.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.min.js │ │ │ │ ├── index.min.js.map │ │ │ │ └── package.json │ │ │ └── mjs │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.d.ts.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.min.js │ │ │ │ ├── index.min.js.map │ │ │ │ └── package.json │ │ └── package.json │ ├── minimatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── minimatch.js │ │ └── package.json │ ├── ms │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── mysql │ │ ├── Changes.md │ │ ├── License │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── Connection.js │ │ │ ├── ConnectionConfig.js │ │ │ ├── Pool.js │ │ │ ├── PoolCluster.js │ │ │ ├── PoolConfig.js │ │ │ ├── PoolConnection.js │ │ │ ├── PoolNamespace.js │ │ │ ├── PoolSelector.js │ │ │ └── protocol │ │ │ │ ├── Auth.js │ │ │ │ ├── BufferList.js │ │ │ │ ├── PacketHeader.js │ │ │ │ ├── PacketWriter.js │ │ │ │ ├── Parser.js │ │ │ │ ├── Protocol.js │ │ │ │ ├── ResultSet.js │ │ │ │ ├── SqlString.js │ │ │ │ ├── Timer.js │ │ │ │ ├── constants │ │ │ │ ├── charsets.js │ │ │ │ ├── client.js │ │ │ │ ├── errors.js │ │ │ │ ├── field_flags.js │ │ │ │ ├── server_status.js │ │ │ │ ├── ssl_profiles.js │ │ │ │ └── types.js │ │ │ │ ├── packets │ │ │ │ ├── AuthSwitchRequestPacket.js │ │ │ │ ├── AuthSwitchResponsePacket.js │ │ │ │ ├── ClientAuthenticationPacket.js │ │ │ │ ├── ComChangeUserPacket.js │ │ │ │ ├── ComPingPacket.js │ │ │ │ ├── ComQueryPacket.js │ │ │ │ ├── ComQuitPacket.js │ │ │ │ ├── ComStatisticsPacket.js │ │ │ │ ├── EmptyPacket.js │ │ │ │ ├── EofPacket.js │ │ │ │ ├── ErrorPacket.js │ │ │ │ ├── Field.js │ │ │ │ ├── FieldPacket.js │ │ │ │ ├── HandshakeInitializationPacket.js │ │ │ │ ├── LocalDataFilePacket.js │ │ │ │ ├── LocalInfileRequestPacket.js │ │ │ │ ├── OkPacket.js │ │ │ │ ├── OldPasswordPacket.js │ │ │ │ ├── ResultSetHeaderPacket.js │ │ │ │ ├── RowDataPacket.js │ │ │ │ ├── SSLRequestPacket.js │ │ │ │ ├── StatisticsPacket.js │ │ │ │ ├── UseOldPasswordPacket.js │ │ │ │ └── index.js │ │ │ │ └── sequences │ │ │ │ ├── ChangeUser.js │ │ │ │ ├── Handshake.js │ │ │ │ ├── Ping.js │ │ │ │ ├── Query.js │ │ │ │ ├── Quit.js │ │ │ │ ├── Sequence.js │ │ │ │ ├── Statistics.js │ │ │ │ └── index.js │ │ └── package.json │ ├── mysql2 │ │ ├── License │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── lib │ │ │ ├── auth_41.js │ │ │ ├── auth_plugins │ │ │ │ ├── caching_sha2_password.js │ │ │ │ ├── caching_sha2_password.md │ │ │ │ ├── index.js │ │ │ │ ├── mysql_clear_password.js │ │ │ │ ├── mysql_native_password.js │ │ │ │ └── sha256_password.js │ │ │ ├── commands │ │ │ │ ├── auth_switch.js │ │ │ │ ├── binlog_dump.js │ │ │ │ ├── change_user.js │ │ │ │ ├── client_handshake.js │ │ │ │ ├── close_statement.js │ │ │ │ ├── command.js │ │ │ │ ├── execute.js │ │ │ │ ├── index.js │ │ │ │ ├── ping.js │ │ │ │ ├── prepare.js │ │ │ │ ├── query.js │ │ │ │ ├── quit.js │ │ │ │ ├── register_slave.js │ │ │ │ └── server_handshake.js │ │ │ ├── compressed_protocol.js │ │ │ ├── connection.js │ │ │ ├── connection_config.js │ │ │ ├── constants │ │ │ │ ├── charset_encodings.js │ │ │ │ ├── charsets.js │ │ │ │ ├── client.js │ │ │ │ ├── commands.js │ │ │ │ ├── cursor.js │ │ │ │ ├── encoding_charset.js │ │ │ │ ├── errors.js │ │ │ │ ├── field_flags.js │ │ │ │ ├── server_status.js │ │ │ │ ├── session_track.js │ │ │ │ ├── ssl_profiles.js │ │ │ │ └── types.js │ │ │ ├── helpers.js │ │ │ ├── packet_parser.js │ │ │ ├── packets │ │ │ │ ├── auth_next_factor.js │ │ │ │ ├── auth_switch_request.js │ │ │ │ ├── auth_switch_request_more_data.js │ │ │ │ ├── auth_switch_response.js │ │ │ │ ├── binary_row.js │ │ │ │ ├── binlog_dump.js │ │ │ │ ├── binlog_query_statusvars.js │ │ │ │ ├── change_user.js │ │ │ │ ├── close_statement.js │ │ │ │ ├── column_definition.js │ │ │ │ ├── execute.js │ │ │ │ ├── handshake.js │ │ │ │ ├── handshake_response.js │ │ │ │ ├── index.js │ │ │ │ ├── packet.js │ │ │ │ ├── prepare_statement.js │ │ │ │ ├── prepared_statement_header.js │ │ │ │ ├── query.js │ │ │ │ ├── register_slave.js │ │ │ │ ├── resultset_header.js │ │ │ │ ├── ssl_request.js │ │ │ │ └── text_row.js │ │ │ ├── parsers │ │ │ │ ├── binary_parser.js │ │ │ │ ├── parser_cache.js │ │ │ │ ├── string.js │ │ │ │ └── text_parser.js │ │ │ ├── pool.js │ │ │ ├── pool_cluster.js │ │ │ ├── pool_config.js │ │ │ ├── pool_connection.js │ │ │ ├── results_stream.js │ │ │ └── server.js │ │ ├── node_modules │ │ │ └── sqlstring │ │ │ │ ├── HISTORY.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ └── SqlString.js │ │ │ │ └── package.json │ │ ├── package.json │ │ ├── promise.d.ts │ │ ├── promise.js │ │ └── typings │ │ │ └── mysql │ │ │ ├── LICENSE.txt │ │ │ ├── index.d.ts │ │ │ ├── info.txt │ │ │ └── lib │ │ │ ├── Connection.d.ts │ │ │ ├── Pool.d.ts │ │ │ ├── PoolCluster.d.ts │ │ │ ├── PoolConnection.d.ts │ │ │ ├── Server.d.ts │ │ │ └── protocol │ │ │ ├── packets │ │ │ ├── Field.d.ts │ │ │ ├── FieldPacket.d.ts │ │ │ ├── OkPacket.d.ts │ │ │ ├── ResultSetHeader.d.ts │ │ │ ├── RowDataPacket.d.ts │ │ │ ├── index.d.ts │ │ │ └── params │ │ │ │ ├── ErrorPacketParams.d.ts │ │ │ │ └── OkPacketParams.d.ts │ │ │ └── sequences │ │ │ ├── Prepare.d.ts │ │ │ ├── Query.d.ts │ │ │ └── Sequence.d.ts │ ├── named-placeholders │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── node_modules │ │ │ └── lru-cache │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.mjs │ │ │ │ └── package.json │ │ └── package.json │ ├── nodemon │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ ├── nodemon.js │ │ │ └── windows-kill.exe │ │ ├── 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 │ │ └── 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 │ ├── picomatch │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── constants.js │ │ │ ├── parse.js │ │ │ ├── picomatch.js │ │ │ ├── scan.js │ │ │ └── utils.js │ │ └── package.json │ ├── process-nextick-args │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── 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 │ ├── readable-stream │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── GOVERNANCE.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc │ │ │ └── wg-meetings │ │ │ │ └── 2015-01-30.md │ │ ├── duplex-browser.js │ │ ├── duplex.js │ │ ├── lib │ │ │ ├── _stream_duplex.js │ │ │ ├── _stream_passthrough.js │ │ │ ├── _stream_readable.js │ │ │ ├── _stream_transform.js │ │ │ ├── _stream_writable.js │ │ │ └── internal │ │ │ │ └── streams │ │ │ │ ├── BufferList.js │ │ │ │ ├── destroy.js │ │ │ │ ├── stream-browser.js │ │ │ │ └── stream.js │ │ ├── package.json │ │ ├── passthrough.js │ │ ├── readable-browser.js │ │ ├── readable.js │ │ ├── transform.js │ │ ├── writable-browser.js │ │ └── writable.js │ ├── readdirp │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── 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 │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── semver │ │ ├── package.json │ │ ├── range.bnf │ │ └── semver.js │ ├── seq-queue │ │ ├── .jshintrc │ │ ├── .npmignore │ │ ├── AUTHORS │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── .npmignore │ │ │ └── seq-queue.js │ │ ├── package.json │ │ └── test │ │ │ └── seq-queue-test.js │ ├── simple-update-notifier │ │ ├── LICENSE │ │ ├── README.md │ │ ├── build │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── node_modules │ │ │ ├── .bin │ │ │ │ ├── semver │ │ │ │ ├── semver.cmd │ │ │ │ └── semver.ps1 │ │ │ └── semver │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── bin │ │ │ │ └── semver.js │ │ │ │ ├── classes │ │ │ │ ├── comparator.js │ │ │ │ ├── index.js │ │ │ │ ├── range.js │ │ │ │ └── semver.js │ │ │ │ ├── functions │ │ │ │ ├── clean.js │ │ │ │ ├── cmp.js │ │ │ │ ├── coerce.js │ │ │ │ ├── compare-build.js │ │ │ │ ├── compare-loose.js │ │ │ │ ├── compare.js │ │ │ │ ├── diff.js │ │ │ │ ├── eq.js │ │ │ │ ├── gt.js │ │ │ │ ├── gte.js │ │ │ │ ├── inc.js │ │ │ │ ├── lt.js │ │ │ │ ├── lte.js │ │ │ │ ├── major.js │ │ │ │ ├── minor.js │ │ │ │ ├── neq.js │ │ │ │ ├── parse.js │ │ │ │ ├── patch.js │ │ │ │ ├── prerelease.js │ │ │ │ ├── rcompare.js │ │ │ │ ├── rsort.js │ │ │ │ ├── satisfies.js │ │ │ │ ├── sort.js │ │ │ │ └── valid.js │ │ │ │ ├── index.js │ │ │ │ ├── internal │ │ │ │ ├── constants.js │ │ │ │ ├── debug.js │ │ │ │ ├── identifiers.js │ │ │ │ └── re.js │ │ │ │ ├── package.json │ │ │ │ ├── range.bnf │ │ │ │ └── ranges │ │ │ │ ├── gtr.js │ │ │ │ ├── intersects.js │ │ │ │ ├── ltr.js │ │ │ │ ├── max-satisfying.js │ │ │ │ ├── min-satisfying.js │ │ │ │ ├── min-version.js │ │ │ │ ├── outside.js │ │ │ │ ├── to-comparators.js │ │ │ │ └── valid.js │ │ ├── package.json │ │ └── src │ │ │ ├── borderedText.ts │ │ │ ├── cache.spec.ts │ │ │ ├── cache.ts │ │ │ ├── getDistVersion.spec.ts │ │ │ ├── getDistVersion.ts │ │ │ ├── hasNewVersion.spec.ts │ │ │ ├── hasNewVersion.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── isNpmOrYarn.ts │ │ │ └── types.ts │ ├── sqlstring │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ └── SqlString.js │ │ └── package.json │ ├── string_decoder │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ │ └── string_decoder.js │ │ └── package.json │ ├── supports-color │ │ ├── browser.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── to-regex-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── touch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── nodetouch.js │ │ ├── index.js │ │ └── package.json │ ├── undefsafe │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── release.yml │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── lib │ │ │ └── undefsafe.js │ │ └── package.json │ └── util-deprecate │ │ ├── History.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── browser.js │ │ ├── node.js │ │ └── package.json ├── package-lock.json └── package.json ├── Lesson21 ├── app.js ├── node_modules │ ├── .bin │ │ ├── ejs │ │ ├── ejs.cmd │ │ ├── ejs.ps1 │ │ ├── jake │ │ ├── jake.cmd │ │ ├── jake.ps1 │ │ ├── mime │ │ ├── mime.cmd │ │ ├── mime.ps1 │ │ ├── nodemon │ │ ├── nodemon.cmd │ │ ├── nodemon.ps1 │ │ ├── nodetouch │ │ ├── nodetouch.cmd │ │ ├── nodetouch.ps1 │ │ ├── nopt │ │ ├── nopt.cmd │ │ ├── nopt.ps1 │ │ ├── semver │ │ ├── semver.cmd │ │ └── semver.ps1 │ ├── .package-lock.json │ ├── abbrev │ │ ├── LICENSE │ │ ├── README.md │ │ ├── abbrev.js │ │ └── package.json │ ├── accepts │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── async │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── all.js │ │ ├── allLimit.js │ │ ├── allSeries.js │ │ ├── any.js │ │ ├── anyLimit.js │ │ ├── anySeries.js │ │ ├── apply.js │ │ ├── applyEach.js │ │ ├── applyEachSeries.js │ │ ├── asyncify.js │ │ ├── auto.js │ │ ├── autoInject.js │ │ ├── bower.json │ │ ├── cargo.js │ │ ├── cargoQueue.js │ │ ├── compose.js │ │ ├── concat.js │ │ ├── concatLimit.js │ │ ├── concatSeries.js │ │ ├── constant.js │ │ ├── detect.js │ │ ├── detectLimit.js │ │ ├── detectSeries.js │ │ ├── dir.js │ │ ├── dist │ │ │ ├── async.js │ │ │ ├── async.min.js │ │ │ └── async.mjs │ │ ├── doDuring.js │ │ ├── doUntil.js │ │ ├── doWhilst.js │ │ ├── during.js │ │ ├── each.js │ │ ├── eachLimit.js │ │ ├── eachOf.js │ │ ├── eachOfLimit.js │ │ ├── eachOfSeries.js │ │ ├── eachSeries.js │ │ ├── ensureAsync.js │ │ ├── every.js │ │ ├── everyLimit.js │ │ ├── everySeries.js │ │ ├── filter.js │ │ ├── filterLimit.js │ │ ├── filterSeries.js │ │ ├── find.js │ │ ├── findLimit.js │ │ ├── findSeries.js │ │ ├── flatMap.js │ │ ├── flatMapLimit.js │ │ ├── flatMapSeries.js │ │ ├── foldl.js │ │ ├── foldr.js │ │ ├── forEach.js │ │ ├── forEachLimit.js │ │ ├── forEachOf.js │ │ ├── forEachOfLimit.js │ │ ├── forEachOfSeries.js │ │ ├── forEachSeries.js │ │ ├── forever.js │ │ ├── groupBy.js │ │ ├── groupByLimit.js │ │ ├── groupBySeries.js │ │ ├── index.js │ │ ├── inject.js │ │ ├── internal │ │ │ ├── DoublyLinkedList.js │ │ │ ├── Heap.js │ │ │ ├── applyEach.js │ │ │ ├── asyncEachOfLimit.js │ │ │ ├── awaitify.js │ │ │ ├── breakLoop.js │ │ │ ├── consoleFunc.js │ │ │ ├── createTester.js │ │ │ ├── eachOfLimit.js │ │ │ ├── filter.js │ │ │ ├── getIterator.js │ │ │ ├── initialParams.js │ │ │ ├── isArrayLike.js │ │ │ ├── iterator.js │ │ │ ├── map.js │ │ │ ├── once.js │ │ │ ├── onlyOnce.js │ │ │ ├── parallel.js │ │ │ ├── promiseCallback.js │ │ │ ├── queue.js │ │ │ ├── range.js │ │ │ ├── reject.js │ │ │ ├── setImmediate.js │ │ │ ├── withoutIndex.js │ │ │ └── wrapAsync.js │ │ ├── log.js │ │ ├── map.js │ │ ├── mapLimit.js │ │ ├── mapSeries.js │ │ ├── mapValues.js │ │ ├── mapValuesLimit.js │ │ ├── mapValuesSeries.js │ │ ├── memoize.js │ │ ├── nextTick.js │ │ ├── package.json │ │ ├── parallel.js │ │ ├── parallelLimit.js │ │ ├── priorityQueue.js │ │ ├── queue.js │ │ ├── race.js │ │ ├── reduce.js │ │ ├── reduceRight.js │ │ ├── reflect.js │ │ ├── reflectAll.js │ │ ├── reject.js │ │ ├── rejectLimit.js │ │ ├── rejectSeries.js │ │ ├── retry.js │ │ ├── retryable.js │ │ ├── select.js │ │ ├── selectLimit.js │ │ ├── selectSeries.js │ │ ├── seq.js │ │ ├── series.js │ │ ├── setImmediate.js │ │ ├── some.js │ │ ├── someLimit.js │ │ ├── someSeries.js │ │ ├── sortBy.js │ │ ├── timeout.js │ │ ├── times.js │ │ ├── timesLimit.js │ │ ├── timesSeries.js │ │ ├── transform.js │ │ ├── tryEach.js │ │ ├── unmemoize.js │ │ ├── until.js │ │ ├── waterfall.js │ │ ├── whilst.js │ │ └── wrapSync.js │ ├── balanced-match │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── 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 │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── read.js │ │ │ └── types │ │ │ │ ├── json.js │ │ │ │ ├── raw.js │ │ │ │ ├── text.js │ │ │ │ └── urlencoded.js │ │ └── package.json │ ├── 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 │ ├── call-bind │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── callBound.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── callBound.js │ │ │ └── index.js │ ├── chalk │ │ ├── index.d.ts │ │ ├── license │ │ ├── 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 │ ├── 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 │ ├── 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 │ │ ├── SECURITY.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── depd │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ └── browser │ │ │ │ └── index.js │ │ └── package.json │ ├── destroy │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ee-first │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ejs │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── cli.js │ │ ├── ejs.js │ │ ├── ejs.min.js │ │ ├── jakefile.js │ │ ├── lib │ │ │ ├── ejs.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── usage.txt │ ├── encodeurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── escape-html │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── etag │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── express │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── application.js │ │ │ ├── express.js │ │ │ ├── middleware │ │ │ │ ├── init.js │ │ │ │ └── query.js │ │ │ ├── request.js │ │ │ ├── response.js │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ ├── layer.js │ │ │ │ └── route.js │ │ │ ├── utils.js │ │ │ └── view.js │ │ ├── node_modules │ │ │ ├── body-parser │ │ │ │ ├── HISTORY.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ │ ├── read.js │ │ │ │ │ └── types │ │ │ │ │ │ ├── json.js │ │ │ │ │ │ ├── raw.js │ │ │ │ │ │ ├── text.js │ │ │ │ │ │ └── urlencoded.js │ │ │ │ └── package.json │ │ │ └── raw-body │ │ │ │ ├── HISTORY.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ └── package.json │ ├── filelist │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── jakefile.js │ │ ├── node_modules │ │ │ ├── brace-expansion │ │ │ │ ├── .github │ │ │ │ │ └── FUNDING.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ └── minimatch │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── lib │ │ │ │ └── path.js │ │ │ │ ├── minimatch.js │ │ │ │ └── package.json │ │ └── package.json │ ├── fill-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── finalhandler │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── function-bind │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .jscs.json │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ └── index.js │ ├── get-intrinsic │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── GetIntrinsic.js │ ├── glob-parent │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── has-flag │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── has-symbols │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── shams.js │ │ └── test │ │ │ ├── index.js │ │ │ ├── shams │ │ │ ├── core-js.js │ │ │ └── get-own-property-symbols.js │ │ │ └── tests.js │ ├── has │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ └── test │ │ │ └── index.js │ ├── 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 │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.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-extglob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-glob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-number │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── jake │ │ ├── Makefile │ │ ├── README.md │ │ ├── bin │ │ │ ├── bash_completion.sh │ │ │ └── cli.js │ │ ├── jakefile.js │ │ ├── lib │ │ │ ├── api.js │ │ │ ├── jake.js │ │ │ ├── loader.js │ │ │ ├── namespace.js │ │ │ ├── package_task.js │ │ │ ├── parseargs.js │ │ │ ├── program.js │ │ │ ├── publish_task.js │ │ │ ├── rule.js │ │ │ ├── task │ │ │ │ ├── directory_task.js │ │ │ │ ├── file_task.js │ │ │ │ ├── index.js │ │ │ │ └── task.js │ │ │ ├── test_task.js │ │ │ └── utils │ │ │ │ ├── file.js │ │ │ │ ├── index.js │ │ │ │ └── logger.js │ │ ├── package.json │ │ ├── test │ │ │ ├── integration │ │ │ │ ├── concurrent.js │ │ │ │ ├── file.js │ │ │ │ ├── file_task.js │ │ │ │ ├── helpers.js │ │ │ │ ├── jakefile.js │ │ │ │ ├── jakelib │ │ │ │ │ ├── concurrent.jake.js │ │ │ │ │ ├── publish.jake.js │ │ │ │ │ ├── required_module.jake.js │ │ │ │ │ └── rule.jake.js │ │ │ │ ├── publish_task.js │ │ │ │ ├── rule.js │ │ │ │ ├── selfdep.js │ │ │ │ └── task_base.js │ │ │ └── unit │ │ │ │ ├── jakefile.js │ │ │ │ ├── namespace.js │ │ │ │ └── parseargs.js │ │ └── usage.txt │ ├── media-typer │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── merge-descriptors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── methods │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cli.js │ │ ├── mime.js │ │ ├── package.json │ │ ├── src │ │ │ ├── build.js │ │ │ └── test.js │ │ └── types.json │ ├── minimatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── minimatch.js │ │ └── package.json │ ├── 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 │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ ├── nodemon.js │ │ │ └── windows-kill.exe │ │ ├── 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 │ │ │ │ ├── node.js │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ │ ├── browser.js │ │ │ │ │ ├── common.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── node.js │ │ │ ├── has-flag │ │ │ │ ├── index.js │ │ │ │ ├── license │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ │ ├── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ │ └── supports-color │ │ │ │ ├── browser.js │ │ │ │ ├── index.js │ │ │ │ ├── license │ │ │ │ ├── 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 │ ├── object-inspect │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── example │ │ │ ├── all.js │ │ │ ├── circular.js │ │ │ ├── fn.js │ │ │ └── inspect.js │ │ ├── index.js │ │ ├── package-support.json │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── test-core-js.js │ │ ├── test │ │ │ ├── bigint.js │ │ │ ├── browser │ │ │ │ └── dom.js │ │ │ ├── circular.js │ │ │ ├── deep.js │ │ │ ├── element.js │ │ │ ├── err.js │ │ │ ├── fakes.js │ │ │ ├── fn.js │ │ │ ├── has.js │ │ │ ├── holes.js │ │ │ ├── indent-option.js │ │ │ ├── inspect.js │ │ │ ├── lowbyte.js │ │ │ ├── number.js │ │ │ ├── quoteStyle.js │ │ │ ├── toStringTag.js │ │ │ ├── undef.js │ │ │ └── values.js │ │ └── util.inspect.js │ ├── on-finished │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── 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 │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── range-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── readdirp │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── 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 │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── semver │ │ ├── package.json │ │ ├── range.bnf │ │ └── semver.js │ ├── send │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── side-channel │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── simple-update-notifier │ │ ├── LICENSE │ │ ├── README.md │ │ ├── build │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── node_modules │ │ │ ├── .bin │ │ │ │ ├── semver │ │ │ │ ├── semver.cmd │ │ │ │ └── semver.ps1 │ │ │ └── semver │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── bin │ │ │ │ └── semver.js │ │ │ │ ├── classes │ │ │ │ ├── comparator.js │ │ │ │ ├── index.js │ │ │ │ ├── range.js │ │ │ │ └── semver.js │ │ │ │ ├── functions │ │ │ │ ├── clean.js │ │ │ │ ├── cmp.js │ │ │ │ ├── coerce.js │ │ │ │ ├── compare-build.js │ │ │ │ ├── compare-loose.js │ │ │ │ ├── compare.js │ │ │ │ ├── diff.js │ │ │ │ ├── eq.js │ │ │ │ ├── gt.js │ │ │ │ ├── gte.js │ │ │ │ ├── inc.js │ │ │ │ ├── lt.js │ │ │ │ ├── lte.js │ │ │ │ ├── major.js │ │ │ │ ├── minor.js │ │ │ │ ├── neq.js │ │ │ │ ├── parse.js │ │ │ │ ├── patch.js │ │ │ │ ├── prerelease.js │ │ │ │ ├── rcompare.js │ │ │ │ ├── rsort.js │ │ │ │ ├── satisfies.js │ │ │ │ ├── sort.js │ │ │ │ └── valid.js │ │ │ │ ├── index.js │ │ │ │ ├── internal │ │ │ │ ├── constants.js │ │ │ │ ├── debug.js │ │ │ │ ├── identifiers.js │ │ │ │ └── re.js │ │ │ │ ├── package.json │ │ │ │ ├── range.bnf │ │ │ │ └── ranges │ │ │ │ ├── gtr.js │ │ │ │ ├── intersects.js │ │ │ │ ├── ltr.js │ │ │ │ ├── max-satisfying.js │ │ │ │ ├── min-satisfying.js │ │ │ │ ├── min-version.js │ │ │ │ ├── outside.js │ │ │ │ ├── to-comparators.js │ │ │ │ └── valid.js │ │ ├── package.json │ │ └── src │ │ │ ├── borderedText.ts │ │ │ ├── cache.spec.ts │ │ │ ├── cache.ts │ │ │ ├── getDistVersion.spec.ts │ │ │ ├── getDistVersion.ts │ │ │ ├── hasNewVersion.spec.ts │ │ │ ├── hasNewVersion.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── isNpmOrYarn.ts │ │ │ └── types.ts │ ├── statuses │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codes.json │ │ ├── index.js │ │ └── package.json │ ├── supports-color │ │ ├── browser.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── to-regex-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── toidentifier │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── touch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── nodetouch.js │ │ ├── index.js │ │ └── package.json │ ├── type-is │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── undefsafe │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── release.yml │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── lib │ │ │ └── undefsafe.js │ │ └── package.json │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── utils-merge │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ └── vary │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json ├── package-lock.json ├── package.json ├── pictures │ ├── Capture.PNG │ ├── Capture0.PNG │ ├── Capture1.PNG │ ├── Capture2.PNG │ ├── Capture3.PNG │ ├── Capture4.PNG │ ├── Capture5.PNG │ ├── Capture6.PNG │ ├── Capture7-2.PNG │ ├── Capture7.PNG │ ├── Capture8.PNG │ └── Capture9.PNG └── views │ ├── conditional.ejs │ ├── footer.ejs │ ├── foreach.ejs │ ├── header.ejs │ ├── index.ejs │ ├── main.ejs │ └── response.ejs ├── Lesson22 ├── app.js ├── lesson │ └── lesson.js ├── node_modules │ ├── .bin │ │ ├── mime │ │ ├── mime.cmd │ │ ├── mime.ps1 │ │ ├── nodemon │ │ ├── nodemon.cmd │ │ ├── nodemon.ps1 │ │ ├── nodetouch │ │ ├── nodetouch.cmd │ │ ├── nodetouch.ps1 │ │ ├── nopt │ │ ├── nopt.cmd │ │ ├── nopt.ps1 │ │ ├── semver │ │ ├── semver.cmd │ │ └── semver.ps1 │ ├── .package-lock.json │ ├── abbrev │ │ ├── LICENSE │ │ ├── README.md │ │ ├── abbrev.js │ │ └── package.json │ ├── accepts │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── anymatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── array-flatten │ │ ├── LICENSE │ │ ├── README.md │ │ ├── array-flatten.js │ │ └── package.json │ ├── balanced-match │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── 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 │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── read.js │ │ │ └── types │ │ │ │ ├── json.js │ │ │ │ ├── raw.js │ │ │ │ ├── text.js │ │ │ │ └── urlencoded.js │ │ └── package.json │ ├── 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 │ ├── call-bind │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── callBound.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── callBound.js │ │ │ └── index.js │ ├── chokidar │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── constants.js │ │ │ ├── fsevents-handler.js │ │ │ └── nodefs-handler.js │ │ ├── package.json │ │ └── types │ │ │ └── index.d.ts │ ├── concat-map │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.markdown │ │ ├── example │ │ │ └── map.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── map.js │ ├── content-disposition │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── content-type │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── cookie-signature │ │ ├── .npmignore │ │ ├── History.md │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── cookie │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── denque │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── depd │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ └── browser │ │ │ │ └── index.js │ │ └── package.json │ ├── destroy │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ee-first │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── encodeurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ │ ├── node_modules │ │ │ ├── body-parser │ │ │ │ ├── HISTORY.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ │ ├── read.js │ │ │ │ │ └── types │ │ │ │ │ │ ├── json.js │ │ │ │ │ │ ├── raw.js │ │ │ │ │ │ ├── text.js │ │ │ │ │ │ └── urlencoded.js │ │ │ │ └── package.json │ │ │ └── raw-body │ │ │ │ ├── HISTORY.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ └── package.json │ ├── fill-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── finalhandler │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── function-bind │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .jscs.json │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ └── index.js │ ├── generate-function │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── get-intrinsic │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── GetIntrinsic.js │ ├── glob-parent │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── has-flag │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── has-symbols │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── shams.js │ │ └── test │ │ │ ├── index.js │ │ │ ├── shams │ │ │ ├── core-js.js │ │ │ └── get-own-property-symbols.js │ │ │ └── tests.js │ ├── has │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ └── test │ │ │ └── index.js │ ├── 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 │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.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-extglob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-glob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-number │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-property │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── is-property.js │ │ └── package.json │ ├── long │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ └── umd │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── package.json │ ├── lru-cache │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── cjs │ │ │ │ ├── index-cjs.d.ts │ │ │ │ ├── index-cjs.d.ts.map │ │ │ │ ├── index-cjs.js │ │ │ │ ├── index-cjs.js.map │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.d.ts.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.min.js │ │ │ │ ├── index.min.js.map │ │ │ │ └── package.json │ │ │ └── mjs │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.d.ts.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.min.js │ │ │ │ ├── index.min.js.map │ │ │ │ └── package.json │ │ └── package.json │ ├── media-typer │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── merge-descriptors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── methods │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cli.js │ │ ├── mime.js │ │ ├── package.json │ │ ├── src │ │ │ ├── build.js │ │ │ └── test.js │ │ └── types.json │ ├── minimatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── minimatch.js │ │ └── package.json │ ├── ms │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── mysql2 │ │ ├── License │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── lib │ │ │ ├── auth_41.js │ │ │ ├── auth_plugins │ │ │ │ ├── caching_sha2_password.js │ │ │ │ ├── caching_sha2_password.md │ │ │ │ ├── index.js │ │ │ │ ├── mysql_clear_password.js │ │ │ │ ├── mysql_native_password.js │ │ │ │ └── sha256_password.js │ │ │ ├── commands │ │ │ │ ├── auth_switch.js │ │ │ │ ├── binlog_dump.js │ │ │ │ ├── change_user.js │ │ │ │ ├── client_handshake.js │ │ │ │ ├── close_statement.js │ │ │ │ ├── command.js │ │ │ │ ├── execute.js │ │ │ │ ├── index.js │ │ │ │ ├── ping.js │ │ │ │ ├── prepare.js │ │ │ │ ├── query.js │ │ │ │ ├── quit.js │ │ │ │ ├── register_slave.js │ │ │ │ └── server_handshake.js │ │ │ ├── compressed_protocol.js │ │ │ ├── connection.js │ │ │ ├── connection_config.js │ │ │ ├── constants │ │ │ │ ├── charset_encodings.js │ │ │ │ ├── charsets.js │ │ │ │ ├── client.js │ │ │ │ ├── commands.js │ │ │ │ ├── cursor.js │ │ │ │ ├── encoding_charset.js │ │ │ │ ├── errors.js │ │ │ │ ├── field_flags.js │ │ │ │ ├── server_status.js │ │ │ │ ├── session_track.js │ │ │ │ ├── ssl_profiles.js │ │ │ │ └── types.js │ │ │ ├── helpers.js │ │ │ ├── packet_parser.js │ │ │ ├── packets │ │ │ │ ├── auth_next_factor.js │ │ │ │ ├── auth_switch_request.js │ │ │ │ ├── auth_switch_request_more_data.js │ │ │ │ ├── auth_switch_response.js │ │ │ │ ├── binary_row.js │ │ │ │ ├── binlog_dump.js │ │ │ │ ├── binlog_query_statusvars.js │ │ │ │ ├── change_user.js │ │ │ │ ├── close_statement.js │ │ │ │ ├── column_definition.js │ │ │ │ ├── execute.js │ │ │ │ ├── handshake.js │ │ │ │ ├── handshake_response.js │ │ │ │ ├── index.js │ │ │ │ ├── packet.js │ │ │ │ ├── prepare_statement.js │ │ │ │ ├── prepared_statement_header.js │ │ │ │ ├── query.js │ │ │ │ ├── register_slave.js │ │ │ │ ├── resultset_header.js │ │ │ │ ├── ssl_request.js │ │ │ │ └── text_row.js │ │ │ ├── parsers │ │ │ │ ├── binary_parser.js │ │ │ │ ├── parser_cache.js │ │ │ │ ├── string.js │ │ │ │ └── text_parser.js │ │ │ ├── pool.js │ │ │ ├── pool_cluster.js │ │ │ ├── pool_config.js │ │ │ ├── pool_connection.js │ │ │ ├── results_stream.js │ │ │ └── server.js │ │ ├── node_modules │ │ │ └── iconv-lite │ │ │ │ ├── .github │ │ │ │ └── dependabot.yml │ │ │ │ ├── .idea │ │ │ │ ├── codeStyles │ │ │ │ │ ├── Project.xml │ │ │ │ │ └── codeStyleConfig.xml │ │ │ │ ├── iconv-lite.iml │ │ │ │ ├── inspectionProfiles │ │ │ │ │ └── Project_Default.xml │ │ │ │ ├── modules.xml │ │ │ │ └── vcs.xml │ │ │ │ ├── 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 │ │ │ │ ├── utf32.js │ │ │ │ └── utf7.js │ │ │ │ ├── lib │ │ │ │ ├── bom-handling.js │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── streams.js │ │ │ │ └── package.json │ │ ├── package.json │ │ ├── promise.d.ts │ │ ├── promise.js │ │ └── typings │ │ │ └── mysql │ │ │ ├── LICENSE.txt │ │ │ ├── index.d.ts │ │ │ ├── info.txt │ │ │ └── lib │ │ │ ├── Connection.d.ts │ │ │ ├── Pool.d.ts │ │ │ ├── PoolCluster.d.ts │ │ │ ├── PoolConnection.d.ts │ │ │ ├── Server.d.ts │ │ │ └── protocol │ │ │ ├── packets │ │ │ ├── Field.d.ts │ │ │ ├── FieldPacket.d.ts │ │ │ ├── OkPacket.d.ts │ │ │ ├── ResultSetHeader.d.ts │ │ │ ├── RowDataPacket.d.ts │ │ │ ├── index.d.ts │ │ │ └── params │ │ │ │ ├── ErrorPacketParams.d.ts │ │ │ │ └── OkPacketParams.d.ts │ │ │ └── sequences │ │ │ ├── Prepare.d.ts │ │ │ ├── Query.d.ts │ │ │ └── Sequence.d.ts │ ├── named-placeholders │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── node_modules │ │ │ └── lru-cache │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.mjs │ │ │ │ └── package.json │ │ └── package.json │ ├── negotiator │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── charset.js │ │ │ ├── encoding.js │ │ │ ├── language.js │ │ │ └── mediaType.js │ │ └── package.json │ ├── nodemon │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ ├── nodemon.js │ │ │ └── windows-kill.exe │ │ ├── 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 │ │ │ │ ├── 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 │ ├── object-inspect │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── example │ │ │ ├── all.js │ │ │ ├── circular.js │ │ │ ├── fn.js │ │ │ └── inspect.js │ │ ├── index.js │ │ ├── package-support.json │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── test-core-js.js │ │ ├── test │ │ │ ├── bigint.js │ │ │ ├── browser │ │ │ │ └── dom.js │ │ │ ├── circular.js │ │ │ ├── deep.js │ │ │ ├── element.js │ │ │ ├── err.js │ │ │ ├── fakes.js │ │ │ ├── fn.js │ │ │ ├── has.js │ │ │ ├── holes.js │ │ │ ├── indent-option.js │ │ │ ├── inspect.js │ │ │ ├── lowbyte.js │ │ │ ├── number.js │ │ │ ├── quoteStyle.js │ │ │ ├── toStringTag.js │ │ │ ├── undef.js │ │ │ └── values.js │ │ └── util.inspect.js │ ├── on-finished │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── 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 │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── range-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── readdirp │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── 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 │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── semver │ │ ├── package.json │ │ ├── range.bnf │ │ └── semver.js │ ├── send │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── node_modules │ │ │ └── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ └── package.json │ ├── seq-queue │ │ ├── .jshintrc │ │ ├── .npmignore │ │ ├── AUTHORS │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── .npmignore │ │ │ └── seq-queue.js │ │ ├── package.json │ │ └── test │ │ │ └── seq-queue-test.js │ ├── 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 │ ├── side-channel │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── simple-update-notifier │ │ ├── LICENSE │ │ ├── README.md │ │ ├── build │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── node_modules │ │ │ ├── .bin │ │ │ │ ├── semver │ │ │ │ ├── semver.cmd │ │ │ │ └── semver.ps1 │ │ │ └── semver │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── bin │ │ │ │ └── semver.js │ │ │ │ ├── classes │ │ │ │ ├── comparator.js │ │ │ │ ├── index.js │ │ │ │ ├── range.js │ │ │ │ └── semver.js │ │ │ │ ├── functions │ │ │ │ ├── clean.js │ │ │ │ ├── cmp.js │ │ │ │ ├── coerce.js │ │ │ │ ├── compare-build.js │ │ │ │ ├── compare-loose.js │ │ │ │ ├── compare.js │ │ │ │ ├── diff.js │ │ │ │ ├── eq.js │ │ │ │ ├── gt.js │ │ │ │ ├── gte.js │ │ │ │ ├── inc.js │ │ │ │ ├── lt.js │ │ │ │ ├── lte.js │ │ │ │ ├── major.js │ │ │ │ ├── minor.js │ │ │ │ ├── neq.js │ │ │ │ ├── parse.js │ │ │ │ ├── patch.js │ │ │ │ ├── prerelease.js │ │ │ │ ├── rcompare.js │ │ │ │ ├── rsort.js │ │ │ │ ├── satisfies.js │ │ │ │ ├── sort.js │ │ │ │ └── valid.js │ │ │ │ ├── index.js │ │ │ │ ├── internal │ │ │ │ ├── constants.js │ │ │ │ ├── debug.js │ │ │ │ ├── identifiers.js │ │ │ │ └── re.js │ │ │ │ ├── package.json │ │ │ │ ├── range.bnf │ │ │ │ └── ranges │ │ │ │ ├── gtr.js │ │ │ │ ├── intersects.js │ │ │ │ ├── ltr.js │ │ │ │ ├── max-satisfying.js │ │ │ │ ├── min-satisfying.js │ │ │ │ ├── min-version.js │ │ │ │ ├── outside.js │ │ │ │ ├── to-comparators.js │ │ │ │ └── valid.js │ │ ├── package.json │ │ └── src │ │ │ ├── borderedText.ts │ │ │ ├── cache.spec.ts │ │ │ ├── cache.ts │ │ │ ├── getDistVersion.spec.ts │ │ │ ├── getDistVersion.ts │ │ │ ├── hasNewVersion.spec.ts │ │ │ ├── hasNewVersion.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── isNpmOrYarn.ts │ │ │ └── types.ts │ ├── sqlstring │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ └── SqlString.js │ │ └── package.json │ ├── statuses │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codes.json │ │ ├── index.js │ │ └── package.json │ ├── supports-color │ │ ├── browser.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── to-regex-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── toidentifier │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── touch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── nodetouch.js │ │ ├── index.js │ │ └── package.json │ ├── type-is │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── undefsafe │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── release.yml │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── lib │ │ │ └── undefsafe.js │ │ └── package.json │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── utils-merge │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ └── vary │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json └── web-app │ ├── index.html │ └── update.png ├── Lesson4 ├── Capture.PNG ├── Capture0.PNG ├── Capture2.PNG ├── Capture3.PNG ├── Capture4.PNG ├── Capture5.PNG ├── app.js └── statuscodes.js ├── Lesson5-6 ├── Capture.PNG ├── Capture3.PNG ├── app.js ├── my-app │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── node_modules │ ├── .bin │ │ ├── mime │ │ ├── mime.cmd │ │ └── mime.ps1 │ ├── .package-lock.json │ ├── accepts │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── array-flatten │ │ ├── LICENSE │ │ ├── README.md │ │ ├── array-flatten.js │ │ └── package.json │ ├── body-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── read.js │ │ │ └── types │ │ │ │ ├── json.js │ │ │ │ ├── raw.js │ │ │ │ ├── text.js │ │ │ │ └── urlencoded.js │ │ └── package.json │ ├── bytes │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── call-bind │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── callBound.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── callBound.js │ │ │ └── index.js │ ├── content-disposition │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── content-type │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── cookie-signature │ │ ├── .npmignore │ │ ├── History.md │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── cookie │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── depd │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ └── browser │ │ │ │ └── index.js │ │ └── package.json │ ├── destroy │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ee-first │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── encodeurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── escape-html │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── etag │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── express │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── application.js │ │ │ ├── express.js │ │ │ ├── middleware │ │ │ │ ├── init.js │ │ │ │ └── query.js │ │ │ ├── request.js │ │ │ ├── response.js │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ ├── layer.js │ │ │ │ └── route.js │ │ │ ├── utils.js │ │ │ └── view.js │ │ └── package.json │ ├── finalhandler │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── function-bind │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .jscs.json │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ └── index.js │ ├── get-intrinsic │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── GetIntrinsic.js │ ├── has-symbols │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── shams.js │ │ └── test │ │ │ ├── index.js │ │ │ ├── shams │ │ │ ├── core-js.js │ │ │ └── get-own-property-symbols.js │ │ │ └── tests.js │ ├── has │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ └── test │ │ │ └── index.js │ ├── 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 │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── ipaddr.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ipaddr.min.js │ │ ├── lib │ │ │ ├── ipaddr.js │ │ │ └── ipaddr.js.d.ts │ │ └── package.json │ ├── media-typer │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── merge-descriptors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── methods │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cli.js │ │ ├── mime.js │ │ ├── package.json │ │ ├── src │ │ │ ├── build.js │ │ │ └── test.js │ │ └── types.json │ ├── 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 │ ├── object-inspect │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── example │ │ │ ├── all.js │ │ │ ├── circular.js │ │ │ ├── fn.js │ │ │ └── inspect.js │ │ ├── index.js │ │ ├── package-support.json │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── test-core-js.js │ │ ├── test │ │ │ ├── bigint.js │ │ │ ├── browser │ │ │ │ └── dom.js │ │ │ ├── circular.js │ │ │ ├── deep.js │ │ │ ├── element.js │ │ │ ├── err.js │ │ │ ├── fakes.js │ │ │ ├── fn.js │ │ │ ├── has.js │ │ │ ├── holes.js │ │ │ ├── indent-option.js │ │ │ ├── inspect.js │ │ │ ├── lowbyte.js │ │ │ ├── number.js │ │ │ ├── quoteStyle.js │ │ │ ├── toStringTag.js │ │ │ ├── undef.js │ │ │ └── values.js │ │ └── util.inspect.js │ ├── on-finished │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── parseurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── path-to-regexp │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── proxy-addr │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── range-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── 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 │ ├── send │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.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 │ ├── side-channel │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── statuses │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codes.json │ │ ├── index.js │ │ └── package.json │ ├── toidentifier │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── type-is │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── utils-merge │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ └── vary │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json ├── npm vs npx and how to create an react app (Time 0_04_25;21).png ├── package-lock.json └── package.json ├── Lesson7-8 ├── app.js ├── files │ └── text1.txt └── text1.txt ├── Lesson9 ├── app.js ├── dynamic vs static web pages.png └── index.html ├── README.md ├── lesson2 └── app.js └── lesson3 ├── app.js └── app2.js /Lesson1/node js.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson1/node js.odp -------------------------------------------------------------------------------- /Lesson10/view/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Coder Shiyar 8 | 9 | 10 | error 404 11 | 12 | -------------------------------------------------------------------------------- /Lesson10/view/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Coder Shiyar 8 | 9 | 10 | contact page 11 | 12 | -------------------------------------------------------------------------------- /Lesson10/view/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Coder Shiyar 8 | 9 | 10 | home page 11 | 12 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../mime/cli.js" "$@" 10 | else 11 | exec node "$basedir/../mime/cli.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* 18 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/call-bind/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/call-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | "operator-linebreak": [2, "before"], 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/call-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/call-bind/README.md: -------------------------------------------------------------------------------- 1 | # call-bind 2 | Robustly `.call.bind()` a function. 3 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "max-nested-callbacks": [2, 3], 10 | "max-params": [2, 3], 11 | "max-statements": [2, 20], 12 | "no-new-func": [1], 13 | "strict": [0] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/function-bind/.npmignore: -------------------------------------------------------------------------------- 1 | # gitignore 2 | .DS_Store 3 | .monitor 4 | .*.swp 5 | .nodemonignore 6 | releases 7 | *.log 8 | *.err 9 | fleet.json 10 | public/browserify 11 | bin/*.json 12 | .bin 13 | build 14 | compile 15 | .lock-wscript 16 | coverage 17 | node_modules 18 | 19 | # Only apps should have lockfiles 20 | npm-shrinkwrap.json 21 | package-lock.json 22 | yarn.lock 23 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/has/README.md: -------------------------------------------------------------------------------- 1 | # has 2 | 3 | > Object.prototype.hasOwnProperty.call shortcut 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install --save has 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | var has = require('has'); 15 | 16 | has({}, 'hasOwnProperty'); // false 17 | has(Object.prototype, 'hasOwnProperty'); // true 18 | ``` 19 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/has/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); 6 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/has/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var has = require('../'); 5 | 6 | test('has', function (t) { 7 | t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"'); 8 | t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"'); 9 | t.end(); 10 | }); 11 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson11-17/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/side-channel/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "max-params": 0, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/side-channel/README.md: -------------------------------------------------------------------------------- 1 | # side-channel 2 | Store information about any JS value in a side channel. Uses WeakMap if available. 3 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/toidentifier/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2021-11-14 2 | ================== 3 | 4 | * pref: enable strict mode 5 | 6 | 1.0.0 / 2018-07-09 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /Lesson11-17/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /Lesson11-17/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 | -------------------------------------------------------------------------------- /Lesson11-17/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "body-parser": "^1.20.1", 13 | "express": "^4.18.2" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lesson11-17/public/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | contact page 11 | 12 | -------------------------------------------------------------------------------- /Lesson11-17/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | مرحبا من تطبيقي" 11 | 12 | -------------------------------------------------------------------------------- /Lesson19/node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | else 11 | exec node "$basedir/../nodemon/bin/nodemon.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson19/node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | else 11 | exec node "$basedir/../touch/bin/nodetouch.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson19/node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | else 11 | exec node "$basedir/../nopt/bin/nopt.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson19/node_modules/.bin/nopt.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* 18 | -------------------------------------------------------------------------------- /Lesson19/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | else 11 | exec node "$basedir/../semver/bin/semver" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson19/node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* 18 | -------------------------------------------------------------------------------- /Lesson19/node_modules/balanced-match/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "npm/balanced-match" 2 | patreon: juliangruber 3 | -------------------------------------------------------------------------------- /Lesson19/node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/core-util-is/README.md: -------------------------------------------------------------------------------- 1 | # core-util-is 2 | 3 | The `util.is*` functions introduced in Node v0.12. 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/isarray/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/isarray/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /Lesson19/node_modules/isarray/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @node_modules/.bin/tape test.js 4 | 5 | .PHONY: test 6 | 7 | -------------------------------------------------------------------------------- /Lesson19/node_modules/isarray/index.js: -------------------------------------------------------------------------------- 1 | var toString = {}.toString; 2 | 3 | module.exports = Array.isArray || function (arr) { 4 | return toString.call(arr) == '[object Array]'; 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/PacketHeader.js: -------------------------------------------------------------------------------- 1 | module.exports = PacketHeader; 2 | function PacketHeader(length, number) { 3 | this.length = length; 4 | this.number = number; 5 | } 6 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/ResultSet.js: -------------------------------------------------------------------------------- 1 | module.exports = ResultSet; 2 | function ResultSet(resultSetHeaderPacket) { 3 | this.resultSetHeaderPacket = resultSetHeaderPacket; 4 | this.fieldPackets = []; 5 | this.eofPackets = []; 6 | this.rows = []; 7 | } 8 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/SqlString.js: -------------------------------------------------------------------------------- 1 | module.exports = require('sqlstring'); 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/packets/ComPingPacket.js: -------------------------------------------------------------------------------- 1 | module.exports = ComPingPacket; 2 | function ComPingPacket() { 3 | this.command = 0x0e; 4 | } 5 | 6 | ComPingPacket.prototype.write = function(writer) { 7 | writer.writeUnsignedNumber(1, this.command); 8 | }; 9 | 10 | ComPingPacket.prototype.parse = function(parser) { 11 | this.command = parser.parseUnsignedNumber(1); 12 | }; 13 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/packets/ComQuitPacket.js: -------------------------------------------------------------------------------- 1 | module.exports = ComQuitPacket; 2 | function ComQuitPacket() { 3 | this.command = 0x01; 4 | } 5 | 6 | ComQuitPacket.prototype.parse = function parse(parser) { 7 | this.command = parser.parseUnsignedNumber(1); 8 | }; 9 | 10 | ComQuitPacket.prototype.write = function write(writer) { 11 | writer.writeUnsignedNumber(1, this.command); 12 | }; 13 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/packets/EmptyPacket.js: -------------------------------------------------------------------------------- 1 | module.exports = EmptyPacket; 2 | function EmptyPacket() { 3 | } 4 | 5 | EmptyPacket.prototype.parse = function parse() { 6 | }; 7 | 8 | EmptyPacket.prototype.write = function write() { 9 | }; 10 | -------------------------------------------------------------------------------- /Lesson19/node_modules/mysql/lib/protocol/sequences/index.js: -------------------------------------------------------------------------------- 1 | exports.ChangeUser = require('./ChangeUser'); 2 | exports.Handshake = require('./Handshake'); 3 | exports.Ping = require('./Ping'); 4 | exports.Query = require('./Query'); 5 | exports.Quit = require('./Quit'); 6 | exports.Sequence = require('./Sequence'); 7 | exports.Statistics = require('./Statistics'); 8 | -------------------------------------------------------------------------------- /Lesson19/node_modules/nodemon/bin/windows-kill.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson19/node_modules/nodemon/bin/windows-kill.exe -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /Lesson19/node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /Lesson19/node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson19/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /Lesson19/node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/duplex-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/_stream_duplex.js'); 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/duplex.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./readable').Duplex 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/lib/internal/streams/stream-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('events').EventEmitter; 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/lib/internal/streams/stream.js: -------------------------------------------------------------------------------- 1 | module.exports = require('stream'); 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/passthrough.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./readable').PassThrough 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/transform.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./readable').Transform 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/writable-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/_stream_writable.js'); 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/readable-stream/writable.js: -------------------------------------------------------------------------------- 1 | var Stream = require("stream") 2 | var Writable = require("./lib/_stream_writable.js") 3 | 4 | if (process.env.READABLE_STREAM === 'disable') { 5 | module.exports = Stream && Stream.Writable || Writable 6 | } else { 7 | module.exports = Writable 8 | } 9 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/classes/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SemVer: require('./semver.js'), 3 | Range: require('./range.js'), 4 | Comparator: require('./comparator.js') 5 | } 6 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/clean.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const clean = (version, options) => { 3 | const s = parse(version.trim().replace(/^[=v]+/, ''), options) 4 | return s ? s.version : null 5 | } 6 | module.exports = clean 7 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/compare-build.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compareBuild = (a, b, loose) => { 3 | const versionA = new SemVer(a, loose) 4 | const versionB = new SemVer(b, loose) 5 | return versionA.compare(versionB) || versionA.compareBuild(versionB) 6 | } 7 | module.exports = compareBuild 8 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/compare-loose.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const compareLoose = (a, b) => compare(a, b, true) 3 | module.exports = compareLoose 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/compare.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compare = (a, b, loose) => 3 | new SemVer(a, loose).compare(new SemVer(b, loose)) 4 | 5 | module.exports = compare 6 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/eq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const eq = (a, b, loose) => compare(a, b, loose) === 0 3 | module.exports = eq 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/gt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gt = (a, b, loose) => compare(a, b, loose) > 0 3 | module.exports = gt 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/gte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gte = (a, b, loose) => compare(a, b, loose) >= 0 3 | module.exports = gte 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/lt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lt = (a, b, loose) => compare(a, b, loose) < 0 3 | module.exports = lt 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/lte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lte = (a, b, loose) => compare(a, b, loose) <= 0 3 | module.exports = lte 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/major.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const major = (a, loose) => new SemVer(a, loose).major 3 | module.exports = major 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/minor.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const minor = (a, loose) => new SemVer(a, loose).minor 3 | module.exports = minor 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/neq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const neq = (a, b, loose) => compare(a, b, loose) !== 0 3 | module.exports = neq 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/patch.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const patch = (a, loose) => new SemVer(a, loose).patch 3 | module.exports = patch 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/prerelease.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const prerelease = (version, options) => { 3 | const parsed = parse(version, options) 4 | return (parsed && parsed.prerelease.length) ? parsed.prerelease : null 5 | } 6 | module.exports = prerelease 7 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/rcompare.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const rcompare = (a, b, loose) => compare(b, a, loose) 3 | module.exports = rcompare 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/rsort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) 3 | module.exports = rsort 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/satisfies.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const satisfies = (version, range, options) => { 3 | try { 4 | range = new Range(range, options) 5 | } catch (er) { 6 | return false 7 | } 8 | return range.test(version) 9 | } 10 | module.exports = satisfies 11 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/sort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) 3 | module.exports = sort 4 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/functions/valid.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const valid = (version, options) => { 3 | const v = parse(version, options) 4 | return v ? v.version : null 5 | } 6 | module.exports = valid 7 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/internal/debug.js: -------------------------------------------------------------------------------- 1 | const debug = ( 2 | typeof process === 'object' && 3 | process.env && 4 | process.env.NODE_DEBUG && 5 | /\bsemver\b/i.test(process.env.NODE_DEBUG) 6 | ) ? (...args) => console.error('SEMVER', ...args) 7 | : () => {} 8 | 9 | module.exports = debug 10 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/ranges/gtr.js: -------------------------------------------------------------------------------- 1 | // Determine if version is greater than all the versions possible in the range. 2 | const outside = require('./outside') 3 | const gtr = (version, range, options) => outside(version, range, '>', options) 4 | module.exports = gtr 5 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/ranges/intersects.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const intersects = (r1, r2, options) => { 3 | r1 = new Range(r1, options) 4 | r2 = new Range(r2, options) 5 | return r1.intersects(r2) 6 | } 7 | module.exports = intersects 8 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/ranges/ltr.js: -------------------------------------------------------------------------------- 1 | const outside = require('./outside') 2 | // Determine if version is less than all the versions possible in the range 3 | const ltr = (version, range, options) => outside(version, range, '<', options) 4 | module.exports = ltr 5 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/node_modules/semver/ranges/to-comparators.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | 3 | // Mostly just for testing and legacy API reasons 4 | const toComparators = (range, options) => 5 | new Range(range, options).set 6 | .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) 7 | 8 | module.exports = toComparators 9 | -------------------------------------------------------------------------------- /Lesson19/node_modules/simple-update-notifier/src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IUpdate { 2 | pkg: { name: string; version: string }; 3 | updateCheckInterval?: number; 4 | shouldNotifyInNpmScript?: boolean; 5 | distTag?: string; 6 | alwaysRun?: boolean; 7 | debug?: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /Lesson19/node_modules/sqlstring/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/SqlString'); 2 | -------------------------------------------------------------------------------- /Lesson19/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/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 | -------------------------------------------------------------------------------- /Lesson19/node_modules/util-deprecate/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.2 / 2015-10-07 3 | ================== 4 | 5 | * use try/catch when checking `localStorage` (#3, @kumavis) 6 | 7 | 1.0.1 / 2014-11-25 8 | ================== 9 | 10 | * browser: use `console.warn()` for deprecation calls 11 | * browser: more jsdocs 12 | 13 | 1.0.0 / 2014-04-30 14 | ================== 15 | 16 | * initial commit 17 | -------------------------------------------------------------------------------- /Lesson19/node_modules/util-deprecate/node.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * For Node.js, simply re-export the core `util.deprecate` function. 4 | */ 5 | 6 | module.exports = require('util').deprecate; 7 | -------------------------------------------------------------------------------- /Lesson19/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "3", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "mysql": "^2.18.1", 13 | "nodemon": "^2.0.22" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lesson20/node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | else 11 | exec node "$basedir/../nodemon/bin/nodemon.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson20/node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | else 11 | exec node "$basedir/../touch/bin/nodetouch.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson20/node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | else 11 | exec node "$basedir/../nopt/bin/nopt.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson20/node_modules/.bin/nopt.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* 18 | -------------------------------------------------------------------------------- /Lesson20/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | else 11 | exec node "$basedir/../semver/bin/semver" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson20/node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* 18 | -------------------------------------------------------------------------------- /Lesson20/node_modules/balanced-match/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "npm/balanced-match" 2 | patreon: juliangruber 3 | -------------------------------------------------------------------------------- /Lesson20/node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/core-util-is/README.md: -------------------------------------------------------------------------------- 1 | # core-util-is 2 | 3 | The `util.is*` functions introduced in Node v0.12. 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/generate-function/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /Lesson20/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/iconv-lite/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Lesson20/node_modules/iconv-lite/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/is-property/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules/* 16 | *.DS_Store 17 | test/* -------------------------------------------------------------------------------- /Lesson20/node_modules/isarray/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/isarray/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /Lesson20/node_modules/isarray/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @node_modules/.bin/tape test.js 4 | 5 | .PHONY: test 6 | 7 | -------------------------------------------------------------------------------- /Lesson20/node_modules/isarray/index.js: -------------------------------------------------------------------------------- 1 | var toString = {}.toString; 2 | 3 | module.exports = Array.isArray || function (arr) { 4 | return toString.call(arr) == '[object Array]'; 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/long/umd/index.d.ts: -------------------------------------------------------------------------------- 1 | import Long from "../index.js"; 2 | export = Long; 3 | -------------------------------------------------------------------------------- /Lesson20/node_modules/long/umd/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/lru-cache/dist/cjs/index-cjs.d.ts: -------------------------------------------------------------------------------- 1 | import LRUCache from './index.js'; 2 | declare const _default: typeof LRUCache & { 3 | default: typeof LRUCache; 4 | LRUCache: typeof LRUCache; 5 | }; 6 | export = _default; 7 | //# sourceMappingURL=index-cjs.d.ts.map -------------------------------------------------------------------------------- /Lesson20/node_modules/lru-cache/dist/cjs/index-cjs.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index-cjs.d.ts","sourceRoot":"","sources":["../../src/index-cjs.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;;;;;AAEjC,kBAAiE"} -------------------------------------------------------------------------------- /Lesson20/node_modules/lru-cache/dist/cjs/index-cjs.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index-cjs.js","sourceRoot":"","sources":["../../src/index-cjs.ts"],"names":[],"mappings":";;;;AAAA,0DAAiC;AAEjC,iBAAS,MAAM,CAAC,MAAM,CAAC,kBAAQ,EAAE,EAAE,OAAO,EAAE,kBAAQ,EAAE,QAAQ,EAAR,kBAAQ,EAAE,CAAC,CAAA","sourcesContent":["import LRUCache from './index.js'\n\nexport = Object.assign(LRUCache, { default: LRUCache, LRUCache })\n"]} -------------------------------------------------------------------------------- /Lesson20/node_modules/lru-cache/dist/cjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/lru-cache/dist/mjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/PacketHeader.js: -------------------------------------------------------------------------------- 1 | module.exports = PacketHeader; 2 | function PacketHeader(length, number) { 3 | this.length = length; 4 | this.number = number; 5 | } 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/ResultSet.js: -------------------------------------------------------------------------------- 1 | module.exports = ResultSet; 2 | function ResultSet(resultSetHeaderPacket) { 3 | this.resultSetHeaderPacket = resultSetHeaderPacket; 4 | this.fieldPackets = []; 5 | this.eofPackets = []; 6 | this.rows = []; 7 | } 8 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/SqlString.js: -------------------------------------------------------------------------------- 1 | module.exports = require('sqlstring'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/packets/ComPingPacket.js: -------------------------------------------------------------------------------- 1 | module.exports = ComPingPacket; 2 | function ComPingPacket() { 3 | this.command = 0x0e; 4 | } 5 | 6 | ComPingPacket.prototype.write = function(writer) { 7 | writer.writeUnsignedNumber(1, this.command); 8 | }; 9 | 10 | ComPingPacket.prototype.parse = function(parser) { 11 | this.command = parser.parseUnsignedNumber(1); 12 | }; 13 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/packets/ComQuitPacket.js: -------------------------------------------------------------------------------- 1 | module.exports = ComQuitPacket; 2 | function ComQuitPacket() { 3 | this.command = 0x01; 4 | } 5 | 6 | ComQuitPacket.prototype.parse = function parse(parser) { 7 | this.command = parser.parseUnsignedNumber(1); 8 | }; 9 | 10 | ComQuitPacket.prototype.write = function write(writer) { 11 | writer.writeUnsignedNumber(1, this.command); 12 | }; 13 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/packets/EmptyPacket.js: -------------------------------------------------------------------------------- 1 | module.exports = EmptyPacket; 2 | function EmptyPacket() { 3 | } 4 | 5 | EmptyPacket.prototype.parse = function parse() { 6 | }; 7 | 8 | EmptyPacket.prototype.write = function write() { 9 | }; 10 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql/lib/protocol/sequences/index.js: -------------------------------------------------------------------------------- 1 | exports.ChangeUser = require('./ChangeUser'); 2 | exports.Handshake = require('./Handshake'); 3 | exports.Ping = require('./Ping'); 4 | exports.Query = require('./Query'); 5 | exports.Quit = require('./Quit'); 6 | exports.Sequence = require('./Sequence'); 7 | exports.Statistics = require('./Statistics'); 8 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/lib/auth_plugins/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | caching_sha2_password: require('./caching_sha2_password'), 5 | mysql_clear_password: require('./mysql_clear_password'), 6 | mysql_native_password: require('./mysql_native_password'), 7 | sha256_password: require('./sha256_password'), 8 | }; 9 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/lib/constants/cursor.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | NO_CURSOR: 0, 5 | READ_ONLY: 1, 6 | FOR_UPDATE: 2, 7 | SCROLLABLE: 3 8 | }; 9 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/lib/constants/session_track.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.SYSTEM_VARIABLES = 0; 4 | exports.SCHEMA = 1; 5 | exports.STATE_CHANGE = 2; 6 | exports.STATE_GTIDS = 3; 7 | exports.TRANSACTION_CHARACTERISTICS = 4; 8 | exports.TRANSACTION_STATE = 5; 9 | 10 | exports.FIRST_KEY = exports.SYSTEM_VARIABLES; 11 | exports.LAST_KEY = exports.TRANSACTION_STATE; 12 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/node_modules/sqlstring/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/SqlString'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/info.txt: -------------------------------------------------------------------------------- 1 | temporary workaround, see https://github.com/sidorares/node-mysql2/issues/1210 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/PoolConnection.d.ts: -------------------------------------------------------------------------------- 1 | 2 | import Connection = require('./Connection'); 3 | 4 | declare class PoolConnection extends Connection { 5 | connection: Connection; 6 | release(): void; 7 | } 8 | 9 | export = PoolConnection; 10 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/Server.d.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from 'events'; 2 | import Connection = require('./Connection'); 3 | 4 | declare namespace Server {} 5 | 6 | declare class Server extends EventEmitter { 7 | connections: Array; 8 | 9 | listen(port: number): Server 10 | close(callback: (error: Error, count: number) => any): void 11 | } 12 | 13 | export = Server; -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts: -------------------------------------------------------------------------------- 1 | 2 | declare interface Field { 3 | constructor: { 4 | name: 'Field' 5 | }; 6 | db: string; 7 | table: string; 8 | name: string; 9 | type: string; 10 | length: number; 11 | string: Function; 12 | buffer: Function; 13 | geometry: Function; 14 | } 15 | 16 | export = Field; 17 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts: -------------------------------------------------------------------------------- 1 | 2 | declare interface RowDataPacket { 3 | constructor: { 4 | name: 'RowDataPacket' 5 | }; 6 | [column: string]: any; 7 | [column: number]: any; 8 | } 9 | 10 | export = RowDataPacket; 11 | -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts: -------------------------------------------------------------------------------- 1 | declare interface ErrorPacketParams { 2 | message?: string; 3 | code?: number | string; 4 | } 5 | 6 | export = ErrorPacketParams; -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts: -------------------------------------------------------------------------------- 1 | declare interface OkPacketParams { 2 | affectedRows?: number; 3 | insertId?: number; 4 | serverStatus?: number; 5 | warningCount?: number; 6 | message?: string; 7 | } 8 | 9 | export = OkPacketParams; -------------------------------------------------------------------------------- /Lesson20/node_modules/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts: -------------------------------------------------------------------------------- 1 | 2 | import {EventEmitter} from 'events'; 3 | 4 | declare class Sequence extends EventEmitter { } 5 | export = Sequence; 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/nodemon/bin/windows-kill.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson20/node_modules/nodemon/bin/windows-kill.exe -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /Lesson20/node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /Lesson20/node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson20/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /Lesson20/node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/duplex-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/_stream_duplex.js'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/duplex.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./readable').Duplex 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/lib/internal/streams/stream-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('events').EventEmitter; 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/lib/internal/streams/stream.js: -------------------------------------------------------------------------------- 1 | module.exports = require('stream'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/passthrough.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./readable').PassThrough 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/transform.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./readable').Transform 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/writable-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/_stream_writable.js'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/readable-stream/writable.js: -------------------------------------------------------------------------------- 1 | var Stream = require("stream") 2 | var Writable = require("./lib/_stream_writable.js") 3 | 4 | if (process.env.READABLE_STREAM === 'disable') { 5 | module.exports = Stream && Stream.Writable || Writable 6 | } else { 7 | module.exports = Writable 8 | } 9 | -------------------------------------------------------------------------------- /Lesson20/node_modules/seq-queue/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "describe", 4 | "it", 5 | "before", 6 | "after", 7 | "window", 8 | "__resources__" 9 | ], 10 | "es5": true, 11 | "node": true, 12 | "eqeqeq": true, 13 | "undef": true, 14 | "curly": true, 15 | "bitwise": true, 16 | "immed": false, 17 | "newcap": true, 18 | "nonew": true 19 | } 20 | -------------------------------------------------------------------------------- /Lesson20/node_modules/seq-queue/.npmignore: -------------------------------------------------------------------------------- 1 | .project 2 | node_modules/ 3 | lib/doc/ 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/seq-queue/AUTHORS: -------------------------------------------------------------------------------- 1 | * Yongchang Zhou -------------------------------------------------------------------------------- /Lesson20/node_modules/seq-queue/Makefile: -------------------------------------------------------------------------------- 1 | TESTS = test/*.js 2 | REPORTER = spec 3 | TIMEOUT = 5000 4 | 5 | test: 6 | @./node_modules/.bin/mocha \ 7 | --reporter $(REPORTER) --timeout $(TIMEOUT) $(TESTS) 8 | 9 | .PHONY: test -------------------------------------------------------------------------------- /Lesson20/node_modules/seq-queue/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/seq-queue'); -------------------------------------------------------------------------------- /Lesson20/node_modules/seq-queue/lib/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson20/node_modules/seq-queue/lib/.npmignore -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/classes/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SemVer: require('./semver.js'), 3 | Range: require('./range.js'), 4 | Comparator: require('./comparator.js') 5 | } 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/clean.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const clean = (version, options) => { 3 | const s = parse(version.trim().replace(/^[=v]+/, ''), options) 4 | return s ? s.version : null 5 | } 6 | module.exports = clean 7 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/compare-build.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compareBuild = (a, b, loose) => { 3 | const versionA = new SemVer(a, loose) 4 | const versionB = new SemVer(b, loose) 5 | return versionA.compare(versionB) || versionA.compareBuild(versionB) 6 | } 7 | module.exports = compareBuild 8 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/compare-loose.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const compareLoose = (a, b) => compare(a, b, true) 3 | module.exports = compareLoose 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/compare.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compare = (a, b, loose) => 3 | new SemVer(a, loose).compare(new SemVer(b, loose)) 4 | 5 | module.exports = compare 6 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/eq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const eq = (a, b, loose) => compare(a, b, loose) === 0 3 | module.exports = eq 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/gt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gt = (a, b, loose) => compare(a, b, loose) > 0 3 | module.exports = gt 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/gte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gte = (a, b, loose) => compare(a, b, loose) >= 0 3 | module.exports = gte 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/lt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lt = (a, b, loose) => compare(a, b, loose) < 0 3 | module.exports = lt 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/lte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lte = (a, b, loose) => compare(a, b, loose) <= 0 3 | module.exports = lte 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/major.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const major = (a, loose) => new SemVer(a, loose).major 3 | module.exports = major 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/minor.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const minor = (a, loose) => new SemVer(a, loose).minor 3 | module.exports = minor 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/neq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const neq = (a, b, loose) => compare(a, b, loose) !== 0 3 | module.exports = neq 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/patch.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const patch = (a, loose) => new SemVer(a, loose).patch 3 | module.exports = patch 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/prerelease.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const prerelease = (version, options) => { 3 | const parsed = parse(version, options) 4 | return (parsed && parsed.prerelease.length) ? parsed.prerelease : null 5 | } 6 | module.exports = prerelease 7 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/rcompare.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const rcompare = (a, b, loose) => compare(b, a, loose) 3 | module.exports = rcompare 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/rsort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) 3 | module.exports = rsort 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/satisfies.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const satisfies = (version, range, options) => { 3 | try { 4 | range = new Range(range, options) 5 | } catch (er) { 6 | return false 7 | } 8 | return range.test(version) 9 | } 10 | module.exports = satisfies 11 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/sort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) 3 | module.exports = sort 4 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/functions/valid.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const valid = (version, options) => { 3 | const v = parse(version, options) 4 | return v ? v.version : null 5 | } 6 | module.exports = valid 7 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/internal/debug.js: -------------------------------------------------------------------------------- 1 | const debug = ( 2 | typeof process === 'object' && 3 | process.env && 4 | process.env.NODE_DEBUG && 5 | /\bsemver\b/i.test(process.env.NODE_DEBUG) 6 | ) ? (...args) => console.error('SEMVER', ...args) 7 | : () => {} 8 | 9 | module.exports = debug 10 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/ranges/gtr.js: -------------------------------------------------------------------------------- 1 | // Determine if version is greater than all the versions possible in the range. 2 | const outside = require('./outside') 3 | const gtr = (version, range, options) => outside(version, range, '>', options) 4 | module.exports = gtr 5 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/ranges/intersects.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const intersects = (r1, r2, options) => { 3 | r1 = new Range(r1, options) 4 | r2 = new Range(r2, options) 5 | return r1.intersects(r2) 6 | } 7 | module.exports = intersects 8 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/ranges/ltr.js: -------------------------------------------------------------------------------- 1 | const outside = require('./outside') 2 | // Determine if version is less than all the versions possible in the range 3 | const ltr = (version, range, options) => outside(version, range, '<', options) 4 | module.exports = ltr 5 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/node_modules/semver/ranges/to-comparators.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | 3 | // Mostly just for testing and legacy API reasons 4 | const toComparators = (range, options) => 5 | new Range(range, options).set 6 | .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) 7 | 8 | module.exports = toComparators 9 | -------------------------------------------------------------------------------- /Lesson20/node_modules/simple-update-notifier/src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IUpdate { 2 | pkg: { name: string; version: string }; 3 | updateCheckInterval?: number; 4 | shouldNotifyInNpmScript?: boolean; 5 | distTag?: string; 6 | alwaysRun?: boolean; 7 | debug?: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /Lesson20/node_modules/sqlstring/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/SqlString'); 2 | -------------------------------------------------------------------------------- /Lesson20/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/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 | -------------------------------------------------------------------------------- /Lesson20/node_modules/util-deprecate/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.2 / 2015-10-07 3 | ================== 4 | 5 | * use try/catch when checking `localStorage` (#3, @kumavis) 6 | 7 | 1.0.1 / 2014-11-25 8 | ================== 9 | 10 | * browser: use `console.warn()` for deprecation calls 11 | * browser: more jsdocs 12 | 13 | 1.0.0 / 2014-04-30 14 | ================== 15 | 16 | * initial commit 17 | -------------------------------------------------------------------------------- /Lesson20/node_modules/util-deprecate/node.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * For Node.js, simply re-export the core `util.deprecate` function. 4 | */ 5 | 6 | module.exports = require('util').deprecate; 7 | -------------------------------------------------------------------------------- /Lesson20/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "3", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "mysql": "^2.18.1", 13 | "mysql2": "^3.2.1", 14 | "nodemon": "^2.0.22" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/ejs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../ejs/bin/cli.js" "$@" 10 | else 11 | exec node "$basedir/../ejs/bin/cli.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/ejs.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ejs\bin\cli.js" %* 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/jake: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../jake/bin/cli.js" "$@" 10 | else 11 | exec node "$basedir/../jake/bin/cli.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/jake.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jake\bin\cli.js" %* 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../mime/cli.js" "$@" 10 | else 11 | exec node "$basedir/../mime/cli.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | else 11 | exec node "$basedir/../nodemon/bin/nodemon.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | else 11 | exec node "$basedir/../touch/bin/nodetouch.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | else 11 | exec node "$basedir/../nopt/bin/nopt.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/nopt.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | else 11 | exec node "$basedir/../semver/bin/semver" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/async/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "main": "dist/async.js", 4 | "ignore": [ 5 | "bower_components", 6 | "lib", 7 | "test", 8 | "node_modules", 9 | "perf", 10 | "support", 11 | "**/.*", 12 | "*.config.js", 13 | "*.json", 14 | "index.js", 15 | "Makefile" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/async/internal/breakLoop.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | // A temporary value used to identify if the loop should be broken. 7 | // See #1064, #1293 8 | const breakLoop = {}; 9 | exports.default = breakLoop; 10 | module.exports = exports["default"]; -------------------------------------------------------------------------------- /Lesson21/node_modules/async/internal/getIterator.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | 7 | exports.default = function (coll) { 8 | return coll[Symbol.iterator] && coll[Symbol.iterator](); 9 | }; 10 | 11 | module.exports = exports["default"]; -------------------------------------------------------------------------------- /Lesson21/node_modules/async/internal/initialParams.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | 7 | exports.default = function (fn) { 8 | return function (...args /*, callback*/) { 9 | var callback = args.pop(); 10 | return fn.call(this, args, callback); 11 | }; 12 | }; 13 | 14 | module.exports = exports["default"]; -------------------------------------------------------------------------------- /Lesson21/node_modules/async/internal/isArrayLike.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.default = isArrayLike; 7 | function isArrayLike(value) { 8 | return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0; 9 | } 10 | module.exports = exports['default']; -------------------------------------------------------------------------------- /Lesson21/node_modules/async/internal/range.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.default = range; 7 | function range(size) { 8 | var result = Array(size); 9 | while (size--) { 10 | result[size] = size; 11 | } 12 | return result; 13 | } 14 | module.exports = exports["default"]; -------------------------------------------------------------------------------- /Lesson21/node_modules/async/internal/withoutIndex.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.default = _withoutIndex; 7 | function _withoutIndex(iteratee) { 8 | return (value, index, callback) => iteratee(value, callback); 9 | } 10 | module.exports = exports["default"]; -------------------------------------------------------------------------------- /Lesson21/node_modules/balanced-match/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "npm/balanced-match" 2 | patreon: juliangruber 3 | -------------------------------------------------------------------------------- /Lesson21/node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /Lesson21/node_modules/call-bind/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson21/node_modules/call-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | "operator-linebreak": [2, "before"], 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /Lesson21/node_modules/call-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson21/node_modules/call-bind/README.md: -------------------------------------------------------------------------------- 1 | # call-bind 2 | Robustly `.call.bind()` a function. 3 | -------------------------------------------------------------------------------- /Lesson21/node_modules/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /Lesson21/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/filelist/jakefile.js: -------------------------------------------------------------------------------- 1 | testTask('FileList', function () { 2 | this.testFiles.include('test/*.js'); 3 | }); 4 | 5 | publishTask('FileList', function () { 6 | this.packageFiles.include([ 7 | 'jakefile.js', 8 | 'README.md', 9 | 'package.json', 10 | 'index.js', 11 | 'index.d.ts' 12 | ]); 13 | }); 14 | 15 | 16 | -------------------------------------------------------------------------------- /Lesson21/node_modules/filelist/node_modules/brace-expansion/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "npm/brace-expansion" 2 | patreon: juliangruber 3 | -------------------------------------------------------------------------------- /Lesson21/node_modules/filelist/node_modules/minimatch/lib/path.js: -------------------------------------------------------------------------------- 1 | const isWindows = typeof process === 'object' && 2 | process && 3 | process.platform === 'win32' 4 | module.exports = isWindows ? { sep: '\\' } : { sep: '/' } 5 | -------------------------------------------------------------------------------- /Lesson21/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "max-nested-callbacks": [2, 3], 10 | "max-params": [2, 3], 11 | "max-statements": [2, 20], 12 | "no-new-func": [1], 13 | "strict": [0] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lesson21/node_modules/function-bind/.npmignore: -------------------------------------------------------------------------------- 1 | # gitignore 2 | .DS_Store 3 | .monitor 4 | .*.swp 5 | .nodemonignore 6 | releases 7 | *.log 8 | *.err 9 | fleet.json 10 | public/browserify 11 | bin/*.json 12 | .bin 13 | build 14 | compile 15 | .lock-wscript 16 | coverage 17 | node_modules 18 | 19 | # Only apps should have lockfiles 20 | npm-shrinkwrap.json 21 | package-lock.json 22 | yarn.lock 23 | -------------------------------------------------------------------------------- /Lesson21/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lesson21/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lesson21/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson21/node_modules/has/README.md: -------------------------------------------------------------------------------- 1 | # has 2 | 3 | > Object.prototype.hasOwnProperty.call shortcut 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install --save has 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | var has = require('has'); 15 | 16 | has({}, 'hasOwnProperty'); // false 17 | has(Object.prototype, 'hasOwnProperty'); // true 18 | ``` 19 | -------------------------------------------------------------------------------- /Lesson21/node_modules/has/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/has/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var has = require('../'); 5 | 6 | test('has', function (t) { 7 | t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"'); 8 | t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"'); 9 | t.end(); 10 | }); 11 | -------------------------------------------------------------------------------- /Lesson21/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/jake/lib/task/index.js: -------------------------------------------------------------------------------- 1 | 2 | let Task = require('./task').Task; 3 | let FileTask = require('./file_task').FileTask; 4 | let DirectoryTask = require('./directory_task').DirectoryTask; 5 | 6 | exports.Task = Task; 7 | exports.FileTask = FileTask; 8 | exports.DirectoryTask = DirectoryTask; 9 | 10 | -------------------------------------------------------------------------------- /Lesson21/node_modules/jake/test/integration/jakelib/required_module.jake.js: -------------------------------------------------------------------------------- 1 | let { task, namespace } = require(`${process.env.PROJECT_DIR}/lib/jake`); 2 | 3 | namespace('usingRequire', function () { 4 | task('test', () => { 5 | console.log('howdy test'); 6 | }); 7 | }); 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Lesson21/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/bin/windows-kill.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/node_modules/nodemon/bin/windows-kill.exe -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nodemon/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson21/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /Lesson21/node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /Lesson21/node_modules/side-channel/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson21/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "max-params": 0, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /Lesson21/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson21/node_modules/side-channel/README.md: -------------------------------------------------------------------------------- 1 | # side-channel 2 | Store information about any JS value in a side channel. Uses WeakMap if available. 3 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/classes/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SemVer: require('./semver.js'), 3 | Range: require('./range.js'), 4 | Comparator: require('./comparator.js') 5 | } 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/clean.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const clean = (version, options) => { 3 | const s = parse(version.trim().replace(/^[=v]+/, ''), options) 4 | return s ? s.version : null 5 | } 6 | module.exports = clean 7 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/compare-build.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compareBuild = (a, b, loose) => { 3 | const versionA = new SemVer(a, loose) 4 | const versionB = new SemVer(b, loose) 5 | return versionA.compare(versionB) || versionA.compareBuild(versionB) 6 | } 7 | module.exports = compareBuild 8 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/compare-loose.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const compareLoose = (a, b) => compare(a, b, true) 3 | module.exports = compareLoose 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/compare.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compare = (a, b, loose) => 3 | new SemVer(a, loose).compare(new SemVer(b, loose)) 4 | 5 | module.exports = compare 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/eq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const eq = (a, b, loose) => compare(a, b, loose) === 0 3 | module.exports = eq 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/gt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gt = (a, b, loose) => compare(a, b, loose) > 0 3 | module.exports = gt 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/gte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gte = (a, b, loose) => compare(a, b, loose) >= 0 3 | module.exports = gte 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/lt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lt = (a, b, loose) => compare(a, b, loose) < 0 3 | module.exports = lt 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/lte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lte = (a, b, loose) => compare(a, b, loose) <= 0 3 | module.exports = lte 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/major.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const major = (a, loose) => new SemVer(a, loose).major 3 | module.exports = major 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/minor.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const minor = (a, loose) => new SemVer(a, loose).minor 3 | module.exports = minor 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/neq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const neq = (a, b, loose) => compare(a, b, loose) !== 0 3 | module.exports = neq 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/patch.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const patch = (a, loose) => new SemVer(a, loose).patch 3 | module.exports = patch 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/prerelease.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const prerelease = (version, options) => { 3 | const parsed = parse(version, options) 4 | return (parsed && parsed.prerelease.length) ? parsed.prerelease : null 5 | } 6 | module.exports = prerelease 7 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/rcompare.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const rcompare = (a, b, loose) => compare(b, a, loose) 3 | module.exports = rcompare 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/rsort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) 3 | module.exports = rsort 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/satisfies.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const satisfies = (version, range, options) => { 3 | try { 4 | range = new Range(range, options) 5 | } catch (er) { 6 | return false 7 | } 8 | return range.test(version) 9 | } 10 | module.exports = satisfies 11 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/sort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) 3 | module.exports = sort 4 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/functions/valid.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const valid = (version, options) => { 3 | const v = parse(version, options) 4 | return v ? v.version : null 5 | } 6 | module.exports = valid 7 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/internal/debug.js: -------------------------------------------------------------------------------- 1 | const debug = ( 2 | typeof process === 'object' && 3 | process.env && 4 | process.env.NODE_DEBUG && 5 | /\bsemver\b/i.test(process.env.NODE_DEBUG) 6 | ) ? (...args) => console.error('SEMVER', ...args) 7 | : () => {} 8 | 9 | module.exports = debug 10 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/ranges/gtr.js: -------------------------------------------------------------------------------- 1 | // Determine if version is greater than all the versions possible in the range. 2 | const outside = require('./outside') 3 | const gtr = (version, range, options) => outside(version, range, '>', options) 4 | module.exports = gtr 5 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/ranges/intersects.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const intersects = (r1, r2, options) => { 3 | r1 = new Range(r1, options) 4 | r2 = new Range(r2, options) 5 | return r1.intersects(r2) 6 | } 7 | module.exports = intersects 8 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/ranges/ltr.js: -------------------------------------------------------------------------------- 1 | const outside = require('./outside') 2 | // Determine if version is less than all the versions possible in the range 3 | const ltr = (version, range, options) => outside(version, range, '<', options) 4 | module.exports = ltr 5 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/node_modules/semver/ranges/to-comparators.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | 3 | // Mostly just for testing and legacy API reasons 4 | const toComparators = (range, options) => 5 | new Range(range, options).set 6 | .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) 7 | 8 | module.exports = toComparators 9 | -------------------------------------------------------------------------------- /Lesson21/node_modules/simple-update-notifier/src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IUpdate { 2 | pkg: { name: string; version: string }; 3 | updateCheckInterval?: number; 4 | shouldNotifyInNpmScript?: boolean; 5 | distTag?: string; 6 | alwaysRun?: boolean; 7 | debug?: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /Lesson21/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson21/node_modules/toidentifier/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2021-11-14 2 | ================== 3 | 4 | * pref: enable strict mode 5 | 6 | 1.0.0 / 2018-07-09 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /Lesson21/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 | -------------------------------------------------------------------------------- /Lesson21/pictures/Capture.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture0.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture0.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture1.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture2.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture3.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture4.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture5.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture6.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture7-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture7-2.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture7.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture8.PNG -------------------------------------------------------------------------------- /Lesson21/pictures/Capture9.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson21/pictures/Capture9.PNG -------------------------------------------------------------------------------- /Lesson21/views/footer.ejs: -------------------------------------------------------------------------------- 1 |
2 |

جميع الحقوق محفوظة © <%= new Date().getFullYear() %>

3 |
-------------------------------------------------------------------------------- /Lesson21/views/foreach.ejs: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /Lesson21/views/header.ejs: -------------------------------------------------------------------------------- 1 |
2 |

<%= message %>

3 |
-------------------------------------------------------------------------------- /Lesson21/views/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | <%= title %> 7 | 8 | 9 | 10 | <%- include('header') %> 11 | <%- include('main') %> 12 | <%- include('footer') %> 13 | 14 | 15 | -------------------------------------------------------------------------------- /Lesson21/views/main.ejs: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
-------------------------------------------------------------------------------- /Lesson21/views/response.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | الرد 7 | 8 | 9 |

<%= responseMessage %>

10 | 11 | 12 | -------------------------------------------------------------------------------- /Lesson22/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../mime/cli.js" "$@" 10 | else 11 | exec node "$basedir/../mime/cli.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* 18 | -------------------------------------------------------------------------------- /Lesson22/node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | else 11 | exec node "$basedir/../nodemon/bin/nodemon.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | else 11 | exec node "$basedir/../touch/bin/nodetouch.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | else 11 | exec node "$basedir/../nopt/bin/nopt.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | else 11 | exec node "$basedir/../semver/bin/semver" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/balanced-match/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "npm/balanced-match" 2 | patreon: juliangruber 3 | -------------------------------------------------------------------------------- /Lesson22/node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/call-bind/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/call-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | "operator-linebreak": [2, "before"], 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /Lesson22/node_modules/call-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson22/node_modules/call-bind/README.md: -------------------------------------------------------------------------------- 1 | # call-bind 2 | Robustly `.call.bind()` a function. 3 | -------------------------------------------------------------------------------- /Lesson22/node_modules/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /Lesson22/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "max-nested-callbacks": [2, 3], 10 | "max-params": [2, 3], 11 | "max-statements": [2, 20], 12 | "no-new-func": [1], 13 | "strict": [0] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lesson22/node_modules/function-bind/.npmignore: -------------------------------------------------------------------------------- 1 | # gitignore 2 | .DS_Store 3 | .monitor 4 | .*.swp 5 | .nodemonignore 6 | releases 7 | *.log 8 | *.err 9 | fleet.json 10 | public/browserify 11 | bin/*.json 12 | .bin 13 | build 14 | compile 15 | .lock-wscript 16 | coverage 17 | node_modules 18 | 19 | # Only apps should have lockfiles 20 | npm-shrinkwrap.json 21 | package-lock.json 22 | yarn.lock 23 | -------------------------------------------------------------------------------- /Lesson22/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lesson22/node_modules/generate-function/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lesson22/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson22/node_modules/has/README.md: -------------------------------------------------------------------------------- 1 | # has 2 | 3 | > Object.prototype.hasOwnProperty.call shortcut 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install --save has 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | var has = require('has'); 15 | 16 | has({}, 'hasOwnProperty'); // false 17 | has(Object.prototype, 'hasOwnProperty'); // true 18 | ``` 19 | -------------------------------------------------------------------------------- /Lesson22/node_modules/has/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/has/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var has = require('../'); 5 | 6 | test('has', function (t) { 7 | t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"'); 8 | t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"'); 9 | t.end(); 10 | }); 11 | -------------------------------------------------------------------------------- /Lesson22/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/is-property/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules/* 16 | *.DS_Store 17 | test/* -------------------------------------------------------------------------------- /Lesson22/node_modules/long/umd/index.d.ts: -------------------------------------------------------------------------------- 1 | import Long from "../index.js"; 2 | export = Long; 3 | -------------------------------------------------------------------------------- /Lesson22/node_modules/long/umd/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/lru-cache/dist/cjs/index-cjs.d.ts: -------------------------------------------------------------------------------- 1 | import LRUCache from './index.js'; 2 | declare const _default: typeof LRUCache & { 3 | default: typeof LRUCache; 4 | LRUCache: typeof LRUCache; 5 | }; 6 | export = _default; 7 | //# sourceMappingURL=index-cjs.d.ts.map -------------------------------------------------------------------------------- /Lesson22/node_modules/lru-cache/dist/cjs/index-cjs.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index-cjs.d.ts","sourceRoot":"","sources":["../../src/index-cjs.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;;;;;AAEjC,kBAAiE"} -------------------------------------------------------------------------------- /Lesson22/node_modules/lru-cache/dist/cjs/index-cjs.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index-cjs.js","sourceRoot":"","sources":["../../src/index-cjs.ts"],"names":[],"mappings":";;;;AAAA,0DAAiC;AAEjC,iBAAS,MAAM,CAAC,MAAM,CAAC,kBAAQ,EAAE,EAAE,OAAO,EAAE,kBAAQ,EAAE,QAAQ,EAAR,kBAAQ,EAAE,CAAC,CAAA","sourcesContent":["import LRUCache from './index.js'\n\nexport = Object.assign(LRUCache, { default: LRUCache, LRUCache })\n"]} -------------------------------------------------------------------------------- /Lesson22/node_modules/lru-cache/dist/cjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/lru-cache/dist/mjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson22/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/lib/auth_plugins/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | caching_sha2_password: require('./caching_sha2_password'), 5 | mysql_clear_password: require('./mysql_clear_password'), 6 | mysql_native_password: require('./mysql_native_password'), 7 | sha256_password: require('./sha256_password'), 8 | }; 9 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/lib/constants/cursor.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | NO_CURSOR: 0, 5 | READ_ONLY: 1, 6 | FOR_UPDATE: 2, 7 | SCROLLABLE: 3 8 | }; 9 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/lib/constants/session_track.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.SYSTEM_VARIABLES = 0; 4 | exports.SCHEMA = 1; 5 | exports.STATE_CHANGE = 2; 6 | exports.STATE_GTIDS = 3; 7 | exports.TRANSACTION_CHARACTERISTICS = 4; 8 | exports.TRANSACTION_STATE = 5; 9 | 10 | exports.FIRST_KEY = exports.SYSTEM_VARIABLES; 11 | exports.LAST_KEY = exports.TRANSACTION_STATE; 12 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/node_modules/iconv-lite/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/node_modules/iconv-lite/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/info.txt: -------------------------------------------------------------------------------- 1 | temporary workaround, see https://github.com/sidorares/node-mysql2/issues/1210 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/lib/PoolConnection.d.ts: -------------------------------------------------------------------------------- 1 | 2 | import Connection = require('./Connection'); 3 | 4 | declare class PoolConnection extends Connection { 5 | connection: Connection; 6 | release(): void; 7 | } 8 | 9 | export = PoolConnection; 10 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts: -------------------------------------------------------------------------------- 1 | 2 | declare interface Field { 3 | constructor: { 4 | name: 'Field' 5 | }; 6 | db: string; 7 | table: string; 8 | name: string; 9 | type: string; 10 | length: number; 11 | string: Function; 12 | buffer: Function; 13 | geometry: Function; 14 | } 15 | 16 | export = Field; 17 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts: -------------------------------------------------------------------------------- 1 | 2 | declare interface RowDataPacket { 3 | constructor: { 4 | name: 'RowDataPacket' 5 | }; 6 | [column: string]: any; 7 | [column: number]: any; 8 | } 9 | 10 | export = RowDataPacket; 11 | -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts: -------------------------------------------------------------------------------- 1 | declare interface ErrorPacketParams { 2 | message?: string; 3 | code?: number | string; 4 | } 5 | 6 | export = ErrorPacketParams; -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts: -------------------------------------------------------------------------------- 1 | declare interface OkPacketParams { 2 | affectedRows?: number; 3 | insertId?: number; 4 | serverStatus?: number; 5 | warningCount?: number; 6 | message?: string; 7 | } 8 | 9 | export = OkPacketParams; -------------------------------------------------------------------------------- /Lesson22/node_modules/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts: -------------------------------------------------------------------------------- 1 | 2 | import {EventEmitter} from 'events'; 3 | 4 | declare class Sequence extends EventEmitter { } 5 | export = Sequence; 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/nodemon/bin/windows-kill.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson22/node_modules/nodemon/bin/windows-kill.exe -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /Lesson22/node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /Lesson22/node_modules/nodemon/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson22/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson22/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/seq-queue/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "describe", 4 | "it", 5 | "before", 6 | "after", 7 | "window", 8 | "__resources__" 9 | ], 10 | "es5": true, 11 | "node": true, 12 | "eqeqeq": true, 13 | "undef": true, 14 | "curly": true, 15 | "bitwise": true, 16 | "immed": false, 17 | "newcap": true, 18 | "nonew": true 19 | } 20 | -------------------------------------------------------------------------------- /Lesson22/node_modules/seq-queue/.npmignore: -------------------------------------------------------------------------------- 1 | .project 2 | node_modules/ 3 | lib/doc/ 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/seq-queue/AUTHORS: -------------------------------------------------------------------------------- 1 | * Yongchang Zhou -------------------------------------------------------------------------------- /Lesson22/node_modules/seq-queue/Makefile: -------------------------------------------------------------------------------- 1 | TESTS = test/*.js 2 | REPORTER = spec 3 | TIMEOUT = 5000 4 | 5 | test: 6 | @./node_modules/.bin/mocha \ 7 | --reporter $(REPORTER) --timeout $(TIMEOUT) $(TESTS) 8 | 9 | .PHONY: test -------------------------------------------------------------------------------- /Lesson22/node_modules/seq-queue/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/seq-queue'); -------------------------------------------------------------------------------- /Lesson22/node_modules/seq-queue/lib/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson22/node_modules/seq-queue/lib/.npmignore -------------------------------------------------------------------------------- /Lesson22/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /Lesson22/node_modules/side-channel/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "max-params": 0, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /Lesson22/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson22/node_modules/side-channel/README.md: -------------------------------------------------------------------------------- 1 | # side-channel 2 | Store information about any JS value in a side channel. Uses WeakMap if available. 3 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/classes/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SemVer: require('./semver.js'), 3 | Range: require('./range.js'), 4 | Comparator: require('./comparator.js') 5 | } 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/clean.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const clean = (version, options) => { 3 | const s = parse(version.trim().replace(/^[=v]+/, ''), options) 4 | return s ? s.version : null 5 | } 6 | module.exports = clean 7 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/compare-build.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compareBuild = (a, b, loose) => { 3 | const versionA = new SemVer(a, loose) 4 | const versionB = new SemVer(b, loose) 5 | return versionA.compare(versionB) || versionA.compareBuild(versionB) 6 | } 7 | module.exports = compareBuild 8 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/compare-loose.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const compareLoose = (a, b) => compare(a, b, true) 3 | module.exports = compareLoose 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/compare.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compare = (a, b, loose) => 3 | new SemVer(a, loose).compare(new SemVer(b, loose)) 4 | 5 | module.exports = compare 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/eq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const eq = (a, b, loose) => compare(a, b, loose) === 0 3 | module.exports = eq 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/gt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gt = (a, b, loose) => compare(a, b, loose) > 0 3 | module.exports = gt 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/gte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gte = (a, b, loose) => compare(a, b, loose) >= 0 3 | module.exports = gte 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/lt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lt = (a, b, loose) => compare(a, b, loose) < 0 3 | module.exports = lt 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/lte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lte = (a, b, loose) => compare(a, b, loose) <= 0 3 | module.exports = lte 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/major.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const major = (a, loose) => new SemVer(a, loose).major 3 | module.exports = major 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/minor.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const minor = (a, loose) => new SemVer(a, loose).minor 3 | module.exports = minor 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/neq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const neq = (a, b, loose) => compare(a, b, loose) !== 0 3 | module.exports = neq 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/patch.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const patch = (a, loose) => new SemVer(a, loose).patch 3 | module.exports = patch 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/prerelease.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const prerelease = (version, options) => { 3 | const parsed = parse(version, options) 4 | return (parsed && parsed.prerelease.length) ? parsed.prerelease : null 5 | } 6 | module.exports = prerelease 7 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/rcompare.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const rcompare = (a, b, loose) => compare(b, a, loose) 3 | module.exports = rcompare 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/rsort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) 3 | module.exports = rsort 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/satisfies.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const satisfies = (version, range, options) => { 3 | try { 4 | range = new Range(range, options) 5 | } catch (er) { 6 | return false 7 | } 8 | return range.test(version) 9 | } 10 | module.exports = satisfies 11 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/sort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) 3 | module.exports = sort 4 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/functions/valid.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const valid = (version, options) => { 3 | const v = parse(version, options) 4 | return v ? v.version : null 5 | } 6 | module.exports = valid 7 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/internal/debug.js: -------------------------------------------------------------------------------- 1 | const debug = ( 2 | typeof process === 'object' && 3 | process.env && 4 | process.env.NODE_DEBUG && 5 | /\bsemver\b/i.test(process.env.NODE_DEBUG) 6 | ) ? (...args) => console.error('SEMVER', ...args) 7 | : () => {} 8 | 9 | module.exports = debug 10 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/ranges/gtr.js: -------------------------------------------------------------------------------- 1 | // Determine if version is greater than all the versions possible in the range. 2 | const outside = require('./outside') 3 | const gtr = (version, range, options) => outside(version, range, '>', options) 4 | module.exports = gtr 5 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/ranges/intersects.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const intersects = (r1, r2, options) => { 3 | r1 = new Range(r1, options) 4 | r2 = new Range(r2, options) 5 | return r1.intersects(r2) 6 | } 7 | module.exports = intersects 8 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/ranges/ltr.js: -------------------------------------------------------------------------------- 1 | const outside = require('./outside') 2 | // Determine if version is less than all the versions possible in the range 3 | const ltr = (version, range, options) => outside(version, range, '<', options) 4 | module.exports = ltr 5 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/node_modules/semver/ranges/to-comparators.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | 3 | // Mostly just for testing and legacy API reasons 4 | const toComparators = (range, options) => 5 | new Range(range, options).set 6 | .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) 7 | 8 | module.exports = toComparators 9 | -------------------------------------------------------------------------------- /Lesson22/node_modules/simple-update-notifier/src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IUpdate { 2 | pkg: { name: string; version: string }; 3 | updateCheckInterval?: number; 4 | shouldNotifyInNpmScript?: boolean; 5 | distTag?: string; 6 | alwaysRun?: boolean; 7 | debug?: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /Lesson22/node_modules/sqlstring/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/SqlString'); 2 | -------------------------------------------------------------------------------- /Lesson22/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /Lesson22/node_modules/toidentifier/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2021-11-14 2 | ================== 3 | 4 | * pref: enable strict mode 5 | 6 | 1.0.0 / 2018-07-09 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /Lesson22/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 | -------------------------------------------------------------------------------- /Lesson22/web-app/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson22/web-app/update.png -------------------------------------------------------------------------------- /Lesson4/Capture.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson4/Capture.PNG -------------------------------------------------------------------------------- /Lesson4/Capture0.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson4/Capture0.PNG -------------------------------------------------------------------------------- /Lesson4/Capture2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson4/Capture2.PNG -------------------------------------------------------------------------------- /Lesson4/Capture3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson4/Capture3.PNG -------------------------------------------------------------------------------- /Lesson4/Capture4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson4/Capture4.PNG -------------------------------------------------------------------------------- /Lesson4/Capture5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson4/Capture5.PNG -------------------------------------------------------------------------------- /Lesson5-6/Capture.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/Capture.PNG -------------------------------------------------------------------------------- /Lesson5-6/Capture3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/Capture3.PNG -------------------------------------------------------------------------------- /Lesson5-6/my-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/my-app/public/favicon.ico -------------------------------------------------------------------------------- /Lesson5-6/my-app/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/my-app/public/logo192.png -------------------------------------------------------------------------------- /Lesson5-6/my-app/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/my-app/public/logo512.png -------------------------------------------------------------------------------- /Lesson5-6/my-app/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /Lesson5-6/my-app/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /Lesson5-6/my-app/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'; 6 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../mime/cli.js" "$@" 10 | else 11 | exec node "$basedir/../mime/cli.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* 18 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/call-bind/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/call-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | "operator-linebreak": [2, "before"], 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/call-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/call-bind/README.md: -------------------------------------------------------------------------------- 1 | # call-bind 2 | Robustly `.call.bind()` a function. 3 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-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 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "max-nested-callbacks": [2, 3], 10 | "max-params": [2, 3], 11 | "max-statements": [2, 20], 12 | "no-new-func": [1], 13 | "strict": [0] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/function-bind/.npmignore: -------------------------------------------------------------------------------- 1 | # gitignore 2 | .DS_Store 3 | .monitor 4 | .*.swp 5 | .nodemonignore 6 | releases 7 | *.log 8 | *.err 9 | fleet.json 10 | public/browserify 11 | bin/*.json 12 | .bin 13 | build 14 | compile 15 | .lock-wscript 16 | coverage 17 | node_modules 18 | 19 | # Only apps should have lockfiles 20 | npm-shrinkwrap.json 21 | package-lock.json 22 | yarn.lock 23 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/has/README.md: -------------------------------------------------------------------------------- 1 | # has 2 | 3 | > Object.prototype.hasOwnProperty.call shortcut 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install --save has 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | var has = require('has'); 15 | 16 | has({}, 'hasOwnProperty'); // false 17 | has(Object.prototype, 'hasOwnProperty'); // true 18 | ``` 19 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/has/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); 6 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/has/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var has = require('../'); 5 | 6 | test('has', function (t) { 7 | t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"'); 8 | t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"'); 9 | t.end(); 10 | }); 11 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/side-channel/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "max-params": 0, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/side-channel/README.md: -------------------------------------------------------------------------------- 1 | # side-channel 2 | Store information about any JS value in a side channel. Uses WeakMap if available. 3 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/toidentifier/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2021-11-14 2 | ================== 3 | 4 | * pref: enable strict mode 5 | 6 | 1.0.0 / 2018-07-09 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /Lesson5-6/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /Lesson5-6/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 | -------------------------------------------------------------------------------- /Lesson5-6/npm vs npx and how to create an react app (Time 0_04_25;21).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson5-6/npm vs npx and how to create an react app (Time 0_04_25;21).png -------------------------------------------------------------------------------- /Lesson5-6/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "appnodejs", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "scripts": { 7 | "start" : "node app.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | 14 | "express": "^4.18.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lesson7-8/files/text1.txt: -------------------------------------------------------------------------------- 1 | test content2 -------------------------------------------------------------------------------- /Lesson7-8/text1.txt: -------------------------------------------------------------------------------- 1 | test content2 -------------------------------------------------------------------------------- /Lesson9/dynamic vs static web pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codershiyar/nodejs/059d39d4c89e5f3e2a745ce67907cf83683d293c/Lesson9/dynamic vs static web pages.png -------------------------------------------------------------------------------- /Lesson9/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Coder Shiyar 8 | 9 | 10 | html page 11 | تجربة نص 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # nodejs 2 | Learn nodejs in Arabic : this Repository contains the files of nodejs tutorial on Coder Shiyar YouTube channel 3 | -------------------------------------------------------------------------------- /lesson2/app.js: -------------------------------------------------------------------------------- 1 | console.log("Hello World") -------------------------------------------------------------------------------- /lesson3/app2.js: -------------------------------------------------------------------------------- 1 | // exports.AppName = "Coder Shiyar"; 2 | let AppName = "Coder Shiyar"; 3 | function PrintName(){ 4 | console.log("Name: " + AppName) 5 | } 6 | module.exports = {AppName,PrintName} --------------------------------------------------------------------------------