From 555a2975507844296e797dcfde3df70532807804 Mon Sep 17 00:00:00 2001 From: lykmapipo Date: Sun, 16 Dec 2018 17:46:26 +0300 Subject: [PATCH 1/2] Improve & Fixes - Add taggable plugin - Force latest dependencies & audit fix - Improve example --- examples/app.js | 39 ++- lib/role.http.router.js | 4 +- lib/role.model.js | 19 +- package-lock.json | 508 +++++++++++++----------------- package.json | 33 +- test/bootstrap.spec.js | 2 +- test/integration/boostrap.spec.js | 28 +- test/unit/role.model.spec.js | 4 +- test/unit/role.schema.spec.js | 4 +- 9 files changed, 265 insertions(+), 376 deletions(-) diff --git a/examples/app.js b/examples/app.js index f74ae1a..41b664b 100644 --- a/examples/app.js +++ b/examples/app.js @@ -1,39 +1,36 @@ 'use strict'; -/* ensure mongo uri */ +/* ensure mongodb uri */ process.env.MONGODB_URI = (process.env.MONGODB_URI || 'mongodb://localhost/emis-role'); /* dependencies */ const path = require('path'); -const mongoose = require('mongoose'); -const { - Role, - apiVersion, - info, - app -} = require(path.join(__dirname, '..')); +const async = require('async'); +const { include } = require('@lykmapipo/include'); +const { connect } = require('@lykmapipo/mongoose-common'); +const { Role, info, app } = include(__dirname, '..'); -/* connect to mongoose */ -mongoose.connect(process.env.MONGODB_URI); +// establish mongodb connection +connect((error) => { + // seed roles + Role.seed((error, results) => { -Role.seed(( /*error, results*/ ) => { + // expose module info + app.get('/', (request, response) => { + response.status(200); + response.json(info); + }); - /* expose module info */ - app.get('/', (request, response) => { - response.status(200); - response.json(info); - }); + // fire the app + app.start((error, env) => { + console.log(`visit http://0.0.0.0:${env.PORT}`); + }); - /* fire the app */ - app.start((error, env) => { - console.log( - `visit http://0.0.0.0:${env.PORT}/v${apiVersion}/roles` - ); }); }); diff --git a/lib/role.http.router.js b/lib/role.http.router.js index c47483f..8a115a0 100644 --- a/lib/role.http.router.js +++ b/lib/role.http.router.js @@ -103,9 +103,9 @@ /* dependencies */ -const path = require('path'); const _ = require('lodash'); const { getString } = require('@lykmapipo/env'); +const { include } = require('@lykmapipo/include'); const Router = require('@lykmapipo/express-common').Router; @@ -117,7 +117,7 @@ const PATH_SCHEMA = '/roles/schema/'; /* declarations */ -const Role = require(path.join(__dirname, 'role.model')); +const Role = include(__dirname, 'role.model'); const router = new Router({ version: API_VERSION }); diff --git a/lib/role.model.js b/lib/role.model.js index a0f76e5..d0dffff 100644 --- a/lib/role.model.js +++ b/lib/role.model.js @@ -25,12 +25,12 @@ const path = require('path'); const _ = require('lodash'); const async = require('async'); -const mongoose = require('mongoose'); const { getString, getStrings } = require('@lykmapipo/env'); +const { Schema, SchemaTypes } = require('@lykmapipo/mongoose-common'); +const { model, SCHEMA_OPTIONS } = require('@lykmapipo/mongoose-common'); const actions = require('mongoose-rest-actions'); const { Permission } = require('@lykmapipo/permission'); -const { Schema } = mongoose; -const { ObjectId } = Schema.Types; +const { ObjectId } = SchemaTypes; /* constants */ @@ -42,11 +42,6 @@ const ROLE_SEED = getString('ROLE_SEED', 'roles'); const ADMINISTRATOR_ROLE_NAME = getString('ADMINISTRATOR_ROLE_NAME', 'Administrator'); const POPULATION_MAX_DEPTH = 1; -const SCHEMA_OPTIONS = ({ - timestamps: true, - emitIndexErrors: true, - collection: ROLE_COLLECTION_NAME -}); const OPTION_AUTOPOPULATE = ({ select: { name: 1, description: 1 }, maxDepth: POPULATION_MAX_DEPTH @@ -71,6 +66,7 @@ const RoleSchema = new Schema({ * @property {boolean} enum - list of acceptable values * @property {boolean} index - ensure database index * @property {boolean} searchable - allow for searching + * @property {boolean} taggable - allow field use for tagging * @property {object} fake - fake data generator options * * @author lally elias @@ -86,6 +82,7 @@ const RoleSchema = new Schema({ enum: ROLE_TYPES, index: true, searchable: true, + taggable: true, hide: true, fake: true }, @@ -103,6 +100,7 @@ const RoleSchema = new Schema({ * @property {boolean} index - ensure database index * @property {boolean} unique - ensure unique database index * @property {boolean} searchable - allow for searching + * @property {boolean} taggable - allow field use for tagging * @property {object} fake - fake data generator options * * @author lally elias @@ -120,6 +118,7 @@ const RoleSchema = new Schema({ index: true, unique: true, searchable: true, + taggable: true, fake: { generator: 'hacker', type: 'noun' @@ -137,6 +136,7 @@ const RoleSchema = new Schema({ * @property {boolean} uppercase - force upper-casing * @property {boolean} index - ensure database index * @property {boolean} searchable - allow for searching + * @property {boolean} taggable - allow field use for tagging * @property {object} fake - fake data generator options * * @since 0.1.0 @@ -151,6 +151,7 @@ const RoleSchema = new Schema({ uppercase: true, index: true, searchable: true, + taggable: true, fake: { generator: 'hacker', type: 'abbreviation' @@ -471,4 +472,4 @@ RoleSchema.plugin(actions); /* export role model */ -module.exports = mongoose.model(ROLE_MODEL_NAME, RoleSchema); +module.exports = model(ROLE_MODEL_NAME, RoleSchema); diff --git a/package-lock.json b/package-lock.json index 6fd5a36..f34d767 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,7 @@ "@benmaruchu/faker": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@benmaruchu/faker/-/faker-4.2.1.tgz", - "integrity": "sha512-VyOCOhm2/O/f/yqURU2JO4B8s0CyNaoUZ3/LrPuh7zgcE/f08Uay+l51wpa43kN7DX9pgg8OtgNpWNyZA9Y5SA==", - "dev": true + "integrity": "sha512-VyOCOhm2/O/f/yqURU2JO4B8s0CyNaoUZ3/LrPuh7zgcE/f08Uay+l51wpa43kN7DX9pgg8OtgNpWNyZA9Y5SA==" }, "@codetanzania/majifix-common": { "version": "0.11.1", @@ -23,37 +22,36 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@lykmapipo/env/-/env-0.3.2.tgz", "integrity": "sha512-/A/eY+yPLY7b+afAjQUQpxXkoHbWR+F33KmvXSx88vqoI7tWZP9fgQXYDX/8KsKcSXH1ncbKDBAVpxSGX5FIbw==", - "dev": true, "requires": { "dotenv": "^6.1.0" } }, "@lykmapipo/express-common": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@lykmapipo/express-common/-/express-common-0.9.3.tgz", - "integrity": "sha512-vVPF6xHOlsVaSlFfn5hwLRSfNQk44wOUxQyxQYrMMwOWOerh3eyXDDciyqaSJ4VZQ4ntdlb+NLqqtYNZMOfakw==", - "dev": true, - "requires": { - "@lykmapipo/env": "^0.3.2", - "@lykmapipo/express-request-extra": "^0.1.1", - "@lykmapipo/express-router-extra": "^0.2.1", - "body-parser": "^1.18.3", - "compression": "^1.7.3", - "cors": "^2.8.5", - "express": "^4.16.4", - "express-mquery": "^1.0.4", - "helmet": "^3.15.0", - "method-override": "^3.0.0", - "morgan": "^1.9.1", - "serve-favicon": "^2.5.0", - "statuses": "^1.5.0" + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@lykmapipo/express-common/-/express-common-0.9.4.tgz", + "integrity": "sha512-dNFnH/pBqUAx4zgzvOyFT3j9MLRL9+JC5lqFwHB/8OjxSyrZQA8SqSGa/+bqAnYs+ex82eeKVuxk8OgR33m05Q==", + "requires": { + "@lykmapipo/env": ">=0.3.2", + "@lykmapipo/express-request-extra": ">=0.1.1", + "@lykmapipo/express-router-extra": ">=0.2.1", + "async": ">=2.6.1", + "body-parser": ">=1.18.3", + "compression": ">=1.7.3", + "cors": ">=2.8.5", + "express": ">=4.16.4", + "express-mquery": ">=1.0.4", + "helmet": ">=3.15.0", + "lodash": ">=4.17.11", + "method-override": ">=3.0.0", + "morgan": ">=1.9.1", + "serve-favicon": ">=2.5.0", + "statuses": ">=1.5.0" } }, "@lykmapipo/express-request-extra": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@lykmapipo/express-request-extra/-/express-request-extra-0.1.1.tgz", "integrity": "sha512-I8QjEMUes5FLA7OfJd/4M7lV10k0IyhUmHMo2GprqLMePHpKSKtwYZyjfe4BB00kEbkDE2lFB9CZJtzSsjasdQ==", - "dev": true, "requires": { "auto-parse": "^1.5.1" } @@ -62,7 +60,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/@lykmapipo/express-router-extra/-/express-router-extra-0.2.1.tgz", "integrity": "sha512-68dxMEja1cuuUTjlZaPemSpvLJzK1wv+p/E6y+4UD3Pbkk3PCK5WLS1tlunTrPgX1xj7trpkeSye6W22R+ExRw==", - "dev": true, "requires": { "require-all": "^3.0.0", "semver": "^5.6.0", @@ -73,27 +70,55 @@ "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" } } }, + "@lykmapipo/include": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@lykmapipo/include/-/include-0.1.0.tgz", + "integrity": "sha512-IEL5/qfBfbX+2aSLUlhjxXRXxlKVfqxZnTgwt297QqKY/weglsz2Y5JZMDkGCOt3IvFdNzEmrkwZhM8hfgI2FQ==" + }, + "@lykmapipo/mongoose-common": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@lykmapipo/mongoose-common/-/mongoose-common-0.4.0.tgz", + "integrity": "sha512-AVSNTaE+nB73zHcx3jPIgMbsY0LtRM4U6iz7pCxvt0qqtiHz/Y6PXu6s1SngLsVGaetSQ+XO5R14Cz6n1873lA==", + "requires": { + "@lykmapipo/include": ">=0.1.0", + "mongoose-schema-jsonschema": ">=1.2.1", + "mongoose-valid8": ">=1.3.1" + } + }, "@lykmapipo/mongoose-faker": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@lykmapipo/mongoose-faker/-/mongoose-faker-0.8.1.tgz", - "integrity": "sha512-blY0a2PQaBXkuLs1s70GbIT7jD7uoAkS0hVfZaCM5oIsJtxWXyAOwMaWGm/x1Yt4ptnVibD28mpa/nOqVWE2yA==", - "dev": true, + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@lykmapipo/mongoose-faker/-/mongoose-faker-0.8.2.tgz", + "integrity": "sha512-D/H2yAbcU/AJkR0BLrdaDKnqe1Oc7e4aGVWqJaHLXMGq/mmYNRPtLZTZyJzYG4YujSh0dkYMq2CAggC5y/s4zQ==", + "requires": { + "@benmaruchu/faker": ">=4.2.1" + } + }, + "@lykmapipo/mongoose-taggable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@lykmapipo/mongoose-taggable/-/mongoose-taggable-0.1.0.tgz", + "integrity": "sha512-MhuP9odesFCw0ZVMGUyV95w8X+9dMIc9+OSQr0fVdOzHaGVOAXWY6p5FjflyZqKndpwoVHMoNfm9H/EJcX8a+A==", "requires": { - "@benmaruchu/faker": "^4.2.1" + "@lykmapipo/mongoose-common": ">=0.3.0", + "stopwords-iso": ">=0.4.0", + "traverse": ">=0.6.6" } }, "@lykmapipo/permission": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@lykmapipo/permission/-/permission-0.4.1.tgz", - "integrity": "sha512-lEAv/8cCdQ5VmAjmOBM9yMj6Wc0wJvK0YpY0FAOrG4is4O83GC0cuhkFMwmd5lcZs25jZOOfk+xBHzT1CgVFTQ==", - "dev": true, + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@lykmapipo/permission/-/permission-0.6.0.tgz", + "integrity": "sha512-QOYR2XCtnKtlHZjRC1vaynlWdYXBY54o82/cv2AARZymncv0+R3ZjAOWJDrlBPazX+lecQTUFhcZIqaAxwovzQ==", "requires": { - "inflection": "^1.12.0" + "@lykmapipo/env": ">=0.3.2", + "@lykmapipo/express-common": ">=0.9.4", + "@lykmapipo/include": ">=0.1.0", + "async": ">=2.6.1", + "inflection": ">=1.12.0", + "lodash": ">=4.17.11", + "mongoose-rest-actions": ">=0.22.1" } }, "@sinonjs/commons": { @@ -106,30 +131,24 @@ } }, "@sinonjs/formatio": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.1.0.tgz", + "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", "dev": true, "requires": { - "@sinonjs/samsam": "2.1.0" - }, - "dependencies": { - "@sinonjs/samsam": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz", - "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", - "dev": true, - "requires": { - "array-from": "^2.1.1" - } - } + "@sinonjs/samsam": "^2 || ^3" } }, "@sinonjs/samsam": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.2.tgz", - "integrity": "sha512-ZwTHAlC9akprWDinwEPD4kOuwaYZlyMwVJIANsKNC3QVp0AHB04m7RnB4eqeWfgmxw8MGTzS9uMaw93Z3QcZbw==", - "dev": true + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.0.2.tgz", + "integrity": "sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.0.2", + "array-from": "^2.1.1", + "lodash.get": "^4.4.2" + } }, "abbrev": { "version": "1.1.1", @@ -141,7 +160,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, "requires": { "mime-types": "~2.1.18", "negotiator": "0.6.1" @@ -251,8 +269,7 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-from": { "version": "2.1.1", @@ -286,7 +303,6 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, "requires": { "lodash": "^4.17.10" } @@ -298,12 +314,11 @@ "dev": true }, "auto-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/auto-parse/-/auto-parse-1.5.1.tgz", - "integrity": "sha512-oL5r9f/DwcBW+Wt6am20XzJhKO7x37p4ZT0yJS0UI2eAgnjeS6ueAjDN6Djx4JKeFw7mU11YWAn3ZlwGNZLPcQ==", - "dev": true, + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/auto-parse/-/auto-parse-1.6.0.tgz", + "integrity": "sha512-bxQzTBuQxezN8G4d2kd8U7ozJ1vUlEFwa7RVbBIL7IH8nxWikCup/JcdMadEFwnHRUFuJrlYo7i0domuFSXp4w==", "requires": { - "typpy": "^2.3.10" + "typpy": "2.3.10" } }, "aws-sign2": { @@ -330,7 +345,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, "requires": { "safe-buffer": "5.1.2" }, @@ -338,8 +352,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -399,7 +412,6 @@ "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "dev": true, "requires": { "bytes": "3.0.0", "content-type": "~1.0.4", @@ -451,8 +463,7 @@ "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "camelcase": { "version": "2.1.1", @@ -473,8 +484,7 @@ "camelize": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", - "dev": true + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caseless": { "version": "0.12.0", @@ -600,7 +610,6 @@ "version": "2.0.15", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", - "dev": true, "requires": { "mime-db": ">= 1.36.0 < 2" } @@ -609,7 +618,6 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dev": true, "requires": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -623,8 +631,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -694,20 +701,17 @@ "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" }, "content-security-policy-builder": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz", - "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==", - "dev": true + "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==" }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "continuable-cache": { "version": "0.3.1", @@ -718,14 +722,12 @@ "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "cookiejar": { "version": "2.1.2", @@ -743,7 +745,6 @@ "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, "requires": { "object-assign": "^4", "vary": "^1" @@ -777,8 +778,7 @@ "dasherize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", - "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=", - "dev": true + "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" }, "date-now": { "version": "0.1.4", @@ -800,7 +800,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -829,14 +828,12 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "diff": { "version": "3.5.0", @@ -847,8 +844,7 @@ "dns-prefetch-control": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", - "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI=", - "dev": true + "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI=" }, "dom-serializer": { "version": "0.1.0", @@ -896,14 +892,12 @@ "dont-sniff-mimetype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz", - "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=", - "dev": true + "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=" }, "dotenv": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.1.0.tgz", - "integrity": "sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw==", - "dev": true + "integrity": "sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw==" }, "ecc-jsbn": { "version": "0.1.2", @@ -919,14 +913,12 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "entities": { "version": "1.1.1", @@ -963,8 +955,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", @@ -981,8 +972,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter2": { "version": "0.4.14", @@ -999,14 +989,12 @@ "expect-ct": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz", - "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==", - "dev": true + "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" }, "express": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "dev": true, "requires": { "accepts": "~1.3.5", "array-flatten": "1.1.1", @@ -1043,14 +1031,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" } } }, @@ -1058,7 +1044,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/express-mquery/-/express-mquery-1.0.4.tgz", "integrity": "sha512-+92ankbwgMjvitvpYVuR+9ItLABS0HzM84qcGRRsEmxVCl8KsUsMyYXCVmTlB1Eva5LPD1h43GNhRHJHhA0C9A==", - "dev": true, "requires": { "auto-parse": "^1.5.1" } @@ -1130,14 +1115,12 @@ "feature-policy": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.2.0.tgz", - "integrity": "sha512-2hGrlv6efG4hscYVZeaYjpzpT6I2OZgYqE2yDUzeAcKj2D1SH0AsEzqJNXzdoglEddcIXQQYop3lD97XpG75Jw==", - "dev": true + "integrity": "sha512-2hGrlv6efG4hscYVZeaYjpzpT6I2OZgYqE2yDUzeAcKj2D1SH0AsEzqJNXzdoglEddcIXQQYop3lD97XpG75Jw==" }, "finalhandler": { "version": "1.1.1", "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -1151,8 +1134,7 @@ "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" } } }, @@ -1228,20 +1210,17 @@ "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "frameguard": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.0.0.tgz", - "integrity": "sha1-e8rUae57lukdEs6zlZx4I1qScuk=", - "dev": true + "integrity": "sha1-e8rUae57lukdEs6zlZx4I1qScuk=" }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { "version": "3.0.1", @@ -1264,7 +1243,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/function.name/-/function.name-1.0.11.tgz", "integrity": "sha512-dR60geqE4iI/siyBiWGcUjrQNtMqvToGXR/RkVkSSm4iH8FiHkIx2ljUFFiOZMbgBl/N9o9+VzikNp2hVV6y2Q==", - "dev": true, "requires": { "noop6": "^1.0.1" } @@ -1551,7 +1529,6 @@ "version": "3.15.0", "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.15.0.tgz", "integrity": "sha512-j9JjtAnWJj09lqe/PEICrhuDaX30TeokXJ9tW6ZPhVH0+LMoihDeJ58CdWeTGzM66p6EiIODmgAaWfdeIWI4Gg==", - "dev": true, "requires": { "dns-prefetch-control": "0.1.0", "dont-sniff-mimetype": "1.0.0", @@ -1572,14 +1549,12 @@ "helmet-crossdomain": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz", - "integrity": "sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==", - "dev": true + "integrity": "sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==" }, "helmet-csp": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.1.tgz", "integrity": "sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==", - "dev": true, "requires": { "camelize": "1.0.0", "content-security-policy-builder": "2.0.0", @@ -1590,8 +1565,7 @@ "hide-powered-by": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz", - "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=", - "dev": true + "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=" }, "hooker": { "version": "0.2.3", @@ -1608,14 +1582,12 @@ "hpkp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz", - "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=", - "dev": true + "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" }, "hsts": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.1.0.tgz", - "integrity": "sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA==", - "dev": true + "integrity": "sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA==" }, "htmlparser2": { "version": "3.8.3", @@ -1642,7 +1614,6 @@ "version": "1.6.3", "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -1672,7 +1643,6 @@ "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -1680,8 +1650,7 @@ "ienoopen": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz", - "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=", - "dev": true + "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" }, "indent-string": { "version": "2.1.0", @@ -1695,8 +1664,7 @@ "inflection": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", - "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", - "dev": true + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" }, "inflight": { "version": "1.0.6", @@ -1711,14 +1679,12 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ipaddr.js": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" }, "irregular-plurals": { "version": "1.4.0", @@ -1918,9 +1884,9 @@ } }, "just-extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz", - "integrity": "sha512-Fu3T6pKBuxjWT/p4DkqGHFRsysc8OauWr4ZRTY9dIx07Y9O0RkoR5jcv28aeD1vuAwhm3nLkDurwLXoALp4DpQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", + "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", "dev": true }, "kareem": { @@ -1986,8 +1952,7 @@ "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash.get": { "version": "4.4.2", @@ -2084,13 +2049,12 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "memory-pager": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz", - "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.3.1.tgz", + "integrity": "sha512-pUf/sGkym2WqFZYTVmdASnSbNfpGc9rwxEHOePx4lT/fD+NHGL1U16Uy4o6PMiVcDv4mp6MI/vaF0c/Kd1QEUQ==", "dev": true, "optional": true }, @@ -2115,14 +2079,12 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "method-override": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz", "integrity": "sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==", - "dev": true, "requires": { "debug": "3.1.0", "methods": "~1.1.2", @@ -2134,7 +2096,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -2144,26 +2105,22 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "mime": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { "version": "1.36.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", - "dev": true + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" }, "mime-types": { "version": "2.1.20", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "dev": true, "requires": { "mime-db": "~1.36.0" } @@ -2254,12 +2211,12 @@ } }, "mongodb": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.8.tgz", - "integrity": "sha512-yNKwYxQ6m00NV6+pMoWoheFTHSQVv1KkSrfOhRDYMILGWDYtUtQRqHrFqU75rmPIY8hMozVft8zdC4KYMWaM3Q==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.10.tgz", + "integrity": "sha512-Uml42GeFxhTGQVml1XQ4cD0o/rp7J2ROy0fdYUcVitoE7vFqEhKH4TYVqRDpQr/bXtCJVxJdNQC1ntRxNREkPQ==", "dev": true, "requires": { - "mongodb-core": "3.1.7", + "mongodb-core": "3.1.9", "safe-buffer": "^5.1.2" }, "dependencies": { @@ -2272,9 +2229,9 @@ } }, "mongodb-core": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.7.tgz", - "integrity": "sha512-YffpSrLmgFNmrvkGx+yX00KyBNk64C0BalfEn6vHHkXtcMUGXw8nxrMmhq5eXPLLlYeBpD/CsgNxE2Chf0o4zQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.9.tgz", + "integrity": "sha512-MJpciDABXMchrZphh3vMcqu8hkNf/Mi+Gk6btOimVg1XMxLXh87j6FAvRm+KmwD1A9fpu3qRQYcbQe4egj23og==", "dev": true, "requires": { "bson": "^1.1.0", @@ -2292,17 +2249,17 @@ } }, "mongoose": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.3.12.tgz", - "integrity": "sha512-PjiYpvITCjOLe70gHMksjZU31AQlu9bgbqFWE0AQCtliGxtfo2ds1XcNTgqNVRbyrMA/w6lX0aqFEevF9+xqhQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.4.0.tgz", + "integrity": "sha512-pFKa6askJ6xwZT6mWuYBwa2R9ryd1+JrXUhKuAUxEGrUMTi8ADcJC/RgBg4fZ1lL6VPVVChsc9wpVn4X6gcWlg==", "dev": true, "requires": { "async": "2.6.1", "bson": "~1.1.0", "kareem": "2.3.0", "lodash.get": "4.4.2", - "mongodb": "3.1.8", - "mongodb-core": "3.1.7", + "mongodb": "3.1.10", + "mongodb-core": "3.1.9", "mongoose-legacy-pluralize": "1.0.2", "mpath": "0.5.1", "mquery": "3.2.0", @@ -2321,22 +2278,19 @@ } }, "mongoose-autopopulate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/mongoose-autopopulate/-/mongoose-autopopulate-0.8.2.tgz", - "integrity": "sha512-hrr1SQMYm1oLsKNuSFyWEPEMl3C6pWLJq8OKApsOxRRdOdIMnNDvSaXqJeD83zx4xffaDeVHVoxR29P560lmEQ==", - "dev": true + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mongoose-autopopulate/-/mongoose-autopopulate-0.9.0.tgz", + "integrity": "sha512-xFmowuE8HfzUMqQAL7fYs5kgKRKrXrZedrlS9ZrD1gfihSVv64oybZ+nXsLFt2FJKcbIg4QBWJTXB4US9PetOQ==" }, "mongoose-exists": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/mongoose-exists/-/mongoose-exists-0.6.2.tgz", - "integrity": "sha512-QCh2XyF+duw2CfsN+sK1J5uGo5gOYRJp9pZST8Kj7ExCEOHpwRkmVemj5rzn1Tcu/50VxBTJgkh9KIzMamyVIw==", - "dev": true + "integrity": "sha512-QCh2XyF+duw2CfsN+sK1J5uGo5gOYRJp9pZST8Kj7ExCEOHpwRkmVemj5rzn1Tcu/50VxBTJgkh9KIzMamyVIw==" }, "mongoose-hidden": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mongoose-hidden/-/mongoose-hidden-1.6.0.tgz", "integrity": "sha512-XNDfSg2F8xH3nkaC8ySNQ3j7uRvKO4z9PX5+sIS89waUit2AsbZPZKUJ9vT2tlAebnqMNYDYbOgHHwZanqWYSQ==", - "dev": true, "requires": { "debug": "^4.0.1", "mpath": "^0.5.1" @@ -2346,7 +2300,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -2354,8 +2307,7 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -2368,29 +2320,28 @@ "mongoose-regex-search": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/mongoose-regex-search/-/mongoose-regex-search-0.5.2.tgz", - "integrity": "sha512-9STuW5ACapxYUV32FjjA2QxEqKcNVYVmmHRkKvWKl6Qb192bxe/gjMRIDiiM0amtqqBJbPC8WUl0TeKQXFV5Vg==", - "dev": true + "integrity": "sha512-9STuW5ACapxYUV32FjjA2QxEqKcNVYVmmHRkKvWKl6Qb192bxe/gjMRIDiiM0amtqqBJbPC8WUl0TeKQXFV5Vg==" }, "mongoose-rest-actions": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/mongoose-rest-actions/-/mongoose-rest-actions-0.20.2.tgz", - "integrity": "sha512-mzRRbA1fh6vS8muKQ1ial1ZkviiDOo88GzxErOZNRH33Y3GMJZNv+zvPmT/nm/cBRrdXB/hza57/8zSJRCBWHA==", - "dev": true, + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/mongoose-rest-actions/-/mongoose-rest-actions-0.22.1.tgz", + "integrity": "sha512-sv2a2HtWK2YmWdoqH1nQzTfGY7ey4f5KUjEpCh08ZV6WOMVTozdEMo+jLb43MR+prnNXr5GckkxmF4mXurqU2g==", "requires": { - "@lykmapipo/mongoose-faker": "^0.8.1", - "inflection": "^1.12.0", - "mongoose-autopopulate": "^0.8.2", - "mongoose-exists": "^0.6.2", - "mongoose-hidden": "^1.6.0", - "mongoose-regex-search": "^0.5.2", - "mongoose-valid8": "^1.3.1" + "@lykmapipo/include": "^0.1.0", + "@lykmapipo/mongoose-common": ">=0.4.0", + "@lykmapipo/mongoose-faker": ">=0.8.2", + "@lykmapipo/mongoose-taggable": ">=0.1.0", + "inflection": ">=1.12.0", + "mongoose-autopopulate": ">=0.9.0", + "mongoose-exists": ">=0.6.2", + "mongoose-hidden": ">=1.6.0", + "mongoose-regex-search": ">=0.5.2" } }, "mongoose-schema-jsonschema": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/mongoose-schema-jsonschema/-/mongoose-schema-jsonschema-1.1.15.tgz", - "integrity": "sha1-qKurX4XwgYYbvGDfnAC9PfoH/14=", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mongoose-schema-jsonschema/-/mongoose-schema-jsonschema-1.2.1.tgz", + "integrity": "sha512-bV2UusuxLFhmMJahk834XkiEK7DPyfaKI+BQPLVFPqqH/ZmInaecmFMHauo7v4kfu4K1jYkB6sR6zXZ84TFj2Q==", "requires": { "pluralize": "^7.0.0" } @@ -2399,7 +2350,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/mongoose-valid8/-/mongoose-valid8-1.3.1.tgz", "integrity": "sha512-g1zeWYr/sFyIh8BqzYJaq5zkcU+7so1SYvDzq70UgvOgQLgd9+IH5Xzy1WUe0irGMIBYRf/ASpxnDp19k3F1iA==", - "dev": true, "requires": { "validator": "^10.9.0" } @@ -2408,7 +2358,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "dev": true, "requires": { "basic-auth": "~2.0.0", "debug": "2.6.9", @@ -2420,8 +2369,7 @@ "mpath": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.1.tgz", - "integrity": "sha512-H8OVQ+QEz82sch4wbODFOz+3YQ61FYz/z3eJ5pIdbMEaUzDqA268Wd+Vt4Paw9TJfvDgVKaayC0gBzMIw2jhsg==", - "dev": true + "integrity": "sha512-H8OVQ+QEz82sch4wbODFOz+3YQ61FYz/z3eJ5pIdbMEaUzDqA268Wd+Vt4Paw9TJfvDgVKaayC0gBzMIw2jhsg==" }, "mquery": { "version": "3.2.0", @@ -2456,23 +2404,21 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "nise": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.6.tgz", - "integrity": "sha512-1GedetLKzmqmgwabuMSqPsT7oumdR77SBpDfNNJhADRIeA3LN/2RVqR4fFqwvzhAqcTef6PPCzQwITE/YQ8S8A==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.8.tgz", + "integrity": "sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==", "dev": true, "requires": { - "@sinonjs/formatio": "3.0.0", - "just-extend": "^3.0.0", + "@sinonjs/formatio": "^3.1.0", + "just-extend": "^4.0.2", "lolex": "^2.3.2", "path-to-regexp": "^1.7.0", "text-encoding": "^0.6.4" @@ -2498,8 +2444,7 @@ "nocache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", - "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=", - "dev": true + "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=" }, "nomnom": { "version": "1.8.1", @@ -2533,8 +2478,7 @@ "noop6": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/noop6/-/noop6-1.0.7.tgz", - "integrity": "sha1-lnZ78gWLpZyoy5FVk0fdyAI5+o4=", - "dev": true + "integrity": "sha1-lnZ78gWLpZyoy5FVk0fdyAI5+o4=" }, "nopt": { "version": "3.0.6", @@ -2573,14 +2517,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, "requires": { "ee-first": "1.1.1" } @@ -2588,8 +2530,7 @@ "on-headers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" }, "once": { "version": "1.4.0", @@ -2612,8 +2553,7 @@ "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, "path-exists": { "version": "2.1.0", @@ -2633,8 +2573,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { "version": "1.1.0", @@ -2782,8 +2721,7 @@ "platform": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", - "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", - "dev": true + "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, "plur": { "version": "2.1.2", @@ -2797,8 +2735,7 @@ "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" }, "process-nextick-args": { "version": "2.0.0", @@ -2817,7 +2754,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.8.0" @@ -2840,20 +2776,17 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raw-body": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, "requires": { "bytes": "3.0.0", "http-errors": "1.6.3", @@ -2907,8 +2840,7 @@ "referrer-policy": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.1.0.tgz", - "integrity": "sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=", - "dev": true + "integrity": "sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=" }, "regexp-clone": { "version": "0.0.1", @@ -2976,8 +2908,7 @@ "require-all": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/require-all/-/require-all-3.0.0.tgz", - "integrity": "sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI=", - "dev": true + "integrity": "sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI=" }, "require_optional": { "version": "1.0.1", @@ -3013,8 +2944,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safe-json-parse": { "version": "1.0.1", @@ -3025,8 +2955,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "saslprep": { "version": "1.0.2", @@ -3048,7 +2977,6 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -3068,8 +2996,7 @@ "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" } } }, @@ -3077,7 +3004,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", - "dev": true, "requires": { "etag": "~1.8.1", "fresh": "0.5.2", @@ -3089,8 +3015,7 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -3098,7 +3023,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -3109,8 +3033,7 @@ "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "shelljs": { "version": "0.3.0", @@ -3125,26 +3048,24 @@ "dev": true }, "sinon": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.1.1.tgz", - "integrity": "sha512-iYagtjLVt1vN3zZY7D8oH7dkjNJEjLjyuzy8daX5+3bbQl8gaohrheB9VfH1O3L6LKuue5WTJvFluHiuZ9y3nQ==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.2.2.tgz", + "integrity": "sha512-WLagdMHiEsrRmee3jr6IIDntOF4kbI6N2pfbi8wkv50qaUQcBglkzkjtoOEbeJ2vf1EsrHhLI+5Ny8//WHdMoA==", "dev": true, "requires": { "@sinonjs/commons": "^1.2.0", - "@sinonjs/formatio": "^3.0.0", - "@sinonjs/samsam": "^2.1.2", + "@sinonjs/formatio": "^3.1.0", + "@sinonjs/samsam": "^3.0.2", "diff": "^3.5.0", - "lodash.get": "^4.4.2", "lolex": "^3.0.0", - "nise": "^1.4.6", - "supports-color": "^5.5.0", - "type-detect": "^4.0.8" + "nise": "^1.4.7", + "supports-color": "^5.5.0" } }, "sinon-chai": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.2.0.tgz", - "integrity": "sha512-Z72B4a0l0IQe5uWi9yzcqX/Ml6K9e1Hp03NmkjJnRG3gDsKTX7KvLFZsVUmCaz0eqeXLLK089mwTsP1P1W+DUQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.3.0.tgz", + "integrity": "sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA==", "dev": true }, "sinon-mongoose": { @@ -3212,9 +3133,9 @@ } }, "sprintf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", - "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true }, "sshpk": { @@ -3244,8 +3165,12 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stopwords-iso": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/stopwords-iso/-/stopwords-iso-0.4.0.tgz", + "integrity": "sha1-qqpcylsLaMBQJGh9BkUib6SnSR4=" }, "string-length": { "version": "1.0.1", @@ -3464,8 +3389,7 @@ "traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" }, "trim-newlines": { "version": "1.0.0", @@ -3500,7 +3424,6 @@ "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.18" @@ -3517,7 +3440,6 @@ "version": "2.3.10", "resolved": "https://registry.npmjs.org/typpy/-/typpy-2.3.10.tgz", "integrity": "sha512-DKiSmYeXF4q+K0H999sVROLjwsngad5AloblLo72No+xVT9W09ytUIOCC/3puHsf+Dsf8M2hoPds0H1HwJgQqg==", - "dev": true, "requires": { "function.name": "^1.0.3" } @@ -3535,9 +3457,9 @@ "dev": true }, "underscore.string": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", "dev": true, "requires": { "sprintf-js": "^1.0.3", @@ -3559,8 +3481,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "util-deprecate": { "version": "1.0.2", @@ -3571,14 +3492,12 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "validate-npm-package-license": { "version": "3.0.4", @@ -3593,14 +3512,12 @@ "validator": { "version": "10.9.0", "resolved": "https://registry.npmjs.org/validator/-/validator-10.9.0.tgz", - "integrity": "sha512-hZJcZSWz9poXBlAkjjcsNAdrZ6JbjD3kWlNjq/+vE7RLLS/+8PAj3qVVwrwsOz/WL8jPmZ1hYkRvtlUeZAm4ug==", - "dev": true + "integrity": "sha512-hZJcZSWz9poXBlAkjjcsNAdrZ6JbjD3kWlNjq/+vE7RLLS/+8PAj3qVVwrwsOz/WL8jPmZ1hYkRvtlUeZAm4ug==" }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "verror": { "version": "1.10.0", @@ -3676,8 +3593,7 @@ "x-xss-protection": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.1.0.tgz", - "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==", - "dev": true + "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==" }, "xtend": { "version": "4.0.1", diff --git a/package.json b/package.json index 47b2628..4da5f81 100644 --- a/package.json +++ b/package.json @@ -89,39 +89,32 @@ "devDependencies": { "@benmaruchu/faker": "^4.2.1", "@codetanzania/majifix-common": "^0.11.1", - "@lykmapipo/env": "^0.3.2", - "@lykmapipo/express-common": "^0.9.3", - "@lykmapipo/permission": "^0.4.1", - "async": "^2.6.1", "chai": "^4.2.0", - "express": "^4.16.4", "grunt": "^1.0.3", "grunt-apidoc": "^0.11.0", "grunt-contrib-jshint": "^2.0.0", "grunt-contrib-watch": "^1.1.0", "grunt-mocha-test": "^0.13.3", "jshint-stylish": "^2.2.1", - "lodash": "^4.17.11", - "mongoose-rest-actions": "^0.20.2", - "mongoose-schema-jsonschema": "^1.1.15", "mocha": "^5.2.0", - "mongoose": "^5.3.12", - "sinon": "^7.1.1", - "sinon-chai": "^3.2.0", + "mongoose": ">=5.4.0", + "sinon": "^7.2.2", + "sinon-chai": "^3.3.0", "sinon-mongoose": "^2.2.1", "supertest": "^3.3.0" }, "peerDependencies": { - "@lykmapipo/env": "^0.3.2", - "@lykmapipo/express-common": "^0.9.3", - "@lykmapipo/permission": "^0.4.1", - "async": "^2.6.1", - "express": "^4.16.4", - "lodash": "^4.17.11", - "mongoose-rest-actions": "^0.20.2", - "mongoose-schema-jsonschema": "^1.1.15" + "mongoose": ">=5.4.0" + }, + "dependencies": { + "@lykmapipo/env": ">=0.3.2", + "@lykmapipo/express-common": ">=0.9.4", + "@lykmapipo/permission": ">=0.6.0", + "async": ">=2.6.1", + "express": ">=4.16.4", + "lodash": ">=4.17.11", + "mongoose-rest-actions": ">=0.22.1" }, - "dependencies": {}, "engines": { "node": ">=8.11.1", "npm": ">=5.6.0" diff --git a/test/bootstrap.spec.js b/test/bootstrap.spec.js index 4fc9cfd..a919df2 100644 --- a/test/bootstrap.spec.js +++ b/test/bootstrap.spec.js @@ -11,4 +11,4 @@ mongoose.Promise = global.Promise; /* setup */ require('chai').use(require('sinon-chai')); require('sinon'); -require('sinon-mongoose'); \ No newline at end of file +require('sinon-mongoose'); diff --git a/test/integration/boostrap.spec.js b/test/integration/boostrap.spec.js index e553f87..9ba726f 100644 --- a/test/integration/boostrap.spec.js +++ b/test/integration/boostrap.spec.js @@ -1,35 +1,17 @@ 'use strict'; -/* ensure test env */ -process.env.NODE_ENV = 'test'; -process.env.MONGODB_URI = - (process.env.MONGODB_URI || 'mongodb://localhost/emis-role'); - - /* dependencies */ -const mongoose = require('mongoose'); - - -/* clean and restore database */ -const wipe = done => { - if (mongoose.connection && mongoose.connection.dropDatabase) { - mongoose.connection.dropDatabase(done); - } else { - done(); - } -}; +const { connect, clear, drop } = require('@lykmapipo/mongoose-test-helpers'); /* setup database */ -before((done) => { - mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true }, done); -}); +before((done) => connect(done)); /* clear database */ -before(wipe); +before((done) => clear(done)); -/* clear database */ -after(wipe); +/* drop database */ +after((done) => drop(done)); diff --git a/test/unit/role.model.spec.js b/test/unit/role.model.spec.js index a17c3fe..4beb388 100644 --- a/test/unit/role.model.spec.js +++ b/test/unit/role.model.spec.js @@ -2,9 +2,9 @@ /* dependencies */ -const path = require('path'); const { expect } = require('chai'); -const Role = require(path.join(__dirname, '..', '..', 'lib', 'role.model')); +const { include } = require('@lykmapipo/include'); +const Role = include(__dirname, '..', '..', 'lib', 'role.model'); describe('Role Instance', () => { diff --git a/test/unit/role.schema.spec.js b/test/unit/role.schema.spec.js index f44d4c7..2b4401b 100644 --- a/test/unit/role.schema.spec.js +++ b/test/unit/role.schema.spec.js @@ -2,11 +2,11 @@ /* dependencies */ -const path = require('path'); const { expect } = require('chai'); +const { include } = require('@lykmapipo/include'); const { Schema } = require('mongoose'); const { Permission } = require('@lykmapipo/permission'); -const Role = require(path.join(__dirname, '..', '..', 'lib', 'role.model')); +const Role = include(__dirname, '..', '..', 'lib', 'role.model'); describe('Role Schema', () => { From 53527c69b334fc3b930a6a5c1549465616ed3989 Mon Sep 17 00:00:00 2001 From: lykmapipo Date: Sun, 16 Dec 2018 17:58:28 +0300 Subject: [PATCH 2/2] Build apidoc & add changelogs --- CHANGELOG.md | 5 +++++ docs/api_project.js | 2 +- docs/api_project.json | 2 +- package-lock.json | 2 +- package.json | 3 +-- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4c1a58..6b1a762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 1.1.0 / 16-12-2018 +- Build latest apidoc +- Force latest dependencies & audit fix +- Add taggable plugin + # 1.0.4 / 18-11-2018 - Force latest dependencies - Improve role model unit spec diff --git a/docs/api_project.js b/docs/api_project.js index ecbd18c..866dc38 100644 --- a/docs/api_project.js +++ b/docs/api_project.js @@ -13,7 +13,7 @@ define({ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2018-11-18T08:17:29.001Z", + "time": "2018-12-16T14:58:05.218Z", "url": "http://apidocjs.com", "version": "0.17.6" } diff --git a/docs/api_project.json b/docs/api_project.json index be7a48c..c21163d 100644 --- a/docs/api_project.json +++ b/docs/api_project.json @@ -13,7 +13,7 @@ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2018-11-18T08:17:29.001Z", + "time": "2018-12-16T14:58:05.218Z", "url": "http://apidocjs.com", "version": "0.17.6" } diff --git a/package-lock.json b/package-lock.json index f34d767..42c253d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@codetanzania/emis-role", - "version": "1.0.4", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4da5f81..5d2d138 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@codetanzania/emis-role", - "version": "1.0.4", + "version": "1.1.0", "description": "A representation on how a party(or stakeholder) acts or, in other words, what role party(or stakeholder) plays in event of emergency(or disaster).", "main": "index.js", "scripts": { @@ -111,7 +111,6 @@ "@lykmapipo/express-common": ">=0.9.4", "@lykmapipo/permission": ">=0.6.0", "async": ">=2.6.1", - "express": ">=4.16.4", "lodash": ">=4.17.11", "mongoose-rest-actions": ">=0.22.1" },