├── server ├── node_modules │ ├── mime │ │ ├── .npmignore │ │ ├── cli.js │ │ └── LICENSE │ ├── mpath │ │ ├── bench.log │ │ ├── index.js │ │ ├── Makefile │ │ ├── .travis.yml │ │ └── component.json │ ├── .bin │ │ ├── mime │ │ └── semver │ ├── qs │ │ ├── .eslintignore │ │ ├── test │ │ │ ├── index.js │ │ │ └── .eslintrc │ │ ├── lib │ │ │ ├── index.js │ │ │ └── formats.js │ │ ├── .editorconfig │ │ └── .eslintrc │ ├── mquery │ │ ├── .eslintignore │ │ ├── test │ │ │ ├── collection │ │ │ │ ├── browser.js │ │ │ │ ├── mongo.js │ │ │ │ └── node.js │ │ │ └── env.js │ │ ├── node_modules │ │ │ └── debug │ │ │ │ ├── node.js │ │ │ │ ├── .coveralls.yml │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── .eslintrc │ │ │ │ └── src │ │ │ │ └── index.js │ │ ├── lib │ │ │ ├── collection │ │ │ │ ├── index.js │ │ │ │ └── collection.js │ │ │ └── env.js │ │ ├── .travis.yml │ │ └── Makefile │ ├── saslprep │ │ ├── .gitattributes │ │ ├── code-points.mem │ │ ├── .travis.yml │ │ ├── .editorconfig │ │ ├── test │ │ │ └── util.js │ │ ├── lib │ │ │ ├── util.js │ │ │ └── memory-code-points.js │ │ ├── CHANGELOG.md │ │ └── LICENSE │ ├── sparse-bitfield │ │ ├── .npmignore │ │ ├── .travis.yml │ │ └── LICENSE │ ├── sift │ │ ├── .babelrc │ │ ├── .coveralls.yml │ │ ├── tsconfig.json │ │ ├── .travis.yml │ │ ├── changelog.md │ │ ├── webpack.config.js │ │ ├── bower.json │ │ ├── test │ │ │ └── immutable-test.js │ │ └── MIT-LICENSE.txt │ ├── debug │ │ ├── node.js │ │ ├── .coveralls.yml │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── .eslintrc │ │ ├── src │ │ │ ├── index.js │ │ │ └── inspector-log.js │ │ ├── component.json │ │ └── LICENSE │ ├── mongoose │ │ ├── lib │ │ │ ├── drivers │ │ │ │ ├── SPEC.md │ │ │ │ ├── browser │ │ │ │ │ ├── ReadPreference.js │ │ │ │ │ ├── decimal128.js │ │ │ │ │ ├── binary.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── objectid.js │ │ │ │ └── node-mongodb-native │ │ │ │ │ ├── decimal128.js │ │ │ │ │ ├── binary.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── objectid.js │ │ │ │ │ └── ReadPreference.js │ │ │ ├── helpers │ │ │ │ ├── populate │ │ │ │ │ ├── leanPopulateMap.js │ │ │ │ │ └── validateRef.js │ │ │ │ ├── schema │ │ │ │ │ ├── addAutoId.js │ │ │ │ │ ├── cleanPositionalOperators.js │ │ │ │ │ ├── handleTimestampOption.js │ │ │ │ │ ├── merge.js │ │ │ │ │ ├── handleIdOption.js │ │ │ │ │ ├── applyWriteConcern.js │ │ │ │ │ └── getPath.js │ │ │ │ ├── once.js │ │ │ │ ├── model │ │ │ │ │ └── applyStatics.js │ │ │ │ ├── immediate.js │ │ │ │ ├── printJestWarning.js │ │ │ │ ├── query │ │ │ │ │ ├── hasDollarKeys.js │ │ │ │ │ ├── applyGlobalMaxTimeMS.js │ │ │ │ │ ├── wrapThunk.js │ │ │ │ │ └── handleImmutable.js │ │ │ │ ├── each.js │ │ │ │ ├── projection │ │ │ │ │ ├── isDefiningProjection.js │ │ │ │ │ ├── isPathSelectedInclusive.js │ │ │ │ │ ├── isExclusive.js │ │ │ │ │ ├── isPathExcluded.js │ │ │ │ │ └── isInclusive.js │ │ │ │ ├── discriminator │ │ │ │ │ ├── checkEmbeddedDiscriminatorKeyProjection.js │ │ │ │ │ ├── getDiscriminatorByValue.js │ │ │ │ │ └── getConstructor.js │ │ │ │ ├── document │ │ │ │ │ └── cleanModifiedSubpaths.js │ │ │ │ ├── symbols.js │ │ │ │ ├── get.js │ │ │ │ └── update │ │ │ │ │ └── modifiedPaths.js │ │ │ ├── options │ │ │ │ ├── propertyOptions.js │ │ │ │ ├── saveOptions.js │ │ │ │ ├── removeOptions.js │ │ │ │ ├── PopulateOptions.js │ │ │ │ ├── SchemaBufferOptions.js │ │ │ │ ├── SchemaObjectIdOptions.js │ │ │ │ └── SchemaArrayOptions.js │ │ │ ├── schema │ │ │ │ ├── symbols.js │ │ │ │ ├── operators │ │ │ │ │ ├── exists.js │ │ │ │ │ ├── type.js │ │ │ │ │ ├── helpers.js │ │ │ │ │ └── bitwise.js │ │ │ │ └── index.js │ │ │ ├── driver.js │ │ │ ├── options.js │ │ │ ├── types │ │ │ │ ├── decimal128.js │ │ │ │ ├── index.js │ │ │ │ └── objectid.js │ │ │ ├── error │ │ │ │ ├── mongooseError.js │ │ │ │ ├── parallelSave.js │ │ │ │ ├── overwriteModel.js │ │ │ │ ├── timeout.js │ │ │ │ ├── browserMissingSchema.js │ │ │ │ ├── version.js │ │ │ │ ├── missingSchema.js │ │ │ │ ├── strict.js │ │ │ │ ├── objectExpected.js │ │ │ │ ├── objectParameter.js │ │ │ │ └── disconnected.js │ │ │ ├── plugins │ │ │ │ ├── idGetter.js │ │ │ │ └── removeSubdocs.js │ │ │ ├── validoptions.js │ │ │ ├── document_provider.js │ │ │ ├── connectionstate.js │ │ │ ├── cast │ │ │ │ ├── objectid.js │ │ │ │ ├── decimal128.js │ │ │ │ ├── boolean.js │ │ │ │ └── string.js │ │ │ └── promise_provider.js │ │ ├── browser.js │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── build-browser.js │ │ ├── .travis.yml │ │ ├── webpack.config.js │ │ ├── tools │ │ │ ├── auth.js │ │ │ ├── repl.js │ │ │ └── sharded.js │ │ ├── webpack.base.config.js │ │ ├── LICENSE.md │ │ └── node_modules │ │ │ └── ms │ │ │ └── license.md │ ├── cookie-signature │ │ ├── .npmignore │ │ └── History.md │ ├── memory-pager │ │ ├── .travis.yml │ │ └── LICENSE │ ├── unpipe │ │ └── HISTORY.md │ ├── mongodb │ │ └── lib │ │ │ ├── async │ │ │ ├── .eslintrc │ │ │ └── async_iterator.js │ │ │ ├── constants.js │ │ │ ├── core │ │ │ ├── wireprotocol │ │ │ │ ├── constants.js │ │ │ │ └── index.js │ │ │ ├── auth │ │ │ │ ├── x509.js │ │ │ │ ├── defaultAuthProviders.js │ │ │ │ └── plain.js │ │ │ └── connection │ │ │ │ └── command_result.js │ │ │ ├── operations │ │ │ ├── find_one_and_delete.js │ │ │ ├── is_capped.js │ │ │ ├── index_information.js │ │ │ ├── indexes.js │ │ │ ├── explain.js │ │ │ ├── drop_indexes.js │ │ │ ├── find_one_and_replace.js │ │ │ ├── find_one_and_update.js │ │ │ ├── delete_one.js │ │ │ ├── delete_many.js │ │ │ ├── re_index.js │ │ │ ├── next.js │ │ │ ├── find_one.js │ │ │ ├── update_many.js │ │ │ ├── profiling_level.js │ │ │ ├── options_operation.js │ │ │ ├── find.js │ │ │ └── list_databases.js │ │ │ ├── dynamic_loaders.js │ │ │ └── apm.js │ ├── regexp-clone │ │ ├── History.md │ │ ├── Makefile │ │ ├── .travis.yml │ │ ├── index.js │ │ └── README.md │ ├── bluebird │ │ ├── changelog.md │ │ ├── js │ │ │ └── release │ │ │ │ ├── bluebird.js │ │ │ │ ├── filter.js │ │ │ │ ├── any.js │ │ │ │ └── each.js │ │ └── LICENSE │ ├── mongoose-legacy-pluralize │ │ └── README.md │ ├── setprototypeof │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── LICENSE │ │ ├── test │ │ │ └── index.js │ │ └── README.md │ ├── utils-merge │ │ ├── .npmignore │ │ ├── index.js │ │ └── LICENSE │ ├── dotenv │ │ ├── types │ │ │ ├── tslint.json │ │ │ ├── tsconfig.json │ │ │ └── test.ts │ │ ├── config.js │ │ └── lib │ │ │ ├── cli-options.js │ │ │ └── env-options.js │ ├── kareem │ │ ├── Makefile │ │ ├── .travis.yml │ │ └── gulpfile.js │ ├── require_optional │ │ ├── .travis.yml │ │ ├── README.md │ │ ├── test │ │ │ └── nestedTest │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ ├── HISTORY.md │ │ └── .npmignore │ ├── mime-db │ │ ├── index.js │ │ └── LICENSE │ ├── inherits │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── LICENSE │ ├── express │ │ ├── index.js │ │ └── lib │ │ │ └── middleware │ │ │ ├── init.js │ │ │ └── query.js │ ├── encodeurl │ │ ├── HISTORY.md │ │ └── LICENSE │ ├── bson │ │ ├── lib │ │ │ └── bson │ │ │ │ ├── max_key.js │ │ │ │ ├── min_key.js │ │ │ │ ├── code.js │ │ │ │ ├── int_32.js │ │ │ │ ├── double.js │ │ │ │ ├── parser │ │ │ │ └── utils.js │ │ │ │ ├── db_ref.js │ │ │ │ ├── regexp.js │ │ │ │ └── symbol.js │ │ ├── browser_build │ │ │ └── package.json │ │ └── bower.json │ ├── forwarded │ │ ├── HISTORY.md │ │ └── LICENSE │ ├── depd │ │ ├── lib │ │ │ └── compat │ │ │ │ └── event-listener-count.js │ │ └── LICENSE │ ├── merge-descriptors │ │ └── HISTORY.md │ ├── content-type │ │ ├── HISTORY.md │ │ └── LICENSE │ ├── methods │ │ └── HISTORY.md │ ├── media-typer │ │ ├── HISTORY.md │ │ └── LICENSE │ ├── toidentifier │ │ └── index.js │ ├── resolve-from │ │ └── index.js │ ├── semver │ │ ├── range.bnf │ │ ├── LICENSE │ │ └── CHANGELOG.md │ ├── sliced │ │ ├── index.js │ │ └── History.md │ ├── iconv-lite │ │ ├── encodings │ │ │ └── index.js │ │ ├── lib │ │ │ └── index.d.ts │ │ └── LICENSE │ ├── path-to-regexp │ │ └── History.md │ ├── escape-html │ │ └── Readme.md │ ├── vary │ │ ├── HISTORY.md │ │ └── LICENSE │ ├── ms │ │ └── license.md │ ├── ipaddr.js │ │ └── LICENSE │ ├── safe-buffer │ │ └── LICENSE │ ├── cors │ │ ├── CONTRIBUTING.md │ │ └── LICENSE │ ├── etag │ │ └── LICENSE │ ├── send │ │ └── node_modules │ │ │ └── ms │ │ │ └── license.md │ ├── proxy-addr │ │ └── LICENSE │ ├── range-parser │ │ └── HISTORY.md │ ├── safer-buffer │ │ └── LICENSE │ ├── destroy │ │ └── LICENSE │ ├── ee-first │ │ └── LICENSE │ ├── array-flatten │ │ └── LICENSE │ └── content-disposition │ │ └── LICENSE ├── models │ ├── project.model.js │ ├── user.model.js │ └── ticket.model.js ├── package.json ├── routes │ ├── projects.js │ └── users.js └── server.js ├── src ├── assets │ └── logo.png ├── index.js └── components │ └── dashboard.component.js ├── public ├── assets │ ├── bug.png │ └── screenshots │ │ ├── ticket_system_manage_users.png │ │ ├── ticket_system_submit_ticket.png │ │ ├── ticket_system_dashboard_home.png │ │ ├── ticket_system_manage_projects.png │ │ └── ticket_system_development_usage.png └── index.html ├── .gitignore └── README.md /server/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/node_modules/mpath/bench.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | ../mime/cli.js -------------------------------------------------------------------------------- /server/node_modules/qs/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /server/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | ../semver/bin/semver -------------------------------------------------------------------------------- /server/node_modules/mquery/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ -------------------------------------------------------------------------------- /server/node_modules/mquery/test/collection/browser.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/node_modules/mquery/test/collection/mongo.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/node_modules/saslprep/.gitattributes: -------------------------------------------------------------------------------- 1 | *.mem binary 2 | -------------------------------------------------------------------------------- /server/node_modules/sparse-bitfield/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /server/node_modules/sift/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"] 3 | } -------------------------------------------------------------------------------- /server/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /server/node_modules/mpath/index.js: -------------------------------------------------------------------------------- 1 | module.exports = exports = require('./lib'); 2 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/drivers/SPEC.md: -------------------------------------------------------------------------------- 1 | 2 | # Driver Spec 3 | 4 | TODO 5 | -------------------------------------------------------------------------------- /server/node_modules/mpath/Makefile: -------------------------------------------------------------------------------- 1 | bench: 2 | node bench.js 3 | 4 | .PHONY: test 5 | -------------------------------------------------------------------------------- /server/node_modules/sift/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: dYtQuNe9CVSGoA5LVadgT3lomowKzEgav -------------------------------------------------------------------------------- /server/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /server/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /server/node_modules/mquery/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /public/assets/bug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/public/assets/bug.png -------------------------------------------------------------------------------- /server/node_modules/memory-pager/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '4' 4 | - '6' 5 | -------------------------------------------------------------------------------- /server/node_modules/mquery/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /server/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/async/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parserOptions": { 3 | "ecmaVersion": 2018 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /server/node_modules/regexp-clone/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.0.1 / 2013-04-17 3 | ================== 4 | 5 | * initial commit 6 | -------------------------------------------------------------------------------- /server/node_modules/bluebird/changelog.md: -------------------------------------------------------------------------------- 1 | [http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) 2 | -------------------------------------------------------------------------------- /server/node_modules/mongoose-legacy-pluralize/README.md: -------------------------------------------------------------------------------- 1 | # mongoose-legacy-pluralize 2 | Legacy pluralization logic for mongoose 3 | -------------------------------------------------------------------------------- /server/node_modules/regexp-clone/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha $(T) --async-only $(TESTS) 4 | 5 | .PHONY: test 6 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/node_modules/qs/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./parse'); 4 | 5 | require('./stringify'); 6 | 7 | require('./utils'); 8 | -------------------------------------------------------------------------------- /server/node_modules/saslprep/code-points.mem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/server/node_modules/saslprep/code-points.mem -------------------------------------------------------------------------------- /server/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = new WeakMap(); -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/drivers/browser/ReadPreference.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ignore 3 | */ 4 | 5 | 'use strict'; 6 | 7 | module.exports = function() {}; 8 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Export lib/mongoose 3 | * 4 | */ 5 | 6 | 'use strict'; 7 | 8 | module.exports = require('./lib/browser'); 9 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /public/assets/screenshots/ticket_system_manage_users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/public/assets/screenshots/ticket_system_manage_users.png -------------------------------------------------------------------------------- /public/assets/screenshots/ticket_system_submit_ticket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/public/assets/screenshots/ticket_system_submit_ticket.png -------------------------------------------------------------------------------- /server/node_modules/dotenv/types/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "dtslint/dtslint.json", 3 | "rules": { 4 | "strict-export-declare-modifiers": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Export lib/mongoose 4 | * 5 | */ 6 | 7 | 'use strict'; 8 | 9 | module.exports = require('./lib/'); 10 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/drivers/browser/decimal128.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ignore 3 | */ 4 | 5 | 'use strict'; 6 | 7 | module.exports = require('bson').Decimal128; 8 | -------------------------------------------------------------------------------- /public/assets/screenshots/ticket_system_dashboard_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/public/assets/screenshots/ticket_system_dashboard_home.png -------------------------------------------------------------------------------- /public/assets/screenshots/ticket_system_manage_projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/public/assets/screenshots/ticket_system_manage_projects.png -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /public/assets/screenshots/ticket_system_development_usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VectorLe/ticket-system/HEAD/public/assets/screenshots/ticket_system_development_usage.png -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import './styles.css' 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }); -------------------------------------------------------------------------------- /server/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'); -------------------------------------------------------------------------------- /server/node_modules/sift/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "moduleResolution": "node", 5 | "module": "commonjs", 6 | "allowSyntheticDefaultImports": true 7 | } 8 | } -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/models/project.model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const Schema = mongoose.Schema; 3 | 4 | // Create Schema 5 | const projectSchema = new Schema({ 6 | name: { type: String, required: true,}, 7 | }, { 8 | timestamps: true, 9 | }); 10 | 11 | const Project = mongoose.model('Project', projectSchema); 12 | 13 | module.exports = Project; 14 | -------------------------------------------------------------------------------- /server/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'); -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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. -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "cors": "^2.8.5", 13 | "dotenv": "^8.2.0", 14 | "express": "^4.17.1", 15 | "mongoose": "^5.8.3" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env 17 | .env.local 18 | .env.development.local 19 | .env.test.local 20 | .env.production.local 21 | 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | -------------------------------------------------------------------------------- /server/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 | } -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/models/user.model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const Schema = mongoose.Schema; 3 | 4 | // Create Schema 5 | const userSchema = new Schema({ 6 | name: { type: String, required: true,}, 7 | email: { type: String, required: true}, 8 | role: { type: String, required: true }, 9 | }, { 10 | timestamps: true, 11 | }); 12 | 13 | const User = mongoose.model('User', userSchema); 14 | 15 | module.exports = User; 16 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | } -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | } -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ticket System 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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; -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/models/ticket.model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const Schema = mongoose.Schema; 3 | 4 | // Create Schema 5 | const ticketSchema = new Schema({ 6 | title: { type: String, required: true }, 7 | description: { type: String, required: true }, 8 | projectName: { type: String, required: true }, 9 | assignee: { type: String, required: true}, 10 | priority: { type: String, required: true }, 11 | status: { type: String, required: true }, 12 | type: { type: String, required: true }, 13 | }, { 14 | timestamps: true, 15 | }); 16 | 17 | const Ticket = mongoose.model('Ticket', ticketSchema); 18 | 19 | module.exports = Ticket; 20 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | }; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ticket System 2 | 3 | > Ticket system application built with the MERN stack that allow teams to manage bugs, requests, and other support tickets. 4 | 5 | ![Ticket System Dashboard Home](/public/assets/screenshots/ticket_system_dashboard_home.png) 6 | ![Ticket System Submit Ticket](/public/assets/screenshots/ticket_system_submit_ticket.png) 7 | ![Ticket System Manage Users](/public/assets/screenshots/ticket_system_manage_users.png) 8 | ![Ticket System Manage Projects](/public/assets/screenshots/ticket_system_manage_projects.png) 9 | 10 | ## Built with 11 | * Mongoose.js (MongoDB): Database 12 | * Express.js: Backend framework 13 | * React.js: Frontend framework 14 | * Node.js: Runtime environment 15 | 16 | ### Author 17 | 18 | [Vector Le](https://www.vectorle.xyz) 19 | 20 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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; -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/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 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/delete_one.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const deleteCallback = require('./common_functions').deleteCallback; 5 | const removeDocuments = require('./common_functions').removeDocuments; 6 | 7 | class DeleteOneOperation extends OperationBase { 8 | constructor(collection, filter, options) { 9 | super(options); 10 | 11 | this.collection = collection; 12 | this.filter = filter; 13 | } 14 | 15 | execute(callback) { 16 | const coll = this.collection; 17 | const filter = this.filter; 18 | const options = this.options; 19 | 20 | options.single = true; 21 | removeDocuments(coll, filter, options, (err, r) => deleteCallback(err, r, callback)); 22 | } 23 | } 24 | 25 | module.exports = DeleteOneOperation; 26 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ignore 5 | */ 6 | 7 | module.exports = function cleanModifiedSubpaths(doc, path, options) { 8 | options = options || {}; 9 | const skipDocArrays = options.skipDocArrays; 10 | 11 | let deleted = 0; 12 | if (!doc) { 13 | return deleted; 14 | } 15 | for (const modifiedPath of Object.keys(doc.$__.activePaths.states.modify)) { 16 | if (skipDocArrays) { 17 | const schemaType = doc.schema.path(modifiedPath); 18 | if (schemaType && schemaType.$isMongooseDocumentArray) { 19 | continue; 20 | } 21 | } 22 | if (modifiedPath.startsWith(path + '.')) { 23 | delete doc.$__.activePaths.states.modify[modifiedPath]; 24 | ++deleted; 25 | } 26 | } 27 | return deleted; 28 | }; 29 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/query/handleImmutable.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const StrictModeError = require('../../error/strict'); 4 | 5 | module.exports = function handleImmutable(schematype, strict, obj, key, fullPath, ctx) { 6 | if (schematype == null || !schematype.options || !schematype.options.immutable) { 7 | return false; 8 | } 9 | let immutable = schematype.options.immutable; 10 | 11 | if (typeof immutable === 'function') { 12 | immutable = immutable.call(ctx, ctx); 13 | } 14 | if (!immutable) { 15 | return false; 16 | } 17 | 18 | if (strict === false) { 19 | return false; 20 | } 21 | if (strict === 'throw') { 22 | throw new StrictModeError(null, 23 | `Field ${fullPath} is immutable and strict = 'throw'`); 24 | } 25 | delete obj[key]; 26 | return true; 27 | }; 28 | -------------------------------------------------------------------------------- /server/node_modules/setprototypeof/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint-env mocha */ 3 | /* eslint no-proto: 0 */ 4 | var assert = require('assert') 5 | var setPrototypeOf = require('..') 6 | 7 | describe('setProtoOf(obj, proto)', function () { 8 | it('should merge objects', function () { 9 | var obj = { a: 1, b: 2 } 10 | var proto = { b: 3, c: 4 } 11 | var mergeObj = setPrototypeOf(obj, proto) 12 | 13 | if (Object.getPrototypeOf) { 14 | assert.strictEqual(Object.getPrototypeOf(obj), proto) 15 | } else if ({ __proto__: [] } instanceof Array) { 16 | assert.strictEqual(obj.__proto__, proto) 17 | } else { 18 | assert.strictEqual(obj.a, 1) 19 | assert.strictEqual(obj.b, 2) 20 | assert.strictEqual(obj.c, 4) 21 | } 22 | assert.strictEqual(mergeObj, obj) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /server/node_modules/inherits/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 10 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 11 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 12 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 14 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 | PERFORMANCE OF THIS SOFTWARE. 16 | 17 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/delete_many.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const deleteCallback = require('./common_functions').deleteCallback; 5 | const removeDocuments = require('./common_functions').removeDocuments; 6 | 7 | class DeleteManyOperation extends OperationBase { 8 | constructor(collection, filter, options) { 9 | super(options); 10 | 11 | this.collection = collection; 12 | this.filter = filter; 13 | } 14 | 15 | execute(callback) { 16 | const coll = this.collection; 17 | const filter = this.filter; 18 | const options = this.options; 19 | 20 | options.single = false; 21 | removeDocuments(coll, filter, options, (err, r) => deleteCallback(err, r, callback)); 22 | } 23 | } 24 | 25 | module.exports = DeleteManyOperation; 26 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/re_index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const CommandOperation = require('./command'); 4 | const handleCallback = require('../utils').handleCallback; 5 | 6 | class ReIndexOperation extends CommandOperation { 7 | constructor(collection, options) { 8 | super(collection.s.db, options, collection); 9 | } 10 | 11 | _buildCommand() { 12 | const collection = this.collection; 13 | 14 | const cmd = { reIndex: collection.collectionName }; 15 | 16 | return cmd; 17 | } 18 | 19 | execute(callback) { 20 | super.execute((err, result) => { 21 | if (callback == null) return; 22 | if (err) return handleCallback(callback, err, null); 23 | handleCallback(callback, null, result.ok ? true : false); 24 | }); 25 | } 26 | } 27 | 28 | module.exports = ReIndexOperation; 29 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/symbols.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.arrayAtomicsSymbol = Symbol('mongoose#Array#_atomics'); 4 | exports.arrayParentSymbol = Symbol('mongoose#Array#_parent'); 5 | exports.arrayPathSymbol = Symbol('mongoose#Array#_path'); 6 | exports.arraySchemaSymbol = Symbol('mongoose#Array#_schema'); 7 | exports.documentArrayParent = Symbol('mongoose:documentArrayParent'); 8 | exports.documentSchemaSymbol = Symbol('mongoose#Document#schema'); 9 | exports.getSymbol = Symbol('mongoose#Document#get'); 10 | exports.modelSymbol = Symbol('mongoose#Model'); 11 | exports.objectIdSymbol = Symbol('mongoose#ObjectId'); 12 | exports.populateModelSymbol = Symbol('mongoose.PopulateOptions#Model'); 13 | exports.schemaTypeSymbol = Symbol('mongoose#schemaType'); 14 | exports.validatorErrorSymbol = Symbol('mongoose:validatorError'); -------------------------------------------------------------------------------- /server/node_modules/iconv-lite/encodings/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Update this array if you add/rename/remove files in this directory. 4 | // We support Browserify by skipping automatic module discovery and requiring modules directly. 5 | var modules = [ 6 | require("./internal"), 7 | require("./utf16"), 8 | require("./utf7"), 9 | require("./sbcs-codec"), 10 | require("./sbcs-data"), 11 | require("./sbcs-data-generated"), 12 | require("./dbcs-codec"), 13 | require("./dbcs-data"), 14 | ]; 15 | 16 | // Put all encoding/alias/codec definitions to single object and export it. 17 | for (var i = 0; i < modules.length; i++) { 18 | var module = modules[i]; 19 | for (var enc in module) 20 | if (Object.prototype.hasOwnProperty.call(module, enc)) 21 | exports[enc] = module[enc]; 22 | } 23 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/schema/operators/bitwise.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module requirements. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const CastError = require('../../error/cast'); 8 | 9 | /*! 10 | * ignore 11 | */ 12 | 13 | function handleBitwiseOperator(val) { 14 | const _this = this; 15 | if (Array.isArray(val)) { 16 | return val.map(function(v) { 17 | return _castNumber(_this.path, v); 18 | }); 19 | } else if (Buffer.isBuffer(val)) { 20 | return val; 21 | } 22 | // Assume trying to cast to number 23 | return _castNumber(_this.path, val); 24 | } 25 | 26 | /*! 27 | * ignore 28 | */ 29 | 30 | function _castNumber(path, num) { 31 | const v = Number(num); 32 | if (isNaN(v)) { 33 | throw new CastError('number', num, path); 34 | } 35 | return v; 36 | } 37 | 38 | module.exports = handleBitwiseOperator; 39 | -------------------------------------------------------------------------------- /server/node_modules/regexp-clone/index.js: -------------------------------------------------------------------------------- 1 | 2 | const toString = Object.prototype.toString; 3 | 4 | function isRegExp (o) { 5 | return 'object' == typeof o 6 | && '[object RegExp]' == toString.call(o); 7 | } 8 | 9 | module.exports = exports = function (regexp) { 10 | if (!isRegExp(regexp)) { 11 | throw new TypeError('Not a RegExp'); 12 | } 13 | 14 | const flags = []; 15 | if (regexp.global) flags.push('g'); 16 | if (regexp.multiline) flags.push('m'); 17 | if (regexp.ignoreCase) flags.push('i'); 18 | if (regexp.dotAll) flags.push('s'); 19 | if (regexp.unicode) flags.push('u'); 20 | if (regexp.sticky) flags.push('y'); 21 | const result = new RegExp(regexp.source, flags.join('')); 22 | if (typeof regexp.lastIndex === 'number') { 23 | result.lastIndex = regexp.lastIndex; 24 | } 25 | return result; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /server/node_modules/semver/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/async/async_iterator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // async function* asyncIterator() { 4 | // while (true) { 5 | // const value = await this.next(); 6 | // if (!value) { 7 | // await this.close(); 8 | // return; 9 | // } 10 | 11 | // yield value; 12 | // } 13 | // } 14 | 15 | // TODO: change this to the async generator function above 16 | function asyncIterator() { 17 | const cursor = this; 18 | 19 | return { 20 | next: function() { 21 | return Promise.resolve() 22 | .then(() => cursor.next()) 23 | .then(value => { 24 | if (!value) { 25 | return cursor.close().then(() => ({ value, done: true })); 26 | } 27 | return { value, done: false }; 28 | }); 29 | } 30 | }; 31 | } 32 | 33 | exports.asyncIterator = asyncIterator; 34 | -------------------------------------------------------------------------------- /server/node_modules/bson/lib/bson/parser/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Normalizes our expected stringified form of a function across versions of node 5 | * @param {Function} fn The function to stringify 6 | */ 7 | function normalizedFunctionString(fn) { 8 | return fn.toString().replace(/function *\(/, 'function ('); 9 | } 10 | 11 | function newBuffer(item, encoding) { 12 | return new Buffer(item, encoding); 13 | } 14 | 15 | function allocBuffer() { 16 | return Buffer.alloc.apply(Buffer, arguments); 17 | } 18 | 19 | function toBuffer() { 20 | return Buffer.from.apply(Buffer, arguments); 21 | } 22 | 23 | module.exports = { 24 | normalizedFunctionString: normalizedFunctionString, 25 | allocBuffer: typeof Buffer.alloc === 'function' ? allocBuffer : newBuffer, 26 | toBuffer: typeof Buffer.from === 'function' ? toBuffer : newBuffer 27 | }; 28 | 29 | -------------------------------------------------------------------------------- /server/node_modules/semver/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # changes log 2 | 3 | ## 5.7 4 | 5 | * Add `minVersion` method 6 | 7 | ## 5.6 8 | 9 | * Move boolean `loose` param to an options object, with 10 | backwards-compatibility protection. 11 | * Add ability to opt out of special prerelease version handling with 12 | the `includePrerelease` option flag. 13 | 14 | ## 5.5 15 | 16 | * Add version coercion capabilities 17 | 18 | ## 5.4 19 | 20 | * Add intersection checking 21 | 22 | ## 5.3 23 | 24 | * Add `minSatisfying` method 25 | 26 | ## 5.2 27 | 28 | * Add `prerelease(v)` that returns prerelease components 29 | 30 | ## 5.1 31 | 32 | * Add Backus-Naur for ranges 33 | * Remove excessively cute inspection methods 34 | 35 | ## 5.0 36 | 37 | * Remove AMD/Browserified build artifacts 38 | * Fix ltr and gtr when using the `*` range 39 | * Fix for range `*` with a prerelease identifier 40 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/overwriteModel.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Module dependencies. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | const MongooseError = require('./'); 9 | 10 | /*! 11 | * OverwriteModel Error constructor. 12 | * 13 | * @inherits MongooseError 14 | */ 15 | 16 | function OverwriteModelError(name) { 17 | MongooseError.call(this, 'Cannot overwrite `' + name + '` model once compiled.'); 18 | this.name = 'OverwriteModelError'; 19 | if (Error.captureStackTrace) { 20 | Error.captureStackTrace(this); 21 | } else { 22 | this.stack = new Error().stack; 23 | } 24 | } 25 | 26 | /*! 27 | * Inherits from MongooseError. 28 | */ 29 | 30 | OverwriteModelError.prototype = Object.create(MongooseError.prototype); 31 | OverwriteModelError.prototype.constructor = MongooseError; 32 | 33 | /*! 34 | * exports 35 | */ 36 | 37 | module.exports = OverwriteModelError; 38 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/timeout.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const MongooseError = require('./mongooseError'); 8 | 9 | /** 10 | * MongooseTimeoutError constructor 11 | * 12 | * @param {String} type 13 | * @param {String} value 14 | * @inherits MongooseError 15 | * @api private 16 | */ 17 | 18 | function MongooseTimeoutError(message) { 19 | MongooseError.call(this, message); 20 | this.name = 'MongooseTimeoutError'; 21 | if (Error.captureStackTrace) { 22 | Error.captureStackTrace(this); 23 | } else { 24 | this.stack = new Error().stack; 25 | } 26 | } 27 | 28 | /*! 29 | * Inherits from MongooseError. 30 | */ 31 | 32 | MongooseTimeoutError.prototype = Object.create(MongooseError.prototype); 33 | MongooseTimeoutError.prototype.constructor = MongooseError; 34 | 35 | module.exports = MongooseTimeoutError; 36 | -------------------------------------------------------------------------------- /server/node_modules/bson/lib/bson/db_ref.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of the BSON DBRef type. 3 | * 4 | * @class 5 | * @param {string} namespace the collection name. 6 | * @param {ObjectID} oid the reference ObjectID. 7 | * @param {string} [db] optional db name, if omitted the reference is local to the current db. 8 | * @return {DBRef} 9 | */ 10 | function DBRef(namespace, oid, db) { 11 | if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); 12 | 13 | this._bsontype = 'DBRef'; 14 | this.namespace = namespace; 15 | this.oid = oid; 16 | this.db = db; 17 | } 18 | 19 | /** 20 | * @ignore 21 | * @api private 22 | */ 23 | DBRef.prototype.toJSON = function() { 24 | return { 25 | $ref: this.namespace, 26 | $id: this.oid, 27 | $db: this.db == null ? '' : this.db 28 | }; 29 | }; 30 | 31 | module.exports = DBRef; 32 | module.exports.DBRef = DBRef; 33 | -------------------------------------------------------------------------------- /server/node_modules/path-to-regexp/History.md: -------------------------------------------------------------------------------- 1 | 0.1.7 / 2015-07-28 2 | ================== 3 | 4 | * Fixed regression with escaped round brackets and matching groups. 5 | 6 | 0.1.6 / 2015-06-19 7 | ================== 8 | 9 | * Replace `index` feature by outputting all parameters, unnamed and named. 10 | 11 | 0.1.5 / 2015-05-08 12 | ================== 13 | 14 | * Add an index property for position in match result. 15 | 16 | 0.1.4 / 2015-03-05 17 | ================== 18 | 19 | * Add license information 20 | 21 | 0.1.3 / 2014-07-06 22 | ================== 23 | 24 | * Better array support 25 | * Improved support for trailing slash in non-ending mode 26 | 27 | 0.1.0 / 2014-03-06 28 | ================== 29 | 30 | * add options.end 31 | 32 | 0.0.2 / 2013-02-10 33 | ================== 34 | 35 | * Update to match current express 36 | * add .license property to component.json 37 | -------------------------------------------------------------------------------- /server/node_modules/cookie-signature/History.md: -------------------------------------------------------------------------------- 1 | 1.0.6 / 2015-02-03 2 | ================== 3 | 4 | * use `npm test` instead of `make test` to run tests 5 | * clearer assertion messages when checking input 6 | 7 | 8 | 1.0.5 / 2014-09-05 9 | ================== 10 | 11 | * add license to package.json 12 | 13 | 1.0.4 / 2014-06-25 14 | ================== 15 | 16 | * corrected avoidance of timing attacks (thanks @tenbits!) 17 | 18 | 1.0.3 / 2014-01-28 19 | ================== 20 | 21 | * [incorrect] fix for timing attacks 22 | 23 | 1.0.2 / 2014-01-28 24 | ================== 25 | 26 | * fix missing repository warning 27 | * fix typo in test 28 | 29 | 1.0.1 / 2013-04-15 30 | ================== 31 | 32 | * Revert "Changed underlying HMAC algo. to sha512." 33 | * Revert "Fix for timing attacks on MAC verification." 34 | 35 | 0.0.1 / 2010-01-03 36 | ================== 37 | 38 | * Initial release 39 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/schema/index.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Module exports. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | exports.String = require('./string'); 9 | 10 | exports.Number = require('./number'); 11 | 12 | exports.Boolean = require('./boolean'); 13 | 14 | exports.DocumentArray = require('./documentarray'); 15 | 16 | exports.Embedded = require('./SingleNestedPath'); 17 | 18 | exports.Array = require('./array'); 19 | 20 | exports.Buffer = require('./buffer'); 21 | 22 | exports.Date = require('./date'); 23 | 24 | exports.ObjectId = require('./objectid'); 25 | 26 | exports.Mixed = require('./mixed'); 27 | 28 | exports.Decimal128 = exports.Decimal = require('./decimal128'); 29 | 30 | exports.Map = require('./map'); 31 | 32 | // alias 33 | 34 | exports.Oid = exports.ObjectId; 35 | exports.Object = exports.Mixed; 36 | exports.Bool = exports.Boolean; 37 | exports.ObjectID = exports.ObjectId; 38 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/discriminator/getConstructor.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const getDiscriminatorByValue = require('./getDiscriminatorByValue'); 4 | 5 | /*! 6 | * Find the correct constructor, taking into account discriminators 7 | */ 8 | 9 | module.exports = function getConstructor(Constructor, value) { 10 | const discriminatorKey = Constructor.schema.options.discriminatorKey; 11 | if (value != null && 12 | Constructor.discriminators && 13 | value[discriminatorKey] != null) { 14 | if (Constructor.discriminators[value[discriminatorKey]]) { 15 | Constructor = Constructor.discriminators[value[discriminatorKey]]; 16 | } else { 17 | const constructorByValue = getDiscriminatorByValue(Constructor, value[discriminatorKey]); 18 | if (constructorByValue) { 19 | Constructor = constructorByValue; 20 | } 21 | } 22 | } 23 | 24 | return Constructor; 25 | }; -------------------------------------------------------------------------------- /server/node_modules/escape-html/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # escape-html 3 | 4 | Escape string for use in HTML 5 | 6 | ## Example 7 | 8 | ```js 9 | var escape = require('escape-html'); 10 | var html = escape('foo & bar'); 11 | // -> foo & bar 12 | ``` 13 | 14 | ## Benchmark 15 | 16 | ``` 17 | $ npm run-script bench 18 | 19 | > escape-html@1.0.3 bench nodejs-escape-html 20 | > node benchmark/index.js 21 | 22 | 23 | http_parser@1.0 24 | node@0.10.33 25 | v8@3.14.5.9 26 | ares@1.9.0-DEV 27 | uv@0.10.29 28 | zlib@1.2.3 29 | modules@11 30 | openssl@1.0.1j 31 | 32 | 1 test completed. 33 | 2 tests completed. 34 | 3 tests completed. 35 | 36 | no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) 37 | single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) 38 | many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) 39 | ``` 40 | 41 | ## License 42 | 43 | MIT -------------------------------------------------------------------------------- /server/node_modules/mongoose/tools/repl.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const co = require('co'); 4 | 5 | co(function*() { 6 | var ReplSet = require('mongodb-topology-manager').ReplSet; 7 | 8 | // Create new instance 9 | var topology = new ReplSet('mongod', [{ 10 | // mongod process options 11 | options: { 12 | bind_ip: 'localhost', port: 31000, dbpath: `/data/db/31000` 13 | } 14 | }, { 15 | // mongod process options 16 | options: { 17 | bind_ip: 'localhost', port: 31001, dbpath: `/data/db/31001` 18 | } 19 | }, { 20 | // Type of node 21 | arbiterOnly: true, 22 | // mongod process options 23 | options: { 24 | bind_ip: 'localhost', port: 31002, dbpath: `/data/db/31002` 25 | } 26 | }], { 27 | replSet: 'rs' 28 | }); 29 | 30 | yield topology.start(); 31 | 32 | console.log('done'); 33 | }).catch(error => { 34 | console.error(error); 35 | process.exit(-1); 36 | }); 37 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/projection/isPathExcluded.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const isDefiningProjection = require('./isDefiningProjection'); 4 | 5 | /*! 6 | * Determines if `path` is excluded by `projection` 7 | * 8 | * @param {Object} projection 9 | * @param {string} path 10 | * @return {Boolean} 11 | */ 12 | 13 | module.exports = function isPathExcluded(projection, path) { 14 | if (path === '_id') { 15 | return projection._id === 0; 16 | } 17 | 18 | const paths = Object.keys(projection); 19 | let type = null; 20 | 21 | for (const _path of paths) { 22 | if (isDefiningProjection(projection[_path])) { 23 | type = projection[path] === 1 ? 'inclusive' : 'exclusive'; 24 | break; 25 | } 26 | } 27 | 28 | if (type === 'inclusive') { 29 | return projection[path] !== 1; 30 | } 31 | if (type === 'exclusive') { 32 | return projection[path] === 0; 33 | } 34 | return false; 35 | }; 36 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/promise_provider.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ignore 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const assert = require('assert'); 8 | const mquery = require('mquery'); 9 | 10 | /** 11 | * Helper for multiplexing promise implementations 12 | * 13 | * @api private 14 | */ 15 | 16 | const store = { 17 | _promise: null 18 | }; 19 | 20 | /** 21 | * Get the current promise constructor 22 | * 23 | * @api private 24 | */ 25 | 26 | store.get = function() { 27 | return store._promise; 28 | }; 29 | 30 | /** 31 | * Set the current promise constructor 32 | * 33 | * @api private 34 | */ 35 | 36 | store.set = function(lib) { 37 | assert.ok(typeof lib === 'function', 38 | `mongoose.Promise must be a function, got ${lib}`); 39 | store._promise = lib; 40 | mquery.Promise = lib; 41 | }; 42 | 43 | /*! 44 | * Use native promises by default 45 | */ 46 | 47 | store.set(global.Promise); 48 | 49 | module.exports = store; 50 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/core/auth/defaultAuthProviders.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const MongoCR = require('./mongocr'); 4 | const X509 = require('./x509'); 5 | const Plain = require('./plain'); 6 | const GSSAPI = require('./gssapi'); 7 | const SSPI = require('./sspi'); 8 | const ScramSHA1 = require('./scram').ScramSHA1; 9 | const ScramSHA256 = require('./scram').ScramSHA256; 10 | 11 | /** 12 | * Returns the default authentication providers. 13 | * 14 | * @param {BSON} bson Bson definition 15 | * @returns {Object} a mapping of auth names to auth types 16 | */ 17 | function defaultAuthProviders(bson) { 18 | return { 19 | mongocr: new MongoCR(bson), 20 | x509: new X509(bson), 21 | plain: new Plain(bson), 22 | gssapi: new GSSAPI(bson), 23 | sspi: new SSPI(bson), 24 | 'scram-sha-1': new ScramSHA1(bson), 25 | 'scram-sha-256': new ScramSHA256(bson) 26 | }; 27 | } 28 | 29 | module.exports = { defaultAuthProviders }; 30 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/next.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Aspect = require('./operation').Aspect; 4 | const defineAspects = require('./operation').defineAspects; 5 | const OperationBase = require('./operation').OperationBase; 6 | const nextObject = require('./common_functions').nextObject; 7 | 8 | class NextOperation extends OperationBase { 9 | constructor(cursor) { 10 | super(); 11 | 12 | this.cursor = cursor; 13 | } 14 | 15 | execute(callback) { 16 | const cursor = this.cursor; 17 | 18 | // Return the currentDoc if someone called hasNext first 19 | if (cursor.s.currentDoc) { 20 | const doc = cursor.s.currentDoc; 21 | cursor.s.currentDoc = null; 22 | return callback(null, doc); 23 | } 24 | 25 | // Return the next object 26 | nextObject(cursor, callback); 27 | } 28 | } 29 | 30 | defineAspects(NextOperation, Aspect.SKIP_SESSION); 31 | 32 | module.exports = NextOperation; 33 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/browserMissingSchema.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const MongooseError = require('./'); 8 | 9 | /*! 10 | * MissingSchema Error constructor. 11 | * 12 | * @inherits MongooseError 13 | */ 14 | 15 | function MissingSchemaError() { 16 | const msg = 'Schema hasn\'t been registered for document.\n' 17 | + 'Use mongoose.Document(name, schema)'; 18 | MongooseError.call(this, msg); 19 | this.name = 'MissingSchemaError'; 20 | if (Error.captureStackTrace) { 21 | Error.captureStackTrace(this); 22 | } else { 23 | this.stack = new Error().stack; 24 | } 25 | } 26 | 27 | /*! 28 | * Inherits from MongooseError. 29 | */ 30 | 31 | MissingSchemaError.prototype = Object.create(MongooseError.prototype); 32 | MissingSchemaError.prototype.constructor = MongooseError; 33 | 34 | /*! 35 | * exports 36 | */ 37 | 38 | module.exports = MissingSchemaError; 39 | -------------------------------------------------------------------------------- /server/node_modules/bluebird/js/release/each.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | module.exports = function(Promise, INTERNAL) { 3 | var PromiseReduce = Promise.reduce; 4 | var PromiseAll = Promise.all; 5 | 6 | function promiseAllThis() { 7 | return PromiseAll(this); 8 | } 9 | 10 | function PromiseMapSeries(promises, fn) { 11 | return PromiseReduce(promises, fn, INTERNAL, INTERNAL); 12 | } 13 | 14 | Promise.prototype.each = function (fn) { 15 | return PromiseReduce(this, fn, INTERNAL, 0) 16 | ._then(promiseAllThis, undefined, undefined, this, undefined); 17 | }; 18 | 19 | Promise.prototype.mapSeries = function (fn) { 20 | return PromiseReduce(this, fn, INTERNAL, INTERNAL); 21 | }; 22 | 23 | Promise.each = function (promises, fn) { 24 | return PromiseReduce(promises, fn, INTERNAL, 0) 25 | ._then(promiseAllThis, undefined, undefined, promises, undefined); 26 | }; 27 | 28 | Promise.mapSeries = PromiseMapSeries; 29 | }; 30 | 31 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/version.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * Module dependencies. 5 | */ 6 | 7 | const MongooseError = require('./'); 8 | 9 | /** 10 | * Version Error constructor. 11 | * 12 | * @inherits MongooseError 13 | * @api private 14 | */ 15 | 16 | function VersionError(doc, currentVersion, modifiedPaths) { 17 | const modifiedPathsStr = modifiedPaths.join(', '); 18 | MongooseError.call(this, 'No matching document found for id "' + doc._id + 19 | '" version ' + currentVersion + ' modifiedPaths "' + modifiedPathsStr + '"'); 20 | this.name = 'VersionError'; 21 | this.version = currentVersion; 22 | this.modifiedPaths = modifiedPaths; 23 | } 24 | 25 | /*! 26 | * Inherits from MongooseError. 27 | */ 28 | 29 | VersionError.prototype = Object.create(MongooseError.prototype); 30 | VersionError.prototype.constructor = MongooseError; 31 | 32 | /*! 33 | * exports 34 | */ 35 | 36 | module.exports = VersionError; 37 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/missingSchema.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Module dependencies. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | const MongooseError = require('./'); 9 | 10 | /*! 11 | * MissingSchema Error constructor. 12 | * 13 | * @inherits MongooseError 14 | */ 15 | 16 | function MissingSchemaError(name) { 17 | const msg = 'Schema hasn\'t been registered for model "' + name + '".\n' 18 | + 'Use mongoose.model(name, schema)'; 19 | MongooseError.call(this, msg); 20 | this.name = 'MissingSchemaError'; 21 | if (Error.captureStackTrace) { 22 | Error.captureStackTrace(this); 23 | } else { 24 | this.stack = new Error().stack; 25 | } 26 | } 27 | 28 | /*! 29 | * Inherits from MongooseError. 30 | */ 31 | 32 | MissingSchemaError.prototype = Object.create(MongooseError.prototype); 33 | MissingSchemaError.prototype.constructor = MongooseError; 34 | 35 | /*! 36 | * exports 37 | */ 38 | 39 | module.exports = MissingSchemaError; 40 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/options/SchemaBufferOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const SchemaTypeOptions = require('./SchemaTypeOptions'); 4 | 5 | /** 6 | * The options defined on a Buffer schematype. 7 | * 8 | * ####Example: 9 | * 10 | * const schema = new Schema({ bitmap: Buffer }); 11 | * schema.path('bitmap').options; // SchemaBufferOptions instance 12 | * 13 | * @api public 14 | * @inherits SchemaTypeOptions 15 | * @constructor SchemaBufferOptions 16 | */ 17 | 18 | class SchemaBufferOptions extends SchemaTypeOptions {} 19 | 20 | const opts = require('./propertyOptions'); 21 | 22 | /** 23 | * Set the default subtype for this buffer. 24 | * 25 | * @api public 26 | * @property subtype 27 | * @memberOf SchemaBufferOptions 28 | * @type Number 29 | * @instance 30 | */ 31 | 32 | Object.defineProperty(SchemaBufferOptions.prototype, 'subtype', opts); 33 | 34 | /*! 35 | * ignore 36 | */ 37 | 38 | module.exports = SchemaBufferOptions; -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/find_one.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const handleCallback = require('../utils').handleCallback; 4 | const OperationBase = require('./operation').OperationBase; 5 | const toError = require('../utils').toError; 6 | 7 | class FindOneOperation extends OperationBase { 8 | constructor(collection, query, options) { 9 | super(options); 10 | 11 | this.collection = collection; 12 | this.query = query; 13 | } 14 | 15 | execute(callback) { 16 | const coll = this.collection; 17 | const query = this.query; 18 | const options = this.options; 19 | 20 | const cursor = coll 21 | .find(query, options) 22 | .limit(-1) 23 | .batchSize(1); 24 | 25 | // Return the item 26 | cursor.next((err, item) => { 27 | if (err != null) return handleCallback(callback, toError(err), null); 28 | handleCallback(callback, null, item); 29 | }); 30 | } 31 | } 32 | 33 | module.exports = FindOneOperation; 34 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/projection/isInclusive.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const isDefiningProjection = require('./isDefiningProjection'); 4 | 5 | /*! 6 | * ignore 7 | */ 8 | 9 | module.exports = function isInclusive(projection) { 10 | if (projection == null) { 11 | return false; 12 | } 13 | 14 | const props = Object.keys(projection); 15 | const numProps = props.length; 16 | if (numProps === 0) { 17 | return false; 18 | } 19 | 20 | for (let i = 0; i < numProps; ++i) { 21 | const prop = props[i]; 22 | // Plus paths can't define the projection (see gh-7050) 23 | if (prop.startsWith('+')) { 24 | continue; 25 | } 26 | // If field is truthy (1, true, etc.) and not an object, then this 27 | // projection must be inclusive. If object, assume its $meta, $slice, etc. 28 | if (isDefiningProjection(projection[prop]) && !!projection[prop]) { 29 | return true; 30 | } 31 | } 32 | 33 | return false; 34 | }; 35 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/update_many.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const updateCallback = require('./common_functions').updateCallback; 5 | const updateDocuments = require('./common_functions').updateDocuments; 6 | 7 | class UpdateManyOperation extends OperationBase { 8 | constructor(collection, filter, update, options) { 9 | super(options); 10 | 11 | this.collection = collection; 12 | this.filter = filter; 13 | this.update = update; 14 | } 15 | 16 | execute(callback) { 17 | const coll = this.collection; 18 | const filter = this.filter; 19 | const update = this.update; 20 | const options = this.options; 21 | 22 | // Set single document update 23 | options.multi = true; 24 | // Execute update 25 | updateDocuments(coll, filter, update, options, (err, r) => updateCallback(err, r, callback)); 26 | } 27 | } 28 | 29 | module.exports = UpdateManyOperation; 30 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/get.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * Simplified lodash.get to work around the annoying null quirk. See: 5 | * https://github.com/lodash/lodash/issues/3659 6 | */ 7 | 8 | module.exports = function get(obj, path, def) { 9 | const parts = path.split('.'); 10 | let rest = path; 11 | let cur = obj; 12 | for (const part of parts) { 13 | if (cur == null) { 14 | return def; 15 | } 16 | 17 | // `lib/cast.js` depends on being able to get dotted paths in updates, 18 | // like `{ $set: { 'a.b': 42 } }` 19 | if (cur[rest] != null) { 20 | return cur[rest]; 21 | } 22 | 23 | cur = getProperty(cur, part); 24 | 25 | rest = rest.substr(part.length + 1); 26 | } 27 | 28 | return cur == null ? def : cur; 29 | }; 30 | 31 | function getProperty(obj, prop) { 32 | if (obj == null) { 33 | return obj; 34 | } 35 | if (obj instanceof Map) { 36 | return obj.get(prop); 37 | } 38 | return obj[prop]; 39 | } -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/schema/getPath.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * Behaves like `Schema#path()`, except for it also digs into arrays without 5 | * needing to put `.0.`, so `getPath(schema, 'docArr.elProp')` works. 6 | */ 7 | 8 | module.exports = function getPath(schema, path) { 9 | let schematype = schema.path(path); 10 | if (schematype != null) { 11 | return schematype; 12 | } 13 | 14 | const pieces = path.split('.'); 15 | let cur = ''; 16 | let isArray = false; 17 | 18 | for (const piece of pieces) { 19 | if (/^\d+$/.test(piece) && isArray) { 20 | continue; 21 | } 22 | cur = cur.length === 0 ? piece : cur + '.' + piece; 23 | 24 | schematype = schema.path(cur); 25 | if (schematype != null && schematype.schema) { 26 | schema = schematype.schema; 27 | cur = ''; 28 | if (schematype.$isMongooseDocumentArray) { 29 | isArray = true; 30 | } 31 | } 32 | } 33 | 34 | return schematype; 35 | }; -------------------------------------------------------------------------------- /server/node_modules/vary/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.2 / 2017-09-23 2 | ================== 3 | 4 | * perf: improve header token parsing speed 5 | 6 | 1.1.1 / 2017-03-20 7 | ================== 8 | 9 | * perf: hoist regular expression 10 | 11 | 1.1.0 / 2015-09-29 12 | ================== 13 | 14 | * Only accept valid field names in the `field` argument 15 | - Ensures the resulting string is a valid HTTP header value 16 | 17 | 1.0.1 / 2015-07-08 18 | ================== 19 | 20 | * Fix setting empty header from empty `field` 21 | * perf: enable strict mode 22 | * perf: remove argument reassignments 23 | 24 | 1.0.0 / 2014-08-10 25 | ================== 26 | 27 | * Accept valid `Vary` header string as `field` 28 | * Add `vary.append` for low-level string manipulation 29 | * Move to `jshttp` orgainzation 30 | 31 | 0.1.0 / 2014-06-05 32 | ================== 33 | 34 | * Support array of fields to set 35 | 36 | 0.0.0 / 2014-06-04 37 | ================== 38 | 39 | * Initial release 40 | -------------------------------------------------------------------------------- /server/routes/projects.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | 3 | // Project Model 4 | const Project = require('../models/project.model'); 5 | 6 | // CREATE 7 | router.route('/create').post((req, res) => { 8 | const name = req.body.name; 9 | 10 | const newProject = new Project({ 11 | name, 12 | }); 13 | 14 | newProject.save() 15 | .then(() => res.json('Project successfully created!')) 16 | .catch(err => res.status(400).json('Error: ' + err)); 17 | }); 18 | 19 | // READ 20 | router.route('/').get((req, res) => { 21 | Project.find() 22 | .then(projects => res.json(projects)) 23 | .catch(err => res.status(400).json('Error: ' + err)); 24 | }); 25 | 26 | // DELETE 27 | router.route('/:id').delete((req,res) => { 28 | Project.findByIdAndDelete(req.params.id) 29 | .then(ticket => res.json('Project deleted.')) 30 | .catch(err => res.status(400).json('Error: ' + err)); 31 | }); 32 | 33 | module.exports = router; 34 | 35 | -------------------------------------------------------------------------------- /server/node_modules/bson/lib/bson/regexp.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A class representation of the BSON RegExp type. 3 | * 4 | * @class 5 | * @return {BSONRegExp} A MinKey instance 6 | */ 7 | function BSONRegExp(pattern, options) { 8 | if (!(this instanceof BSONRegExp)) return new BSONRegExp(); 9 | 10 | // Execute 11 | this._bsontype = 'BSONRegExp'; 12 | this.pattern = pattern || ''; 13 | this.options = options || ''; 14 | 15 | // Validate options 16 | for (var i = 0; i < this.options.length; i++) { 17 | if ( 18 | !( 19 | this.options[i] === 'i' || 20 | this.options[i] === 'm' || 21 | this.options[i] === 'x' || 22 | this.options[i] === 'l' || 23 | this.options[i] === 's' || 24 | this.options[i] === 'u' 25 | ) 26 | ) { 27 | throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); 28 | } 29 | } 30 | } 31 | 32 | module.exports = BSONRegExp; 33 | module.exports.BSONRegExp = BSONRegExp; 34 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/options/SchemaObjectIdOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const SchemaTypeOptions = require('./SchemaTypeOptions'); 4 | 5 | /** 6 | * The options defined on an ObjectId schematype. 7 | * 8 | * ####Example: 9 | * 10 | * const schema = new Schema({ testId: mongoose.ObjectId }); 11 | * schema.path('testId').options; // SchemaObjectIdOptions instance 12 | * 13 | * @api public 14 | * @inherits SchemaTypeOptions 15 | * @constructor SchemaObjectIdOptions 16 | */ 17 | 18 | class SchemaObjectIdOptions extends SchemaTypeOptions {} 19 | 20 | const opts = require('./propertyOptions'); 21 | 22 | /** 23 | * If truthy, uses Mongoose's default built-in ObjectId path. 24 | * 25 | * @api public 26 | * @property auto 27 | * @memberOf SchemaObjectIdOptions 28 | * @type Boolean 29 | * @instance 30 | */ 31 | 32 | Object.defineProperty(SchemaObjectIdOptions.prototype, 'auto', opts); 33 | 34 | /*! 35 | * ignore 36 | */ 37 | 38 | module.exports = SchemaObjectIdOptions; -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/profiling_level.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const CommandOperation = require('./command'); 4 | 5 | class ProfilingLevelOperation extends CommandOperation { 6 | constructor(db, command, options) { 7 | super(db, options); 8 | } 9 | 10 | _buildCommand() { 11 | const command = { profile: -1 }; 12 | 13 | return command; 14 | } 15 | 16 | execute(callback) { 17 | super.execute((err, doc) => { 18 | if (err == null && doc.ok === 1) { 19 | const was = doc.was; 20 | if (was === 0) return callback(null, 'off'); 21 | if (was === 1) return callback(null, 'slow_only'); 22 | if (was === 2) return callback(null, 'all'); 23 | return callback(new Error('Error: illegal profiling level value ' + was), null); 24 | } else { 25 | err != null ? callback(err, null) : callback(new Error('Error with profile command'), null); 26 | } 27 | }); 28 | } 29 | } 30 | 31 | module.exports = ProfilingLevelOperation; 32 | -------------------------------------------------------------------------------- /server/node_modules/setprototypeof/README.md: -------------------------------------------------------------------------------- 1 | # Polyfill for `Object.setPrototypeOf` 2 | 3 | [![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) 4 | [![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) 5 | [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard) 6 | 7 | A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. 8 | 9 | ## Usage: 10 | 11 | ``` 12 | $ npm install --save setprototypeof 13 | ``` 14 | 15 | ```javascript 16 | var setPrototypeOf = require('setprototypeof') 17 | 18 | var obj = {} 19 | setPrototypeOf(obj, { 20 | foo: function () { 21 | return 'bar' 22 | } 23 | }) 24 | obj.foo() // bar 25 | ``` 26 | 27 | TypeScript is also supported: 28 | 29 | ```typescript 30 | import setPrototypeOf = require('setprototypeof') 31 | ``` 32 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/cast/decimal128.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Decimal128Type = require('../types/decimal128'); 4 | const assert = require('assert'); 5 | 6 | module.exports = function castDecimal128(value) { 7 | if (value == null) { 8 | return value; 9 | } 10 | 11 | if (typeof value === 'object' && typeof value.$numberDecimal === 'string') { 12 | return Decimal128Type.fromString(value.$numberDecimal); 13 | } 14 | 15 | if (value instanceof Decimal128Type) { 16 | return value; 17 | } 18 | 19 | if (typeof value === 'string') { 20 | return Decimal128Type.fromString(value); 21 | } 22 | 23 | if (Buffer.isBuffer(value)) { 24 | return new Decimal128Type(value); 25 | } 26 | 27 | if (typeof value === 'number') { 28 | return Decimal128Type.fromString(String(value)); 29 | } 30 | 31 | if (typeof value.valueOf === 'function' && typeof value.valueOf() === 'string') { 32 | return Decimal128Type.fromString(value.valueOf()); 33 | } 34 | 35 | assert.ok(false); 36 | }; -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/cast/boolean.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const CastError = require('../error/cast'); 4 | 5 | /*! 6 | * Given a value, cast it to a boolean, or throw a `CastError` if the value 7 | * cannot be casted. `null` and `undefined` are considered valid. 8 | * 9 | * @param {Any} value 10 | * @param {String} [path] optional the path to set on the CastError 11 | * @return {Boolean|null|undefined} 12 | * @throws {CastError} if `value` is not one of the allowed values 13 | * @api private 14 | */ 15 | 16 | module.exports = function castBoolean(value, path) { 17 | if (value == null) { 18 | return value; 19 | } 20 | 21 | if (module.exports.convertToTrue.has(value)) { 22 | return true; 23 | } 24 | if (module.exports.convertToFalse.has(value)) { 25 | return false; 26 | } 27 | throw new CastError('boolean', value, path); 28 | }; 29 | 30 | module.exports.convertToTrue = new Set([true, 'true', 1, '1', 'yes']); 31 | module.exports.convertToFalse = new Set([false, 'false', 0, '0', 'no']); 32 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/strict.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const MongooseError = require('./'); 8 | 9 | /** 10 | * Strict mode error constructor 11 | * 12 | * @param {String} type 13 | * @param {String} value 14 | * @inherits MongooseError 15 | * @api private 16 | */ 17 | 18 | function StrictModeError(path, msg, immutable) { 19 | msg = msg || 'Field `' + path + '` is not in schema and strict ' + 20 | 'mode is set to throw.'; 21 | MongooseError.call(this, msg); 22 | this.name = 'StrictModeError'; 23 | this.isImmutableError = !!immutable; 24 | if (Error.captureStackTrace) { 25 | Error.captureStackTrace(this); 26 | } else { 27 | this.stack = new Error().stack; 28 | } 29 | this.path = path; 30 | } 31 | 32 | /*! 33 | * Inherits from MongooseError. 34 | */ 35 | 36 | StrictModeError.prototype = Object.create(MongooseError.prototype); 37 | StrictModeError.prototype.constructor = MongooseError; 38 | 39 | module.exports = StrictModeError; 40 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/core/connection/command_result.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Creates a new CommandResult instance 5 | * @class 6 | * @param {object} result CommandResult object 7 | * @param {Connection} connection A connection instance associated with this result 8 | * @return {CommandResult} A cursor instance 9 | */ 10 | var CommandResult = function(result, connection, message) { 11 | this.result = result; 12 | this.connection = connection; 13 | this.message = message; 14 | }; 15 | 16 | /** 17 | * Convert CommandResult to JSON 18 | * @method 19 | * @return {object} 20 | */ 21 | CommandResult.prototype.toJSON = function() { 22 | let result = Object.assign({}, this, this.result); 23 | delete result.message; 24 | return result; 25 | }; 26 | 27 | /** 28 | * Convert CommandResult to String representation 29 | * @method 30 | * @return {string} 31 | */ 32 | CommandResult.prototype.toString = function() { 33 | return JSON.stringify(this.toJSON()); 34 | }; 35 | 36 | module.exports = CommandResult; 37 | -------------------------------------------------------------------------------- /server/node_modules/mquery/lib/collection/collection.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * methods a collection must implement 5 | */ 6 | 7 | var methods = [ 8 | 'find', 9 | 'findOne', 10 | 'update', 11 | 'updateMany', 12 | 'updateOne', 13 | 'replaceOne', 14 | 'remove', 15 | 'count', 16 | 'distinct', 17 | 'findAndModify', 18 | 'aggregate', 19 | 'findStream', 20 | 'deleteOne', 21 | 'deleteMany' 22 | ]; 23 | 24 | /** 25 | * Collection base class from which implementations inherit 26 | */ 27 | 28 | function Collection() {} 29 | 30 | for (var i = 0, len = methods.length; i < len; ++i) { 31 | var method = methods[i]; 32 | Collection.prototype[method] = notImplemented(method); 33 | } 34 | 35 | module.exports = exports = Collection; 36 | Collection.methods = methods; 37 | 38 | /** 39 | * creates a function which throws an implementation error 40 | */ 41 | 42 | function notImplemented(method) { 43 | return function() { 44 | throw new Error('collection.' + method + ' not implemented'); 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/helpers/update/modifiedPaths.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const _modifiedPaths = require('../common').modifiedPaths; 4 | 5 | /** 6 | * Given an update document with potential update operators (`$set`, etc.) 7 | * returns an object whose keys are the directly modified paths. 8 | * 9 | * If there are any top-level keys that don't start with `$`, we assume those 10 | * will get wrapped in a `$set`. The Mongoose Query is responsible for wrapping 11 | * top-level keys in `$set`. 12 | * 13 | * @param {Object} update 14 | * @return {Object} modified 15 | */ 16 | 17 | module.exports = function modifiedPaths(update) { 18 | const keys = Object.keys(update); 19 | const res = {}; 20 | 21 | const withoutDollarKeys = {}; 22 | for (const key of keys) { 23 | if (key.startsWith('$')) { 24 | _modifiedPaths(update[key], '', res); 25 | continue; 26 | } 27 | withoutDollarKeys[key] = update[key]; 28 | } 29 | 30 | _modifiedPaths(withoutDollarKeys, '', res); 31 | 32 | return res; 33 | }; 34 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/options/SchemaArrayOptions.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const SchemaTypeOptions = require('./SchemaTypeOptions'); 4 | 5 | /** 6 | * The options defined on an Array schematype. 7 | * 8 | * ####Example: 9 | * 10 | * const schema = new Schema({ tags: [String] }); 11 | * schema.path('tags').options; // SchemaArrayOptions instance 12 | * 13 | * @api public 14 | * @inherits SchemaTypeOptions 15 | * @constructor SchemaArrayOptions 16 | */ 17 | 18 | class SchemaArrayOptions extends SchemaTypeOptions {} 19 | 20 | const opts = require('./propertyOptions'); 21 | 22 | /** 23 | * If this is an array of strings, an array of allowed values for this path. 24 | * Throws an error if this array isn't an array of strings. 25 | * 26 | * @api public 27 | * @property enum 28 | * @memberOf SchemaArrayOptions 29 | * @type Array 30 | * @instance 31 | */ 32 | 33 | Object.defineProperty(SchemaArrayOptions.prototype, 'enum', opts); 34 | 35 | /*! 36 | * ignore 37 | */ 38 | 39 | module.exports = SchemaArrayOptions; -------------------------------------------------------------------------------- /server/node_modules/sliced/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.1 / 2015-07-14 3 | ================== 4 | 5 | * fixed; missing file introduced in 4f5cea1 6 | 7 | 1.0.0 / 2015-07-12 8 | ================== 9 | 10 | * Remove unnecessary files from npm package - #6 via joaquimserafim 11 | * updated readme stats 12 | 13 | 0.0.5 / 2013-02-05 14 | ================== 15 | 16 | * optimization: remove use of arguments [jkroso](https://github.com/jkroso) 17 | * add scripts to component.json [jkroso](https://github.com/jkroso) 18 | * tests; remove time for travis 19 | 20 | 0.0.4 / 2013-01-07 21 | ================== 22 | 23 | * added component.json #1 [jkroso](https://github.com/jkroso) 24 | * reversed array loop #1 [jkroso](https://github.com/jkroso) 25 | * remove fn params 26 | 27 | 0.0.3 / 2012-09-29 28 | ================== 29 | 30 | * faster with negative start args 31 | 32 | 0.0.2 / 2012-09-29 33 | ================== 34 | 35 | * support full [].slice semantics 36 | 37 | 0.0.1 / 2012-09-29 38 | =================== 39 | 40 | * initial release 41 | 42 | -------------------------------------------------------------------------------- /server/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const cors = require('cors'); 3 | const mongoose = require('mongoose'); 4 | 5 | require('dotenv').config(); 6 | 7 | const app = express(); 8 | const port = process.env.PORT || 5000; 9 | 10 | app.use(cors()); 11 | app.use(express.json()); 12 | 13 | // Connect to database via mongoose 14 | const uri = process.env.ATLAS_URI; 15 | mongoose.connect(uri, { 16 | useNewUrlParser: true, 17 | useCreateIndex: true, 18 | useUnifiedTopology: true } 19 | ); 20 | 21 | mongoose.connection.once('open', () => { 22 | console.log("MongoDB database connection established successfully."); 23 | }); 24 | 25 | // Get routes 26 | const ticketsRouter = require('./routes/tickets'); 27 | const usersRouter = require('./routes/users'); 28 | const projectsRouter = require('./routes/projects'); 29 | 30 | app.use('/tickets', ticketsRouter); 31 | app.use('/users', usersRouter); 32 | app.use('/projects', projectsRouter); 33 | 34 | app.listen(port, () => { 35 | console.log(`Server is running on port: ${port}`); 36 | }); 37 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/drivers/node-mongodb-native/ReadPreference.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const mongodb = require('mongodb'); 8 | const ReadPref = mongodb.ReadPreference; 9 | 10 | /*! 11 | * Converts arguments to ReadPrefs the driver 12 | * can understand. 13 | * 14 | * @param {String|Array} pref 15 | * @param {Array} [tags] 16 | */ 17 | 18 | module.exports = function readPref(pref, tags) { 19 | if (Array.isArray(pref)) { 20 | tags = pref[1]; 21 | pref = pref[0]; 22 | } 23 | 24 | if (pref instanceof ReadPref) { 25 | return pref; 26 | } 27 | 28 | switch (pref) { 29 | case 'p': 30 | pref = 'primary'; 31 | break; 32 | case 'pp': 33 | pref = 'primaryPreferred'; 34 | break; 35 | case 's': 36 | pref = 'secondary'; 37 | break; 38 | case 'sp': 39 | pref = 'secondaryPreferred'; 40 | break; 41 | case 'n': 42 | pref = 'nearest'; 43 | break; 44 | } 45 | 46 | return new ReadPref(pref, tags); 47 | }; 48 | -------------------------------------------------------------------------------- /server/routes/users.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | 3 | // Project Model 4 | const User = require('../models/user.model'); 5 | 6 | // CREATE 7 | router.route('/create').post((req, res) => { 8 | const name = req.body.name; 9 | const email = req.body.email; 10 | const role = req.body.role; 11 | 12 | const newUser = new User({ 13 | name, 14 | email, 15 | role, 16 | }); 17 | 18 | newUser.save() 19 | .then(() => res.json('User successfully created!')) 20 | .catch(err => res.status(400).json('Error: ' + err)); 21 | }); 22 | 23 | // READ 24 | router.route('/').get((req, res) => { 25 | User.find() 26 | .then(users => res.json(users)) 27 | .catch(err => res.status(400).json('Error: ' + err)); 28 | }); 29 | 30 | // DELETE 31 | router.route('/:id').delete((req,res) => { 32 | User.findByIdAndDelete(req.params.id) 33 | .then(ticket => res.json('User deleted.')) 34 | .catch(err => res.status(400).json('Error: ' + err)); 35 | }); 36 | 37 | module.exports = router; 38 | 39 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/options_operation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const handleCallback = require('../utils').handleCallback; 5 | const MongoError = require('../core').MongoError; 6 | 7 | class OptionsOperation extends OperationBase { 8 | constructor(collection, options) { 9 | super(options); 10 | 11 | this.collection = collection; 12 | } 13 | 14 | execute(callback) { 15 | const coll = this.collection; 16 | const opts = this.options; 17 | 18 | coll.s.db.listCollections({ name: coll.collectionName }, opts).toArray((err, collections) => { 19 | if (err) return handleCallback(callback, err); 20 | if (collections.length === 0) { 21 | return handleCallback( 22 | callback, 23 | MongoError.create({ message: `collection ${coll.namespace} not found`, driver: true }) 24 | ); 25 | } 26 | 27 | handleCallback(callback, err, collections[0].options || null); 28 | }); 29 | } 30 | } 31 | 32 | module.exports = OptionsOperation; 33 | -------------------------------------------------------------------------------- /server/node_modules/express/lib/middleware/init.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * Module dependencies. 13 | * @private 14 | */ 15 | 16 | var setPrototypeOf = require('setprototypeof') 17 | 18 | /** 19 | * Initialization middleware, exposing the 20 | * request and response to each other, as well 21 | * as defaulting the X-Powered-By header field. 22 | * 23 | * @param {Function} app 24 | * @return {Function} 25 | * @api private 26 | */ 27 | 28 | exports.init = function(app){ 29 | return function expressInit(req, res, next){ 30 | if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); 31 | req.res = res; 32 | res.req = req; 33 | req.next = next; 34 | 35 | setPrototypeOf(req, app.request) 36 | setPrototypeOf(res, app.response) 37 | 38 | res.locals = res.locals || Object.create(null); 39 | 40 | next(); 41 | }; 42 | }; 43 | 44 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/objectExpected.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const MongooseError = require('./'); 8 | 9 | /** 10 | * Strict mode error constructor 11 | * 12 | * @param {String} type 13 | * @param {String} value 14 | * @inherits MongooseError 15 | * @api private 16 | */ 17 | 18 | function ObjectExpectedError(path, val) { 19 | const typeDescription = Array.isArray(val) ? 'array' : 'primitive value'; 20 | MongooseError.call(this, 'Tried to set nested object field `' + path + 21 | `\` to ${typeDescription} \`` + val + '` and strict mode is set to throw.'); 22 | this.name = 'ObjectExpectedError'; 23 | if (Error.captureStackTrace) { 24 | Error.captureStackTrace(this); 25 | } else { 26 | this.stack = new Error().stack; 27 | } 28 | this.path = path; 29 | } 30 | 31 | /*! 32 | * Inherits from MongooseError. 33 | */ 34 | 35 | ObjectExpectedError.prototype = Object.create(MongooseError.prototype); 36 | ObjectExpectedError.prototype.constructor = MongooseError; 37 | 38 | module.exports = ObjectExpectedError; 39 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/objectParameter.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const MongooseError = require('./'); 8 | 9 | /** 10 | * Constructor for errors that happen when a parameter that's expected to be 11 | * an object isn't an object 12 | * 13 | * @param {Any} value 14 | * @param {String} paramName 15 | * @param {String} fnName 16 | * @inherits MongooseError 17 | * @api private 18 | */ 19 | 20 | function ObjectParameterError(value, paramName, fnName) { 21 | MongooseError.call(this, 'Parameter "' + paramName + '" to ' + fnName + 22 | '() must be an object, got ' + value.toString()); 23 | this.name = 'ObjectParameterError'; 24 | if (Error.captureStackTrace) { 25 | Error.captureStackTrace(this); 26 | } else { 27 | this.stack = new Error().stack; 28 | } 29 | } 30 | 31 | /*! 32 | * Inherits from MongooseError. 33 | */ 34 | 35 | ObjectParameterError.prototype = Object.create(MongooseError.prototype); 36 | ObjectParameterError.prototype.constructor = MongooseError; 37 | 38 | module.exports = ObjectParameterError; 39 | -------------------------------------------------------------------------------- /server/node_modules/iconv-lite/lib/index.d.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. 4 | * REQUIREMENT: This definition is dependent on the @types/node definition. 5 | * Install with `npm install @types/node --save-dev` 6 | *--------------------------------------------------------------------------------------------*/ 7 | 8 | declare module 'iconv-lite' { 9 | export function decode(buffer: Buffer, encoding: string, options?: Options): string; 10 | 11 | export function encode(content: string, encoding: string, options?: Options): Buffer; 12 | 13 | export function encodingExists(encoding: string): boolean; 14 | 15 | export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; 16 | 17 | export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; 18 | } 19 | 20 | export interface Options { 21 | stripBOM?: boolean; 22 | addBOM?: boolean; 23 | defaultEncoding?: string; 24 | } 25 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/core/auth/plain.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const retrieveBSON = require('../connection/utils').retrieveBSON; 4 | const AuthProvider = require('./auth_provider').AuthProvider; 5 | 6 | // TODO: can we get the Binary type from this.bson instead? 7 | const BSON = retrieveBSON(); 8 | const Binary = BSON.Binary; 9 | 10 | /** 11 | * Creates a new Plain authentication mechanism 12 | * 13 | * @extends AuthProvider 14 | */ 15 | class Plain extends AuthProvider { 16 | /** 17 | * Implementation of authentication for a single connection 18 | * @override 19 | */ 20 | _authenticateSingleConnection(sendAuthCommand, connection, credentials, callback) { 21 | const username = credentials.username; 22 | const password = credentials.password; 23 | const payload = new Binary(`\x00${username}\x00${password}`); 24 | const command = { 25 | saslStart: 1, 26 | mechanism: 'PLAIN', 27 | payload: payload, 28 | autoAuthorize: 1 29 | }; 30 | 31 | sendAuthCommand(connection, '$external.$cmd', command, callback); 32 | } 33 | } 34 | 35 | module.exports = Plain; 36 | -------------------------------------------------------------------------------- /server/node_modules/express/lib/middleware/query.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * Module dependencies. 13 | */ 14 | 15 | var merge = require('utils-merge') 16 | var parseUrl = require('parseurl'); 17 | var qs = require('qs'); 18 | 19 | /** 20 | * @param {Object} options 21 | * @return {Function} 22 | * @api public 23 | */ 24 | 25 | module.exports = function query(options) { 26 | var opts = merge({}, options) 27 | var queryparse = qs.parse; 28 | 29 | if (typeof options === 'function') { 30 | queryparse = options; 31 | opts = undefined; 32 | } 33 | 34 | if (opts !== undefined && opts.allowPrototypes === undefined) { 35 | // back-compat for qs module 36 | opts.allowPrototypes = true; 37 | } 38 | 39 | return function query(req, res, next){ 40 | if (!req.query) { 41 | var val = parseUrl(req).query; 42 | req.query = queryparse(val, opts); 43 | } 44 | 45 | next(); 46 | }; 47 | }; 48 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/apm.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const EventEmitter = require('events').EventEmitter; 3 | 4 | class Instrumentation extends EventEmitter { 5 | constructor() { 6 | super(); 7 | } 8 | 9 | instrument(MongoClient, callback) { 10 | // store a reference to the original functions 11 | this.$MongoClient = MongoClient; 12 | const $prototypeConnect = (this.$prototypeConnect = MongoClient.prototype.connect); 13 | 14 | const instrumentation = this; 15 | MongoClient.prototype.connect = function(callback) { 16 | this.s.options.monitorCommands = true; 17 | this.on('commandStarted', event => instrumentation.emit('started', event)); 18 | this.on('commandSucceeded', event => instrumentation.emit('succeeded', event)); 19 | this.on('commandFailed', event => instrumentation.emit('failed', event)); 20 | return $prototypeConnect.call(this, callback); 21 | }; 22 | 23 | if (typeof callback === 'function') callback(null, this); 24 | } 25 | 26 | uninstrument() { 27 | this.$MongoClient.prototype.connect = this.$prototypeConnect; 28 | } 29 | } 30 | 31 | module.exports = Instrumentation; 32 | -------------------------------------------------------------------------------- /server/node_modules/sift/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Craig Condon 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/tools/sharded.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const co = require('co'); 4 | 5 | co(function*() { 6 | var Sharded = require('mongodb-topology-manager').Sharded; 7 | 8 | // Create new instance 9 | var topology = new Sharded({ 10 | mongod: 'mongod', 11 | mongos: 'mongos' 12 | }); 13 | 14 | yield topology.addShard([{ 15 | options: { 16 | bind_ip: 'localhost', port: 31000, dbpath: `/data/db/31000`, shardsvr: null 17 | } 18 | }], { replSet: 'rs1' }); 19 | 20 | yield topology.addConfigurationServers([{ 21 | options: { 22 | bind_ip: 'localhost', port: 35000, dbpath: `/data/db/35000` 23 | } 24 | }], { replSet: 'rs0' }); 25 | 26 | yield topology.addProxies([{ 27 | bind_ip: 'localhost', port: 51000, configdb: 'localhost:35000' 28 | }], { 29 | binary: 'mongos' 30 | }); 31 | 32 | console.log('Start...'); 33 | // Start up topology 34 | yield topology.start(); 35 | 36 | console.log('Started'); 37 | 38 | // Shard db 39 | yield topology.enableSharding('test'); 40 | 41 | console.log('done'); 42 | }).catch(error => { 43 | console.error(error); 44 | process.exit(-1); 45 | }); 46 | -------------------------------------------------------------------------------- /server/node_modules/saslprep/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Dmitry Tsvettsikh 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /src/components/dashboard.component.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import StatusChart from "./charts/status-chart.component"; 3 | import PriorityChart from "./charts/priority-chart.component"; 4 | import TypeChart from "./charts/type-chart.component"; 5 | import TicketList from "./ticket-list.component"; 6 | 7 | export default class Dashboard extends Component { 8 | render() { 9 | return( 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |

Tickets by Status

Tickets by Priority

Tickets by Type

25 | 26 |
27 | ); 28 | } 29 | } -------------------------------------------------------------------------------- /server/node_modules/bson/lib/bson/symbol.js: -------------------------------------------------------------------------------- 1 | // Custom inspect property name / symbol. 2 | var inspect = Buffer ? require('util').inspect.custom || 'inspect' : 'inspect'; 3 | 4 | /** 5 | * A class representation of the BSON Symbol type. 6 | * 7 | * @class 8 | * @deprecated 9 | * @param {string} value the string representing the symbol. 10 | * @return {Symbol} 11 | */ 12 | function Symbol(value) { 13 | if (!(this instanceof Symbol)) return new Symbol(value); 14 | this._bsontype = 'Symbol'; 15 | this.value = value; 16 | } 17 | 18 | /** 19 | * Access the wrapped string value. 20 | * 21 | * @method 22 | * @return {String} returns the wrapped string. 23 | */ 24 | Symbol.prototype.valueOf = function() { 25 | return this.value; 26 | }; 27 | 28 | /** 29 | * @ignore 30 | */ 31 | Symbol.prototype.toString = function() { 32 | return this.value; 33 | }; 34 | 35 | /** 36 | * @ignore 37 | */ 38 | Symbol.prototype[inspect] = function() { 39 | return this.value; 40 | }; 41 | 42 | /** 43 | * @ignore 44 | */ 45 | Symbol.prototype.toJSON = function() { 46 | return this.value; 47 | }; 48 | 49 | module.exports = Symbol; 50 | module.exports.Symbol = Symbol; 51 | -------------------------------------------------------------------------------- /server/node_modules/iconv-lite/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Alexander Shtuchkin 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /server/node_modules/regexp-clone/README.md: -------------------------------------------------------------------------------- 1 | #regexp-clone 2 | ============== 3 | 4 | Clones RegExps with flag and `lastIndex` preservation. 5 | 6 | ```js 7 | const regexpClone = require('regexp-clone'); 8 | 9 | const a = /somethin/misguy; 10 | console.log(a.global); // true 11 | console.log(a.ignoreCase); // true 12 | console.log(a.multiline); // true 13 | console.log(a.dotAll); // true 14 | console.log(a.unicode); // true 15 | console.log(a.sticky); // true 16 | 17 | const b = regexpClone(a); 18 | console.log(b.global); // true 19 | console.log(b.ignoreCase); // true 20 | console.log(b.multiline); // true 21 | console.log(b.dotAll); // true 22 | console.log(b.unicode); // true 23 | console.log(b.sticky); // true 24 | 25 | const c = /hi/g; 26 | c.test('this string hi there'); 27 | assert.strictEqual(c.lastIndex, 3); 28 | 29 | const d = regexpClone(c); 30 | assert.strictEqual(d.lastIndex, 3); 31 | d.test('this string hi there'); 32 | assert.strictEqual(d.lastIndex, 14); 33 | assert.strictEqual(c.lastIndex, 3); 34 | ``` 35 | 36 | ``` 37 | npm install regexp-clone 38 | ``` 39 | 40 | ## License 41 | 42 | [MIT](https://github.com/aheckmann/regexp-clone/blob/master/LICENSE) 43 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/find.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const OperationBase = require('./operation').OperationBase; 4 | const Aspect = require('./operation').Aspect; 5 | const defineAspects = require('./operation').defineAspects; 6 | const resolveReadPreference = require('../utils').resolveReadPreference; 7 | 8 | class FindOperation extends OperationBase { 9 | constructor(collection, ns, command, options) { 10 | super(options); 11 | 12 | this.ns = ns; 13 | this.cmd = command; 14 | this.readPreference = resolveReadPreference(collection, this.options); 15 | } 16 | 17 | execute(server, callback) { 18 | // copied from `CommandOperationV2`, to be subclassed in the future 19 | this.server = server; 20 | 21 | const cursorState = this.cursorState || {}; 22 | 23 | // TOOD: use `MongoDBNamespace` through and through 24 | server.query(this.ns.toString(), this.cmd, cursorState, this.options, callback); 25 | } 26 | } 27 | 28 | defineAspects(FindOperation, [ 29 | Aspect.READ_OPERATION, 30 | Aspect.RETRYABLE, 31 | Aspect.EXECUTE_WITH_SELECTION, 32 | Aspect.SKIP_SESSION 33 | ]); 34 | 35 | module.exports = FindOperation; 36 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/error/disconnected.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Module dependencies. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | const MongooseError = require('./'); 8 | 9 | /** 10 | * The connection failed to reconnect and will never successfully reconnect to 11 | * MongoDB without manual intervention. 12 | * 13 | * @param {String} type 14 | * @param {String} value 15 | * @inherits MongooseError 16 | * @api private 17 | */ 18 | 19 | function DisconnectedError(connectionString) { 20 | MongooseError.call(this, 'Ran out of retries trying to reconnect to "' + 21 | connectionString + '". Try setting `server.reconnectTries` and ' + 22 | '`server.reconnectInterval` to something higher.'); 23 | this.name = 'DisconnectedError'; 24 | if (Error.captureStackTrace) { 25 | Error.captureStackTrace(this); 26 | } else { 27 | this.stack = new Error().stack; 28 | } 29 | } 30 | 31 | /*! 32 | * Inherits from MongooseError. 33 | */ 34 | 35 | DisconnectedError.prototype = Object.create(MongooseError.prototype); 36 | DisconnectedError.prototype.constructor = MongooseError; 37 | 38 | 39 | /*! 40 | * exports 41 | */ 42 | 43 | module.exports = DisconnectedError; 44 | -------------------------------------------------------------------------------- /server/node_modules/ms/license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Zeit, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/ipaddr.js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011-2017 whitequark 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /server/node_modules/saslprep/lib/memory-code-points.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const bitfield = require('sparse-bitfield'); 6 | 7 | /* eslint-disable-next-line security/detect-non-literal-fs-filename */ 8 | const memory = fs.readFileSync(path.resolve(__dirname, '../code-points.mem')); 9 | let offset = 0; 10 | 11 | /** 12 | * Loads each code points sequence from buffer. 13 | * @returns {bitfield} 14 | */ 15 | function read() { 16 | const size = memory.readUInt32BE(offset); 17 | offset += 4; 18 | 19 | const codepoints = memory.slice(offset, offset + size); 20 | offset += size; 21 | 22 | return bitfield({ buffer: codepoints }); 23 | } 24 | 25 | const unassigned_code_points = read(); 26 | const commonly_mapped_to_nothing = read(); 27 | const non_ASCII_space_characters = read(); 28 | const prohibited_characters = read(); 29 | const bidirectional_r_al = read(); 30 | const bidirectional_l = read(); 31 | 32 | module.exports = { 33 | unassigned_code_points, 34 | commonly_mapped_to_nothing, 35 | non_ASCII_space_characters, 36 | prohibited_characters, 37 | bidirectional_r_al, 38 | bidirectional_l, 39 | }; 40 | -------------------------------------------------------------------------------- /server/node_modules/bluebird/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2017 Petka Antonov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/memory-pager/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Mathias Buus 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/lib/cast/string.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const CastError = require('../error/cast'); 4 | 5 | /*! 6 | * Given a value, cast it to a string, or throw a `CastError` if the value 7 | * cannot be casted. `null` and `undefined` are considered valid. 8 | * 9 | * @param {Any} value 10 | * @param {String} [path] optional the path to set on the CastError 11 | * @return {string|null|undefined} 12 | * @throws {CastError} 13 | * @api private 14 | */ 15 | 16 | module.exports = function castString(value, path) { 17 | // If null or undefined 18 | if (value == null) { 19 | return value; 20 | } 21 | 22 | // handle documents being passed 23 | if (value._id && typeof value._id === 'string') { 24 | return value._id; 25 | } 26 | 27 | // Re: gh-647 and gh-3030, we're ok with casting using `toString()` 28 | // **unless** its the default Object.toString, because "[object Object]" 29 | // doesn't really qualify as useful data 30 | if (value.toString && 31 | value.toString !== Object.prototype.toString && 32 | !Array.isArray(value)) { 33 | return value.toString(); 34 | } 35 | 36 | throw new CastError('string', value, path); 37 | }; 38 | -------------------------------------------------------------------------------- /server/node_modules/safe-buffer/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Feross Aboukhadijeh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/sparse-bitfield/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Mathias Buus 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/utils-merge/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2017 Jared Hanson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /server/node_modules/cors/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # contributing to `cors` 2 | 3 | CORS is a node.js package for providing a [connect](http://www.senchalabs.org/connect/)/[express](http://expressjs.com/) middleware that can be used to enable [CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) with various options. Learn more about the project in [the README](README.md). 4 | 5 | ## The CORS Spec 6 | 7 | [http://www.w3.org/TR/cors/](http://www.w3.org/TR/cors/) 8 | 9 | ## Pull Requests Welcome 10 | 11 | * Include `'use strict';` in every javascript file. 12 | * 2 space indentation. 13 | * Please run the testing steps below before submitting. 14 | 15 | ## Testing 16 | 17 | ```bash 18 | $ npm install 19 | $ npm test 20 | ``` 21 | 22 | ## Interactive Testing Harness 23 | 24 | [http://node-cors-client.herokuapp.com](http://node-cors-client.herokuapp.com) 25 | 26 | Related git repositories: 27 | 28 | * [https://github.com/TroyGoode/node-cors-server](https://github.com/TroyGoode/node-cors-server) 29 | * [https://github.com/TroyGoode/node-cors-client](https://github.com/TroyGoode/node-cors-client) 30 | 31 | ## License 32 | 33 | [MIT License](http://www.opensource.org/licenses/mit-license.php) 34 | -------------------------------------------------------------------------------- /server/node_modules/cors/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2013 Troy Goode 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/debug/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 TJ Holowaychuk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 6 | and associated documentation files (the 'Software'), to deal in the Software without restriction, 7 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 9 | subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial 12 | portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 15 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 16 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 17 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 18 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | 20 | -------------------------------------------------------------------------------- /server/node_modules/depd/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2017 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/encodeurl/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2016 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/etag/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2016 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/mime/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2010 Benjamin Thomas, Robert Kieffer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | 3 | Copyright (c) 2010 LearnBoost 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/mongoose/node_modules/ms/license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Zeit, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/send/node_modules/ms/license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Zeit, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/vary/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2017 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/content-type/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2015 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/forwarded/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2017 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/media-typer/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/mongodb/lib/operations/list_databases.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const CommandOperationV2 = require('./command_v2'); 4 | const Aspect = require('./operation').Aspect; 5 | const defineAspects = require('./operation').defineAspects; 6 | const MongoDBNamespace = require('../utils').MongoDBNamespace; 7 | 8 | class ListDatabasesOperation extends CommandOperationV2 { 9 | constructor(db, options) { 10 | super(db, options); 11 | this.ns = new MongoDBNamespace('admin', '$cmd'); 12 | } 13 | 14 | execute(server, callback) { 15 | const cmd = { listDatabases: 1 }; 16 | if (this.options.nameOnly) { 17 | cmd.nameOnly = Number(cmd.nameOnly); 18 | } 19 | 20 | if (this.options.filter) { 21 | cmd.filter = this.options.filter; 22 | } 23 | 24 | if (typeof this.options.authorizedDatabases === 'boolean') { 25 | cmd.authorizedDatabases = this.options.authorizedDatabases; 26 | } 27 | 28 | super.executeCommand(server, cmd, callback); 29 | } 30 | } 31 | 32 | defineAspects(ListDatabasesOperation, [ 33 | Aspect.READ_OPERATION, 34 | Aspect.RETRYABLE, 35 | Aspect.EXECUTE_WITH_SELECTION 36 | ]); 37 | 38 | module.exports = ListDatabasesOperation; 39 | -------------------------------------------------------------------------------- /server/node_modules/proxy-addr/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2016 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/range-parser/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.2.1 / 2019-05-10 2 | ================== 3 | 4 | * Improve error when `str` is not a string 5 | 6 | 1.2.0 / 2016-06-01 7 | ================== 8 | 9 | * Add `combine` option to combine overlapping ranges 10 | 11 | 1.1.0 / 2016-05-13 12 | ================== 13 | 14 | * Fix incorrectly returning -1 when there is at least one valid range 15 | * perf: remove internal function 16 | 17 | 1.0.3 / 2015-10-29 18 | ================== 19 | 20 | * perf: enable strict mode 21 | 22 | 1.0.2 / 2014-09-08 23 | ================== 24 | 25 | * Support Node.js 0.6 26 | 27 | 1.0.1 / 2014-09-07 28 | ================== 29 | 30 | * Move repository to jshttp 31 | 32 | 1.0.0 / 2013-12-11 33 | ================== 34 | 35 | * Add repository to package.json 36 | * Add MIT license 37 | 38 | 0.0.4 / 2012-06-17 39 | ================== 40 | 41 | * Change ret -1 for unsatisfiable and -2 when invalid 42 | 43 | 0.0.3 / 2012-06-17 44 | ================== 45 | 46 | * Fix last-byte-pos default to len - 1 47 | 48 | 0.0.2 / 2012-06-14 49 | ================== 50 | 51 | * Add `.type` 52 | 53 | 0.0.1 / 2012-06-11 54 | ================== 55 | 56 | * Initial release 57 | -------------------------------------------------------------------------------- /server/node_modules/safer-buffer/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Nikita Skovoroda 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/destroy/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2014 Jonathan Ong me@jongleberry.com 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/ee-first/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2014 Jonathan Ong me@jongleberry.com 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/mime-db/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2014 Jonathan Ong me@jongleberry.com 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /server/node_modules/array-flatten/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/node_modules/content-disposition/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2017 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | --------------------------------------------------------------------------------