├── api ├── .env ├── index.js ├── models │ ├── category_model.js │ ├── editor_model.js │ └── post_model.js ├── node_modules │ ├── .bin │ │ ├── is-ci │ │ ├── is-ci.cmd │ │ ├── is-ci.ps1 │ │ ├── mime │ │ ├── mime.cmd │ │ ├── mime.ps1 │ │ ├── nodemon │ │ ├── nodemon.cmd │ │ ├── nodemon.ps1 │ │ ├── nodetouch │ │ ├── nodetouch.cmd │ │ ├── nodetouch.ps1 │ │ ├── nopt │ │ ├── nopt.cmd │ │ ├── nopt.ps1 │ │ ├── rc │ │ ├── rc.cmd │ │ ├── rc.ps1 │ │ ├── semver │ │ ├── semver.cmd │ │ ├── semver.ps1 │ │ ├── which │ │ ├── which.cmd │ │ └── which.ps1 │ ├── abbrev │ │ ├── LICENSE │ │ ├── README.md │ │ ├── abbrev.js │ │ └── package.json │ ├── accepts │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ansi-align │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ansi-regex │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── ansi-styles │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── anymatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── array-flatten │ │ ├── LICENSE │ │ ├── README.md │ │ ├── array-flatten.js │ │ └── package.json │ ├── balanced-match │ │ ├── .npmignore │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── binary-extensions │ │ ├── binary-extensions.json │ │ ├── binary-extensions.json.d.ts │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── bluebird │ │ ├── LICENSE │ │ ├── README.md │ │ ├── changelog.md │ │ ├── js │ │ │ ├── browser │ │ │ │ ├── bluebird.core.js │ │ │ │ ├── bluebird.core.min.js │ │ │ │ ├── bluebird.js │ │ │ │ └── bluebird.min.js │ │ │ └── release │ │ │ │ ├── any.js │ │ │ │ ├── assert.js │ │ │ │ ├── async.js │ │ │ │ ├── bind.js │ │ │ │ ├── bluebird.js │ │ │ │ ├── call_get.js │ │ │ │ ├── cancel.js │ │ │ │ ├── catch_filter.js │ │ │ │ ├── context.js │ │ │ │ ├── debuggability.js │ │ │ │ ├── direct_resolve.js │ │ │ │ ├── each.js │ │ │ │ ├── errors.js │ │ │ │ ├── es5.js │ │ │ │ ├── filter.js │ │ │ │ ├── finally.js │ │ │ │ ├── generators.js │ │ │ │ ├── join.js │ │ │ │ ├── map.js │ │ │ │ ├── method.js │ │ │ │ ├── nodeback.js │ │ │ │ ├── nodeify.js │ │ │ │ ├── promise.js │ │ │ │ ├── promise_array.js │ │ │ │ ├── promisify.js │ │ │ │ ├── props.js │ │ │ │ ├── queue.js │ │ │ │ ├── race.js │ │ │ │ ├── reduce.js │ │ │ │ ├── schedule.js │ │ │ │ ├── settle.js │ │ │ │ ├── some.js │ │ │ │ ├── synchronous_inspection.js │ │ │ │ ├── thenables.js │ │ │ │ ├── timers.js │ │ │ │ ├── using.js │ │ │ │ └── util.js │ │ └── package.json │ ├── body-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── read.js │ │ │ └── types │ │ │ │ ├── json.js │ │ │ │ ├── raw.js │ │ │ │ ├── text.js │ │ │ │ └── urlencoded.js │ │ └── package.json │ ├── boxen │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── brace-expansion │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── braces │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── compile.js │ │ │ ├── constants.js │ │ │ ├── expand.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ └── package.json │ ├── bson │ │ ├── HISTORY.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── browser_build │ │ │ ├── bson.js │ │ │ └── package.json │ │ ├── index.js │ │ ├── lib │ │ │ └── bson │ │ │ │ ├── binary.js │ │ │ │ ├── bson.js │ │ │ │ ├── code.js │ │ │ │ ├── db_ref.js │ │ │ │ ├── decimal128.js │ │ │ │ ├── double.js │ │ │ │ ├── float_parser.js │ │ │ │ ├── int_32.js │ │ │ │ ├── long.js │ │ │ │ ├── map.js │ │ │ │ ├── max_key.js │ │ │ │ ├── min_key.js │ │ │ │ ├── objectid.js │ │ │ │ ├── parser │ │ │ │ ├── calculate_size.js │ │ │ │ ├── deserializer.js │ │ │ │ ├── serializer.js │ │ │ │ └── utils.js │ │ │ │ ├── regexp.js │ │ │ │ ├── symbol.js │ │ │ │ └── timestamp.js │ │ └── package.json │ ├── bytes │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── camelcase │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── capture-stack-trace │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── chalk │ │ ├── index.js │ │ ├── index.js.flow │ │ ├── license │ │ ├── package.json │ │ ├── readme.md │ │ ├── templates.js │ │ └── types │ │ │ └── index.d.ts │ ├── chokidar │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── constants.js │ │ │ ├── fsevents-handler.js │ │ │ └── nodefs-handler.js │ │ ├── package.json │ │ └── types │ │ │ └── index.d.ts │ ├── ci-info │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── vendors.json │ ├── cli-boxes │ │ ├── boxes.json │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── color-convert │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── conversions.js │ │ ├── index.js │ │ ├── package.json │ │ └── route.js │ ├── color-name │ │ ├── .eslintrc.json │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── concat-map │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.markdown │ │ ├── example │ │ │ └── map.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── map.js │ ├── configstore │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── content-disposition │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── content-type │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── cookie-signature │ │ ├── .npmignore │ │ ├── History.md │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── cookie │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── create-error-class │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── cross-spawn │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── enoent.js │ │ │ ├── parse.js │ │ │ └── util │ │ │ │ ├── escapeArgument.js │ │ │ │ ├── escapeCommand.js │ │ │ │ ├── hasEmptyArgumentBug.js │ │ │ │ ├── readShebang.js │ │ │ │ └── resolveCommand.js │ │ └── package.json │ ├── crypto-random-string │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── debug │ │ ├── .coveralls.yml │ │ ├── .eslintrc │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── component.json │ │ ├── karma.conf.js │ │ ├── node.js │ │ ├── package.json │ │ └── src │ │ │ ├── browser.js │ │ │ ├── debug.js │ │ │ ├── index.js │ │ │ ├── inspector-log.js │ │ │ └── node.js │ ├── deep-extend │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ └── deep-extend.js │ │ └── package.json │ ├── depd │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── browser │ │ │ │ └── index.js │ │ │ └── compat │ │ │ │ ├── callsite-tostring.js │ │ │ │ ├── event-listener-count.js │ │ │ │ └── index.js │ │ └── package.json │ ├── destroy │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── dot-prop │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── dotenv │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── config.js │ │ ├── lib │ │ │ ├── cli-options.js │ │ │ ├── env-options.js │ │ │ └── main.js │ │ ├── package.json │ │ └── types │ │ │ ├── index.d.ts │ │ │ ├── test.ts │ │ │ ├── tsconfig.json │ │ │ └── tslint.json │ ├── duplexer3 │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ee-first │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── encodeurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── escape-html │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── escape-string-regexp │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── etag │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── execa │ │ ├── index.js │ │ ├── lib │ │ │ ├── errname.js │ │ │ └── stdio.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── express │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── application.js │ │ │ ├── express.js │ │ │ ├── middleware │ │ │ │ ├── init.js │ │ │ │ └── query.js │ │ │ ├── request.js │ │ │ ├── response.js │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ ├── layer.js │ │ │ │ └── route.js │ │ │ ├── utils.js │ │ │ └── view.js │ │ └── package.json │ ├── fill-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── finalhandler │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── forwarded │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── fresh │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── get-stream │ │ ├── buffer-stream.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── glob-parent │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── global-dirs │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── got │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── graceful-fs │ │ ├── LICENSE │ │ ├── README.md │ │ ├── clone.js │ │ ├── graceful-fs.js │ │ ├── legacy-streams.js │ │ ├── package.json │ │ └── polyfills.js │ ├── has-flag │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── http-errors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── iconv-lite │ │ ├── Changelog.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── encodings │ │ │ ├── dbcs-codec.js │ │ │ ├── dbcs-data.js │ │ │ ├── index.js │ │ │ ├── internal.js │ │ │ ├── sbcs-codec.js │ │ │ ├── sbcs-data-generated.js │ │ │ ├── sbcs-data.js │ │ │ ├── tables │ │ │ │ ├── big5-added.json │ │ │ │ ├── cp936.json │ │ │ │ ├── cp949.json │ │ │ │ ├── cp950.json │ │ │ │ ├── eucjp.json │ │ │ │ ├── gb18030-ranges.json │ │ │ │ ├── gbk-added.json │ │ │ │ └── shiftjis.json │ │ │ ├── utf16.js │ │ │ └── utf7.js │ │ ├── lib │ │ │ ├── bom-handling.js │ │ │ ├── extend-node.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── streams.js │ │ └── package.json │ ├── ignore-by-default │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── import-lazy │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── imurmurhash │ │ ├── README.md │ │ ├── imurmurhash.js │ │ ├── imurmurhash.min.js │ │ └── package.json │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── ini │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ini.js │ │ └── package.json │ ├── ipaddr.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ipaddr.min.js │ │ ├── lib │ │ │ ├── ipaddr.js │ │ │ └── ipaddr.js.d.ts │ │ └── package.json │ ├── is-binary-path │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-ci │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin.js │ │ ├── index.js │ │ └── package.json │ ├── is-extglob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-fullwidth-code-point │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-glob │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-installed-globally │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-npm │ │ ├── index.js │ │ ├── package.json │ │ └── readme.md │ ├── is-number │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── is-obj │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-path-inside │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-redirect │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-retry-allowed │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── is-stream │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── isexe │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── mode.js │ │ ├── package.json │ │ ├── test │ │ │ └── basic.js │ │ └── windows.js │ ├── kareem │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── docs.js │ │ ├── gulpfile.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── examples.test.js │ │ │ ├── misc.test.js │ │ │ ├── post.test.js │ │ │ ├── pre.test.js │ │ │ └── wrap.test.js │ ├── latest-version │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── lowercase-keys │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── lru-cache │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── make-dir │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── media-typer │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── memory-pager │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── merge-descriptors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── methods │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cli.js │ │ ├── mime.js │ │ ├── package.json │ │ ├── src │ │ │ ├── build.js │ │ │ └── test.js │ │ └── types.json │ ├── minimatch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── minimatch.js │ │ └── package.json │ ├── minimist │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── example │ │ │ └── parse.js │ │ ├── index.js │ │ ├── package.json │ │ ├── readme.markdown │ │ └── test │ │ │ ├── all_bool.js │ │ │ ├── bool.js │ │ │ ├── dash.js │ │ │ ├── default_bool.js │ │ │ ├── dotted.js │ │ │ ├── kv_short.js │ │ │ ├── long.js │ │ │ ├── num.js │ │ │ ├── parse.js │ │ │ ├── parse_modified.js │ │ │ ├── short.js │ │ │ ├── stop_early.js │ │ │ ├── unknown.js │ │ │ └── whitespace.js │ ├── mongodb │ │ ├── HISTORY.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── admin.js │ │ │ ├── aggregation_cursor.js │ │ │ ├── apm.js │ │ │ ├── async │ │ │ │ ├── .eslintrc │ │ │ │ └── async_iterator.js │ │ │ ├── bulk │ │ │ │ ├── common.js │ │ │ │ ├── ordered.js │ │ │ │ └── unordered.js │ │ │ ├── change_stream.js │ │ │ ├── collection.js │ │ │ ├── command_cursor.js │ │ │ ├── constants.js │ │ │ ├── core │ │ │ │ ├── auth │ │ │ │ │ ├── auth_provider.js │ │ │ │ │ ├── defaultAuthProviders.js │ │ │ │ │ ├── gssapi.js │ │ │ │ │ ├── mongo_credentials.js │ │ │ │ │ ├── mongocr.js │ │ │ │ │ ├── plain.js │ │ │ │ │ ├── scram.js │ │ │ │ │ ├── sspi.js │ │ │ │ │ └── x509.js │ │ │ │ ├── cmap │ │ │ │ │ ├── connection.js │ │ │ │ │ └── message_stream.js │ │ │ │ ├── connection │ │ │ │ │ ├── apm.js │ │ │ │ │ ├── command_result.js │ │ │ │ │ ├── commands.js │ │ │ │ │ ├── connect.js │ │ │ │ │ ├── connection.js │ │ │ │ │ ├── logger.js │ │ │ │ │ ├── msg.js │ │ │ │ │ ├── pool.js │ │ │ │ │ └── utils.js │ │ │ │ ├── cursor.js │ │ │ │ ├── error.js │ │ │ │ ├── index.js │ │ │ │ ├── sdam │ │ │ │ │ ├── common.js │ │ │ │ │ ├── monitoring.js │ │ │ │ │ ├── server.js │ │ │ │ │ ├── server_description.js │ │ │ │ │ ├── server_selection.js │ │ │ │ │ ├── srv_polling.js │ │ │ │ │ ├── topology.js │ │ │ │ │ └── topology_description.js │ │ │ │ ├── sessions.js │ │ │ │ ├── tools │ │ │ │ │ └── smoke_plugin.js │ │ │ │ ├── topologies │ │ │ │ │ ├── mongos.js │ │ │ │ │ ├── read_preference.js │ │ │ │ │ ├── replset.js │ │ │ │ │ ├── replset_state.js │ │ │ │ │ ├── server.js │ │ │ │ │ └── shared.js │ │ │ │ ├── transactions.js │ │ │ │ ├── uri_parser.js │ │ │ │ ├── utils.js │ │ │ │ └── wireprotocol │ │ │ │ │ ├── command.js │ │ │ │ │ ├── compression.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── get_more.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── kill_cursors.js │ │ │ │ │ ├── query.js │ │ │ │ │ ├── shared.js │ │ │ │ │ └── write_command.js │ │ │ ├── cursor.js │ │ │ ├── db.js │ │ │ ├── dynamic_loaders.js │ │ │ ├── error.js │ │ │ ├── gridfs-stream │ │ │ │ ├── download.js │ │ │ │ ├── index.js │ │ │ │ └── upload.js │ │ │ ├── gridfs │ │ │ │ ├── chunk.js │ │ │ │ └── grid_store.js │ │ │ ├── mongo_client.js │ │ │ ├── operations │ │ │ │ ├── add_user.js │ │ │ │ ├── admin_ops.js │ │ │ │ ├── aggregate.js │ │ │ │ ├── bulk_write.js │ │ │ │ ├── close.js │ │ │ │ ├── collection_ops.js │ │ │ │ ├── collections.js │ │ │ │ ├── command.js │ │ │ │ ├── command_v2.js │ │ │ │ ├── common_functions.js │ │ │ │ ├── connect.js │ │ │ │ ├── count.js │ │ │ │ ├── count_documents.js │ │ │ │ ├── create_collection.js │ │ │ │ ├── create_index.js │ │ │ │ ├── create_indexes.js │ │ │ │ ├── cursor_ops.js │ │ │ │ ├── db_ops.js │ │ │ │ ├── delete_many.js │ │ │ │ ├── delete_one.js │ │ │ │ ├── distinct.js │ │ │ │ ├── drop.js │ │ │ │ ├── drop_index.js │ │ │ │ ├── drop_indexes.js │ │ │ │ ├── estimated_document_count.js │ │ │ │ ├── execute_db_admin_command.js │ │ │ │ ├── execute_operation.js │ │ │ │ ├── explain.js │ │ │ │ ├── find.js │ │ │ │ ├── find_and_modify.js │ │ │ │ ├── find_one.js │ │ │ │ ├── find_one_and_delete.js │ │ │ │ ├── find_one_and_replace.js │ │ │ │ ├── find_one_and_update.js │ │ │ │ ├── geo_haystack_search.js │ │ │ │ ├── has_next.js │ │ │ │ ├── index_exists.js │ │ │ │ ├── index_information.js │ │ │ │ ├── indexes.js │ │ │ │ ├── insert_many.js │ │ │ │ ├── insert_one.js │ │ │ │ ├── is_capped.js │ │ │ │ ├── list_collections.js │ │ │ │ ├── list_databases.js │ │ │ │ ├── list_indexes.js │ │ │ │ ├── map_reduce.js │ │ │ │ ├── next.js │ │ │ │ ├── operation.js │ │ │ │ ├── options_operation.js │ │ │ │ ├── profiling_level.js │ │ │ │ ├── re_index.js │ │ │ │ ├── remove_user.js │ │ │ │ ├── rename.js │ │ │ │ ├── replace_one.js │ │ │ │ ├── set_profiling_level.js │ │ │ │ ├── stats.js │ │ │ │ ├── to_array.js │ │ │ │ ├── update_many.js │ │ │ │ ├── update_one.js │ │ │ │ └── validate_collection.js │ │ │ ├── read_concern.js │ │ │ ├── topologies │ │ │ │ ├── mongos.js │ │ │ │ ├── native_topology.js │ │ │ │ ├── replset.js │ │ │ │ ├── server.js │ │ │ │ └── topology_base.js │ │ │ ├── url_parser.js │ │ │ ├── utils.js │ │ │ └── write_concern.js │ │ └── package.json │ ├── mongoose-legacy-pluralize │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mongoose │ │ ├── .travis.yml │ │ ├── History.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── browser.js │ │ ├── build-browser.js │ │ ├── dist │ │ │ └── browser.umd.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── aggregate.js │ │ │ ├── browser.js │ │ │ ├── browserDocument.js │ │ │ ├── cast.js │ │ │ ├── cast │ │ │ │ ├── boolean.js │ │ │ │ ├── date.js │ │ │ │ ├── decimal128.js │ │ │ │ ├── number.js │ │ │ │ ├── objectid.js │ │ │ │ └── string.js │ │ │ ├── collection.js │ │ │ ├── connection.js │ │ │ ├── connectionstate.js │ │ │ ├── cursor │ │ │ │ ├── AggregationCursor.js │ │ │ │ ├── ChangeStream.js │ │ │ │ └── QueryCursor.js │ │ │ ├── document.js │ │ │ ├── document_provider.js │ │ │ ├── driver.js │ │ │ ├── drivers │ │ │ │ ├── SPEC.md │ │ │ │ ├── browser │ │ │ │ │ ├── ReadPreference.js │ │ │ │ │ ├── binary.js │ │ │ │ │ ├── decimal128.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── objectid.js │ │ │ │ └── node-mongodb-native │ │ │ │ │ ├── ReadPreference.js │ │ │ │ │ ├── binary.js │ │ │ │ │ ├── collection.js │ │ │ │ │ ├── connection.js │ │ │ │ │ ├── decimal128.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── objectid.js │ │ │ ├── error │ │ │ │ ├── browserMissingSchema.js │ │ │ │ ├── cast.js │ │ │ │ ├── disconnected.js │ │ │ │ ├── divergentArray.js │ │ │ │ ├── index.js │ │ │ │ ├── messages.js │ │ │ │ ├── missingSchema.js │ │ │ │ ├── mongooseError.js │ │ │ │ ├── notFound.js │ │ │ │ ├── objectExpected.js │ │ │ │ ├── objectParameter.js │ │ │ │ ├── overwriteModel.js │ │ │ │ ├── parallelSave.js │ │ │ │ ├── parallelValidate.js │ │ │ │ ├── strict.js │ │ │ │ ├── timeout.js │ │ │ │ ├── validation.js │ │ │ │ ├── validator.js │ │ │ │ └── version.js │ │ │ ├── helpers │ │ │ │ ├── common.js │ │ │ │ ├── cursor │ │ │ │ │ └── eachAsync.js │ │ │ │ ├── discriminator │ │ │ │ │ ├── checkEmbeddedDiscriminatorKeyProjection.js │ │ │ │ │ ├── getConstructor.js │ │ │ │ │ └── getDiscriminatorByValue.js │ │ │ │ ├── document │ │ │ │ │ ├── cleanModifiedSubpaths.js │ │ │ │ │ ├── compile.js │ │ │ │ │ └── getEmbeddedDiscriminatorPath.js │ │ │ │ ├── each.js │ │ │ │ ├── get.js │ │ │ │ ├── immediate.js │ │ │ │ ├── model │ │ │ │ │ ├── applyHooks.js │ │ │ │ │ ├── applyMethods.js │ │ │ │ │ ├── applyStaticHooks.js │ │ │ │ │ ├── applyStatics.js │ │ │ │ │ ├── castBulkWrite.js │ │ │ │ │ └── discriminator.js │ │ │ │ ├── once.js │ │ │ │ ├── parallelLimit.js │ │ │ │ ├── populate │ │ │ │ │ ├── assignRawDocsToIdStructure.js │ │ │ │ │ ├── assignVals.js │ │ │ │ │ ├── getModelsMapForPopulate.js │ │ │ │ │ ├── getSchemaTypes.js │ │ │ │ │ ├── getVirtual.js │ │ │ │ │ ├── leanPopulateMap.js │ │ │ │ │ ├── normalizeRefPath.js │ │ │ │ │ └── validateRef.js │ │ │ │ ├── printJestWarning.js │ │ │ │ ├── projection │ │ │ │ │ ├── isDefiningProjection.js │ │ │ │ │ ├── isExclusive.js │ │ │ │ │ ├── isInclusive.js │ │ │ │ │ ├── isPathExcluded.js │ │ │ │ │ ├── isPathSelectedInclusive.js │ │ │ │ │ └── parseProjection.js │ │ │ │ ├── query │ │ │ │ │ ├── applyGlobalMaxTimeMS.js │ │ │ │ │ ├── applyQueryMiddleware.js │ │ │ │ │ ├── castFilterPath.js │ │ │ │ │ ├── castUpdate.js │ │ │ │ │ ├── completeMany.js │ │ │ │ │ ├── getEmbeddedDiscriminatorPath.js │ │ │ │ │ ├── handleImmutable.js │ │ │ │ │ ├── hasDollarKeys.js │ │ │ │ │ ├── selectPopulatedFields.js │ │ │ │ │ └── wrapThunk.js │ │ │ │ ├── schema │ │ │ │ │ ├── addAutoId.js │ │ │ │ │ ├── applyPlugins.js │ │ │ │ │ ├── applyWriteConcern.js │ │ │ │ │ ├── cleanPositionalOperators.js │ │ │ │ │ ├── getIndexes.js │ │ │ │ │ ├── getPath.js │ │ │ │ │ ├── handleIdOption.js │ │ │ │ │ ├── handleTimestampOption.js │ │ │ │ │ └── merge.js │ │ │ │ ├── schematype │ │ │ │ │ └── handleImmutable.js │ │ │ │ ├── setDefaultsOnInsert.js │ │ │ │ ├── symbols.js │ │ │ │ ├── update │ │ │ │ │ ├── applyTimestampsToChildren.js │ │ │ │ │ ├── applyTimestampsToUpdate.js │ │ │ │ │ ├── castArrayFilters.js │ │ │ │ │ ├── modifiedPaths.js │ │ │ │ │ └── moveImmutableProperties.js │ │ │ │ └── updateValidators.js │ │ │ ├── index.js │ │ │ ├── internal.js │ │ │ ├── model.js │ │ │ ├── options.js │ │ │ ├── options │ │ │ │ ├── PopulateOptions.js │ │ │ │ ├── SchemaArrayOptions.js │ │ │ │ ├── SchemaBufferOptions.js │ │ │ │ ├── SchemaDateOptions.js │ │ │ │ ├── SchemaDocumentArrayOptions.js │ │ │ │ ├── SchemaMapOptions.js │ │ │ │ ├── SchemaNumberOptions.js │ │ │ │ ├── SchemaObjectIdOptions.js │ │ │ │ ├── SchemaSingleNestedOptions.js │ │ │ │ ├── SchemaStringOptions.js │ │ │ │ ├── SchemaTypeOptions.js │ │ │ │ ├── VirtualOptions.js │ │ │ │ ├── propertyOptions.js │ │ │ │ ├── removeOptions.js │ │ │ │ └── saveOptions.js │ │ │ ├── plugins │ │ │ │ ├── idGetter.js │ │ │ │ ├── removeSubdocs.js │ │ │ │ ├── saveSubdocs.js │ │ │ │ ├── sharding.js │ │ │ │ └── validateBeforeSave.js │ │ │ ├── promise_provider.js │ │ │ ├── query.js │ │ │ ├── queryhelpers.js │ │ │ ├── schema.js │ │ │ ├── schema │ │ │ │ ├── SingleNestedPath.js │ │ │ │ ├── array.js │ │ │ │ ├── boolean.js │ │ │ │ ├── buffer.js │ │ │ │ ├── date.js │ │ │ │ ├── decimal128.js │ │ │ │ ├── documentarray.js │ │ │ │ ├── index.js │ │ │ │ ├── map.js │ │ │ │ ├── mixed.js │ │ │ │ ├── number.js │ │ │ │ ├── objectid.js │ │ │ │ ├── operators │ │ │ │ │ ├── bitwise.js │ │ │ │ │ ├── exists.js │ │ │ │ │ ├── geospatial.js │ │ │ │ │ ├── helpers.js │ │ │ │ │ ├── text.js │ │ │ │ │ └── type.js │ │ │ │ ├── string.js │ │ │ │ └── symbols.js │ │ │ ├── schematype.js │ │ │ ├── statemachine.js │ │ │ ├── types │ │ │ │ ├── array.js │ │ │ │ ├── buffer.js │ │ │ │ ├── core_array.js │ │ │ │ ├── decimal128.js │ │ │ │ ├── documentarray.js │ │ │ │ ├── embedded.js │ │ │ │ ├── index.js │ │ │ │ ├── map.js │ │ │ │ ├── objectid.js │ │ │ │ └── subdocument.js │ │ │ ├── utils.js │ │ │ ├── validoptions.js │ │ │ └── virtualtype.js │ │ ├── node_modules │ │ │ └── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ ├── package.json │ │ ├── tools │ │ │ ├── auth.js │ │ │ ├── repl.js │ │ │ └── sharded.js │ │ ├── webpack.base.config.js │ │ └── webpack.config.js │ ├── mpath │ │ ├── .travis.yml │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── bench.js │ │ ├── bench.log │ │ ├── bench.out │ │ ├── component.json │ │ ├── index.js │ │ ├── lib │ │ │ └── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── mquery │ │ ├── .eslintignore │ │ ├── .travis.yml │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── lib │ │ │ ├── collection │ │ │ │ ├── collection.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ │ ├── env.js │ │ │ ├── mquery.js │ │ │ ├── permissions.js │ │ │ └── utils.js │ │ ├── node_modules │ │ │ └── debug │ │ │ │ ├── .coveralls.yml │ │ │ │ ├── .eslintrc │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── karma.conf.js │ │ │ │ ├── node.js │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── debug.js │ │ │ │ ├── index.js │ │ │ │ └── node.js │ │ ├── package.json │ │ └── test │ │ │ ├── collection │ │ │ ├── browser.js │ │ │ ├── mongo.js │ │ │ └── node.js │ │ │ ├── env.js │ │ │ ├── index.js │ │ │ └── utils.test.js │ ├── ms │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── negotiator │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── charset.js │ │ │ ├── encoding.js │ │ │ ├── language.js │ │ │ └── mediaType.js │ │ └── package.json │ ├── nodemon │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ ├── nodemon.js │ │ │ └── postinstall.js │ │ ├── commitlint.config.js │ │ ├── doc │ │ │ └── cli │ │ │ │ ├── authors.txt │ │ │ │ ├── config.txt │ │ │ │ ├── help.txt │ │ │ │ ├── logo.txt │ │ │ │ ├── options.txt │ │ │ │ ├── topics.txt │ │ │ │ ├── usage.txt │ │ │ │ └── whoami.txt │ │ ├── lib │ │ │ ├── cli │ │ │ │ ├── index.js │ │ │ │ └── parse.js │ │ │ ├── config │ │ │ │ ├── command.js │ │ │ │ ├── defaults.js │ │ │ │ ├── exec.js │ │ │ │ ├── index.js │ │ │ │ └── load.js │ │ │ ├── help │ │ │ │ └── index.js │ │ │ ├── index.js │ │ │ ├── monitor │ │ │ │ ├── index.js │ │ │ │ ├── match.js │ │ │ │ ├── run.js │ │ │ │ ├── signals.js │ │ │ │ └── watch.js │ │ │ ├── nodemon.js │ │ │ ├── rules │ │ │ │ ├── add.js │ │ │ │ ├── index.js │ │ │ │ └── parse.js │ │ │ ├── spawn.js │ │ │ ├── utils │ │ │ │ ├── bus.js │ │ │ │ ├── clone.js │ │ │ │ ├── colour.js │ │ │ │ ├── index.js │ │ │ │ ├── log.js │ │ │ │ └── merge.js │ │ │ └── version.js │ │ ├── node_modules │ │ │ ├── debug │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── dist │ │ │ │ │ └── debug.js │ │ │ │ ├── node.js │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ │ ├── browser.js │ │ │ │ │ ├── common.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── node.js │ │ │ └── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ └── package.json │ ├── nopt │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── nopt.js │ │ ├── examples │ │ │ └── my-program.js │ │ ├── lib │ │ │ └── nopt.js │ │ └── package.json │ ├── normalize-path │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── npm-run-path │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── on-finished │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── p-finally │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── package-json │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── parseurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── path-is-inside │ │ ├── LICENSE.txt │ │ ├── lib │ │ │ └── path-is-inside.js │ │ └── package.json │ ├── path-key │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── path-to-regexp │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── picomatch │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── .DS_Store │ │ │ ├── constants.js │ │ │ ├── parse.js │ │ │ ├── picomatch.js │ │ │ ├── scan.js │ │ │ └── utils.js │ │ └── package.json │ ├── pify │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── prepend-http │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── proxy-addr │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── pseudomap │ │ ├── LICENSE │ │ ├── README.md │ │ ├── map.js │ │ ├── package.json │ │ ├── pseudomap.js │ │ └── test │ │ │ └── basic.js │ ├── pstree.remy │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── lib │ │ │ ├── index.js │ │ │ ├── tree.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── tests │ │ │ ├── fixtures │ │ │ ├── index.js │ │ │ ├── out1 │ │ │ └── out2 │ │ │ └── index.test.js │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── range-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── rc │ │ ├── LICENSE.APACHE2 │ │ ├── LICENSE.BSD │ │ ├── LICENSE.MIT │ │ ├── README.md │ │ ├── browser.js │ │ ├── cli.js │ │ ├── index.js │ │ ├── lib │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── ini.js │ │ │ ├── nested-env-vars.js │ │ │ └── test.js │ ├── readdirp │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── regexp-clone │ │ ├── .travis.yml │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── registry-auth-token │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── base64.js │ │ ├── index.js │ │ ├── package.json │ │ ├── registry-url.js │ │ ├── test │ │ │ ├── auth-token.test.js │ │ │ └── registry-url.test.js │ │ └── yarn.lock │ ├── registry-url │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── require_optional │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── nestedTest │ │ │ ├── index.js │ │ │ └── package.json │ │ │ └── require_optional_tests.js │ ├── resolve-from │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── safe-buffer │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── safer-buffer │ │ ├── LICENSE │ │ ├── Porting-Buffer.md │ │ ├── Readme.md │ │ ├── dangerous.js │ │ ├── package.json │ │ ├── safer.js │ │ └── tests.js │ ├── saslprep │ │ ├── .editorconfig │ │ ├── .gitattributes │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── code-points.mem │ │ ├── generate-code-points.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── code-points.js │ │ │ ├── memory-code-points.js │ │ │ └── util.js │ │ ├── package.json │ │ ├── readme.md │ │ └── test │ │ │ ├── index.js │ │ │ └── util.js │ ├── semver-diff │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── semver │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── semver │ │ ├── package.json │ │ ├── range.bnf │ │ └── semver.js │ ├── send │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── node_modules │ │ │ └── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ └── package.json │ ├── serve-static │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── setprototypeof │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── shebang-command │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── shebang-regex │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── sift │ │ ├── .babelrc │ │ ├── .coveralls.yml │ │ ├── .travis.yml │ │ ├── MIT-LICENSE.txt │ │ ├── README.md │ │ ├── bower.json │ │ ├── changelog.md │ │ ├── coverage │ │ │ ├── coverage.json │ │ │ └── lcov.info │ │ ├── gulpfile.js │ │ ├── index.d.ts │ │ ├── lib │ │ │ └── index.js │ │ ├── package.json │ │ ├── sift.min.js │ │ ├── src │ │ │ └── index.js │ │ ├── test │ │ │ ├── basic-test.js │ │ │ ├── immutable-test.js │ │ │ ├── objects-test.js │ │ │ └── operations-test.js │ │ ├── tsconfig.json │ │ ├── webpack.config.js │ │ └── yarn.lock │ ├── signal-exit │ │ ├── CHANGELOG.md │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── signals.js │ ├── sliced │ │ ├── History.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── sparse-bitfield │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── statuses │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codes.json │ │ ├── index.js │ │ └── package.json │ ├── string-width │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── strip-ansi │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── strip-eof │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── strip-json-comments │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── supports-color │ │ ├── browser.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── term-size │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ ├── readme.md │ │ └── vendor │ │ │ ├── macos │ │ │ └── term-size │ │ │ └── windows │ │ │ └── term-size.exe │ ├── timed-out │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── to-regex-range │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── toidentifier │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── touch │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── nodetouch.js │ │ ├── index.js │ │ └── package.json │ ├── type-is │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── undefsafe │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example.js │ │ ├── lib │ │ │ └── undefsafe.js │ │ └── package.json │ ├── unique-string │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── unzip-response │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── update-notifier │ │ ├── check.js │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── url-parse-lax │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── utils-merge │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── vary │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── which │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ └── which │ │ ├── package.json │ │ └── which.js │ ├── widest-line │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── write-file-atomic │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── xdg-basedir │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ └── yallist │ │ ├── LICENSE │ │ ├── README.md │ │ ├── iterator.js │ │ ├── package.json │ │ └── yallist.js ├── package-lock.json ├── package.json └── routes │ ├── categories.js │ ├── editors.js │ └── posts.js ├── blog_app_flutter ├── .gitignore ├── .metadata ├── README.md ├── analysis_options.yaml ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── blog_app_flutter │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable-v21 │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-night │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── androids │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── blog_app_flutter │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── assets │ └── loading.gif ├── fonts │ ├── OpenSans-Bold.ttf │ ├── OpenSans-Light.ttf │ └── OpenSans-Regular.ttf ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ ├── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ └── LaunchImage.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ └── README.md │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h │ └── RunnerTests │ │ └── RunnerTests.swift ├── lib │ ├── global.dart │ ├── main.dart │ ├── models │ │ ├── category.dart │ │ ├── editor.dart │ │ └── post.dart │ ├── notifiers │ │ ├── category_notifier.dart │ │ ├── editor_notifier.dart │ │ ├── notifiers.dart │ │ └── post_notifier.dart │ ├── services │ │ └── api.dart │ ├── start.bat │ └── ui │ │ ├── screens │ │ ├── home.dart │ │ ├── profile.dart │ │ └── screens.dart │ │ └── widgets │ │ ├── breakingnews.dart │ │ ├── categorylist.dart │ │ ├── homeheader.dart │ │ ├── postcontainer.dart │ │ ├── postslist.dart │ │ ├── profile_column_info.dart │ │ └── widgets.dart ├── linux │ ├── .gitignore │ ├── CMakeLists.txt │ ├── flutter │ │ ├── CMakeLists.txt │ │ ├── generated_plugin_registrant.cc │ │ ├── generated_plugin_registrant.h │ │ └── generated_plugins.cmake │ ├── main.cc │ ├── my_application.cc │ └── my_application.h ├── macos │ ├── .gitignore │ ├── Flutter │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── app_icon_1024.png │ │ │ │ ├── app_icon_128.png │ │ │ │ ├── app_icon_16.png │ │ │ │ ├── app_icon_256.png │ │ │ │ ├── app_icon_32.png │ │ │ │ ├── app_icon_512.png │ │ │ │ └── app_icon_64.png │ │ ├── Base.lproj │ │ │ └── MainMenu.xib │ │ ├── Configs │ │ │ ├── AppInfo.xcconfig │ │ │ ├── Debug.xcconfig │ │ │ ├── Release.xcconfig │ │ │ └── Warnings.xcconfig │ │ ├── DebugProfile.entitlements │ │ ├── Info.plist │ │ ├── MainFlutterWindow.swift │ │ └── Release.entitlements │ └── RunnerTests │ │ └── RunnerTests.swift ├── pubspec.lock ├── pubspec.yaml ├── test │ └── widget_test.dart ├── web │ ├── favicon.png │ ├── icons │ │ ├── Icon-192.png │ │ ├── Icon-512.png │ │ ├── Icon-maskable-192.png │ │ └── Icon-maskable-512.png │ ├── index.html │ └── manifest.json └── windows │ ├── .gitignore │ ├── CMakeLists.txt │ ├── flutter │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake │ └── runner │ ├── CMakeLists.txt │ ├── Runner.rc │ ├── flutter_window.cpp │ ├── flutter_window.h │ ├── main.cpp │ ├── resource.h │ ├── resources │ └── app_icon.ico │ ├── runner.exe.manifest │ ├── utils.cpp │ ├── utils.h │ ├── win32_window.cpp │ └── win32_window.h ├── original_design.jpg ├── readme.md ├── screenshot1.png └── screenshot2.png /api/.env: -------------------------------------------------------------------------------- 1 | DB_CONNECT=mongodb+srv://client:0vw9uH3ZCsSzmnLn@cluster0-lflno.mongodb.net/test?retryWrites=true&w=majority -------------------------------------------------------------------------------- /api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const mongoose = require('mongoose'); 4 | const bodyParser = require('body-parser'); 5 | 6 | const categoriesRoutes = require('./routes/categories'); 7 | const editorsRoutes = require('./routes/editors'); 8 | const postsRoutes = require('./routes/posts'); 9 | 10 | require('dotenv').config(); 11 | app.use(bodyParser.json()); 12 | 13 | app.use('/posts', postsRoutes); 14 | app.use('/cat', categoriesRoutes); 15 | app.use('/editors', editorsRoutes); 16 | 17 | mongoose.connect( 18 | process.env.DB_CONNECT, { useNewUrlParser: true, useUnifiedTopology: true }, () => { 19 | console.log("Database connected.") 20 | }); 21 | 22 | 23 | app.listen(80, () => { 24 | console.log("Server Started"); 25 | }); -------------------------------------------------------------------------------- /api/models/category_model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const Category = mongoose.Schema({ 4 | title: { 5 | type: String, 6 | required: true 7 | } 8 | }); 9 | 10 | module.exports = mongoose.model('Category', Category); -------------------------------------------------------------------------------- /api/models/post_model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const Post = mongoose.Schema({ 4 | title: String, 5 | media: String, 6 | content: String, 7 | type: String, 8 | authorId: String, 9 | categoryId: String, 10 | categoryName: String, 11 | authorName: String, 12 | date: { 13 | type: Date, 14 | default: Date.now 15 | }, 16 | isTrending: Boolean, 17 | }); 18 | 19 | module.exports = mongoose.model('Post', Post); -------------------------------------------------------------------------------- /api/node_modules/.bin/is-ci: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../is-ci/bin.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../is-ci/bin.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/is-ci.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\is-ci\bin.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/is-ci.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../is-ci/bin.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../is-ci/bin.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../mime/cli.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../mime/cli.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\mime\cli.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/mime.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../mime/cli.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../nodemon/bin/nodemon.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nodemon.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nodemon.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../touch/bin/nodetouch.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nodetouch.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nodetouch.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../nopt/bin/nopt.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nopt.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/nopt.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../nopt/bin/nopt.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/rc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../rc/cli.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../rc/cli.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/rc.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\rc\cli.js" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/rc.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../rc/cli.js" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../rc/cli.js" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../semver/bin/semver" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\semver\bin\semver" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/semver.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../semver/bin/semver" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/.bin/which: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../which/bin/which" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../which/bin/which" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /api/node_modules/.bin/which.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | SETLOCAL 3 | CALL :find_dp0 4 | 5 | IF EXIST "%dp0%\node.exe" ( 6 | SET "_prog=%dp0%\node.exe" 7 | ) ELSE ( 8 | SET "_prog=node" 9 | SET PATHEXT=%PATHEXT:;.JS;=;% 10 | ) 11 | 12 | "%_prog%" "%dp0%\..\which\bin\which" %* 13 | ENDLOCAL 14 | EXIT /b %errorlevel% 15 | :find_dp0 16 | SET dp0=%~dp0 17 | EXIT /b 18 | -------------------------------------------------------------------------------- /api/node_modules/.bin/which.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | & "$basedir/node$exe" "$basedir/../which/bin/which" $args 13 | $ret=$LASTEXITCODE 14 | } else { 15 | & "node$exe" "$basedir/../which/bin/which" $args 16 | $ret=$LASTEXITCODE 17 | } 18 | exit $ret 19 | -------------------------------------------------------------------------------- /api/node_modules/abbrev/README.md: -------------------------------------------------------------------------------- 1 | # abbrev-js 2 | 3 | Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). 4 | 5 | Usage: 6 | 7 | var abbrev = require("abbrev"); 8 | abbrev("foo", "fool", "folding", "flop"); 9 | 10 | // returns: 11 | { fl: 'flop' 12 | , flo: 'flop' 13 | , flop: 'flop' 14 | , fol: 'folding' 15 | , fold: 'folding' 16 | , foldi: 'folding' 17 | , foldin: 'folding' 18 | , folding: 'folding' 19 | , foo: 'foo' 20 | , fool: 'fool' 21 | } 22 | 23 | This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. 24 | -------------------------------------------------------------------------------- /api/node_modules/ansi-align/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Contributors 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose 4 | with or without fee is hereby granted, provided that the above copyright notice 5 | and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 9 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 11 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 12 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 13 | THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /api/node_modules/ansi-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = () => { 4 | const pattern = [ 5 | '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)', 6 | '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))' 7 | ].join('|'); 8 | 9 | return new RegExp(pattern, 'g'); 10 | }; 11 | -------------------------------------------------------------------------------- /api/node_modules/anymatch/index.d.ts: -------------------------------------------------------------------------------- 1 | type AnymatchFn = (testString: string) => boolean; 2 | type AnymatchPattern = string|RegExp|AnymatchFn; 3 | type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] 4 | type AnymatchTester = { 5 | (testString: string|any[], returnIndex: true): number; 6 | (testString: string|any[]): boolean; 7 | } 8 | 9 | type PicomatchOptions = {dot: boolean}; 10 | 11 | declare const anymatch: { 12 | (matchers: AnymatchMatcher): AnymatchTester; 13 | (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; 14 | (matchers: AnymatchMatcher, testString: string|any[]): boolean; 15 | } 16 | 17 | export {AnymatchMatcher as Matcher} 18 | export {AnymatchTester as Tester} 19 | export default anymatch 20 | -------------------------------------------------------------------------------- /api/node_modules/balanced-match/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | .gitignore 3 | .travis.yml 4 | Makefile 5 | example.js 6 | -------------------------------------------------------------------------------- /api/node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /api/node_modules/bluebird/changelog.md: -------------------------------------------------------------------------------- 1 | [http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) 2 | -------------------------------------------------------------------------------- /api/node_modules/bluebird/js/release/any.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | module.exports = function(Promise) { 3 | var SomePromiseArray = Promise._SomePromiseArray; 4 | function any(promises) { 5 | var ret = new SomePromiseArray(promises); 6 | var promise = ret.promise(); 7 | ret.setHowMany(1); 8 | ret.setUnwrap(); 9 | ret.init(); 10 | return promise; 11 | } 12 | 13 | Promise.any = function (promises) { 14 | return any(promises); 15 | }; 16 | 17 | Promise.prototype.any = function () { 18 | return any(this); 19 | }; 20 | 21 | }; 22 | -------------------------------------------------------------------------------- /api/node_modules/bluebird/js/release/bluebird.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var old; 3 | if (typeof Promise !== "undefined") old = Promise; 4 | function noConflict() { 5 | try { if (Promise === bluebird) Promise = old; } 6 | catch (e) {} 7 | return bluebird; 8 | } 9 | var bluebird = require("./promise")(); 10 | bluebird.noConflict = noConflict; 11 | module.exports = bluebird; 12 | -------------------------------------------------------------------------------- /api/node_modules/bluebird/js/release/filter.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | module.exports = function(Promise, INTERNAL) { 3 | var PromiseMap = Promise.map; 4 | 5 | Promise.prototype.filter = function (fn, options) { 6 | return PromiseMap(this, fn, options, INTERNAL); 7 | }; 8 | 9 | Promise.filter = function (promises, fn, options) { 10 | return PromiseMap(promises, fn, options, INTERNAL); 11 | }; 12 | }; 13 | -------------------------------------------------------------------------------- /api/node_modules/bson/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bson", 3 | "description": "A bson parser for node.js and the browser", 4 | "keywords": [ 5 | "mongodb", 6 | "bson", 7 | "parser" 8 | ], 9 | "author": "Christian Amor Kvalheim ", 10 | "main": "./browser_build/bson.js", 11 | "license": "Apache-2.0", 12 | "moduleType": [ 13 | "globals", 14 | "node" 15 | ], 16 | "ignore": [ 17 | "**/.*", 18 | "alternate_parsers", 19 | "benchmarks", 20 | "bower_components", 21 | "node_modules", 22 | "test", 23 | "tools" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /api/node_modules/bson/browser_build/package.json: -------------------------------------------------------------------------------- 1 | { "name" : "bson" 2 | , "description" : "A bson parser for node.js and the browser" 3 | , "main": "../" 4 | , "directories" : { "lib" : "../lib/bson" } 5 | , "engines" : { "node" : ">=0.6.0" } 6 | , "licenses" : [ { "type" : "Apache License, Version 2.0" 7 | , "url" : "http://www.apache.org/licenses/LICENSE-2.0" } ] 8 | } 9 | -------------------------------------------------------------------------------- /api/node_modules/bson/lib/bson/code.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of the BSON Code type. 3 | * 4 | * @class 5 | * @param {(string|function)} code a string or function. 6 | * @param {Object} [scope] an optional scope for the function. 7 | * @return {Code} 8 | */ 9 | var Code = function Code(code, scope) { 10 | if (!(this instanceof Code)) return new Code(code, scope); 11 | this._bsontype = 'Code'; 12 | this.code = code; 13 | this.scope = scope; 14 | }; 15 | 16 | /** 17 | * @ignore 18 | */ 19 | Code.prototype.toJSON = function() { 20 | return { scope: this.scope, code: this.code }; 21 | }; 22 | 23 | module.exports = Code; 24 | module.exports.Code = Code; 25 | -------------------------------------------------------------------------------- /api/node_modules/bson/lib/bson/double.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of the BSON Double type. 3 | * 4 | * @class 5 | * @param {number} value the number we want to represent as a double. 6 | * @return {Double} 7 | */ 8 | function Double(value) { 9 | if (!(this instanceof Double)) return new Double(value); 10 | 11 | this._bsontype = 'Double'; 12 | this.value = value; 13 | } 14 | 15 | /** 16 | * Access the number value. 17 | * 18 | * @method 19 | * @return {number} returns the wrapped double number. 20 | */ 21 | Double.prototype.valueOf = function() { 22 | return this.value; 23 | }; 24 | 25 | /** 26 | * @ignore 27 | */ 28 | Double.prototype.toJSON = function() { 29 | return this.value; 30 | }; 31 | 32 | module.exports = Double; 33 | module.exports.Double = Double; 34 | -------------------------------------------------------------------------------- /api/node_modules/bson/lib/bson/int_32.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of a BSON Int32 type. 3 | * 4 | * @class 5 | * @param {number} value the number we want to represent as an int32. 6 | * @return {Int32} 7 | */ 8 | var Int32 = function(value) { 9 | if (!(this instanceof Int32)) return new Int32(value); 10 | 11 | this._bsontype = 'Int32'; 12 | this.value = value; 13 | }; 14 | 15 | /** 16 | * Access the number value. 17 | * 18 | * @method 19 | * @return {number} returns the wrapped int32 number. 20 | */ 21 | Int32.prototype.valueOf = function() { 22 | return this.value; 23 | }; 24 | 25 | /** 26 | * @ignore 27 | */ 28 | Int32.prototype.toJSON = function() { 29 | return this.value; 30 | }; 31 | 32 | module.exports = Int32; 33 | module.exports.Int32 = Int32; 34 | -------------------------------------------------------------------------------- /api/node_modules/bson/lib/bson/max_key.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of the BSON MaxKey type. 3 | * 4 | * @class 5 | * @return {MaxKey} A MaxKey instance 6 | */ 7 | function MaxKey() { 8 | if (!(this instanceof MaxKey)) return new MaxKey(); 9 | 10 | this._bsontype = 'MaxKey'; 11 | } 12 | 13 | module.exports = MaxKey; 14 | module.exports.MaxKey = MaxKey; 15 | -------------------------------------------------------------------------------- /api/node_modules/bson/lib/bson/min_key.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of the BSON MinKey type. 3 | * 4 | * @class 5 | * @return {MinKey} A MinKey instance 6 | */ 7 | function MinKey() { 8 | if (!(this instanceof MinKey)) return new MinKey(); 9 | 10 | this._bsontype = 'MinKey'; 11 | } 12 | 13 | module.exports = MinKey; 14 | module.exports.MinKey = MinKey; 15 | -------------------------------------------------------------------------------- /api/node_modules/capture-stack-trace/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = Error.captureStackTrace || function (error) { 4 | var container = new Error(); 5 | 6 | Object.defineProperty(error, 'stack', { 7 | configurable: true, 8 | get: function getStack() { 9 | var stack = container.stack; 10 | 11 | Object.defineProperty(this, 'stack', { 12 | value: stack 13 | }); 14 | 15 | return stack; 16 | } 17 | }); 18 | }; 19 | -------------------------------------------------------------------------------- /api/node_modules/capture-stack-trace/readme.md: -------------------------------------------------------------------------------- 1 | # capture-stack-trace [![Build Status](https://travis-ci.org/floatdrop/capture-stack-trace.svg?branch=master)](https://travis-ci.org/floatdrop/capture-stack-trace) 2 | 3 | > Ponyfill for Error.captureStackTrace 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save capture-stack-trace 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var captureStackTrace = require('capture-stack-trace'); 17 | 18 | captureStackTrace({}); 19 | // => {stack: ...} 20 | ``` 21 | 22 | 23 | ## API 24 | 25 | ### captureStackTrace(error) 26 | 27 | #### error 28 | 29 | *Required* 30 | Type: `Object` 31 | 32 | Target Object, that will recieve stack property. 33 | 34 | ## License 35 | 36 | MIT © [Vsevolod Strukchinsky](http://github.com/floatdrop) 37 | -------------------------------------------------------------------------------- /api/node_modules/cli-boxes/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('./boxes.json'); 3 | -------------------------------------------------------------------------------- /api/node_modules/color-name/README.md: -------------------------------------------------------------------------------- 1 | A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. 2 | 3 | [![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) 4 | 5 | 6 | ```js 7 | var colors = require('color-name'); 8 | colors.red //[255,0,0] 9 | ``` 10 | 11 | 12 | -------------------------------------------------------------------------------- /api/node_modules/color-name/test.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | var names = require('./'); 4 | var assert = require('assert'); 5 | 6 | assert.deepEqual(names.red, [255,0,0]); 7 | assert.deepEqual(names.aliceblue, [240,248,255]); 8 | -------------------------------------------------------------------------------- /api/node_modules/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/concat-map/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function (xs, fn) { 2 | var res = []; 3 | for (var i = 0; i < xs.length; i++) { 4 | var x = fn(xs[i], i); 5 | if (isArray(x)) res.push.apply(res, x); 6 | else res.push(x); 7 | } 8 | return res; 9 | }; 10 | 11 | var isArray = Array.isArray || function (xs) { 12 | return Object.prototype.toString.call(xs) === '[object Array]'; 13 | }; 14 | -------------------------------------------------------------------------------- /api/node_modules/content-type/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.4 / 2017-09-11 2 | ================== 3 | 4 | * perf: skip parameter parsing when no parameters 5 | 6 | 1.0.3 / 2017-09-10 7 | ================== 8 | 9 | * perf: remove argument reassignment 10 | 11 | 1.0.2 / 2016-05-09 12 | ================== 13 | 14 | * perf: enable strict mode 15 | 16 | 1.0.1 / 2015-02-13 17 | ================== 18 | 19 | * Improve missing `Content-Type` header error message 20 | 21 | 1.0.0 / 2015-02-01 22 | ================== 23 | 24 | * Initial implementation, derived from `media-typer@0.3.0` 25 | -------------------------------------------------------------------------------- /api/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /api/node_modules/cross-spawn/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 5.0.0 - 2016-10-30 2 | 3 | - Add support for `options.shell` 4 | - Improve parsing of shebangs by using [`shebang-command`](https://github.com/kevva/shebang-command) module 5 | - Refactor some code to make it more clear 6 | - Update README caveats 7 | -------------------------------------------------------------------------------- /api/node_modules/cross-spawn/lib/util/escapeCommand.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var escapeArgument = require('./escapeArgument'); 4 | 5 | function escapeCommand(command) { 6 | // Do not escape if this command is not dangerous.. 7 | // We do this so that commands like "echo" or "ifconfig" work 8 | // Quoting them, will make them unaccessible 9 | return /^[a-z0-9_-]+$/i.test(command) ? command : escapeArgument(command, true); 10 | } 11 | 12 | module.exports = escapeCommand; 13 | -------------------------------------------------------------------------------- /api/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // See: https://github.com/IndigoUnited/node-cross-spawn/pull/34#issuecomment-221623455 4 | function hasEmptyArgumentBug() { 5 | var nodeVer; 6 | 7 | if (process.platform !== 'win32') { 8 | return false; 9 | } 10 | 11 | nodeVer = process.version.substr(1).split('.').map(function (num) { 12 | return parseInt(num, 10); 13 | }); 14 | 15 | return (nodeVer[0] === 0 && nodeVer[1] < 12); 16 | } 17 | 18 | module.exports = hasEmptyArgumentBug(); 19 | -------------------------------------------------------------------------------- /api/node_modules/crypto-random-string/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const crypto = require('crypto'); 3 | 4 | module.exports = len => { 5 | if (!Number.isFinite(len)) { 6 | throw new TypeError('Expected a finite number'); 7 | } 8 | 9 | return crypto.randomBytes(Math.ceil(len / 2)).toString('hex').slice(0, len); 10 | }; 11 | -------------------------------------------------------------------------------- /api/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.6.9", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "src/browser.js", 12 | "scripts": [ 13 | "src/browser.js", 14 | "src/debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /api/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/debug/src/inspector-log.js: -------------------------------------------------------------------------------- 1 | module.exports = inspectorLog; 2 | 3 | // black hole 4 | const nullStream = new (require('stream').Writable)(); 5 | nullStream._write = () => {}; 6 | 7 | /** 8 | * Outputs a `console.log()` to the Node.js Inspector console *only*. 9 | */ 10 | function inspectorLog() { 11 | const stdout = console._stdout; 12 | console._stdout = nullStream; 13 | console.log.apply(console, arguments); 14 | console._stdout = stdout; 15 | } 16 | -------------------------------------------------------------------------------- /api/node_modules/deep-extend/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/deep-extend'); 2 | -------------------------------------------------------------------------------- /api/node_modules/depd/lib/compat/event-listener-count.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * depd 3 | * Copyright(c) 2015 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | * @public 12 | */ 13 | 14 | module.exports = eventListenerCount 15 | 16 | /** 17 | * Get the count of listeners on an event emitter of a specific type. 18 | */ 19 | 20 | function eventListenerCount (emitter, type) { 21 | return emitter.listeners(type).length 22 | } 23 | -------------------------------------------------------------------------------- /api/node_modules/dotenv/config.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | 3 | (function () { 4 | require('./lib/main').config( 5 | Object.assign( 6 | {}, 7 | require('./lib/env-options'), 8 | require('./lib/cli-options')(process.argv) 9 | ) 10 | ) 11 | })() 12 | -------------------------------------------------------------------------------- /api/node_modules/dotenv/lib/cli-options.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | 3 | const re = /^dotenv_config_(encoding|path|debug)=(.+)$/ 4 | 5 | module.exports = function optionMatcher (args /*: Array */) { 6 | return args.reduce(function (acc, cur) { 7 | const matches = cur.match(re) 8 | if (matches) { 9 | acc[matches[1]] = matches[2] 10 | } 11 | return acc 12 | }, {}) 13 | } 14 | -------------------------------------------------------------------------------- /api/node_modules/dotenv/lib/env-options.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | 3 | // ../config.js accepts options via environment variables 4 | const options = {} 5 | 6 | if (process.env.DOTENV_CONFIG_ENCODING != null) { 7 | options.encoding = process.env.DOTENV_CONFIG_ENCODING 8 | } 9 | 10 | if (process.env.DOTENV_CONFIG_PATH != null) { 11 | options.path = process.env.DOTENV_CONFIG_PATH 12 | } 13 | 14 | if (process.env.DOTENV_CONFIG_DEBUG != null) { 15 | options.debug = process.env.DOTENV_CONFIG_DEBUG 16 | } 17 | 18 | module.exports = options 19 | -------------------------------------------------------------------------------- /api/node_modules/dotenv/types/test.ts: -------------------------------------------------------------------------------- 1 | import { config, parse } from "dotenv"; 2 | 3 | const env = config(); 4 | const dbUrl: string | null = 5 | env.error || !env.parsed ? null : env.parsed["BASIC"]; 6 | 7 | config({ 8 | path: ".env-example", 9 | encoding: "utf8", 10 | debug: true 11 | }); 12 | 13 | const parsed = parse("NODE_ENV=production\nDB_HOST=a.b.c"); 14 | const dbHost: string = parsed["DB_HOST"]; 15 | 16 | const parsedFromBuffer = parse(new Buffer("JUSTICE=league\n"), { 17 | debug: true 18 | }); 19 | const justice: string = parsedFromBuffer["JUSTICE"]; 20 | -------------------------------------------------------------------------------- /api/node_modules/dotenv/types/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "lib": ["es6"], 5 | "noImplicitAny": true, 6 | "noImplicitThis": true, 7 | "strictNullChecks": true, 8 | "strictFunctionTypes": true, 9 | "noEmit": true, 10 | "baseUrl": ".", 11 | "paths": { 12 | "dotenv": ["."] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /api/node_modules/dotenv/types/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "dtslint/dtslint.json", 3 | "rules": { 4 | "strict-export-declare-modifiers": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/escape-string-regexp/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; 4 | 5 | module.exports = function (str) { 6 | if (typeof str !== 'string') { 7 | throw new TypeError('Expected a string'); 8 | } 9 | 10 | return str.replace(matchOperatorsRe, '\\$&'); 11 | }; 12 | -------------------------------------------------------------------------------- /api/node_modules/escape-string-regexp/readme.md: -------------------------------------------------------------------------------- 1 | # escape-string-regexp [![Build Status](https://travis-ci.org/sindresorhus/escape-string-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-string-regexp) 2 | 3 | > Escape RegExp special characters 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save escape-string-regexp 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const escapeStringRegexp = require('escape-string-regexp'); 17 | 18 | const escapedString = escapeStringRegexp('how much $ for a unicorn?'); 19 | //=> 'how much \$ for a unicorn\?' 20 | 21 | new RegExp(escapedString); 22 | ``` 23 | 24 | 25 | ## License 26 | 27 | MIT © [Sindre Sorhus](http://sindresorhus.com) 28 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/forwarded/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.1.2 / 2017-09-14 2 | ================== 3 | 4 | * perf: improve header parsing 5 | * perf: reduce overhead when no `X-Forwarded-For` header 6 | 7 | 0.1.1 / 2017-09-10 8 | ================== 9 | 10 | * Fix trimming leading / trailing OWS 11 | * perf: hoist regular expression 12 | 13 | 0.1.0 / 2014-09-21 14 | ================== 15 | 16 | * Initial release 17 | -------------------------------------------------------------------------------- /api/node_modules/graceful-fs/clone.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = clone 4 | 5 | function clone (obj) { 6 | if (obj === null || typeof obj !== 'object') 7 | return obj 8 | 9 | if (obj instanceof Object) 10 | var copy = { __proto__: obj.__proto__ } 11 | else 12 | var copy = Object.create(null) 13 | 14 | Object.getOwnPropertyNames(obj).forEach(function (key) { 15 | Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) 16 | }) 17 | 18 | return copy 19 | } 20 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/ignore-by-default/README.md: -------------------------------------------------------------------------------- 1 | # ignore-by-default 2 | 3 | This is a package aimed at Node.js development tools. It provides a list of 4 | directories that should probably be ignored by such tools, e.g. when watching 5 | for file changes. 6 | 7 | It's used by [AVA](https://www.npmjs.com/package/ava) and 8 | [nodemon](https://www.npmjs.com/package/nodemon). 9 | 10 | [Please contribute!](./CONTRIBUTING.md) 11 | 12 | ## Installation 13 | 14 | ``` 15 | npm install --save ignore-by-default 16 | ``` 17 | 18 | ## Usage 19 | 20 | The `ignore-by-default` module exports a `directories()` function, which will 21 | return an array of directory names. These are the ones you should ignore. 22 | 23 | ```js 24 | // ['.git', '.sass_cache', …] 25 | var ignoredDirectories = require('ignore-by-default').directories() 26 | ``` 27 | -------------------------------------------------------------------------------- /api/node_modules/ignore-by-default/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | exports.directories = function () { 4 | return [ 5 | '.git', // Git repository files, see 6 | '.nyc_output', // Temporary directory where nyc stores coverage data, see 7 | '.sass-cache', // Cache folder for node-sass, see 8 | 'bower_components', // Where Bower packages are installed, see 9 | 'coverage', // Standard output directory for code coverage reports, see 10 | 'node_modules' // Where Node modules are installed, see 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /api/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | if (typeof util.inherits !== 'function') throw ''; 4 | module.exports = util.inherits; 5 | } catch (e) { 6 | module.exports = require('./inherits_browser.js'); 7 | } 8 | -------------------------------------------------------------------------------- /api/node_modules/inherits/inherits_browser.js: -------------------------------------------------------------------------------- 1 | if (typeof Object.create === 'function') { 2 | // implementation from standard node.js 'util' module 3 | module.exports = function inherits(ctor, superCtor) { 4 | ctor.super_ = superCtor 5 | ctor.prototype = Object.create(superCtor.prototype, { 6 | constructor: { 7 | value: ctor, 8 | enumerable: false, 9 | writable: true, 10 | configurable: true 11 | } 12 | }); 13 | }; 14 | } else { 15 | // old school shim for old browsers 16 | module.exports = function inherits(ctor, superCtor) { 17 | ctor.super_ = superCtor 18 | var TempCtor = function () {} 19 | TempCtor.prototype = superCtor.prototype 20 | ctor.prototype = new TempCtor() 21 | ctor.prototype.constructor = ctor 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/is-ci/bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict' 3 | 4 | process.exit(require('./') ? 0 : 1) 5 | -------------------------------------------------------------------------------- /api/node_modules/is-ci/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = require('ci-info').isCI 4 | -------------------------------------------------------------------------------- /api/node_modules/is-extglob/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-extglob 3 | * 4 | * Copyright (c) 2014-2016, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | module.exports = function isExtglob(str) { 9 | if (typeof str !== 'string' || str === '') { 10 | return false; 11 | } 12 | 13 | var match; 14 | while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { 15 | if (match[2]) return true; 16 | str = str.slice(match.index + match[0].length); 17 | } 18 | 19 | return false; 20 | }; 21 | -------------------------------------------------------------------------------- /api/node_modules/is-installed-globally/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const globalDirs = require('global-dirs'); 3 | const isPathInside = require('is-path-inside'); 4 | 5 | module.exports = isPathInside(__dirname, globalDirs.yarn.packages) || isPathInside(__dirname, globalDirs.npm.packages); 6 | -------------------------------------------------------------------------------- /api/node_modules/is-npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = 'npm_config_username' in process.env || 3 | 'npm_package_name' in process.env || 4 | 'npm_config_heading' in process.env; 5 | -------------------------------------------------------------------------------- /api/node_modules/is-npm/readme.md: -------------------------------------------------------------------------------- 1 | # is-npm [![Build Status](https://travis-ci.org/sindresorhus/is-npm.svg?branch=master)](https://travis-ci.org/sindresorhus/is-npm) 2 | 3 | > Check if your code is running as an [npm script](https://www.npmjs.org/doc/misc/npm-scripts.html) 4 | 5 | 6 | ## Install 7 | 8 | ```sh 9 | $ npm install --save is-npm 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isNpm = require('is-npm'); 17 | console.log(isNpm); 18 | ``` 19 | 20 | ```sh 21 | $ node foo.js 22 | #=> false 23 | $ npm run foo 24 | #=> true 25 | ``` 26 | 27 | 28 | ## License 29 | 30 | MIT © [Sindre Sorhus](http://sindresorhus.com) 31 | -------------------------------------------------------------------------------- /api/node_modules/is-number/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-number 3 | * 4 | * Copyright (c) 2014-present, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = function(num) { 11 | if (typeof num === 'number') { 12 | return num - num === 0; 13 | } 14 | if (typeof num === 'string' && num.trim() !== '') { 15 | return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); 16 | } 17 | return false; 18 | }; 19 | -------------------------------------------------------------------------------- /api/node_modules/is-obj/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (x) { 3 | var type = typeof x; 4 | return x !== null && (type === 'object' || type === 'function'); 5 | }; 6 | -------------------------------------------------------------------------------- /api/node_modules/is-obj/readme.md: -------------------------------------------------------------------------------- 1 | # is-obj [![Build Status](https://travis-ci.org/sindresorhus/is-obj.svg?branch=master)](https://travis-ci.org/sindresorhus/is-obj) 2 | 3 | > Check if a value is an object 4 | 5 | Keep in mind that array, function, regexp, etc, are objects in JavaScript.
6 | See [`is-plain-obj`](https://github.com/sindresorhus/is-plain-obj) if you want to check for plain objects. 7 | 8 | 9 | ## Install 10 | 11 | ``` 12 | $ npm install --save is-obj 13 | ``` 14 | 15 | 16 | ## Usage 17 | 18 | ```js 19 | const isObj = require('is-obj'); 20 | 21 | isObj({foo: 'bar'}); 22 | //=> true 23 | 24 | isObj([1, 2, 3]); 25 | //=> true 26 | 27 | isObj('foo'); 28 | //=> false 29 | ``` 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](https://sindresorhus.com) 35 | -------------------------------------------------------------------------------- /api/node_modules/is-path-inside/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path'); 3 | var pathIsInside = require('path-is-inside'); 4 | 5 | module.exports = function (a, b) { 6 | a = path.resolve(a); 7 | b = path.resolve(b); 8 | 9 | if (a === b) { 10 | return false; 11 | } 12 | 13 | return pathIsInside(a, b); 14 | }; 15 | -------------------------------------------------------------------------------- /api/node_modules/is-path-inside/readme.md: -------------------------------------------------------------------------------- 1 | # is-path-inside [![Build Status](https://travis-ci.org/sindresorhus/is-path-inside.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-inside) 2 | 3 | > Check if a path is inside another path 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-path-inside 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isPathInside = require('is-path-inside'); 17 | 18 | isPathInside('a/b/c', 'a/b'); 19 | //=> true 20 | 21 | isPathInside('a/b/c', 'x/y'); 22 | //=> false 23 | 24 | isPathInside('a/b/c', 'a/b/c'); 25 | //=> false 26 | 27 | isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus'); 28 | //=> true 29 | ``` 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](http://sindresorhus.com) 35 | -------------------------------------------------------------------------------- /api/node_modules/is-redirect/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (x) { 3 | if (typeof x !== 'number') { 4 | throw new TypeError('Expected a number'); 5 | } 6 | 7 | return x === 300 || 8 | x === 301 || 9 | x === 302 || 10 | x === 303 || 11 | x === 305 || 12 | x === 307 || 13 | x === 308; 14 | }; 15 | -------------------------------------------------------------------------------- /api/node_modules/is-redirect/readme.md: -------------------------------------------------------------------------------- 1 | # is-redirect [![Build Status](https://travis-ci.org/sindresorhus/is-redirect.svg?branch=master)](https://travis-ci.org/sindresorhus/is-redirect) 2 | 3 | > Check if a number is a [redirect HTTP status code](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save is-redirect 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isRedirect = require('is-redirect'); 17 | 18 | isRedirect(302); 19 | //=> true 20 | 21 | isRedirect(200); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## License 27 | 28 | MIT © [Sindre Sorhus](http://sindresorhus.com) 29 | -------------------------------------------------------------------------------- /api/node_modules/isexe/.npmignore: -------------------------------------------------------------------------------- 1 | .nyc_output/ 2 | coverage/ 3 | -------------------------------------------------------------------------------- /api/node_modules/kareem/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "12" 4 | - "10" 5 | - "9" 6 | - "8" 7 | - "7" 8 | - "6" 9 | - "5" 10 | - "4" 11 | script: "npm run-script test-travis" 12 | after_script: "npm install coveralls@2.10.0 && cat ./coverage/lcov.info | coveralls" 13 | -------------------------------------------------------------------------------- /api/node_modules/kareem/Makefile: -------------------------------------------------------------------------------- 1 | docs: 2 | node ./docs.js 3 | 4 | coverage: 5 | ./node_modules/istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha -- -R spec ./test/* 6 | -------------------------------------------------------------------------------- /api/node_modules/kareem/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var mocha = require('gulp-mocha'); 3 | var config = require('./package.json'); 4 | var jscs = require('gulp-jscs'); 5 | 6 | gulp.task('mocha', function() { 7 | return gulp.src('./test/*'). 8 | pipe(mocha({ reporter: 'dot' })); 9 | }); 10 | 11 | gulp.task('jscs', function() { 12 | return gulp.src('./index.js'). 13 | pipe(jscs(config.jscsConfig)); 14 | }); 15 | 16 | gulp.task('watch', function() { 17 | gulp.watch('./index.js', ['jscs', 'mocha']); 18 | }); 19 | -------------------------------------------------------------------------------- /api/node_modules/latest-version/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const packageJson = require('package-json'); 3 | 4 | module.exports = name => packageJson(name.toLowerCase()).then(data => data.version); 5 | -------------------------------------------------------------------------------- /api/node_modules/lowercase-keys/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (obj) { 3 | var ret = {}; 4 | var keys = Object.keys(Object(obj)); 5 | 6 | for (var i = 0; i < keys.length; i++) { 7 | ret[keys[i].toLowerCase()] = obj[keys[i]]; 8 | } 9 | 10 | return ret; 11 | }; 12 | -------------------------------------------------------------------------------- /api/node_modules/lowercase-keys/readme.md: -------------------------------------------------------------------------------- 1 | # lowercase-keys [![Build Status](https://travis-ci.org/sindresorhus/lowercase-keys.svg?branch=master)](https://travis-ci.org/sindresorhus/lowercase-keys) 2 | 3 | > Lowercase the keys of an object 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save lowercase-keys 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var lowercaseKeys = require('lowercase-keys'); 17 | 18 | lowercaseKeys({FOO: true, bAr: false}); 19 | //=> {foo: true, bar: false} 20 | ``` 21 | 22 | 23 | ## API 24 | 25 | ### lowercaseKeys(object) 26 | 27 | Lowercases the keys and returns a new object. 28 | 29 | 30 | 31 | ## License 32 | 33 | MIT © [Sindre Sorhus](http://sindresorhus.com) 34 | -------------------------------------------------------------------------------- /api/node_modules/media-typer/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2014-09-07 2 | ================== 3 | 4 | * Support Node.js 0.6 5 | * Throw error when parameter format invalid on parse 6 | 7 | 0.2.0 / 2014-06-18 8 | ================== 9 | 10 | * Add `typer.format()` to format media types 11 | 12 | 0.1.0 / 2014-06-17 13 | ================== 14 | 15 | * Accept `req` as argument to `parse` 16 | * Accept `res` as argument to `parse` 17 | * Parse media type with extra LWS between type and first parameter 18 | 19 | 0.0.0 / 2014-06-13 20 | ================== 21 | 22 | * Initial implementation 23 | -------------------------------------------------------------------------------- /api/node_modules/memory-pager/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '4' 4 | - '6' 5 | -------------------------------------------------------------------------------- /api/node_modules/merge-descriptors/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.0 / 2015-03-01 7 | ================== 8 | 9 | * Add option to only add new descriptors 10 | * Add simple argument validation 11 | * Add jsdoc to source file 12 | 13 | 0.0.2 / 2013-12-14 14 | ================== 15 | 16 | * Move repository to `component` organization 17 | 18 | 0.0.1 / 2013-10-29 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /api/node_modules/methods/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.2 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.1.1 / 2014-12-30 7 | ================== 8 | 9 | * Improve `browserify` support 10 | 11 | 1.1.0 / 2014-07-05 12 | ================== 13 | 14 | * Add `CONNECT` method 15 | 16 | 1.0.1 / 2014-06-02 17 | ================== 18 | 19 | * Fix module to work with harmony transform 20 | 21 | 1.0.0 / 2014-05-08 22 | ================== 23 | 24 | * Add `PURGE` method 25 | 26 | 0.1.0 / 2013-10-28 27 | ================== 28 | 29 | * Add `http.METHODS` support 30 | -------------------------------------------------------------------------------- /api/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | */ 10 | 11 | module.exports = require('./db.json') 12 | -------------------------------------------------------------------------------- /api/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/minimist/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | - "0.12" 6 | - "iojs" 7 | before_install: 8 | - npm install -g npm@~1.4.6 9 | -------------------------------------------------------------------------------- /api/node_modules/minimist/example/parse.js: -------------------------------------------------------------------------------- 1 | var argv = require('../')(process.argv.slice(2)); 2 | console.dir(argv); 3 | -------------------------------------------------------------------------------- /api/node_modules/minimist/test/dotted.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('dotted alias', function (t) { 5 | var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); 6 | t.equal(argv.a.b, 22); 7 | t.equal(argv.aa.bb, 22); 8 | t.end(); 9 | }); 10 | 11 | test('dotted default', function (t) { 12 | var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); 13 | t.equal(argv.a.b, 11); 14 | t.equal(argv.aa.bb, 11); 15 | t.end(); 16 | }); 17 | 18 | test('dotted default with no alias', function (t) { 19 | var argv = parse('', {default: {'a.b': 11}}); 20 | t.equal(argv.a.b, 11); 21 | t.end(); 22 | }); 23 | -------------------------------------------------------------------------------- /api/node_modules/minimist/test/kv_short.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('short -k=v' , function (t) { 5 | t.plan(1); 6 | 7 | var argv = parse([ '-b=123' ]); 8 | t.deepEqual(argv, { b: 123, _: [] }); 9 | }); 10 | 11 | test('multi short -k=v' , function (t) { 12 | t.plan(1); 13 | 14 | var argv = parse([ '-a=whatever', '-b=robots' ]); 15 | t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] }); 16 | }); 17 | -------------------------------------------------------------------------------- /api/node_modules/minimist/test/parse_modified.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('parse with modifier functions' , function (t) { 5 | t.plan(1); 6 | 7 | var argv = parse([ '-b', '123' ], { boolean: 'b' }); 8 | t.deepEqual(argv, { b: true, _: [123] }); 9 | }); 10 | -------------------------------------------------------------------------------- /api/node_modules/minimist/test/stop_early.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('stops parsing on the first non-option when stopEarly is set', function (t) { 5 | var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], { 6 | stopEarly: true 7 | }); 8 | 9 | t.deepEqual(argv, { 10 | aaa: 'bbb', 11 | _: ['ccc', '--ddd'] 12 | }); 13 | 14 | t.end(); 15 | }); 16 | -------------------------------------------------------------------------------- /api/node_modules/minimist/test/whitespace.js: -------------------------------------------------------------------------------- 1 | var parse = require('../'); 2 | var test = require('tape'); 3 | 4 | test('whitespace should be whitespace' , function (t) { 5 | t.plan(1); 6 | var x = parse([ '-x', '\t' ]).x; 7 | t.equal(x, '\t'); 8 | }); 9 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/async/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parserOptions": { 3 | "ecmaVersion": 2018 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | SYSTEM_NAMESPACE_COLLECTION: 'system.namespaces', 5 | SYSTEM_INDEX_COLLECTION: 'system.indexes', 6 | SYSTEM_PROFILE_COLLECTION: 'system.profile', 7 | SYSTEM_USER_COLLECTION: 'system.users', 8 | SYSTEM_COMMAND_COLLECTION: '$cmd', 9 | SYSTEM_JS_COLLECTION: 'system.js' 10 | }; 11 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/core/auth/x509.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const AuthProvider = require('./auth_provider').AuthProvider; 4 | 5 | /** 6 | * Creates a new X509 authentication mechanism 7 | * @class 8 | * @extends AuthProvider 9 | */ 10 | class X509 extends AuthProvider { 11 | /** 12 | * Implementation of authentication for a single connection 13 | * @override 14 | */ 15 | _authenticateSingleConnection(sendAuthCommand, connection, credentials, callback) { 16 | const username = credentials.username; 17 | const command = { authenticate: 1, mechanism: 'MONGODB-X509' }; 18 | if (username) { 19 | command.user = username; 20 | } 21 | 22 | sendAuthCommand(connection, '$external.$cmd', command, callback); 23 | } 24 | } 25 | 26 | module.exports = X509; 27 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/core/wireprotocol/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const MIN_SUPPORTED_SERVER_VERSION = '2.6'; 4 | const MAX_SUPPORTED_SERVER_VERSION = '4.2'; 5 | const MIN_SUPPORTED_WIRE_VERSION = 2; 6 | const MAX_SUPPORTED_WIRE_VERSION = 8; 7 | 8 | module.exports = { 9 | MIN_SUPPORTED_SERVER_VERSION, 10 | MAX_SUPPORTED_SERVER_VERSION, 11 | MIN_SUPPORTED_WIRE_VERSION, 12 | MAX_SUPPORTED_WIRE_VERSION 13 | }; 14 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/core/wireprotocol/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const writeCommand = require('./write_command'); 3 | 4 | module.exports = { 5 | insert: function insert(server, ns, ops, options, callback) { 6 | writeCommand(server, 'insert', 'documents', ns, ops, options, callback); 7 | }, 8 | update: function update(server, ns, ops, options, callback) { 9 | writeCommand(server, 'update', 'updates', ns, ops, options, callback); 10 | }, 11 | remove: function remove(server, ns, ops, options, callback) { 12 | writeCommand(server, 'delete', 'deletes', ns, ops, options, callback); 13 | }, 14 | killCursors: require('./kill_cursors'), 15 | getMore: require('./get_more'), 16 | query: require('./query'), 17 | command: require('./command') 18 | }; 19 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/dynamic_loaders.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let collection; 4 | let cursor; 5 | let db; 6 | 7 | function loadCollection() { 8 | if (!collection) { 9 | collection = require('./collection'); 10 | } 11 | return collection; 12 | } 13 | 14 | function loadCursor() { 15 | if (!cursor) { 16 | cursor = require('./cursor'); 17 | } 18 | return cursor; 19 | } 20 | 21 | function loadDb() { 22 | if (!db) { 23 | db = require('./db'); 24 | } 25 | return db; 26 | } 27 | 28 | module.exports = { 29 | loadCollection, 30 | loadCursor, 31 | loadDb 32 | }; 33 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/drop_indexes.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Aspect = require('./operation').Aspect; 4 | const defineAspects = require('./operation').defineAspects; 5 | const DropIndexOperation = require('./drop_index'); 6 | const handleCallback = require('../utils').handleCallback; 7 | 8 | class DropIndexesOperation extends DropIndexOperation { 9 | constructor(collection, options) { 10 | super(collection, '*', options); 11 | } 12 | 13 | execute(callback) { 14 | super.execute(err => { 15 | if (err) return handleCallback(callback, err, false); 16 | handleCallback(callback, null, true); 17 | }); 18 | } 19 | } 20 | 21 | defineAspects(DropIndexesOperation, Aspect.WRITE_OPERATION); 22 | 23 | module.exports = DropIndexesOperation; 24 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/explain.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Aspect = require('./operation').Aspect; 4 | const CoreCursor = require('../core/cursor').CoreCursor; 5 | const defineAspects = require('./operation').defineAspects; 6 | const OperationBase = require('./operation').OperationBase; 7 | 8 | class ExplainOperation extends OperationBase { 9 | constructor(cursor) { 10 | super(); 11 | 12 | this.cursor = cursor; 13 | } 14 | 15 | execute() { 16 | const cursor = this.cursor; 17 | return CoreCursor.prototype._next.apply(cursor, arguments); 18 | } 19 | } 20 | 21 | defineAspects(ExplainOperation, Aspect.SKIP_SESSION); 22 | 23 | module.exports = ExplainOperation; 24 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/find_one_and_delete.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const FindAndModifyOperation = require('./find_and_modify'); 4 | 5 | class FindOneAndDeleteOperation extends FindAndModifyOperation { 6 | constructor(collection, filter, options) { 7 | // Final options 8 | const finalOptions = Object.assign({}, options); 9 | finalOptions.fields = options.projection; 10 | finalOptions.remove = true; 11 | 12 | super(collection, filter, finalOptions.sort, null, finalOptions); 13 | } 14 | } 15 | 16 | module.exports = FindOneAndDeleteOperation; 17 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/find_one_and_replace.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const FindAndModifyOperation = require('./find_and_modify'); 4 | 5 | class FindOneAndReplaceOperation extends FindAndModifyOperation { 6 | constructor(collection, filter, replacement, options) { 7 | // Final options 8 | const finalOptions = Object.assign({}, options); 9 | finalOptions.fields = options.projection; 10 | finalOptions.update = true; 11 | finalOptions.new = options.returnOriginal !== void 0 ? !options.returnOriginal : false; 12 | finalOptions.upsert = options.upsert !== void 0 ? !!options.upsert : false; 13 | 14 | super(collection, filter, finalOptions.sort, replacement, finalOptions); 15 | } 16 | } 17 | 18 | module.exports = FindOneAndReplaceOperation; 19 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/find_one_and_update.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const FindAndModifyOperation = require('./find_and_modify'); 4 | 5 | class FindOneAndUpdateOperation extends FindAndModifyOperation { 6 | constructor(collection, filter, update, options) { 7 | // Final options 8 | const finalOptions = Object.assign({}, options); 9 | finalOptions.fields = options.projection; 10 | finalOptions.update = true; 11 | finalOptions.new = 12 | typeof options.returnOriginal === 'boolean' ? !options.returnOriginal : false; 13 | finalOptions.upsert = typeof options.upsert === 'boolean' ? options.upsert : false; 14 | 15 | super(collection, filter, finalOptions.sort, update, finalOptions); 16 | } 17 | } 18 | 19 | module.exports = FindOneAndUpdateOperation; 20 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/index_information.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const indexInformation = require('./common_functions').indexInformation; 5 | 6 | class IndexInformationOperation extends OperationBase { 7 | constructor(db, name, options) { 8 | super(options); 9 | 10 | this.db = db; 11 | this.name = name; 12 | } 13 | 14 | execute(callback) { 15 | const db = this.db; 16 | const name = this.name; 17 | const options = this.options; 18 | 19 | indexInformation(db, name, options, callback); 20 | } 21 | } 22 | 23 | module.exports = IndexInformationOperation; 24 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/indexes.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const indexInformation = require('./common_functions').indexInformation; 5 | 6 | class IndexesOperation extends OperationBase { 7 | constructor(collection, options) { 8 | super(options); 9 | 10 | this.collection = collection; 11 | } 12 | 13 | execute(callback) { 14 | const coll = this.collection; 15 | let options = this.options; 16 | 17 | options = Object.assign({}, { full: true }, options); 18 | indexInformation(coll.s.db, coll.collectionName, options, callback); 19 | } 20 | } 21 | 22 | module.exports = IndexesOperation; 23 | -------------------------------------------------------------------------------- /api/node_modules/mongodb/lib/operations/is_capped.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OptionsOperation = require('./options_operation'); 4 | const handleCallback = require('../utils').handleCallback; 5 | 6 | class IsCappedOperation extends OptionsOperation { 7 | constructor(collection, options) { 8 | super(collection, options); 9 | } 10 | 11 | execute(callback) { 12 | super.execute((err, document) => { 13 | if (err) return handleCallback(callback, err); 14 | handleCallback(callback, null, !!(document && document.capped)); 15 | }); 16 | } 17 | } 18 | 19 | module.exports = IsCappedOperation; 20 | -------------------------------------------------------------------------------- /api/node_modules/mongoose-legacy-pluralize/README.md: -------------------------------------------------------------------------------- 1 | # mongoose-legacy-pluralize 2 | Legacy pluralization logic for mongoose 3 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: [12, 11, 10, 9, 8, 7, 6, 5, 4] 4 | install: 5 | - travis_retry npm install 6 | before_script: 7 | - wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.6.tgz 8 | - tar -zxvf mongodb-linux-x86_64-3.6.6.tgz 9 | - mkdir -p ./data/db/27017 10 | - mkdir -p ./data/db/27000 11 | - printf "\n--timeout 8000" >> ./test/mocha.opts 12 | - ./mongodb-linux-x86_64-3.6.6/bin/mongod --fork --dbpath ./data/db/27017 --syslog --port 27017 13 | - sleep 2 14 | matrix: 15 | include: 16 | - name: "👕Linter" 17 | node_js: 10 18 | before_script: skip 19 | script: npm run lint 20 | notifications: 21 | email: false 22 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/SECURITY.md: -------------------------------------------------------------------------------- 1 | Please follow the instructions on [Tidelift's security page](https://tidelift.com/docs/security) to report a security issue. 2 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Export lib/mongoose 3 | * 4 | */ 5 | 6 | 'use strict'; 7 | 8 | module.exports = require('./lib/browser'); 9 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/build-browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const config = require('./webpack.config.js'); 4 | const webpack = require('webpack'); 5 | 6 | const compiler = webpack(config); 7 | 8 | console.log('Starting browser build...'); 9 | compiler.run((err, stats) => { 10 | if (err) { 11 | console.err(stats.toString()); 12 | console.err('Browser build unsuccessful.'); 13 | process.exit(1); 14 | } 15 | console.log(stats.toString()); 16 | console.log('Browser build successful.'); 17 | process.exit(0); 18 | }); 19 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Export lib/mongoose 4 | * 5 | */ 6 | 7 | 'use strict'; 8 | 9 | module.exports = require('./lib/'); 10 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/cast/objectid.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const ObjectId = require('../driver').get().ObjectId; 4 | const assert = require('assert'); 5 | 6 | module.exports = function castObjectId(value) { 7 | if (value == null) { 8 | return value; 9 | } 10 | 11 | if (value instanceof ObjectId) { 12 | return value; 13 | } 14 | 15 | if (value._id) { 16 | if (value._id instanceof ObjectId) { 17 | return value._id; 18 | } 19 | if (value._id.toString instanceof Function) { 20 | return new ObjectId(value._id.toString()); 21 | } 22 | } 23 | 24 | if (value.toString instanceof Function) { 25 | return new ObjectId(value.toString()); 26 | } 27 | 28 | assert.ok(false); 29 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/connectionstate.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Connection states 4 | */ 5 | 6 | 'use strict'; 7 | 8 | const STATES = module.exports = exports = Object.create(null); 9 | 10 | const disconnected = 'disconnected'; 11 | const connected = 'connected'; 12 | const connecting = 'connecting'; 13 | const disconnecting = 'disconnecting'; 14 | const uninitialized = 'uninitialized'; 15 | 16 | STATES[0] = disconnected; 17 | STATES[1] = connected; 18 | STATES[2] = connecting; 19 | STATES[3] = disconnecting; 20 | STATES[99] = uninitialized; 21 | 22 | STATES[disconnected] = 0; 23 | STATES[connected] = 1; 24 | STATES[connecting] = 2; 25 | STATES[disconnecting] = 3; 26 | STATES[uninitialized] = 99; 27 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/document_provider.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | 5 | /*! 6 | * Module dependencies. 7 | */ 8 | const Document = require('./document.js'); 9 | const BrowserDocument = require('./browserDocument.js'); 10 | 11 | let isBrowser = false; 12 | 13 | /** 14 | * Returns the Document constructor for the current context 15 | * 16 | * @api private 17 | */ 18 | module.exports = function() { 19 | if (isBrowser) { 20 | return BrowserDocument; 21 | } 22 | return Document; 23 | }; 24 | 25 | /*! 26 | * ignore 27 | */ 28 | module.exports.setBrowser = function(flag) { 29 | isBrowser = flag; 30 | }; 31 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/driver.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | let driver = null; 8 | 9 | module.exports.get = function() { 10 | return driver; 11 | }; 12 | 13 | module.exports.set = function(v) { 14 | driver = v; 15 | }; 16 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/SPEC.md: -------------------------------------------------------------------------------- 1 | 2 | # Driver Spec 3 | 4 | TODO 5 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/browser/ReadPreference.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ignore 3 | */ 4 | 5 | 'use strict'; 6 | 7 | module.exports = function() {}; 8 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/browser/binary.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Module dependencies. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | const Binary = require('bson').Binary; 9 | 10 | /*! 11 | * Module exports. 12 | */ 13 | 14 | module.exports = exports = Binary; 15 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/browser/decimal128.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ignore 3 | */ 4 | 5 | 'use strict'; 6 | 7 | module.exports = require('bson').Decimal128; 8 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/browser/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module exports. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | exports.Binary = require('./binary'); 8 | exports.Collection = function() { 9 | throw new Error('Cannot create a collection from browser library'); 10 | }; 11 | exports.Decimal128 = require('./decimal128'); 12 | exports.ObjectId = require('./objectid'); 13 | exports.ReadPreference = require('./ReadPreference'); 14 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/browser/objectid.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * [node-mongodb-native](https://github.com/mongodb/node-mongodb-native) ObjectId 4 | * @constructor NodeMongoDbObjectId 5 | * @see ObjectId 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const ObjectId = require('bson').ObjectID; 11 | 12 | /*! 13 | * Getter for convenience with populate, see gh-6115 14 | */ 15 | 16 | Object.defineProperty(ObjectId.prototype, '_id', { 17 | enumerable: false, 18 | configurable: true, 19 | get: function() { 20 | return this; 21 | } 22 | }); 23 | 24 | /*! 25 | * ignore 26 | */ 27 | 28 | module.exports = exports = ObjectId; 29 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/node-mongodb-native/binary.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Module dependencies. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | const Binary = require('mongodb').Binary; 9 | 10 | module.exports = exports = Binary; 11 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/node-mongodb-native/decimal128.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ignore 3 | */ 4 | 5 | 'use strict'; 6 | 7 | module.exports = require('mongodb').Decimal128; 8 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module exports. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | exports.Binary = require('./binary'); 8 | exports.Collection = require('./collection'); 9 | exports.Decimal128 = require('./decimal128'); 10 | exports.ObjectId = require('./objectid'); 11 | exports.ReadPreference = require('./ReadPreference'); -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * [node-mongodb-native](https://github.com/mongodb/node-mongodb-native) ObjectId 4 | * @constructor NodeMongoDbObjectId 5 | * @see ObjectId 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const ObjectId = require('mongodb').ObjectId; 11 | 12 | /*! 13 | * ignore 14 | */ 15 | 16 | module.exports = exports = ObjectId; 17 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/error/mongooseError.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | function MongooseError(msg) { 8 | Error.call(this); 9 | if (Error.captureStackTrace) { 10 | Error.captureStackTrace(this); 11 | } else { 12 | this.stack = new Error().stack; 13 | } 14 | this.message = msg; 15 | this.name = 'MongooseError'; 16 | } 17 | 18 | /*! 19 | * Inherits from Error. 20 | */ 21 | 22 | MongooseError.prototype = Object.create(Error.prototype); 23 | MongooseError.prototype.constructor = Error; 24 | 25 | module.exports = MongooseError; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/error/parallelSave.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * Module dependencies. 5 | */ 6 | 7 | const MongooseError = require('./'); 8 | 9 | /** 10 | * ParallelSave Error constructor. 11 | * 12 | * @inherits MongooseError 13 | * @api private 14 | */ 15 | 16 | function ParallelSaveError(doc) { 17 | const msg = 'Can\'t save() the same doc multiple times in parallel. Document: '; 18 | MongooseError.call(this, msg + doc._id); 19 | this.name = 'ParallelSaveError'; 20 | } 21 | 22 | /*! 23 | * Inherits from MongooseError. 24 | */ 25 | 26 | ParallelSaveError.prototype = Object.create(MongooseError.prototype); 27 | ParallelSaveError.prototype.constructor = MongooseError; 28 | 29 | /*! 30 | * exports 31 | */ 32 | 33 | module.exports = ParallelSaveError; 34 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function checkEmbeddedDiscriminatorKeyProjection(userProjection, path, schema, selected, addedPaths) { 4 | const userProjectedInPath = Object.keys(userProjection). 5 | reduce((cur, key) => cur || key.startsWith(path + '.'), false); 6 | const _discriminatorKey = path + '.' + schema.options.discriminatorKey; 7 | if (!userProjectedInPath && 8 | addedPaths.length === 1 && 9 | addedPaths[0] === _discriminatorKey) { 10 | selected.splice(selected.indexOf(_discriminatorKey), 1); 11 | } 12 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * returns discriminator by discriminatorMapping.value 5 | * 6 | * @param {Model} model 7 | * @param {string} value 8 | */ 9 | 10 | module.exports = function getDiscriminatorByValue(model, value) { 11 | let discriminator = null; 12 | if (!model.discriminators) { 13 | return discriminator; 14 | } 15 | for (const name in model.discriminators) { 16 | const it = model.discriminators[name]; 17 | if ( 18 | it.schema && 19 | it.schema.discriminatorMapping && 20 | it.schema.discriminatorMapping.value == value 21 | ) { 22 | discriminator = it; 23 | break; 24 | } 25 | } 26 | return discriminator; 27 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/each.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function each(arr, cb, done) { 4 | if (arr.length === 0) { 5 | return done(); 6 | } 7 | 8 | let remaining = arr.length; 9 | let err = null; 10 | for (const v of arr) { 11 | cb(v, function(_err) { 12 | if (err != null) { 13 | return; 14 | } 15 | if (_err != null) { 16 | err = _err; 17 | return done(err); 18 | } 19 | 20 | if (--remaining <= 0) { 21 | return done(); 22 | } 23 | }); 24 | } 25 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/immediate.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Centralize this so we can more easily work around issues with people 3 | * stubbing out `process.nextTick()` in tests using sinon: 4 | * https://github.com/sinonjs/lolex#automatically-incrementing-mocked-time 5 | * See gh-6074 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = function immediate(cb) { 11 | return process.nextTick(cb); 12 | }; 13 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/model/applyStatics.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * Register statics for this model 5 | * @param {Model} model 6 | * @param {Schema} schema 7 | */ 8 | module.exports = function applyStatics(model, schema) { 9 | for (const i in schema.statics) { 10 | model[i] = schema.statics[i]; 11 | } 12 | }; 13 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/once.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function once(fn) { 4 | let called = false; 5 | return function() { 6 | if (called) { 7 | return; 8 | } 9 | called = true; 10 | return fn.apply(null, arguments); 11 | }; 12 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = new WeakMap(); -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/populate/validateRef.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const MongooseError = require('../../error/mongooseError'); 4 | const util = require('util'); 5 | 6 | module.exports = validateRef; 7 | 8 | function validateRef(ref, path) { 9 | if (typeof ref === 'string') { 10 | return; 11 | } 12 | 13 | if (typeof ref === 'function') { 14 | return; 15 | } 16 | 17 | throw new MongooseError('Invalid ref at path "' + path + '". Got ' + 18 | util.inspect(ref, { depth: 0 })); 19 | } -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/printJestWarning.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (typeof jest !== 'undefined' && typeof window !== 'undefined') { 4 | console.warn('Mongoose: looks like you\'re trying to test a Mongoose app ' + 5 | 'with Jest\'s default jsdom test environment. Please make sure you read ' + 6 | 'Mongoose\'s docs on configuring Jest to test Node.js apps: ' + 7 | 'http://mongoosejs.com/docs/jest.html'); 8 | } -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = function isDefiningProjection(val) { 8 | if (val == null) { 9 | // `undefined` or `null` become exclusive projections 10 | return true; 11 | } 12 | if (typeof val === 'object') { 13 | // Only cases where a value does **not** define whether the whole projection 14 | // is inclusive or exclusive are `$meta` and `$slice`. 15 | return !('$meta' in val) && !('$slice' in val); 16 | } 17 | return true; 18 | }; 19 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/projection/isExclusive.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const isDefiningProjection = require('./isDefiningProjection'); 4 | 5 | /*! 6 | * ignore 7 | */ 8 | 9 | module.exports = function isExclusive(projection) { 10 | const keys = Object.keys(projection); 11 | let ki = keys.length; 12 | let exclude = null; 13 | 14 | if (ki === 1 && keys[0] === '_id') { 15 | exclude = !!projection[keys[ki]]; 16 | } else { 17 | while (ki--) { 18 | // Does this projection explicitly define inclusion/exclusion? 19 | // Explicitly avoid `$meta` and `$slice` 20 | if (keys[ki] !== '_id' && isDefiningProjection(projection[keys[ki]])) { 21 | exclude = !projection[keys[ki]]; 22 | break; 23 | } 24 | } 25 | } 26 | 27 | return exclude; 28 | }; 29 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = function isPathSelectedInclusive(fields, path) { 8 | const chunks = path.split('.'); 9 | let cur = ''; 10 | let j; 11 | let keys; 12 | let numKeys; 13 | for (let i = 0; i < chunks.length; ++i) { 14 | cur += cur.length ? '.' : '' + chunks[i]; 15 | if (fields[cur]) { 16 | keys = Object.keys(fields); 17 | numKeys = keys.length; 18 | for (j = 0; j < numKeys; ++j) { 19 | if (keys[i].indexOf(cur + '.') === 0 && keys[i].indexOf(path) !== 0) { 20 | continue; 21 | } 22 | } 23 | return true; 24 | } 25 | } 26 | 27 | return false; 28 | }; 29 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/query/applyGlobalMaxTimeMS.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('../../utils'); 4 | 5 | module.exports = function applyGlobalMaxTimeMS(options, model) { 6 | if (utils.hasUserDefinedProperty(options, 'maxTimeMS')) { 7 | return; 8 | } 9 | 10 | if (utils.hasUserDefinedProperty(model.db.options, 'maxTimeMS')) { 11 | options.maxTimeMS = model.db.options.maxTimeMS; 12 | } else if (utils.hasUserDefinedProperty(model.base.options, 'maxTimeMS')) { 13 | options.maxTimeMS = model.base.options.maxTimeMS; 14 | } 15 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/query/hasDollarKeys.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = function(obj) { 8 | if (obj == null) { 9 | return false; 10 | } 11 | const keys = Object.keys(obj); 12 | const len = keys.length; 13 | for (let i = 0; i < len; ++i) { 14 | if (keys[i].startsWith('$')) { 15 | return true; 16 | } 17 | } 18 | return false; 19 | }; 20 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/query/wrapThunk.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * A query thunk is the function responsible for sending the query to MongoDB, 5 | * like `Query#_findOne()` or `Query#_execUpdate()`. The `Query#exec()` function 6 | * calls a thunk. The term "thunk" here is the traditional Node.js definition: 7 | * a function that takes exactly 1 parameter, a callback. 8 | * 9 | * This function defines common behavior for all query thunks. 10 | */ 11 | 12 | module.exports = function wrapThunk(fn) { 13 | return function _wrappedThunk(cb) { 14 | ++this._executionCount; 15 | 16 | fn.call(this, cb); 17 | }; 18 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/schema/addAutoId.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function addAutoId(schema) { 4 | const _obj = {_id: {auto: true}}; 5 | _obj._id[schema.options.typeKey] = 'ObjectId'; 6 | schema.add(_obj); 7 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const get = require('../get'); 4 | 5 | module.exports = function applyWriteConcern(schema, options) { 6 | const writeConcern = get(schema, 'options.writeConcern', {}); 7 | if (!('w' in options) && writeConcern.w != null) { 8 | options.w = writeConcern.w; 9 | } 10 | if (!('j' in options) && writeConcern.j != null) { 11 | options.j = writeConcern.j; 12 | } 13 | if (!('wtimeout' in options) && writeConcern.wtimeout != null) { 14 | options.wtimeout = writeConcern.wtimeout; 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * For consistency's sake, we replace positional operator `$` and array filters 5 | * `$[]` and `$[foo]` with `0` when looking up schema paths. 6 | */ 7 | 8 | module.exports = function cleanPositionalOperators(path) { 9 | return path. 10 | replace(/\.\$(\[[^\]]*\])?\./g, '.0.'). 11 | replace(/\.(\[[^\]]*\])?\$$/g, '.0'); 12 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/schema/handleIdOption.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const addAutoId = require('./addAutoId'); 4 | 5 | module.exports = function handleIdOption(schema, options) { 6 | if (options == null || options._id == null) { 7 | return schema; 8 | } 9 | 10 | schema = schema.clone(); 11 | if (!options._id) { 12 | schema.remove('_id'); 13 | schema.options._id = false; 14 | } else if (!schema.paths['_id']) { 15 | addAutoId(schema); 16 | schema.options._id = true; 17 | } 18 | 19 | return schema; 20 | }; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = handleTimestampOption; 4 | 5 | /*! 6 | * ignore 7 | */ 8 | 9 | function handleTimestampOption(arg, prop) { 10 | if (arg == null) { 11 | return null; 12 | } 13 | 14 | if (typeof arg === 'boolean') { 15 | return prop; 16 | } 17 | if (typeof arg[prop] === 'boolean') { 18 | return arg[prop] ? prop : null; 19 | } 20 | if (!(prop in arg)) { 21 | return prop; 22 | } 23 | return arg[prop]; 24 | } -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/helpers/schema/merge.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function merge(s1, s2) { 4 | s1.add(s2.tree || {}); 5 | 6 | s1.callQueue = s1.callQueue.concat(s2.callQueue); 7 | s1.method(s2.methods); 8 | s1.static(s2.statics); 9 | 10 | for (const query in s2.query) { 11 | s1.query[query] = s2.query[query]; 12 | } 13 | 14 | for (const virtual in s2.virtuals) { 15 | s1.virtuals[virtual] = s2.virtuals[virtual].clone(); 16 | } 17 | 18 | s1.s.hooks.merge(s2.s.hooks, false); 19 | }; 20 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/options.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | exports.internalToObjectOptions = { 8 | transform: false, 9 | virtuals: false, 10 | getters: false, 11 | _skipDepopulateTopLevel: true, 12 | depopulate: true, 13 | flattenDecimals: false 14 | }; 15 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/options/PopulateOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('../utils'); 4 | 5 | class PopulateOptions { 6 | constructor(obj) { 7 | this._docs = {}; 8 | 9 | if (obj == null) { 10 | return; 11 | } 12 | obj = utils.clone(obj); 13 | Object.assign(this, obj); 14 | if (typeof obj.subPopulate === 'object') { 15 | this.populate = obj.subPopulate; 16 | } 17 | } 18 | } 19 | 20 | /** 21 | * The connection used to look up models by name. If not specified, Mongoose 22 | * will default to using the connection associated with the model in 23 | * `PopulateOptions#model`. 24 | * 25 | * @memberOf PopulateOptions 26 | * @property {Connection} connection 27 | * @api public 28 | */ 29 | 30 | module.exports = PopulateOptions; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/options/propertyOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = Object.freeze({ 4 | enumerable: true, 5 | configurable: true, 6 | writable: true, 7 | value: void 0 8 | }); -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/options/removeOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('../utils'); 4 | 5 | class RemoveOptions { 6 | constructor(obj) { 7 | if (obj == null) { 8 | return; 9 | } 10 | Object.assign(this, utils.clone(obj)); 11 | } 12 | } 13 | 14 | module.exports = RemoveOptions; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/options/saveOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('../utils'); 4 | 5 | class SaveOptions { 6 | constructor(obj) { 7 | if (obj == null) { 8 | return; 9 | } 10 | Object.assign(this, utils.clone(obj)); 11 | } 12 | } 13 | 14 | module.exports = SaveOptions; -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/plugins/idGetter.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = function(schema) { 8 | // ensure the documents receive an id getter unless disabled 9 | const autoIdGetter = !schema.paths['id'] && 10 | (!schema.options.noVirtualId && schema.options.id); 11 | if (!autoIdGetter) { 12 | return; 13 | } 14 | 15 | schema.virtual('id').get(idGetter); 16 | }; 17 | 18 | /*! 19 | * Returns this documents _id cast to a string. 20 | */ 21 | 22 | function idGetter() { 23 | if (this._id != null) { 24 | return String(this._id); 25 | } 26 | 27 | return null; 28 | } 29 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/plugins/removeSubdocs.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const each = require('../helpers/each'); 4 | 5 | /*! 6 | * ignore 7 | */ 8 | 9 | module.exports = function(schema) { 10 | const unshift = true; 11 | schema.s.hooks.pre('remove', false, function(next) { 12 | if (this.ownerDocument) { 13 | next(); 14 | return; 15 | } 16 | 17 | const _this = this; 18 | const subdocs = this.$__getAllSubdocs(); 19 | 20 | each(subdocs, function(subdoc, cb) { 21 | subdoc.$__remove(cb); 22 | }, function(error) { 23 | if (error) { 24 | return _this.schema.s.hooks.execPost('remove:error', _this, [_this], { error: error }, function(error) { 25 | next(error); 26 | }); 27 | } 28 | next(); 29 | }); 30 | }, null, unshift); 31 | }; 32 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/schema/operators/exists.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const castBoolean = require('../../cast/boolean'); 4 | 5 | /*! 6 | * ignore 7 | */ 8 | 9 | module.exports = function(val) { 10 | const path = this != null ? this.path : null; 11 | return castBoolean(val, path); 12 | }; 13 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/schema/operators/helpers.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * Module requirements. 5 | */ 6 | 7 | const SchemaNumber = require('../number'); 8 | 9 | /*! 10 | * @ignore 11 | */ 12 | 13 | exports.castToNumber = castToNumber; 14 | exports.castArraysOfNumbers = castArraysOfNumbers; 15 | 16 | /*! 17 | * @ignore 18 | */ 19 | 20 | function castToNumber(val) { 21 | return SchemaNumber.cast()(val); 22 | } 23 | 24 | function castArraysOfNumbers(arr, self) { 25 | arr.forEach(function(v, i) { 26 | if (Array.isArray(v)) { 27 | castArraysOfNumbers(v, self); 28 | } else { 29 | arr[i] = castToNumber.call(self, v); 30 | } 31 | }); 32 | } 33 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/schema/operators/type.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = function(val) { 8 | if (typeof val !== 'number' && typeof val !== 'string') { 9 | throw new Error('$type parameter must be number or string'); 10 | } 11 | 12 | return val; 13 | }; 14 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/schema/symbols.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.schemaMixedSymbol = Symbol.for('mongoose:schema_mixed'); 4 | 5 | exports.builtInMiddleware = Symbol.for('mongoose:built-in-middleware'); -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/types/decimal128.js: -------------------------------------------------------------------------------- 1 | /** 2 | * ObjectId type constructor 3 | * 4 | * ####Example 5 | * 6 | * var id = new mongoose.Types.ObjectId; 7 | * 8 | * @constructor ObjectId 9 | */ 10 | 11 | 'use strict'; 12 | 13 | module.exports = require('../driver').get().Decimal128; 14 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/types/index.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Module exports. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | exports.Array = require('./array'); 9 | exports.Buffer = require('./buffer'); 10 | 11 | exports.Document = // @deprecate 12 | exports.Embedded = require('./embedded'); 13 | 14 | exports.DocumentArray = require('./documentarray'); 15 | exports.Decimal128 = require('./decimal128'); 16 | exports.ObjectId = require('./objectid'); 17 | 18 | exports.Map = require('./map'); 19 | 20 | exports.Subdocument = require('./subdocument'); 21 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/types/objectid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * ObjectId type constructor 3 | * 4 | * ####Example 5 | * 6 | * var id = new mongoose.Types.ObjectId; 7 | * 8 | * @constructor ObjectId 9 | */ 10 | 11 | 'use strict'; 12 | 13 | const ObjectId = require('../driver').get().ObjectId; 14 | const objectIdSymbol = require('../helpers/symbols').objectIdSymbol; 15 | 16 | /*! 17 | * Getter for convenience with populate, see gh-6115 18 | */ 19 | 20 | Object.defineProperty(ObjectId.prototype, '_id', { 21 | enumerable: false, 22 | configurable: true, 23 | get: function() { 24 | return this; 25 | } 26 | }); 27 | 28 | ObjectId.prototype[objectIdSymbol] = true; 29 | 30 | module.exports = ObjectId; 31 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/lib/validoptions.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Valid mongoose options 4 | */ 5 | 6 | 'use strict'; 7 | 8 | const VALID_OPTIONS = Object.freeze([ 9 | 'applyPluginsToChildSchemas', 10 | 'applyPluginsToDiscriminators', 11 | 'autoIndex', 12 | 'bufferCommands', 13 | 'cloneSchemas', 14 | 'debug', 15 | 'maxTimeMS', 16 | 'objectIdGetter', 17 | 'runValidators', 18 | 'selectPopulatedPaths', 19 | 'strict', 20 | 'toJSON', 21 | 'toObject', 22 | 'useCreateIndex', 23 | 'useFindAndModify', 24 | 'useNewUrlParser', 25 | 'usePushEach', 26 | 'useUnifiedTopology' 27 | ]); 28 | 29 | module.exports = VALID_OPTIONS; -------------------------------------------------------------------------------- /api/node_modules/mongoose/tools/auth.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Server = require('mongodb-topology-manager').Server; 4 | const co = require('co'); 5 | const mongodb = require('mongodb'); 6 | 7 | co(function*() { 8 | // Create new instance 9 | var server = new Server('mongod', { 10 | auth: null, 11 | dbpath: '/data/db/27017' 12 | }); 13 | 14 | // Purge the directory 15 | yield server.purge(); 16 | 17 | // Start process 18 | yield server.start(); 19 | 20 | const db = yield mongodb.MongoClient.connect('mongodb://localhost:27017/admin'); 21 | 22 | yield db.addUser('passwordIsTaco', 'taco', { 23 | roles: ['dbOwner'] 24 | }); 25 | 26 | console.log('done'); 27 | }).catch(error => { 28 | console.error(error); 29 | process.exit(-1); 30 | }); 31 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/webpack.base.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | module: { 5 | rules: [ 6 | { 7 | test: /\.js$/, 8 | include: [ 9 | /\/mongoose\//i, 10 | /\/kareem\//i, 11 | ], 12 | loader: 'babel-loader', 13 | options: { 14 | presets: ['es2015'] 15 | } 16 | } 17 | ] 18 | }, 19 | node: { 20 | // Replace these Node.js native modules with empty objects, Mongoose's 21 | // browser library does not use them. 22 | // See https://webpack.js.org/configuration/node/ 23 | dns: 'empty', 24 | fs: 'empty', 25 | module: 'empty', 26 | net: 'empty', 27 | tls: 'empty', 28 | }, 29 | target: 'web', 30 | mode: 'production', 31 | }; 32 | 33 | 34 | -------------------------------------------------------------------------------- /api/node_modules/mongoose/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const paths = require('path'); 4 | 5 | const base = require('./webpack.base.config.js'); 6 | 7 | const webpackConfig = Object.assign({}, base, { 8 | entry: require.resolve('./browser.js'), 9 | output: { 10 | filename: './dist/browser.umd.js', 11 | path: paths.resolve(__dirname, ''), 12 | library: 'mongoose', 13 | libraryTarget: 'umd', 14 | // override default 'window' globalObject so browser build will work in SSR environments 15 | // may become unnecessary in webpack 5 16 | globalObject: 'typeof self !== \'undefined\' ? self : this', 17 | }, 18 | externals: [ 19 | /^node_modules\/.+$/ 20 | ], 21 | }); 22 | 23 | module.exports = webpackConfig; 24 | 25 | -------------------------------------------------------------------------------- /api/node_modules/mpath/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "4" 4 | - "5" 5 | - "6" 6 | - "7" 7 | - "8" 8 | - "9" 9 | - "10" 10 | -------------------------------------------------------------------------------- /api/node_modules/mpath/Makefile: -------------------------------------------------------------------------------- 1 | bench: 2 | node bench.js 3 | 4 | .PHONY: test 5 | -------------------------------------------------------------------------------- /api/node_modules/mpath/bench.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/mpath/bench.log -------------------------------------------------------------------------------- /api/node_modules/mpath/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mpath", 3 | "version": "0.2.1", 4 | "main": "lib/index.js", 5 | "scripts": [ 6 | "lib/index.js" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /api/node_modules/mpath/index.js: -------------------------------------------------------------------------------- 1 | module.exports = exports = require('./lib'); 2 | -------------------------------------------------------------------------------- /api/node_modules/mquery/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ -------------------------------------------------------------------------------- /api/node_modules/mquery/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | - "10" 5 | - "12" 6 | matrix: 7 | include: 8 | - node_js: "13" 9 | env: "NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly" 10 | allow_failures: 11 | # Allow the nightly installs to fail 12 | - env: "NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly" 13 | script: 14 | - npm test 15 | - npm run lint 16 | services: 17 | - mongodb 18 | -------------------------------------------------------------------------------- /api/node_modules/mquery/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @NODE_ENV=test ./node_modules/.bin/mocha $(T) $(TESTS) 4 | 5 | test-cov: 6 | @NODE_ENV=test node \ 7 | node_modules/.bin/istanbul cover \ 8 | ./node_modules/.bin/_mocha \ 9 | -- -u exports \ 10 | 11 | open-cov: 12 | open coverage/lcov-report/index.html 13 | 14 | lint: 15 | @NODE_ENV=test node ./node_modules/eslint/bin/eslint.js . 16 | 17 | test-travis: 18 | @NODE_ENV=test node \ 19 | node_modules/.bin/istanbul cover \ 20 | ./node_modules/.bin/_mocha \ 21 | --report lcovonly \ 22 | --bail 23 | @NODE_ENV=test node \ 24 | ./node_modules/eslint/bin/eslint.js . 25 | 26 | .PHONY: test test-cov open-cov lint test-travis 27 | -------------------------------------------------------------------------------- /api/node_modules/mquery/lib/collection/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var env = require('../env'); 4 | 5 | if ('unknown' == env.type) { 6 | throw new Error('Unknown environment'); 7 | } 8 | 9 | module.exports = 10 | env.isNode ? require('./node') : 11 | env.isMongo ? require('./collection') : 12 | require('./collection'); 13 | 14 | -------------------------------------------------------------------------------- /api/node_modules/mquery/lib/env.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.isNode = 'undefined' != typeof process 4 | && 'object' == typeof module 5 | && 'object' == typeof global 6 | && 'function' == typeof Buffer 7 | && process.argv; 8 | 9 | exports.isMongo = !exports.isNode 10 | && 'function' == typeof printjson 11 | && 'function' == typeof ObjectId 12 | && 'function' == typeof rs 13 | && 'function' == typeof sh; 14 | 15 | exports.isBrowser = !exports.isNode 16 | && !exports.isMongo 17 | && 'undefined' != typeof window; 18 | 19 | exports.type = exports.isNode ? 'node' 20 | : exports.isMongo ? 'mongo' 21 | : exports.isBrowser ? 'browser' 22 | : 'unknown'; 23 | -------------------------------------------------------------------------------- /api/node_modules/mquery/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /api/node_modules/mquery/node_modules/debug/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "globals": { 7 | "chrome": true 8 | }, 9 | "rules": { 10 | "no-console": 0, 11 | "no-empty": [1, { "allowEmptyCatch": true }] 12 | }, 13 | "extends": "eslint:recommended" 14 | } 15 | -------------------------------------------------------------------------------- /api/node_modules/mquery/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 | -------------------------------------------------------------------------------- /api/node_modules/mquery/node_modules/debug/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - "4" 7 | - "6" 8 | - "8" 9 | 10 | install: 11 | - make install 12 | 13 | script: 14 | - make lint 15 | - make test 16 | 17 | matrix: 18 | include: 19 | - node_js: '8' 20 | env: BROWSER=1 21 | -------------------------------------------------------------------------------- /api/node_modules/mquery/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /api/node_modules/mquery/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 | -------------------------------------------------------------------------------- /api/node_modules/mquery/test/collection/browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/mquery/test/collection/browser.js -------------------------------------------------------------------------------- /api/node_modules/mquery/test/collection/mongo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/mquery/test/collection/mongo.js -------------------------------------------------------------------------------- /api/node_modules/mquery/test/collection/node.js: -------------------------------------------------------------------------------- 1 | 2 | var assert = require('assert'); 3 | var mongo = require('mongodb'); 4 | 5 | var uri = process.env.MQUERY_URI || 'mongodb://localhost/mquery'; 6 | var client; 7 | var db; 8 | 9 | exports.getCollection = function(cb) { 10 | mongo.MongoClient.connect(uri, function(err, _client) { 11 | assert.ifError(err); 12 | client = _client; 13 | db = client.db(); 14 | 15 | var collection = db.collection('stuff'); 16 | 17 | // clean test db before starting 18 | db.dropDatabase(function() { 19 | cb(null, collection); 20 | }); 21 | }); 22 | }; 23 | 24 | exports.dropCollection = function(cb) { 25 | db.dropDatabase(function() { 26 | client.close(cb); 27 | }); 28 | }; 29 | -------------------------------------------------------------------------------- /api/node_modules/mquery/test/env.js: -------------------------------------------------------------------------------- 1 | 2 | var env = require('../').env; 3 | 4 | console.log('environment: %s', env.type); 5 | 6 | var col; 7 | switch (env.type) { 8 | case 'node': 9 | col = require('./collection/node'); 10 | break; 11 | case 'mongo': 12 | col = require('./collection/mongo'); 13 | break; 14 | case 'browser': 15 | col = require('./collection/browser'); 16 | break; 17 | default: 18 | throw new Error('missing collection implementation for environment: ' + env.type); 19 | } 20 | 21 | module.exports = exports = col; 22 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "node-style-guide", 3 | "requireCapitalizedComments": null, 4 | "requireSpacesInAnonymousFunctionExpression": { 5 | "beforeOpeningCurlyBrace": true, 6 | "beforeOpeningRoundBrace": true 7 | }, 8 | "disallowSpacesInNamedFunctionExpression": { 9 | "beforeOpeningRoundBrace": true 10 | }, 11 | "excludeFiles": ["node_modules/**"], 12 | "disallowSpacesInFunction": null 13 | } -------------------------------------------------------------------------------- /api/node_modules/nodemon/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | "camelcase": true, 4 | "curly": true, 5 | "devel": true, 6 | "eqeqeq": true, 7 | "forin": true, 8 | "indent": 2, 9 | "noarg": true, 10 | "node": true, 11 | "quotmark": "single", 12 | "undef": true, 13 | "strict": false, 14 | "unused": true 15 | } 16 | 17 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - ~/.npm 5 | notifications: 6 | email: false 7 | node_js: 8 | - '12' 9 | - '11' 10 | - '10' 11 | - '8' 12 | before_install: 13 | - if [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" >> .npmrc; fi 14 | after_success: 15 | - npm run semantic-release 16 | branches: 17 | except: 18 | - /^v\d+\.\d+\.\d+$/ 19 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/bin/nodemon.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const cli = require('../lib/cli'); 4 | const nodemon = require('../lib/'); 5 | const options = cli.parse(process.argv); 6 | 7 | nodemon(options); 8 | 9 | const fs = require('fs'); 10 | 11 | // checks for available update and returns an instance 12 | const pkg = JSON.parse(fs.readFileSync(__dirname + '/../package.json')); 13 | 14 | if (pkg.version.indexOf('0.0.0') !== 0 && options.noUpdateNotifier !== true) { 15 | require('update-notifier')({ pkg }).notify(); 16 | } 17 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rules: { 3 | 'body-tense': [0, 'never', 0], 4 | lang: 'eng', 5 | }, 6 | extends: ['@commitlint/config-angular'], 7 | }; 8 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /api/node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/lib/monitor/signals.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SIGHUP: 1, 3 | SIGINT: 2, 4 | SIGQUIT: 3, 5 | SIGILL: 4, 6 | SIGTRAP: 5, 7 | SIGABRT: 6, 8 | SIGBUS: 7, 9 | SIGFPE: 8, 10 | SIGKILL: 9, 11 | SIGUSR1: 10, 12 | SIGSEGV: 11, 13 | SIGUSR2: 12, 14 | SIGPIPE: 13, 15 | SIGALRM: 14, 16 | SIGTERM: 15, 17 | SIGSTKFLT: 16, 18 | SIGCHLD: 17, 19 | SIGCONT: 18, 20 | SIGSTOP: 19, 21 | SIGTSTP: 20, 22 | SIGTTIN: 21, 23 | SIGTTOU: 22, 24 | SIGURG: 23, 25 | SIGXCPU: 24, 26 | SIGXFSZ: 25, 27 | SIGVTALRM: 26, 28 | SIGPROF: 27, 29 | SIGWINCH: 28, 30 | SIGIO: 29, 31 | SIGPWR: 30, 32 | SIGSYS: 31, 33 | SIGRTMIN: 35, 34 | } 35 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /api/node_modules/nodemon/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /** 4 | * Detect Electron renderer / nwjs process, which is node, but we should 5 | * treat as a browser. 6 | */ 7 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 8 | module.exports = require('./browser.js'); 9 | } else { 10 | module.exports = require('./node.js'); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /api/node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/nopt/.npmignore -------------------------------------------------------------------------------- /api/node_modules/p-finally/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = (promise, onFinally) => { 3 | onFinally = onFinally || (() => {}); 4 | 5 | return promise.then( 6 | val => new Promise(resolve => { 7 | resolve(onFinally()); 8 | }).then(() => val), 9 | err => new Promise(resolve => { 10 | resolve(onFinally()); 11 | }).then(() => { 12 | throw err; 13 | }) 14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /api/node_modules/path-key/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = opts => { 3 | opts = opts || {}; 4 | 5 | const env = opts.env || process.env; 6 | const platform = opts.platform || process.platform; 7 | 8 | if (platform !== 'win32') { 9 | return 'PATH'; 10 | } 11 | 12 | return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; 13 | }; 14 | -------------------------------------------------------------------------------- /api/node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /api/node_modules/picomatch/lib/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/picomatch/lib/.DS_Store -------------------------------------------------------------------------------- /api/node_modules/prepend-http/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (url) { 3 | if (typeof url !== 'string') { 4 | throw new TypeError('Expected a string, got ' + typeof url); 5 | } 6 | 7 | url = url.trim(); 8 | 9 | if (/^\.*\/|^(?!localhost)\w+:/.test(url)) { 10 | return url; 11 | } 12 | 13 | return url.replace(/^(?!(?:\w+:)?\/\/)/, 'http://'); 14 | }; 15 | -------------------------------------------------------------------------------- /api/node_modules/prepend-http/readme.md: -------------------------------------------------------------------------------- 1 | # prepend-http [![Build Status](https://travis-ci.org/sindresorhus/prepend-http.svg?branch=master)](https://travis-ci.org/sindresorhus/prepend-http) 2 | 3 | > Prepend `http://` to humanized URLs like `todomvc.com` and `localhost` 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save prepend-http 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const prependHttp = require('prepend-http'); 17 | 18 | prependHttp('todomvc.com'); 19 | //=> 'http://todomvc.com' 20 | 21 | prependHttp('localhost'); 22 | //=> 'http://localhost' 23 | 24 | prependHttp('http://todomvc.com'); 25 | //=> 'http://todomvc.com' 26 | ``` 27 | 28 | 29 | ## License 30 | 31 | MIT © [Sindre Sorhus](https://sindresorhus.com) 32 | -------------------------------------------------------------------------------- /api/node_modules/pseudomap/map.js: -------------------------------------------------------------------------------- 1 | if (process.env.npm_package_name === 'pseudomap' && 2 | process.env.npm_lifecycle_script === 'test') 3 | process.env.TEST_PSEUDOMAP = 'true' 4 | 5 | if (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) { 6 | module.exports = Map 7 | } else { 8 | module.exports = require('./pseudomap') 9 | } 10 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/pstree.remy/tests/fixtures/index.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | const sub = spawn( 3 | 'sh', 4 | ['-c', 'node -e "setInterval(() => console.log(`running`), 200)"'], 5 | { 6 | stdio: 'pipe', 7 | } 8 | ); 9 | -------------------------------------------------------------------------------- /api/node_modules/qs/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | max_line_length = 160 11 | 12 | [test/*] 13 | max_line_length = off 14 | 15 | [*.md] 16 | max_line_length = off 17 | 18 | [*.json] 19 | max_line_length = off 20 | 21 | [Makefile] 22 | max_line_length = off 23 | 24 | [CHANGELOG.md] 25 | indent_style = space 26 | indent_size = 2 27 | 28 | [LICENSE] 29 | indent_size = 2 30 | max_line_length = off 31 | -------------------------------------------------------------------------------- /api/node_modules/qs/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /api/node_modules/qs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "complexity": 0, 8 | "consistent-return": 1, 9 | "func-name-matching": 0, 10 | "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], 11 | "indent": [2, 4], 12 | "max-lines-per-function": [2, { "max": 150 }], 13 | "max-params": [2, 14], 14 | "max-statements": [2, 52], 15 | "multiline-comment-style": 0, 16 | "no-continue": 1, 17 | "no-magic-numbers": 0, 18 | "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], 19 | "operator-linebreak": [2, "before"], 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /api/node_modules/qs/lib/formats.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var replace = String.prototype.replace; 4 | var percentTwenties = /%20/g; 5 | 6 | module.exports = { 7 | 'default': 'RFC3986', 8 | formatters: { 9 | RFC1738: function (value) { 10 | return replace.call(value, percentTwenties, '+'); 11 | }, 12 | RFC3986: function (value) { 13 | return value; 14 | } 15 | }, 16 | RFC1738: 'RFC1738', 17 | RFC3986: 'RFC3986' 18 | }; 19 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/qs/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "consistent-return": 2, 6 | "function-paren-newline": 0, 7 | "max-lines": 0, 8 | "max-lines-per-function": 0, 9 | "max-nested-callbacks": [2, 3], 10 | "max-statements": 0, 11 | "no-buffer-constructor": 0, 12 | "no-extend-native": 0, 13 | "no-magic-numbers": 0, 14 | "object-curly-newline": 0, 15 | "sort-keys": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /api/node_modules/qs/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./parse'); 4 | 5 | require('./stringify'); 6 | 7 | require('./utils'); 8 | -------------------------------------------------------------------------------- /api/node_modules/rc/LICENSE.APACHE2: -------------------------------------------------------------------------------- 1 | Apache License, Version 2.0 2 | 3 | Copyright (c) 2011 Dominic Tarr 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | -------------------------------------------------------------------------------- /api/node_modules/rc/browser.js: -------------------------------------------------------------------------------- 1 | 2 | // when this is loaded into the browser, 3 | // just use the defaults... 4 | 5 | module.exports = function (name, defaults) { 6 | return defaults 7 | } 8 | -------------------------------------------------------------------------------- /api/node_modules/rc/cli.js: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env node 2 | var rc = require('./index') 3 | 4 | console.log(JSON.stringify(rc(process.argv[2]), false, 2)) 5 | -------------------------------------------------------------------------------- /api/node_modules/rc/test/ini.js: -------------------------------------------------------------------------------- 1 | var cc =require('../lib/utils') 2 | var INI = require('ini') 3 | var assert = require('assert') 4 | 5 | function test(obj) { 6 | 7 | var _json, _ini 8 | var json = cc.parse (_json = JSON.stringify(obj)) 9 | var ini = cc.parse (_ini = INI.stringify(obj)) 10 | console.log(_ini, _json) 11 | assert.deepEqual(json, ini) 12 | } 13 | 14 | 15 | test({hello: true}) 16 | 17 | -------------------------------------------------------------------------------- /api/node_modules/regexp-clone/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - 8 5 | - 10 6 | - 12 7 | matrix: 8 | include: 9 | - node_js: "13" 10 | env: "NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly" 11 | allow_failures: 12 | # Allow the nightly installs to fail 13 | - env: "NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly" 14 | script: "npm test" 15 | -------------------------------------------------------------------------------- /api/node_modules/regexp-clone/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.0.1 / 2013-04-17 3 | ================== 4 | 5 | * initial commit 6 | -------------------------------------------------------------------------------- /api/node_modules/regexp-clone/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha $(T) --async-only $(TESTS) 4 | 5 | .PHONY: test 6 | -------------------------------------------------------------------------------- /api/node_modules/registry-auth-token/.npmignore: -------------------------------------------------------------------------------- 1 | .editorconfig 2 | .eslintignore 3 | .eslintrc 4 | .travis.yml 5 | npm-debug.log 6 | coverage 7 | -------------------------------------------------------------------------------- /api/node_modules/registry-auth-token/base64.js: -------------------------------------------------------------------------------- 1 | const safeBuffer = require('safe-buffer').Buffer 2 | 3 | function decodeBase64 (base64) { 4 | return safeBuffer.from(base64, 'base64').toString('utf8') 5 | } 6 | 7 | function encodeBase64 (string) { 8 | return safeBuffer.from(string, 'utf8').toString('base64') 9 | } 10 | 11 | module.exports = { 12 | decodeBase64: decodeBase64, 13 | encodeBase64: encodeBase64 14 | } 15 | -------------------------------------------------------------------------------- /api/node_modules/registry-auth-token/registry-url.js: -------------------------------------------------------------------------------- 1 | module.exports = function (scope, npmrc) { 2 | var rc = npmrc || require('rc')('npm', {registry: 'https://registry.npmjs.org/'}) 3 | var url = rc[scope + ':registry'] || rc.registry 4 | return url.slice(-1) === '/' ? url : url + '/' 5 | } 6 | -------------------------------------------------------------------------------- /api/node_modules/registry-url/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (scope) { 3 | var rc = require('rc')('npm', {registry: 'https://registry.npmjs.org/'}); 4 | var url = rc[scope + ':registry'] || rc.registry; 5 | return url.slice(-1) === '/' ? url : url + '/'; 6 | }; 7 | -------------------------------------------------------------------------------- /api/node_modules/require_optional/.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 18 | .grunt 19 | 20 | # node-waf configuration 21 | .lock-wscript 22 | 23 | # Compiled binary addons (http://nodejs.org/api/addons.html) 24 | build/Release 25 | 26 | # Dependency directory 27 | node_modules 28 | 29 | # Optional npm cache directory 30 | .npm 31 | 32 | # Optional REPL history 33 | .node_repl_history 34 | -------------------------------------------------------------------------------- /api/node_modules/require_optional/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | - "0.12" 5 | - "4" 6 | - "6" 7 | - "7" 8 | - "8" 9 | sudo: false 10 | -------------------------------------------------------------------------------- /api/node_modules/require_optional/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 03-02-2016 2 | ================ 3 | * Fix dependency resolution issue when a component in peerOptionalDependencies is installed at the level of the module declaring in peerOptionalDependencies. 4 | 5 | 1.0.0 03-02-2016 6 | ================ 7 | * Initial release allowing us to optionally resolve dependencies in the package.json file under the peerOptionalDependencies tag. -------------------------------------------------------------------------------- /api/node_modules/require_optional/README.md: -------------------------------------------------------------------------------- 1 | # require_optional 2 | Work around the problem that we do not have a optionalPeerDependencies concept in node.js making it a hassle to optionally include native modules 3 | -------------------------------------------------------------------------------- /api/node_modules/require_optional/test/nestedTest/index.js: -------------------------------------------------------------------------------- 1 | var require_optional = require('../../') 2 | 3 | function findPackage(packageName) { 4 | var pkg = require_optional(packageName); 5 | return pkg; 6 | } 7 | 8 | module.exports.findPackage = findPackage 9 | -------------------------------------------------------------------------------- /api/node_modules/require_optional/test/nestedTest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nestedtest", 3 | "version": "1.0.0", 4 | "description": "A dummy package that facilitates testing that require_optional correctly walks up the module call stack", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Sebastian Hallum Clarke", 10 | "license": "ISC" 11 | } 12 | -------------------------------------------------------------------------------- /api/node_modules/resolve-from/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path'); 3 | var Module = require('module'); 4 | 5 | module.exports = function (fromDir, moduleId) { 6 | if (typeof fromDir !== 'string' || typeof moduleId !== 'string') { 7 | throw new TypeError('Expected `fromDir` and `moduleId` to be a string'); 8 | } 9 | 10 | fromDir = path.resolve(fromDir); 11 | 12 | var fromFile = path.join(fromDir, 'noop.js'); 13 | 14 | try { 15 | return Module._resolveFilename(moduleId, { 16 | id: fromFile, 17 | filename: fromFile, 18 | paths: Module._nodeModulePaths(fromDir) 19 | }); 20 | } catch (err) { 21 | return null; 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /api/node_modules/saslprep/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | -------------------------------------------------------------------------------- /api/node_modules/saslprep/.gitattributes: -------------------------------------------------------------------------------- 1 | *.mem binary 2 | -------------------------------------------------------------------------------- /api/node_modules/saslprep/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "6" 5 | - "8" 6 | - "10" 7 | - "12" 8 | 9 | before_install: 10 | - npm install -g npm@6 11 | -------------------------------------------------------------------------------- /api/node_modules/saslprep/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to the "saslprep" package will be documented in this file. 3 | 4 | ## [1.0.3] - 2019-05-01 5 | 6 | - Correctly get code points >U+FFFF ([#5](https://github.com/reklatsmasters/saslprep/pull/5)) 7 | - Fix perfomance downgrades from [#5](https://github.com/reklatsmasters/saslprep/pull/5). 8 | 9 | ## [1.0.2] - 2018-09-13 10 | 11 | - Reduced initialization time ([#3](https://github.com/reklatsmasters/saslprep/issues/3)) 12 | 13 | ## [1.0.1] - 2018-06-20 14 | 15 | - Reduced stack overhead of range creation ([#2](https://github.com/reklatsmasters/saslprep/pull/2)) 16 | 17 | ## [1.0.0] - 2017-06-21 18 | 19 | - First release 20 | -------------------------------------------------------------------------------- /api/node_modules/saslprep/code-points.mem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/saslprep/code-points.mem -------------------------------------------------------------------------------- /api/node_modules/saslprep/lib/util.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Create an array of numbers. 5 | * @param {number} from 6 | * @param {number} to 7 | * @returns {number[]} 8 | */ 9 | function range(from, to) { 10 | // TODO: make this inlined. 11 | const list = new Array(to - from + 1); 12 | 13 | for (let i = 0; i < list.length; i += 1) { 14 | list[i] = from + i; 15 | } 16 | return list; 17 | } 18 | 19 | module.exports = { 20 | range, 21 | }; 22 | -------------------------------------------------------------------------------- /api/node_modules/saslprep/test/util.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const { setFlagsFromString } = require('v8'); 4 | const { range } = require('../lib/util'); 5 | 6 | // 984 by default. 7 | setFlagsFromString('--stack_size=500'); 8 | 9 | test('should work', () => { 10 | const list = range(1, 3); 11 | expect(list).toEqual([1, 2, 3]); 12 | }); 13 | 14 | test('should work for large ranges', () => { 15 | expect(() => range(1, 1e6)).not.toThrow(); 16 | }); 17 | -------------------------------------------------------------------------------- /api/node_modules/semver-diff/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var semver = require('semver'); 3 | 4 | module.exports = function (a, b) { 5 | if (semver.gt(a, b)) { 6 | return null; 7 | } 8 | 9 | a = semver.parse(a); 10 | b = semver.parse(b); 11 | 12 | for (var key in a) { 13 | if (key === 'major' || key === 'minor' || key === 'patch') { 14 | if (a[key] !== b[key]) { 15 | return key; 16 | } 17 | } 18 | 19 | if (key === 'prerelease' || key === 'build') { 20 | if (JSON.stringify(a[key]) !== JSON.stringify(b[key])) { 21 | return key; 22 | } 23 | } 24 | } 25 | 26 | return null; 27 | }; 28 | -------------------------------------------------------------------------------- /api/node_modules/semver/range.bnf: -------------------------------------------------------------------------------- 1 | range-set ::= range ( logical-or range ) * 2 | logical-or ::= ( ' ' ) * '||' ( ' ' ) * 3 | range ::= hyphen | simple ( ' ' simple ) * | '' 4 | hyphen ::= partial ' - ' partial 5 | simple ::= primitive | partial | tilde | caret 6 | primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial 7 | partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? 8 | xr ::= 'x' | 'X' | '*' | nr 9 | nr ::= '0' | [1-9] ( [0-9] ) * 10 | tilde ::= '~' partial 11 | caret ::= '^' partial 12 | qualifier ::= ( '-' pre )? ( '+' build )? 13 | pre ::= parts 14 | build ::= parts 15 | parts ::= part ( '.' part ) * 16 | part ::= nr | [-0-9A-Za-z]+ 17 | -------------------------------------------------------------------------------- /api/node_modules/setprototypeof/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Wes Todd 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted, provided that the above 5 | copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10 | SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12 | OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /api/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /api/node_modules/setprototypeof/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint no-proto: 0 */ 3 | module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) 4 | 5 | function setProtoOf (obj, proto) { 6 | obj.__proto__ = proto 7 | return obj 8 | } 9 | 10 | function mixinProperties (obj, proto) { 11 | for (var prop in proto) { 12 | if (!obj.hasOwnProperty(prop)) { 13 | obj[prop] = proto[prop] 14 | } 15 | } 16 | return obj 17 | } 18 | -------------------------------------------------------------------------------- /api/node_modules/shebang-command/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var shebangRegex = require('shebang-regex'); 3 | 4 | module.exports = function (str) { 5 | var match = str.match(shebangRegex); 6 | 7 | if (!match) { 8 | return null; 9 | } 10 | 11 | var arr = match[0].replace(/#! ?/, '').split(' '); 12 | var bin = arr[0].split('/').pop(); 13 | var arg = arr[1]; 14 | 15 | return (bin === 'env' ? 16 | arg : 17 | bin + (arg ? ' ' + arg : '') 18 | ); 19 | }; 20 | -------------------------------------------------------------------------------- /api/node_modules/shebang-command/readme.md: -------------------------------------------------------------------------------- 1 | # shebang-command [![Build Status](https://travis-ci.org/kevva/shebang-command.svg?branch=master)](https://travis-ci.org/kevva/shebang-command) 2 | 3 | > Get the command from a shebang 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save shebang-command 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const shebangCommand = require('shebang-command'); 17 | 18 | shebangCommand('#!/usr/bin/env node'); 19 | //=> 'node' 20 | 21 | shebangCommand('#!/bin/bash'); 22 | //=> 'bash' 23 | ``` 24 | 25 | 26 | ## API 27 | 28 | ### shebangCommand(string) 29 | 30 | #### string 31 | 32 | Type: `string` 33 | 34 | String containing a shebang. 35 | 36 | 37 | ## License 38 | 39 | MIT © [Kevin Martensson](http://github.com/kevva) 40 | -------------------------------------------------------------------------------- /api/node_modules/shebang-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = /^#!.*/; 3 | -------------------------------------------------------------------------------- /api/node_modules/shebang-regex/readme.md: -------------------------------------------------------------------------------- 1 | # shebang-regex [![Build Status](https://travis-ci.org/sindresorhus/shebang-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/shebang-regex) 2 | 3 | > Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save shebang-regex 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var shebangRegex = require('shebang-regex'); 17 | var str = '#!/usr/bin/env node\nconsole.log("unicorns");'; 18 | 19 | shebangRegex.test(str); 20 | //=> true 21 | 22 | shebangRegex.exec(str)[0]; 23 | //=> '#!/usr/bin/env node' 24 | ``` 25 | 26 | 27 | ## License 28 | 29 | MIT © [Sindre Sorhus](http://sindresorhus.com) 30 | -------------------------------------------------------------------------------- /api/node_modules/sift/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"] 3 | } -------------------------------------------------------------------------------- /api/node_modules/sift/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: dYtQuNe9CVSGoA5LVadgT3lomowKzEgav -------------------------------------------------------------------------------- /api/node_modules/sift/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.10 4 | 5 | script: npm run test-coveralls 6 | 7 | notifications: 8 | email: 9 | - craig.j.condon@gmail.com 10 | 11 | branches: 12 | only: 13 | - master 14 | -------------------------------------------------------------------------------- /api/node_modules/sift/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sift", 3 | "version": "3.2.0", 4 | "authors": [ 5 | "Craig Condon " 6 | ], 7 | "description": "mongodb query style array filtering", 8 | "main": "sift.min.js", 9 | "moduleType": [], 10 | "license": "MIT", 11 | "homepage": "https://github.com/crcn/sift.js", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "benchmark", 18 | "webpack.js", 19 | "package.json" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /api/node_modules/sift/changelog.md: -------------------------------------------------------------------------------- 1 | ### 7.0.0 2 | 3 | - Remove global `*.use()` function. 4 | - converted to ES6 5 | 6 | ### 3.3.x 7 | 8 | - `$in` now uses `toString()` when evaluating objects. Fixes #116. 9 | 10 | #### 2.x 11 | 12 | - `use()` now uses a different format: 13 | 14 | ```javascript 15 | sift.use({ 16 | $operator: function(a) { 17 | return function(b) { 18 | // compare here 19 | }; 20 | } 21 | }) 22 | ``` 23 | 24 | - all operators are traversable now 25 | - fix #58. 26 | -------------------------------------------------------------------------------- /api/node_modules/sift/test/immutable-test.js: -------------------------------------------------------------------------------- 1 | import * as assert from 'assert'; 2 | import * as Immutable from 'immutable'; 3 | 4 | import sift from '..'; 5 | const ObjectID = require('bson').ObjectID; 6 | 7 | describe(__filename + '#', function() { 8 | 9 | 10 | 11 | var topic = Immutable.List([1, 2, 3, 4, 5, 6, 6, 4, 3]); 12 | 13 | 14 | var persons = Immutable.fromJS([{ person: {age: 3} }, { person: {age: 5} }, { person: {age: 8} }]); 15 | 16 | it('works with Immutable.Map in a Immutable.List', function() { 17 | assert.equal(sift({ 'person.age' : { $gt: 4 } }, persons).size, 2); 18 | assert.equal(persons.filter(sift({ 'person.age' : { $gt: 4 } })).size, 2); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /api/node_modules/sift/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "moduleResolution": "node", 5 | "module": "commonjs", 6 | "allowSyntheticDefaultImports": true 7 | } 8 | } -------------------------------------------------------------------------------- /api/node_modules/sift/webpack.config.js: -------------------------------------------------------------------------------- 1 | const {resolve} = require('path'); 2 | const fs = require('fs'); 3 | 4 | module.exports = { 5 | devtool: 'none', 6 | mode: 'production', 7 | entry: { 8 | index: [__dirname + '/lib/index.js'] 9 | }, 10 | output: { 11 | path: __dirname, 12 | library: 'sift', 13 | libraryTarget: 'umd', 14 | filename: 'sift.min.js' 15 | }, 16 | resolve: { 17 | extensions: ['.js'] 18 | }, 19 | module: { 20 | rules: [ 21 | ] 22 | } 23 | }; -------------------------------------------------------------------------------- /api/node_modules/sliced/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * An Array.prototype.slice.call(arguments) alternative 4 | * 5 | * @param {Object} args something with a length 6 | * @param {Number} slice 7 | * @param {Number} sliceEnd 8 | * @api public 9 | */ 10 | 11 | module.exports = function (args, slice, sliceEnd) { 12 | var ret = []; 13 | var len = args.length; 14 | 15 | if (0 === len) return ret; 16 | 17 | var start = slice < 0 18 | ? Math.max(0, slice + len) 19 | : slice || 0; 20 | 21 | if (sliceEnd !== undefined) { 22 | len = sliceEnd < 0 23 | ? sliceEnd + len 24 | : sliceEnd 25 | } 26 | 27 | while (len-- > start) { 28 | ret[len - start] = args[len]; 29 | } 30 | 31 | return ret; 32 | } 33 | 34 | -------------------------------------------------------------------------------- /api/node_modules/sparse-bitfield/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /api/node_modules/sparse-bitfield/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.10' 4 | - '0.12' 5 | - '4.0' 6 | - '5.0' 7 | -------------------------------------------------------------------------------- /api/node_modules/strip-ansi/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const ansiRegex = require('ansi-regex'); 3 | 4 | module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input; 5 | -------------------------------------------------------------------------------- /api/node_modules/strip-eof/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function (x) { 3 | var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt(); 4 | var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt(); 5 | 6 | if (x[x.length - 1] === lf) { 7 | x = x.slice(0, x.length - 1); 8 | } 9 | 10 | if (x[x.length - 1] === cr) { 11 | x = x.slice(0, x.length - 1); 12 | } 13 | 14 | return x; 15 | }; 16 | -------------------------------------------------------------------------------- /api/node_modules/strip-eof/readme.md: -------------------------------------------------------------------------------- 1 | # strip-eof [![Build Status](https://travis-ci.org/sindresorhus/strip-eof.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-eof) 2 | 3 | > Strip the [End-Of-File](https://en.wikipedia.org/wiki/End-of-file) (EOF) character from a string/buffer 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save strip-eof 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const stripEof = require('strip-eof'); 17 | 18 | stripEof('foo\nbar\n\n'); 19 | //=> 'foo\nbar\n' 20 | 21 | stripEof(new Buffer('foo\nbar\n\n')).toString(); 22 | //=> 'foo\nbar\n' 23 | ``` 24 | 25 | 26 | ## License 27 | 28 | MIT © [Sindre Sorhus](http://sindresorhus.com) 29 | -------------------------------------------------------------------------------- /api/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /api/node_modules/term-size/vendor/macos/term-size: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/term-size/vendor/macos/term-size -------------------------------------------------------------------------------- /api/node_modules/term-size/vendor/windows/term-size.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/api/node_modules/term-size/vendor/windows/term-size.exe -------------------------------------------------------------------------------- /api/node_modules/toidentifier/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * toidentifier 3 | * Copyright(c) 2016 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | * @public 10 | */ 11 | 12 | module.exports = toIdentifier 13 | 14 | /** 15 | * Trasform the given string into a JavaScript identifier 16 | * 17 | * @param {string} str 18 | * @returns {string} 19 | * @public 20 | */ 21 | 22 | function toIdentifier (str) { 23 | return str 24 | .split(' ') 25 | .map(function (token) { 26 | return token.slice(0, 1).toUpperCase() + token.slice(1) 27 | }) 28 | .join('') 29 | .replace(/[^ _0-9a-z]/gi, '') 30 | } 31 | -------------------------------------------------------------------------------- /api/node_modules/undefsafe/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "node-style-guide", 3 | "requireCapitalizedComments": null, 4 | "requireSpacesInAnonymousFunctionExpression": { 5 | "beforeOpeningCurlyBrace": true, 6 | "beforeOpeningRoundBrace": true 7 | }, 8 | "disallowSpacesInNamedFunctionExpression": { 9 | "beforeOpeningRoundBrace": true 10 | }, 11 | "excludeFiles": ["node_modules/**"], 12 | "disallowSpacesInFunction": null 13 | } 14 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/undefsafe/.npmignore: -------------------------------------------------------------------------------- 1 | # .npmignore file 2 | test/ 3 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/unique-string/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const cryptoRandomString = require('crypto-random-string'); 3 | 4 | module.exports = () => cryptoRandomString(32); 5 | -------------------------------------------------------------------------------- /api/node_modules/unique-string/readme.md: -------------------------------------------------------------------------------- 1 | # unique-string [![Build Status](https://travis-ci.org/sindresorhus/unique-string.svg?branch=master)](https://travis-ci.org/sindresorhus/unique-string) 2 | 3 | > Generate a unique random string 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save unique-string 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const uniqueString = require('unique-string'); 17 | 18 | uniqueString(); 19 | //=> 'b4de2a49c8ffa3fbee04446f045483b2' 20 | ``` 21 | 22 | 23 | ## API 24 | 25 | ### uniqueString() 26 | 27 | Returns a 32 character unique string. Matches the length of MD5, which is [unique enough](http://stackoverflow.com/a/2444336/64949) for non-crypto purposes. 28 | 29 | 30 | ## License 31 | 32 | MIT © [Sindre Sorhus](https://sindresorhus.com) 33 | -------------------------------------------------------------------------------- /api/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /api/node_modules/unzip-response/readme.md: -------------------------------------------------------------------------------- 1 | # unzip-response [![Build Status](https://travis-ci.org/sindresorhus/unzip-response.svg?branch=master)](https://travis-ci.org/sindresorhus/unzip-response) 2 | 3 | > Unzip a HTTP response if needed 4 | 5 | Unzips the response from [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) if it's gzipped/deflated, otherwise just passes it through. 6 | 7 | 8 | ## Install 9 | 10 | ``` 11 | $ npm install --save unzip-response 12 | ``` 13 | 14 | 15 | ## Usage 16 | 17 | ```js 18 | const http = require('http'); 19 | const unzipResponse = require('unzip-response'); 20 | 21 | http.get('http://sindresorhus.com', res => { 22 | res = unzipResponse(res); 23 | }); 24 | ``` 25 | 26 | 27 | ## License 28 | 29 | MIT © [Sindre Sorhus](https://sindresorhus.com) 30 | -------------------------------------------------------------------------------- /api/node_modules/update-notifier/check.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable unicorn/no-process-exit */ 2 | 'use strict'; 3 | let updateNotifier = require('.'); 4 | 5 | const options = JSON.parse(process.argv[2]); 6 | 7 | updateNotifier = new updateNotifier.UpdateNotifier(options); 8 | 9 | updateNotifier.checkNpm().then(update => { 10 | // Only update the last update check time on success 11 | updateNotifier.config.set('lastUpdateCheck', Date.now()); 12 | 13 | if (update.type && update.type !== 'latest') { 14 | updateNotifier.config.set('update', update); 15 | } 16 | 17 | // Call process exit explicitly to terminate the child process 18 | // Otherwise the child process will run forever, according to the Node.js docs 19 | process.exit(); 20 | }).catch(() => { 21 | process.exit(1); 22 | }); 23 | -------------------------------------------------------------------------------- /api/node_modules/url-parse-lax/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var url = require('url'); 3 | var prependHttp = require('prepend-http'); 4 | 5 | module.exports = function (x) { 6 | var withProtocol = prependHttp(x); 7 | var parsed = url.parse(withProtocol); 8 | 9 | if (withProtocol !== x) { 10 | parsed.protocol = null; 11 | } 12 | 13 | return parsed; 14 | }; 15 | -------------------------------------------------------------------------------- /api/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 | -------------------------------------------------------------------------------- /api/node_modules/utils-merge/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Merge object b with object a. 3 | * 4 | * var a = { foo: 'bar' } 5 | * , b = { bar: 'baz' }; 6 | * 7 | * merge(a, b); 8 | * // => { foo: 'bar', bar: 'baz' } 9 | * 10 | * @param {Object} a 11 | * @param {Object} b 12 | * @return {Object} 13 | * @api public 14 | */ 15 | 16 | exports = module.exports = function(a, b){ 17 | if (a && b) { 18 | for (var key in b) { 19 | a[key] = b[key]; 20 | } 21 | } 22 | return a; 23 | }; 24 | -------------------------------------------------------------------------------- /api/node_modules/widest-line/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stringWidth = require('string-width'); 3 | 4 | module.exports = input => { 5 | let max = 0; 6 | for (const s of input.split('\n')) max = Math.max(max, stringWidth(s)); 7 | return max; 8 | }; 9 | -------------------------------------------------------------------------------- /api/node_modules/write-file-atomic/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2.4.3 2 | 3 | * Ignore errors raised by `fs.closeSync` when cleaning up after a write 4 | error. 5 | 6 | # 2.4.2 7 | 8 | * A pair of patches to fix some fd leaks. We would leak fds with sync use 9 | when errors occured and with async use any time fsync was not in use. (#34) 10 | 11 | # 2.4.1 12 | 13 | * Fix a bug where `signal-exit` instances would be leaked. This was fixed when addressing #35. 14 | 15 | # 2.4.0 16 | 17 | ## Features 18 | 19 | * Allow chown and mode options to be set to false to disable the defaulting behavior. (#20) 20 | * Support passing encoding strings in options slot for compat with Node.js API. (#31) 21 | * Add support for running inside of worker threads (#37) 22 | 23 | ## Fixes 24 | 25 | * Remove unneeded call when returning success (#36) 26 | -------------------------------------------------------------------------------- /api/node_modules/write-file-atomic/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Rebecca Turner 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | 7 | -------------------------------------------------------------------------------- /api/node_modules/yallist/iterator.js: -------------------------------------------------------------------------------- 1 | var Yallist = require('./yallist.js') 2 | 3 | Yallist.prototype[Symbol.iterator] = function* () { 4 | for (let walker = this.head; walker; walker = walker.next) { 5 | yield walker.value 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /api/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cybdom-blog-api", 3 | "version": "1.0.0", 4 | "description": "Simple blog api", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "nodemon index.js" 8 | }, 9 | "author": "Cybdom", 10 | "license": "ISC", 11 | "dependencies": { 12 | "dotenv": "^8.2.0", 13 | "express": "^4.17.1", 14 | "mongoose": "^5.8.3", 15 | "nodemon": "^2.0.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /blog_app_flutter/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .flutter-plugins-dependencies 28 | .packages 29 | .pub-cache/ 30 | .pub/ 31 | /build/ 32 | 33 | # Web related 34 | lib/generated_plugin_registrant.dart 35 | 36 | # Exceptions to above rules. 37 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 38 | -------------------------------------------------------------------------------- /blog_app_flutter/README.md: -------------------------------------------------------------------------------- 1 | # blog_app_flutter 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 13 | 14 | For help getting started with Flutter, view our 15 | [online documentation](https://flutter.dev/docs), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /blog_app_flutter/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/kotlin/com/example/blog_app_flutter/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.blog_app_flutter 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.7.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 10 | } 11 | } 12 | 13 | allprojects { 14 | repositories { 15 | google() 16 | mavenCentral() 17 | } 18 | } 19 | 20 | rootProject.buildDir = '../build' 21 | subprojects { 22 | project.buildDir = "${rootProject.buildDir}/${project.name}" 23 | } 24 | subprojects { 25 | project.evaluationDependsOn(':app') 26 | } 27 | 28 | tasks.register("clean", Delete) { 29 | delete rootProject.buildDir 30 | } 31 | -------------------------------------------------------------------------------- /blog_app_flutter/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /blog_app_flutter/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip 6 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/kotlin/com/example/blog_app_flutter/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.blog_app_flutter 2 | 3 | import androidx.annotation.NonNull; 4 | import io.flutter.embedding.android.FlutterActivity 5 | import io.flutter.embedding.engine.FlutterEngine 6 | import io.flutter.plugins.GeneratedPluginRegistrant 7 | 8 | class MainActivity: FlutterActivity() { 9 | override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { 10 | GeneratedPluginRegistrant.registerWith(flutterEngine); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/androids/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/androids/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/androids/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/androids/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/androids/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /blog_app_flutter/androids/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /blog_app_flutter/assets/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/assets/loading.gif -------------------------------------------------------------------------------- /blog_app_flutter/fonts/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/fonts/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /blog_app_flutter/fonts/OpenSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/fonts/OpenSans-Light.ttf -------------------------------------------------------------------------------- /blog_app_flutter/fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /blog_app_flutter/ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /blog_app_flutter/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" -------------------------------------------------------------------------------- /blog_app_flutter/ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /blog_app_flutter/lib/global.dart: -------------------------------------------------------------------------------- 1 | enum Status{loading, done} -------------------------------------------------------------------------------- /blog_app_flutter/lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:blog_app_flutter/ui/screens/home.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | void main() => runApp(MyApp()); 5 | 6 | class MyApp extends StatelessWidget { 7 | // This widget is the root of your application. 8 | @override 9 | Widget build(BuildContext context) { 10 | return MaterialApp( 11 | debugShowCheckedModeBanner: false, 12 | title: 'Flutter Demo', 13 | theme: ThemeData( 14 | primarySwatch: Colors.blue, 15 | ), 16 | home: HomeScreen() 17 | ); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /blog_app_flutter/lib/models/category.dart: -------------------------------------------------------------------------------- 1 | class CategoryModel { 2 | final String title; 3 | 4 | CategoryModel({required this.title}); 5 | 6 | factory CategoryModel.fromJson(Map json) { 7 | return CategoryModel(title: json['title']); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /blog_app_flutter/lib/notifiers/category_notifier.dart: -------------------------------------------------------------------------------- 1 | import 'package:blog_app_flutter/global.dart'; 2 | import 'package:blog_app_flutter/models/category.dart'; 3 | import 'package:blog_app_flutter/services/api.dart'; 4 | import 'package:flutter/material.dart'; 5 | 6 | class CategoryNotifier extends ChangeNotifier { 7 | Api api = Api(); 8 | late List _categoryModel; 9 | late Status _status; 10 | 11 | Status get status => _status; 12 | List get categories => _categoryModel; 13 | 14 | getcategories() async { 15 | _status = Status.loading; 16 | _categoryModel = await api.getCategories(); 17 | _status = Status.done; 18 | notifyListeners(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /blog_app_flutter/lib/notifiers/notifiers.dart: -------------------------------------------------------------------------------- 1 | export 'category_notifier.dart'; 2 | export 'editor_notifier.dart'; 3 | export 'post_notifier.dart'; -------------------------------------------------------------------------------- /blog_app_flutter/lib/start.bat: -------------------------------------------------------------------------------- 1 | 2 | mkdir ui 3 | cd ui 4 | mkdir widgets 5 | mkdir screens 6 | cd .. 7 | mkdir models 8 | mkdir services 9 | type NUL > global.dart 10 | type NUL > ui/screens/screens.dart 11 | type NUL > ui/widgets/widgets.dart -------------------------------------------------------------------------------- /blog_app_flutter/lib/ui/screens/screens.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/lib/ui/screens/screens.dart -------------------------------------------------------------------------------- /blog_app_flutter/lib/ui/widgets/profile_column_info.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ProfileColumnInfo extends StatelessWidget { 4 | final IconData icon; 5 | final String title; 6 | final int count; 7 | 8 | const ProfileColumnInfo( 9 | {super.key, 10 | required this.icon, 11 | required this.title, 12 | required this.count}); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Column( 17 | children: [ 18 | Icon( 19 | icon, 20 | color: Colors.red, 21 | ), 22 | Text( 23 | title, 24 | style: Theme.of(context).textTheme.titleSmall, 25 | ), 26 | Text("$count times") 27 | ], 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /blog_app_flutter/lib/ui/widgets/widgets.dart: -------------------------------------------------------------------------------- 1 | export 'breakingnews.dart'; 2 | export 'categorylist.dart'; 3 | export 'homeheader.dart'; 4 | export 'postcontainer.dart'; 5 | export 'postslist.dart'; 6 | export 'profile_column_info.dart'; -------------------------------------------------------------------------------- /blog_app_flutter/linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /blog_app_flutter/linux/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void fl_register_plugins(FlPluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /blog_app_flutter/linux/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /blog_app_flutter/linux/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /blog_app_flutter/linux/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ephemeral/Flutter-Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ephemeral/Flutter-Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | 9 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 10 | } 11 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @NSApplicationMain 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = blog_app_flutter 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.blogAppFlutter 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. 15 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /blog_app_flutter/macos/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import FlutterMacOS 2 | import Cocoa 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /blog_app_flutter/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/web/favicon.png -------------------------------------------------------------------------------- /blog_app_flutter/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/web/icons/Icon-192.png -------------------------------------------------------------------------------- /blog_app_flutter/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/web/icons/Icon-512.png -------------------------------------------------------------------------------- /blog_app_flutter/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /blog_app_flutter/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /blog_app_flutter/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /blog_app_flutter/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /blog_app_flutter/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /blog_app_flutter/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /blog_app_flutter/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/blog_app_flutter/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /blog_app_flutter/windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | -------------------------------------------------------------------------------- /original_design.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/original_design.jpg -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Gaming Social APP by Cybdom 2 | 3 | Donation Links: Buy Me A Coffee! 4 | 5 | Bitcoin Address: bc1q7hvpgfw29ckxdhckvd5j3fcedgqx40vk687a0h 6 | 7 | Tutorial: Flutter Tutorials by Cybdom 8 | 9 | Result: 10 | 11 | 12 | -------------------------------------------------------------------------------- /screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/screenshot1.png -------------------------------------------------------------------------------- /screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cybdom/blog_app/c5430034d82c7b8a3f77f1cf3e75b88c0f18d13d/screenshot2.png --------------------------------------------------------------------------------