From 27cfdf30e7909be67cfebdc3542ca70cad1154c3 Mon Sep 17 00:00:00 2001 From: Michael Gloystein Date: Wed, 30 May 2018 10:19:41 -0600 Subject: [PATCH 01/35] Adding LDAP as authentication method --- api/services/Passport.js | 10 ++++- api/services/protocols/index.js | 1 + api/services/protocols/ldap.js | 73 +++++++++++++++++++++++++++++++++ config/ldap.js | 16 ++++++++ package.json | 1 + 5 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 api/services/protocols/ldap.js create mode 100644 config/ldap.js diff --git a/api/services/Passport.js b/api/services/Passport.js index b0ea0a959..9f48e999d 100644 --- a/api/services/Passport.js +++ b/api/services/Passport.js @@ -25,6 +25,8 @@ */ // Module dependencies +var LdapStrategy = require('passport-ldapauth'); +var ldapConf = require("../../config/ldap"); var passport = require('passport'); var path = require('path'); var url = require('url'); @@ -198,10 +200,14 @@ passport.endpoint = function endpoint(request, response) { passport.callback = function callback(request, response, next) { sails.log.verbose(__filename + ':' + __line + ' [Service.Passport.callback() called]'); - var provider = request.param('provider', 'local'); + var provider = request.param('provider', process.env.KONGA_AUTH_PROVIDER || 'local'); var action = request.param('action'); - if (provider === 'local' && action !== undefined) { + if (provider === 'ldap') { + passport.use(new LdapStrategy(ldapConf)); + this.authenticate('ldapauth', + this.protocols.ldap.resolve(request, response, next))(request, response, response.next); + } else if (provider === 'local' && action !== undefined) { if (action === 'connect' && request.user) { this.protocols.local.connect(request, response, next); } else { diff --git a/api/services/protocols/index.js b/api/services/protocols/index.js index 4f807f05f..e2f2c05c4 100644 --- a/api/services/protocols/index.js +++ b/api/services/protocols/index.js @@ -16,6 +16,7 @@ module.exports = { local: require('./local'), oauth: require('./oauth'), + ldap: require('./ldap'), oauth2: require('./oauth2'), openid: require('./openid') }; diff --git a/api/services/protocols/ldap.js b/api/services/protocols/ldap.js new file mode 100644 index 000000000..c17417416 --- /dev/null +++ b/api/services/protocols/ldap.js @@ -0,0 +1,73 @@ +var _ = require('lodash'); +var adminGroup = new RegExp(process.env.ADMIN_GROUP_REG || null); +var commonName = /^cn=([^,]+),.*/ + +var ldapToUser = function (ldapUser, next) { + var data = { + active: true + } + data.username = ldapUser.uid; + data.firstName = ldapUser.givenName; + data.lastName = ldapUser.sn; + data.email = ldapUser.mail; + + sails.models.user.create(data) + .exec(function (err, user) { + if (err) { + next(err); + } else { + adminStatus(ldapUser, user, next); + } + }); +} + +var group_test = function (group) { + return group.cn === 'admin' || adminGroup.test(group.cn); +} + +var member_test = function (group) { + return group.startsWith('cn=admin') || + adminGroup.test(commonName.replace(group, "$1")); +} + +var adminStatus = function (ldapUser, user, next) { + user.admin = + _.findIndex(ldapUser._groups, group_test) > -1 || + _.findIndex(ldapUser.memberOf, member_test) > -1; + next(null, user); +} + +/** + * Resolve LDAP user + * + * This function can be used to create a user in the local db to store + * users' roles locally + * + * @param {Request} request + * @param {Response} response + * @param {Function} next + */ +exports.resolve = function resolve(request, response, next) { + return function resolveUser(err, result, message) { + if (result === false) { + var error = message; + next(error); + } else { + var ldapUser = result; + sails.models.user + .findOne({ + username: ldapUser.uid || ldapUser.sAMAccountName + }) + .populate('node') + .exec(function onExec(error, user) { + if (error) { + next(error); + } else if (!user) { + ldapToUser(ldapUser, next); + } else { + adminStatus(ldapUser, user, next); + } + }) + } + }; +} \ No newline at end of file diff --git a/config/ldap.js b/config/ldap.js new file mode 100644 index 000000000..2797020ed --- /dev/null +++ b/config/ldap.js @@ -0,0 +1,16 @@ + +module.exports = { + server: { + url: process.env.LDAP_HOST || 'ldap://localhost:389', + bindDN: process.env.LDAP_BIND_USER, + bindCredentials: process.env.LDAP_BIND_PASSWORD, + searchAttributes: ['uid', 'givenName', 'sn', 'mail'], + searchBase: process.env.LDAP_SEARCH || "cn=users,dc=com", + searchFilter: '(|(uid={{username}})(sAMAccountName={{username}}))', + groupSearchAttributes: ['cn'], + groupSearchBase: process.env.LDAP_GROUP_SEARCH || 'cn=groups,cn=accounts,dc=com', + groupSearchFilter: '(member={{dn}})' + }, + usernameField: 'identifier', + passwordField: 'password' +}; \ No newline at end of file diff --git a/package.json b/package.json index 8f1f9b2e5..5ecfa4633 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "nodemailer": "^4.3.1", "nodemailer-mailgun-transport": "^1.3.5", "passport": "0.3.0", + "passport-ldapauth": "^2.0.0", "passport-local": "1.0.0", "rc": "1.0.1", "sails": "~0.12.14", From e11ce37c1d02cdddf4685f689e63553d1ef101c7 Mon Sep 17 00:00:00 2001 From: Michael Gloystein Date: Mon, 4 Jun 2018 11:37:58 -0600 Subject: [PATCH 02/35] Add comments and rename for clarity --- api/services/Passport.js | 2 +- api/services/protocols/ldap.js | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/api/services/Passport.js b/api/services/Passport.js index 9f48e999d..aed143258 100644 --- a/api/services/Passport.js +++ b/api/services/Passport.js @@ -206,7 +206,7 @@ passport.callback = function callback(request, response, next) { if (provider === 'ldap') { passport.use(new LdapStrategy(ldapConf)); this.authenticate('ldapauth', - this.protocols.ldap.resolve(request, response, next))(request, response, response.next); + this.protocols.ldap.getResolver(next))(request, response, response.next); } else if (provider === 'local' && action !== undefined) { if (action === 'connect' && request.user) { this.protocols.local.connect(request, response, next); diff --git a/api/services/protocols/ldap.js b/api/services/protocols/ldap.js index c17417416..adf93f868 100644 --- a/api/services/protocols/ldap.js +++ b/api/services/protocols/ldap.js @@ -16,7 +16,7 @@ var ldapToUser = function (ldapUser, next) { if (err) { next(err); } else { - adminStatus(ldapUser, user, next); + setAdminStatus(ldapUser, user, next); } }); } @@ -30,7 +30,7 @@ var member_test = function (group) { adminGroup.test(commonName.replace(group, "$1")); } -var adminStatus = function (ldapUser, user, next) { +var setAdminStatus = function (ldapUser, user, next) { user.admin = _.findIndex(ldapUser._groups, group_test) > -1 || _.findIndex(ldapUser.memberOf, member_test) > -1; @@ -47,7 +47,7 @@ var adminStatus = function (ldapUser, user, next) { * @param {Response} response * @param {Function} next */ -exports.resolve = function resolve(request, response, next) { +exports.getResolver = function getResolver(next) { return function resolveUser(err, result, message) { if (result === false) { var error = message; @@ -55,17 +55,21 @@ exports.resolve = function resolve(request, response, next) { } else { var ldapUser = result; sails.models.user - .findOne({ - username: ldapUser.uid || ldapUser.sAMAccountName + .findOne({ // UID is the default, but the LDAP provider could be ActiveDirectory + username: (ldapUser.uid || ldapUser.sAMAccountName) }) .populate('node') .exec(function onExec(error, user) { if (error) { + // Dunno, something bad happened next(error); } else if (!user) { + // We've not seen this user yet, so let's create a profile ldapToUser(ldapUser, next); } else { - adminStatus(ldapUser, user, next); + // We trust LDAP explicitly, so we'll check the groups the user + // is a part of evey time they login + setAdminStatus(ldapUser, user, next); } }) } From d5f571ffb1682f55502ab363bd5603c0829d94a9 Mon Sep 17 00:00:00 2001 From: Branden Cash Date: Mon, 9 Jul 2018 10:01:34 -0700 Subject: [PATCH 03/35] updating LDAP integration to sync the LDAP user data to the Konga user each time they login. added some documentation on LDAP configuration --- README.md | 2 ++ api/services/protocols/ldap.js | 60 +++++++++++++++++++++------------- config/ldap.js | 28 ++++++++++------ docs/LDAP.md | 24 ++++++++++++++ 4 files changed, 82 insertions(+), 32 deletions(-) create mode 100644 docs/LDAP.md diff --git a/README.md b/README.md index 131573b5b..e4b9d923e 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,8 @@ login: demo | password: demodemodemo This user data is populated to the database if there is not already any user data in it. [It is possible to alter the default user seed data.](DEFAULTUSERSEEDDATA.md) +You may also configure konga to authenticate via [LDAP](./docs/LDAP.md). + ## Upgrading In some cases a newer version of Konga may introduce new db tables, collections or changes in schemas. The only thing you need to do is to start Konga in dev mode once so that the migrations will be applied. diff --git a/api/services/protocols/ldap.js b/api/services/protocols/ldap.js index adf93f868..2bf114da5 100644 --- a/api/services/protocols/ldap.js +++ b/api/services/protocols/ldap.js @@ -1,33 +1,51 @@ var _ = require('lodash'); -var adminGroup = new RegExp(process.env.ADMIN_GROUP_REG || null); -var commonName = /^cn=([^,]+),.*/ +var adminGroup = new RegExp(process.env.KONGA_ADMIN_GROUP_REG || "^(admin|konga)$"); +var ldapAttrMap = { + username: process.env.KONGA_LDAP_ATTR_USERNAME || 'uid', + firstName: process.env.KONGA_LDAP_ATTR_FIRSTNAME || 'givenName', + lastName: process.env.KONGA_LDAP_ATTR_LASTNAME || 'sn', + email: process.env.KONGA_LDAP_ATTR_EMAIL || 'mail' +}; +var commonName = /^cn=([^,]+),.*/; -var ldapToUser = function (ldapUser, next) { - var data = { - active: true +var ldapToUser = function (ldapUser, user, next) { + var data = _.clone(user || {}); + data.active = true; + + // copy attributes from the ldap user to the konga user using the ldapAttrMap + for (var userAttr in ldapAttrMap) { + if (ldapAttrMap.hasOwnProperty(userAttr)) { + data[userAttr] = ldapUser[ldapAttrMap[userAttr]]; + } } - data.username = ldapUser.uid; - data.firstName = ldapUser.givenName; - data.lastName = ldapUser.sn; - data.email = ldapUser.mail; - sails.models.user.create(data) - .exec(function (err, user) { + if (data && data.id) { + sails.models.user.update({id: data.id}, data).exec(function(err) { if (err) { + console.error("Failed to update user from ldap", err); + next(err); + } else { + setAdminStatus(ldapUser, data, next); + } + }); + } else { + sails.models.user.create(data).exec(function (err, user) { + if (err) { + console.error("Failed to create user from ldap", err); next(err); } else { setAdminStatus(ldapUser, user, next); } }); + } } var group_test = function (group) { - return group.cn === 'admin' || adminGroup.test(group.cn); + return adminGroup.test(group.cn); } var member_test = function (group) { - return group.startsWith('cn=admin') || - adminGroup.test(commonName.replace(group, "$1")); + return adminGroup.test(commonName.replace(group, "$1")); } var setAdminStatus = function (ldapUser, user, next) { @@ -49,7 +67,8 @@ var setAdminStatus = function (ldapUser, user, next) { */ exports.getResolver = function getResolver(next) { return function resolveUser(err, result, message) { - if (result === false) { + if (result === false || typeof result === 'undefined') { + console.error('failed to resolve user', err, message); var error = message; next(error); } else { @@ -62,16 +81,13 @@ exports.getResolver = function getResolver(next) { .exec(function onExec(error, user) { if (error) { // Dunno, something bad happened + console.error('failed to look up existing user', error); next(error); - } else if (!user) { - // We've not seen this user yet, so let's create a profile - ldapToUser(ldapUser, next); } else { - // We trust LDAP explicitly, so we'll check the groups the user - // is a part of evey time they login - setAdminStatus(ldapUser, user, next); + // sync the ldap user to konga user + ldapToUser(ldapUser, user, next); } }) } }; -} \ No newline at end of file +} diff --git a/config/ldap.js b/config/ldap.js index 2797020ed..8ecfdd0ab 100644 --- a/config/ldap.js +++ b/config/ldap.js @@ -1,16 +1,24 @@ +var _ = require('lodash'); +var groupFilter = process.env.KONGA_LDAP_GROUP_SEARCH_FILTER || '(|(memberUid={{uid}})(memberUid={{uidNumber}})(sAMAccountName={{uid}}))'; +var groupFilterTemplate = _.template(groupFilter, { + // use {{...}} syntax for template variables + interpolate: /{{([\s\S]+?)}}/g +}); module.exports = { server: { - url: process.env.LDAP_HOST || 'ldap://localhost:389', - bindDN: process.env.LDAP_BIND_USER, - bindCredentials: process.env.LDAP_BIND_PASSWORD, - searchAttributes: ['uid', 'givenName', 'sn', 'mail'], - searchBase: process.env.LDAP_SEARCH || "cn=users,dc=com", - searchFilter: '(|(uid={{username}})(sAMAccountName={{username}}))', - groupSearchAttributes: ['cn'], - groupSearchBase: process.env.LDAP_GROUP_SEARCH || 'cn=groups,cn=accounts,dc=com', - groupSearchFilter: '(member={{dn}})' + url: process.env.KONGA_LDAP_HOST || 'ldap://localhost:389', + bindDN: process.env.KONGA_LDAP_BIND_DN, + bindCredentials: process.env.KONGA_LDAP_BIND_PASSWORD, + searchAttributes: (process.env.KONGA_LDAP_USER_ATTRS || 'uid,uidNumber,givenName,sn,mail').split(','), + searchBase: process.env.KONGA_LDAP_USER_SEARCH_BASE || "ou=users,dc=com", + searchFilter: process.env.KONGA_LDAP_USER_SEARCH_FILTER || '(|(uid={{username}})(sAMAccountName={{username}}))', + groupSearchAttributes: (process.env.KONGA_LDAP_GROUP_ATTRS || 'cn').split(','), + groupSearchBase: process.env.KONGA_LDAP_GROUP_SEARCH_BASE || 'ou=groups,dc=com', + groupSearchFilter: function (user) { + return groupFilterTemplate(user); + } }, usernameField: 'identifier', passwordField: 'password' -}; \ No newline at end of file +}; diff --git a/docs/LDAP.md b/docs/LDAP.md new file mode 100644 index 000000000..f8e12244b --- /dev/null +++ b/docs/LDAP.md @@ -0,0 +1,24 @@ +# LDAP + +With the LDAP integration, you can authenticate via your LDAP server. Currently the application does need the user to be in the konga user database for the user profile page to display properly, so we currently will sync any LDAP authenticated user into the konga user database upon each login. In the future, perhaps the user profile page will be read-only for LDAP authentication? Or maybe it can sync the data back up to the LDAP server? + +## Configuration + +| Environment Variable | Default | Description | +| --- | --- | --- | +| `KONGA_AUTH_PROVIDER` | `local` | **Set this to `ldap` to switch auth provider to LDAP** | +| `KONGA_LDAP_HOST` | `ldap://localhost:389` | The location of the LDAP server | +| `KONGA_LDAP_BIND_DN` | *no default* | The DN that the konga should use to login to LDAP to search users | +| `KONGA_LDAP_BIND_PASSWORD` | *no default* | The password for the user konga will use to search for users | +| `KONGA_LDAP_USER_SEARCH_BASE` | `ou=users,dc=com` | The base DN used to search for users | +| `KONGA_LDAP_USER_SEARCH_FILTER` | `(|(uid={{username}})(sAMAccountName={{username}}))` | The filter expression used to search for users. Use `{{username}}` where you expect the username to be. | +| `KONGA_LDAP_USER_ATTRS` | `uid,uidNumber,givenName,sn,mail` | Comma separated list of attributes to pull from the LDAP server for users | +| `KONGA_LDAP_GROUP_SEARCH_BASE` | `ou=groups,dc=com` | The base DN used to search for groups | +| `KONGA_LDAP_GROUP_SEARCH_FILTER` | `(|(memberUid={{uid}})(memberUid={{uidNumber}})(sAMAccountName={{uid}}))` | The filter expression used to search for groups. Use `{{some-attr}}` where you expect a user attribute to be or `{{dn}}` for the user `dn`. | +| `KONGA_LDAP_GROUP_ATTRS` | `cn` | Comma separated list of attributes to pull from the LDAP server for groups | +| `KONGA_ADMIN_GROUP_REG` | `^(admin|konga)$` | Regular expression used to determine if a group should be considered as an admin user | +| `KONGA_LDAP_ATTR_USERNAME` | `uid` | LDAP attribute name that should be used as the konga username | +| `KONGA_LDAP_ATTR_FIRSTNAME` | `givenName` | LDAP attribute name that should be used as the konga user's first name | +| `KONGA_LDAP_ATTR_LASTNAME` | `sn` | LDAP attribute name that should be used as the konga user's last name | +| `KONGA_LDAP_ATTR_EMAIL` | `mail` | LDAP attribute name that should be used as the konga user's email address | + From 9779b51e8e445705406047b6de1757950fa48c01 Mon Sep 17 00:00:00 2001 From: pantsel Date: Sun, 22 Jul 2018 21:27:32 +0300 Subject: [PATCH 04/35] Moved related .md files to docs --- README.md | 2 +- .../DEFAULTUSERSEEDDATA.md | 0 package-lock.json | 3085 +++++++++-------- views/layout.ejs | 426 +-- 4 files changed, 1885 insertions(+), 1628 deletions(-) rename DEFAULTUSERSEEDDATA.md => docs/DEFAULTUSERSEEDDATA.md (100%) diff --git a/README.md b/README.md index 87ec07a9d..7158c7f59 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,7 @@ login: admin | password: adminadminadmin *Demo user* login: demo | password: demodemodemo -This user data is populated to the database if there is not already any user data in it. [It is possible to alter the default user seed data.](DEFAULTUSERSEEDDATA.md) +This user data is populated to the database if there is not already any user data in it. [It is possible to alter the default user seed data.](./docs/DEFAULTUSERSEEDDATA.md) You may also configure konga to authenticate via [LDAP](./docs/LDAP.md). diff --git a/DEFAULTUSERSEEDDATA.md b/docs/DEFAULTUSERSEEDDATA.md similarity index 100% rename from DEFAULTUSERSEEDDATA.md rename to docs/DEFAULTUSERSEEDDATA.md diff --git a/package-lock.json b/package-lock.json index 8c3025839..756273147 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "kongadmin", - "version": "0.12.0-rc2", + "version": "0.12.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@mapbox/geojsonhint/-/geojsonhint-2.0.1.tgz", "integrity": "sha1-MtrHMA8Es+uux0tbqYU9+0JTI1Q=", "requires": { - "concat-stream": "1.5.2", + "concat-stream": "~1.5.1", "jsonlint-lines": "1.7.1", "minimist": "1.2.0", "vfile": "2.0.0", @@ -21,9 +21,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" } }, "readable-stream": { @@ -31,12 +31,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -51,16 +51,16 @@ "resolved": "https://registry.npmjs.org/@sailshq/body-parser/-/body-parser-1.13.4.tgz", "integrity": "sha1-MT5QFhmoYnPf/W0cuRZ0Kl2ejhs=", "requires": { - "@sailshq/qs": "4.0.2", + "@sailshq/qs": "^4.0.1", "bytes": "2.1.0", - "content-type": "1.0.4", - "debug": "2.2.0", - "depd": "1.0.1", - "http-errors": "1.3.1", + "content-type": "~1.0.1", + "debug": "~2.2.0", + "depd": "~1.0.1", + "http-errors": "~1.3.1", "iconv-lite": "0.4.11", - "on-finished": "2.3.0", - "raw-body": "2.1.7", - "type-is": "1.6.15" + "on-finished": "~2.3.0", + "raw-body": "~2.1.2", + "type-is": "~1.6.6" }, "dependencies": { "bytes": { @@ -93,37 +93,37 @@ "resolved": "https://registry.npmjs.org/@sailshq/connect/-/connect-2.30.3.tgz", "integrity": "sha1-v6aEpjdwI5rCgfVxzVq9mHaTfRQ=", "requires": { - "@sailshq/body-parser": "1.13.4", - "@sailshq/qs": "4.0.2", + "@sailshq/body-parser": "^1.13.3", + "@sailshq/qs": "^4.0.1", "basic-auth-connect": "1.0.0", "bytes": "2.1.0", - "compression": "1.5.2", - "connect-timeout": "1.6.2", - "content-type": "1.0.4", + "compression": "~1.5.2", + "connect-timeout": "~1.6.2", + "content-type": "~1.0.1", "cookie": "0.1.3", - "cookie-parser": "1.3.5", + "cookie-parser": "~1.3.5", "cookie-signature": "1.0.6", - "csurf": "1.8.3", - "debug": "2.2.0", - "depd": "1.0.1", - "errorhandler": "1.4.3", - "express-session": "1.11.3", + "csurf": "~1.8.3", + "debug": "~2.2.0", + "depd": "~1.0.1", + "errorhandler": "~1.4.2", + "express-session": "~1.11.3", "finalhandler": "0.4.0", "fresh": "0.3.0", - "http-errors": "1.3.1", - "method-override": "2.3.5", - "morgan": "1.6.1", + "http-errors": "~1.3.1", + "method-override": "~2.3.5", + "morgan": "~1.6.1", "multiparty": "3.3.2", - "on-headers": "1.0.1", - "parseurl": "1.3.2", + "on-headers": "~1.0.0", + "parseurl": "~1.3.0", "pause": "0.1.0", - "response-time": "2.3.2", - "serve-favicon": "2.3.0", - "serve-index": "1.7.3", - "serve-static": "1.10.2", - "type-is": "1.6.15", + "response-time": "~2.3.1", + "serve-favicon": "~2.3.0", + "serve-index": "~1.7.2", + "serve-static": "~1.10.0", + "type-is": "~1.6.6", "utils-merge": "1.0.0", - "vhost": "3.0.2" + "vhost": "~3.0.1" }, "dependencies": { "bytes": { @@ -136,12 +136,12 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz", "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", "requires": { - "accepts": "1.2.13", + "accepts": "~1.2.12", "bytes": "2.1.0", - "compressible": "2.0.11", - "debug": "2.2.0", - "on-headers": "1.0.1", - "vary": "1.0.1" + "compressible": "~2.0.5", + "debug": "~2.2.0", + "on-headers": "~1.0.0", + "vary": "~1.0.1" } }, "cookie": { @@ -156,8 +156,8 @@ "requires": { "cookie": "0.1.3", "cookie-signature": "1.0.6", - "csrf": "3.0.6", - "http-errors": "1.3.1" + "csrf": "~3.0.0", + "http-errors": "~1.3.1" } }, "debug": { @@ -181,11 +181,11 @@ "cookie": "0.1.3", "cookie-signature": "1.0.6", "crc": "3.3.0", - "debug": "2.2.0", - "depd": "1.0.1", - "on-headers": "1.0.1", - "parseurl": "1.3.2", - "uid-safe": "2.0.0", + "debug": "~2.2.0", + "depd": "~1.0.1", + "on-headers": "~1.0.0", + "parseurl": "~1.3.0", + "uid-safe": "~2.0.0", "utils-merge": "1.0.0" } }, @@ -209,27 +209,27 @@ "resolved": "https://registry.npmjs.org/@sailshq/express/-/express-3.21.3.tgz", "integrity": "sha1-7/cdUR1+gS8csts93ImaiTehvgA=", "requires": { - "@sailshq/connect": "2.30.3", - "basic-auth": "1.0.4", + "@sailshq/connect": "^2.30.3", + "basic-auth": "~1.0.3", "commander": "2.6.0", "content-disposition": "0.5.0", - "content-type": "1.0.4", + "content-type": "~1.0.1", "cookie": "0.1.3", "cookie-signature": "1.0.6", - "debug": "2.2.0", - "depd": "1.0.1", + "debug": "~2.2.0", + "depd": "~1.0.1", "escape-html": "1.0.2", - "etag": "1.7.0", + "etag": "~1.7.0", "fresh": "0.3.0", "merge-descriptors": "1.0.0", - "methods": "1.1.2", + "methods": "~1.1.1", "mkdirp": "0.5.1", - "parseurl": "1.3.2", - "proxy-addr": "1.0.10", - "range-parser": "1.0.3", + "parseurl": "~1.3.0", + "proxy-addr": "~1.0.8", + "range-parser": "~1.0.2", "send": "0.13.0", "utils-merge": "1.0.0", - "vary": "1.0.1" + "vary": "~1.0.1" }, "dependencies": { "commander": { @@ -272,18 +272,18 @@ "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.16.0.tgz", "integrity": "sha512-CWr7a3rTVrN5Vs8GYReRAvTourbXHOqB1zglcskj05ICH4GZL5BOAza2ARai+qc3Nz0nY08Bozi1x0014KOqlg==", "requires": { - "async": "1.5.0", - "bluebird": "3.5.1", - "eventemitter3": "1.2.0", - "https-proxy-agent": "1.0.0", - "inherits": "2.0.3", - "lodash": "4.17.10", - "pkginfo": "0.4.1", - "request": "2.76.0", - "retry": "0.9.0", + "async": "^1.5.0", + "bluebird": "^3.3.3", + "eventemitter3": "^1.1.1", + "https-proxy-agent": "^1.0.0", + "inherits": "^2.0.1", + "lodash": "^4.13.1", + "pkginfo": "^0.4.0", + "request": ">=2.0.0 <2.77.0", + "retry": "^0.9.0", "url-join": "0.0.1", - "winston": "2.4.3", - "ws": "1.1.2" + "winston": "^2.1.1", + "ws": "^1.0.1" }, "dependencies": { "assert-plus": { @@ -306,7 +306,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "caseless": { @@ -324,7 +324,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "form-data": { @@ -332,9 +332,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-validator": { @@ -342,10 +342,10 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.1", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -353,10 +353,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -369,9 +369,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "qs": { @@ -384,26 +384,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz", "integrity": "sha1-vkRQWv73A2CgQ2lVEGvjlF2VVg4=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" } }, "sntp": { @@ -411,7 +411,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "tunnel-agent": { @@ -424,12 +424,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.3.tgz", "integrity": "sha512-GYKuysPz2pxYAVJD2NPsDLP5Z79SDEzPm9/j4tCjkF/n89iBNGBMJcR+dMUqxgPNgoSs6fVygPi+Vl2oxIpBuw==", "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.10" + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -441,6 +441,89 @@ } } }, + "@types/body-parser": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", + "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.32", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "requires": { + "@types/node": "*" + } + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==" + }, + "@types/express": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.0.tgz", + "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz", + "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", + "requires": { + "@types/events": "*", + "@types/node": "*", + "@types/range-parser": "*" + } + }, + "@types/ldapjs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/ldapjs/-/ldapjs-1.0.3.tgz", + "integrity": "sha512-FSj24s1WsFEfOy8taIKp2DokSZfFkjWYZb88AS5eDj3WTocZ+4DnHjhzrXEs048WQ5mfOLJXMOAnc0kSnHh5Lw==", + "requires": { + "@types/events": "*", + "@types/node": "*" + } + }, + "@types/mime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", + "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" + }, + "@types/node": { + "version": "7.0.67", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.67.tgz", + "integrity": "sha512-DUioEWBd0NG30G1/wI0amNN/sSJ/xuX4/YWm4nNa+bUU6swuS7CF+sH/nifu+SPy5BFqRzQEyEWvi9zIDVP+Lw==" + }, + "@types/passport": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-0.3.5.tgz", + "integrity": "sha512-J7mdY1nnhjdbkXT84S3WsyrTtDf2KqUJ9JW3Y9vxA5GuXlejIuvwHw9A2TdNklAqPG2Q0TWqlsA2a2GIeV1jYA==", + "requires": { + "@types/express": "*" + } + }, + "@types/range-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.2.tgz", + "integrity": "sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw==" + }, + "@types/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/mime": "*" + } + }, "JSV": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", @@ -456,7 +539,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.6", "negotiator": "0.5.3" } }, @@ -475,8 +558,8 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", "requires": { - "extend": "3.0.1", - "semver": "5.0.3" + "extend": "~3.0.0", + "semver": "~5.0.1" }, "dependencies": { "semver": { @@ -491,10 +574,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" } }, "align-text": { @@ -502,9 +585,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "ambi": { @@ -512,8 +595,8 @@ "resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz", "integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=", "requires": { - "editions": "1.3.3", - "typechecker": "4.4.1" + "editions": "^1.1.1", + "typechecker": "^4.3.0" }, "dependencies": { "typechecker": { @@ -521,7 +604,7 @@ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.4.1.tgz", "integrity": "sha1-+XuV9RsDhBchLWd9RaNz7nvO1+Y=", "requires": { - "editions": "1.3.3" + "editions": "^1.3.3" } } } @@ -536,9 +619,9 @@ "resolved": "https://registry.npmjs.org/anchor/-/anchor-0.10.5.tgz", "integrity": "sha1-H54EMjowh/q53ufYilEJm35fsLU=", "requires": { - "geojsonhint": "1.1.0", - "lodash": "3.9.3", - "validator": "3.41.2" + "geojsonhint": "^1.1.0", + "lodash": "~3.9.3", + "validator": "~3.41.2" }, "dependencies": { "geojsonhint": { @@ -546,11 +629,11 @@ "resolved": "https://registry.npmjs.org/geojsonhint/-/geojsonhint-1.1.0.tgz", "integrity": "sha1-3EbDzgkQHz+RgmWN3DcGBW/LR0Y=", "requires": { - "colors": "0.6.2", - "concat-stream": "1.4.10", - "jsonlint-lines": "1.6.0", + "colors": "~0.6.0-1", + "concat-stream": "~1.4.4", + "jsonlint-lines": "~1.6.0", "minimist": "1.1.1", - "optimist": "0.6.1" + "optimist": "~0.6.0" }, "dependencies": { "colors": { @@ -563,9 +646,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz", "integrity": "sha1-rMO79WAsuMyYDGrIQPp9hgPj7zY=", "requires": { - "inherits": "2.0.1", - "readable-stream": "1.1.13", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~1.1.9", + "typedarray": "~0.0.5" }, "dependencies": { "inherits": { @@ -578,10 +661,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "integrity": "sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=", "requires": { - "core-util-is": "1.0.1", - "inherits": "2.0.1", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" }, "dependencies": { "core-util-is": { @@ -613,8 +696,8 @@ "resolved": "https://registry.npmjs.org/jsonlint-lines/-/jsonlint-lines-1.6.0.tgz", "integrity": "sha1-JZiHm6YvV1dEeXcJu1AUcM0Qgfs=", "requires": { - "JSV": "4.0.2", - "nomnom": "1.8.1" + "JSV": ">= 4.0.x", + "nomnom": ">= 1.5.x" }, "dependencies": { "JSV": { @@ -627,8 +710,8 @@ "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", "requires": { - "chalk": "0.4.0", - "underscore": "1.6.0" + "chalk": "~0.4.0", + "underscore": "~1.6.0" }, "dependencies": { "chalk": { @@ -636,9 +719,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" }, "dependencies": { "ansi-styles": { @@ -677,8 +760,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { @@ -727,8 +810,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -736,7 +819,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "array-find-index": { @@ -810,6 +893,14 @@ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" }, + "backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "requires": { + "precond": "0.2" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -820,8 +911,8 @@ "resolved": "https://registry.npmjs.org/barrels/-/barrels-1.6.5.tgz", "integrity": "sha1-v0XBCY+sKO5D4QCopzx+cT21Hl4=", "requires": { - "async": "1.5.0", - "lodash": "3.10.1" + "async": "^1.5.0", + "lodash": "^3.10.1" }, "dependencies": { "lodash": { @@ -877,7 +968,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bcryptjs": { @@ -908,7 +999,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", "requires": { - "readable-stream": "2.0.6" + "readable-stream": "~2.0.5" }, "dependencies": { "readable-stream": { @@ -916,12 +1007,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -941,7 +1032,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { @@ -954,10 +1045,10 @@ "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", "requires": { - "continuable-cache": "0.3.1", - "error": "7.0.2", - "raw-body": "1.1.7", - "safe-json-parse": "1.0.1" + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" }, "dependencies": { "raw-body": { @@ -965,8 +1056,8 @@ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", "requires": { - "bytes": "1.0.0", - "string_decoder": "0.10.31" + "bytes": "1", + "string_decoder": "0.10" } }, "string_decoder": { @@ -982,15 +1073,15 @@ "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", "requires": { "bytes": "2.2.0", - "content-type": "1.0.4", - "debug": "2.2.0", - "depd": "1.1.1", - "http-errors": "1.3.1", + "content-type": "~1.0.1", + "debug": "~2.2.0", + "depd": "~1.1.0", + "http-errors": "~1.3.1", "iconv-lite": "0.4.13", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "5.2.0", - "raw-body": "2.1.7", - "type-is": "1.6.15" + "raw-body": "~2.1.5", + "type-is": "~1.6.10" }, "dependencies": { "bytes": { @@ -1023,7 +1114,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "bops": { @@ -1045,7 +1136,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1060,7 +1151,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "bson": { @@ -1073,8 +1164,8 @@ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "requires": { - "buffer-alloc-unsafe": "1.1.0", - "buffer-fill": "1.0.0" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, "buffer-alloc-unsafe": { @@ -1137,6 +1228,17 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "bunyan": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "requires": { + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" + } + }, "bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", @@ -1157,8 +1259,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz", "integrity": "sha1-vRoRv5sxoc5JNJOpMN4aC69K1+w=", "requires": { - "camelcase": "1.2.1", - "map-obj": "1.0.1" + "camelcase": "^1.0.1", + "map-obj": "^1.0.0" } }, "captains-log": { @@ -1196,9 +1298,9 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-0.3.5.tgz", "integrity": "sha1-/OIiBZO+V6oSlmhafjftAD38xyg=", "requires": { - "deep-extend": "0.2.11", - "ini": "1.1.0", - "minimist": "0.0.10" + "deep-extend": "~0.2.5", + "ini": "~1.1.0", + "minimist": "~0.0.7" } } } @@ -1213,8 +1315,8 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -1223,9 +1325,9 @@ "integrity": "sha1-/SaO3gHD4IGJGrWdMGKPs7nfR4Y=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "deep-eql": "0.1.3", - "type-detect": "1.0.0" + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" } }, "chalk": { @@ -1233,11 +1335,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "clean-css": { @@ -1245,7 +1347,7 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", "requires": { - "source-map": "0.5.7" + "source-map": "0.5.x" } }, "cliui": { @@ -1253,8 +1355,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -1296,7 +1398,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1324,7 +1426,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz", "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=", "requires": { - "mime-db": "1.30.0" + "mime-db": ">= 1.29.0 < 2" } }, "compression": { @@ -1332,12 +1434,12 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.3", "bytes": "2.3.0", - "compressible": "2.0.11", - "debug": "2.2.0", - "on-headers": "1.0.1", - "vary": "1.1.2" + "compressible": "~2.0.8", + "debug": "~2.2.0", + "on-headers": "~1.0.1", + "vary": "~1.1.0" }, "dependencies": { "accepts": { @@ -1345,7 +1447,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -1384,10 +1486,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "connect": { @@ -1395,9 +1497,9 @@ "resolved": "https://registry.npmjs.org/connect/-/connect-3.4.1.tgz", "integrity": "sha1-ohNh0/QJnvdhzabcSpc7seuwo00=", "requires": { - "debug": "2.2.0", + "debug": "~2.2.0", "finalhandler": "0.4.1", - "parseurl": "1.3.2", + "parseurl": "~1.3.1", "utils-merge": "1.0.0" }, "dependencies": { @@ -1419,10 +1521,10 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=", "requires": { - "debug": "2.2.0", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "unpipe": "1.0.0" + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "unpipe": "~1.0.0" } } } @@ -1437,10 +1539,10 @@ "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", "requires": { - "debug": "2.2.0", - "http-errors": "1.3.1", + "debug": "~2.2.0", + "http-errors": "~1.3.1", "ms": "0.7.1", - "on-headers": "1.0.1" + "on-headers": "~1.0.0" }, "dependencies": { "debug": { @@ -1463,7 +1565,7 @@ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", "requires": { - "bluebird": "3.5.1" + "bluebird": "^3.1.1" }, "dependencies": { "bluebird": { @@ -1540,7 +1642,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz", "integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=", "requires": { - "lru-cache": "2.7.3" + "lru-cache": "^2.5.0" } }, "cross-spawn-async": { @@ -1548,8 +1650,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz", "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=", "requires": { - "lru-cache": "4.1.1", - "which": "1.2.14" + "lru-cache": "^4.0.0", + "which": "^1.2.8" }, "dependencies": { "lru-cache": { @@ -1557,8 +1659,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -1568,7 +1670,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -1576,7 +1678,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } } } @@ -1586,7 +1688,7 @@ "resolved": "https://registry.npmjs.org/csextends/-/csextends-1.1.1.tgz", "integrity": "sha1-zFPBNJ+vfwrmzfb2xKTZFW08TsE=", "requires": { - "coffee-script": "1.12.7" + "coffee-script": "^1.12.5" }, "dependencies": { "coffee-script": { @@ -1611,7 +1713,7 @@ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", "requires": { - "random-bytes": "1.0.0" + "random-bytes": "~1.0.0" } } } @@ -1623,8 +1725,8 @@ "requires": { "cookie": "0.3.1", "cookie-signature": "1.0.6", - "csrf": "3.0.6", - "http-errors": "1.5.1" + "csrf": "~3.0.3", + "http-errors": "~1.5.0" }, "dependencies": { "cookie": { @@ -1639,7 +1741,7 @@ "requires": { "inherits": "2.0.3", "setprototypeof": "1.0.2", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" } } } @@ -1649,13 +1751,13 @@ "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-1.12.1.tgz", "integrity": "sha512-r45M92nLnGP246ot0Yo5RvbiiMF5Bw/OTIdWJ3OQ4Vbv4hpOeoXVIPxdSmUw+fPJlQOseY+iigJyLSfPMIrddQ==", "requires": { - "buffer-alloc": "1.2.0", - "buffer-from": "1.1.0", - "generate-function": "1.1.0", - "generate-object-property": "1.2.0", - "inherits": "2.0.3", - "minimist": "1.2.0", - "ndjson": "1.5.0" + "buffer-alloc": "^1.1.0", + "buffer-from": "^1.0.0", + "generate-function": "^1.0.1", + "generate-object-property": "^1.0.0", + "inherits": "^2.0.1", + "minimist": "^1.2.0", + "ndjson": "^1.4.0" } }, "currently-unhandled": { @@ -1663,7 +1765,7 @@ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cycle": { @@ -1676,7 +1778,7 @@ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "dashdash": { @@ -1684,7 +1786,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { @@ -1697,8 +1799,8 @@ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.3.0" }, "dependencies": { "camelcase": { @@ -1711,8 +1813,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "meow": { @@ -1720,16 +1822,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "object-assign": { @@ -1801,8 +1903,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "degenerator": { @@ -1810,9 +1912,9 @@ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.11.5", - "escodegen": "1.10.0", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" }, "dependencies": { "esprima": { @@ -1853,7 +1955,7 @@ "resolved": "https://registry.npmjs.org/dkim-signer/-/dkim-signer-0.2.2.tgz", "integrity": "sha1-qoHsBx7u02IngbqpIgRNeADl8wg=", "requires": { - "libmime": "2.1.3" + "libmime": "^2.0.3" } }, "dot-access": { @@ -1866,6 +1968,15 @@ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" }, + "dtrace-provider": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz", + "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=", + "optional": true, + "requires": { + "nan": "^2.10.0" + } + }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", @@ -1876,7 +1987,7 @@ "resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz", "integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=", "requires": { - "typechecker": "2.1.0" + "typechecker": "^2.0.8" } }, "ecc-jsbn": { @@ -1885,7 +1996,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecdsa-sig-formatter": { @@ -1893,8 +2004,8 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", "requires": { - "base64url": "2.0.0", - "safe-buffer": "5.1.1" + "base64url": "^2.0.0", + "safe-buffer": "^5.0.1" } }, "editions": { @@ -1917,7 +2028,7 @@ "resolved": "https://registry.npmjs.org/ejs-locals/-/ejs-locals-1.0.2.tgz", "integrity": "sha1-ubMg/2kzFUEF+g7taD6mTWeAiM4=", "requires": { - "ejs": "0.8.8" + "ejs": "0.8.x" }, "dependencies": { "ejs": { @@ -1945,7 +2056,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.11", "negotiator": "0.6.1" } }, @@ -2032,7 +2143,7 @@ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "optional": true, "requires": { - "prr": "0.0.0" + "prr": "~0.0.0" } }, "error": { @@ -2040,8 +2151,8 @@ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "requires": { - "string-template": "0.2.1", - "xtend": "4.0.1" + "string-template": "~0.2.1", + "xtend": "~4.0.0" }, "dependencies": { "string-template": { @@ -2056,7 +2167,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "errorhandler": { @@ -2064,8 +2175,8 @@ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", "requires": { - "accepts": "1.3.4", - "escape-html": "1.0.3" + "accepts": "~1.3.0", + "escape-html": "~1.0.3" }, "dependencies": { "accepts": { @@ -2073,7 +2184,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -2099,7 +2210,7 @@ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "4.2.4" + "es6-promise": "^4.0.3" }, "dependencies": { "es6-promise": { @@ -2124,11 +2235,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -2184,11 +2295,11 @@ "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.0.0.tgz", "integrity": "sha1-gKBwu4GbCeSvLKbQeA91zgXnXC8=", "requires": { - "glob": "6.0.4", - "graceful-fs": "4.1.11", - "handlebars": "4.0.10", - "object.assign": "4.0.4", - "promise": "7.3.1" + "glob": "^6.0.4", + "graceful-fs": "^4.1.2", + "handlebars": "^4.0.5", + "object.assign": "^4.0.3", + "promise": "^7.0.0" }, "dependencies": { "glob": { @@ -2196,11 +2307,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -2213,11 +2324,11 @@ "cookie": "0.3.1", "cookie-signature": "1.0.6", "crc": "3.4.1", - "debug": "2.2.0", - "depd": "1.1.1", - "on-headers": "1.0.1", - "parseurl": "1.3.2", - "uid-safe": "2.1.5", + "debug": "~2.2.0", + "depd": "~1.1.0", + "on-headers": "~1.0.1", + "parseurl": "~1.3.1", + "uid-safe": "~2.1.3", "utils-merge": "1.0.0" }, "dependencies": { @@ -2244,7 +2355,7 @@ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", "requires": { - "random-bytes": "1.0.0" + "random-bytes": "~1.0.0" } } } @@ -2259,7 +2370,7 @@ "resolved": "https://registry.npmjs.org/extendr/-/extendr-2.1.0.tgz", "integrity": "sha1-MBqgu+pWX00tyPVw8qImEahSe1Y=", "requires": { - "typechecker": "2.0.8" + "typechecker": "~2.0.1" }, "dependencies": { "typechecker": { @@ -2274,7 +2385,7 @@ "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz", "integrity": "sha1-H6KOunNSxttID4hc63GkaBC+bX0=", "requires": { - "typechecker": "2.0.8" + "typechecker": "~2.0.1" }, "dependencies": { "typechecker": { @@ -2309,7 +2420,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "figures": { @@ -2317,8 +2428,8 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -2343,10 +2454,10 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", "requires": { - "debug": "2.2.0", + "debug": "~2.2.0", "escape-html": "1.0.2", - "on-finished": "2.3.0", - "unpipe": "1.0.0" + "on-finished": "~2.3.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -2364,8 +2475,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "findup-sync": { @@ -2373,7 +2484,7 @@ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", "requires": { - "glob": "5.0.15" + "glob": "~5.0.0" }, "dependencies": { "glob": { @@ -2381,11 +2492,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -2395,7 +2506,7 @@ "resolved": "https://registry.npmjs.org/flaverr/-/flaverr-1.2.4.tgz", "integrity": "sha512-wMCNyA9r/DLkItKIY15YGD62DCUlIJdCIrvuQRnVTjG/D7dLjc5gFMIIkiiE4lf2P1Lwq2Ao/eIREoXiL6p0+g==", "requires": { - "@sailshq/lodash": "3.10.2" + "@sailshq/lodash": "^3.10.2" } }, "foreach": { @@ -2418,9 +2529,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "formidable": { @@ -2444,11 +2555,11 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.2.8" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } }, "fs.realpath": { @@ -2461,10 +2572,10 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.2.8" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "ftp": { @@ -2472,7 +2583,7 @@ "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { @@ -2486,10 +2597,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -2509,14 +2620,14 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" }, "dependencies": { "object-assign": { @@ -2531,7 +2642,7 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "requires": { - "globule": "1.2.1" + "globule": "^1.0.0" } }, "generate-function": { @@ -2544,7 +2655,7 @@ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -2562,12 +2673,12 @@ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz", "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==", "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.1", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.3" + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "3", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" } }, "getobject": { @@ -2580,7 +2691,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -2588,12 +2699,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globule": { @@ -2601,9 +2712,9 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" }, "dependencies": { "glob": { @@ -2626,10 +2737,10 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.10.0.tgz", "integrity": "sha1-bhW6vuhf0d0U2NEoopW2g41SE24=", "requires": { - "gtoken": "1.2.2", - "jws": "3.1.5", - "lodash.noop": "3.0.1", - "request": "2.83.0" + "gtoken": "^1.2.1", + "jws": "^3.1.4", + "lodash.noop": "^3.0.1", + "request": "^2.74.0" } }, "google-p12-pem": { @@ -2637,7 +2748,7 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.2.tgz", "integrity": "sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=", "requires": { - "node-forge": "0.7.1" + "node-forge": "^0.7.1" } }, "googleapis": { @@ -2645,10 +2756,10 @@ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-14.2.0.tgz", "integrity": "sha1-qe/8976L8S9Jt4UV4OruBd02KqQ=", "requires": { - "async": "2.1.5", - "google-auth-library": "0.9.10", - "request": "2.83.0", - "string-template": "1.0.0" + "async": "~2.1.2", + "google-auth-library": "~0.9.9", + "request": "^2.78.0", + "string-template": "~1.0.0" }, "dependencies": { "assert-plus": { @@ -2661,7 +2772,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", "integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=", "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "aws-sign2": { @@ -2674,8 +2785,8 @@ "resolved": "https://registry.npmjs.org/base64url/-/base64url-1.0.6.tgz", "integrity": "sha1-1k03XWinxkDZEuI1jRcNylu1RoE=", "requires": { - "concat-stream": "1.4.11", - "meow": "2.0.0" + "concat-stream": "~1.4.7", + "meow": "~2.0.0" } }, "boom": { @@ -2683,7 +2794,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "caseless": { @@ -2696,9 +2807,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.11.tgz", "integrity": "sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==", "requires": { - "inherits": "2.0.3", - "readable-stream": "1.1.14", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~1.1.9", + "typedarray": "~0.0.5" } }, "cryptiles": { @@ -2706,7 +2817,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "form-data": { @@ -2714,9 +2825,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "requires": { - "async": "2.1.5", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } }, "google-auth-library": { @@ -2724,12 +2835,12 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.9.10.tgz", "integrity": "sha1-SZPcB7tINLjKA1AhOmhzoyxgUbk=", "requires": { - "async": "1.4.2", - "gtoken": "1.2.2", - "jws": "3.0.0", - "lodash.noop": "3.0.1", - "request": "2.74.0", - "string-template": "0.2.1" + "async": "~1.4.2", + "gtoken": "^1.1.0", + "jws": "~3.0.0", + "lodash.noop": "~3.0.0", + "request": "~2.74.0", + "string-template": "~0.2.0" }, "dependencies": { "async": { @@ -2742,27 +2853,27 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "bl": "1.1.2", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "1.0.1", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.2.3", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc4", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" } }, "string-template": { @@ -2777,10 +2888,10 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.1", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -2788,10 +2899,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -2804,9 +2915,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "isarray": { @@ -2819,9 +2930,9 @@ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.0.2.tgz", "integrity": "sha1-/Xlgnx53Limdzo3bdtAGWd2DUR8=", "requires": { - "base64url": "0.0.6", - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.9" + "base64url": "~0.0.4", + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "^1.0.0" }, "dependencies": { "base64url": { @@ -2836,8 +2947,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.0.0.tgz", "integrity": "sha1-2l8meJfdTpz4E3l52zP8VKPAVBg=", "requires": { - "base64url": "1.0.6", - "jwa": "1.0.2" + "base64url": "~1.0.4", + "jwa": "~1.0.0" } }, "lodash": { @@ -2855,10 +2966,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "sntp": { @@ -2866,7 +2977,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "string_decoder": { @@ -2902,23 +3013,23 @@ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", "requires": { - "coffeescript": "1.10.0", - "dateformat": "1.0.12", - "eventemitter2": "0.4.14", - "exit": "0.1.2", - "findup-sync": "0.3.0", - "glob": "7.0.6", - "grunt-cli": "1.2.0", - "grunt-known-options": "1.1.0", - "grunt-legacy-log": "2.0.0", - "grunt-legacy-util": "1.1.1", - "iconv-lite": "0.4.23", - "js-yaml": "3.5.5", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.2" + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" }, "dependencies": { "coffeescript": { @@ -2942,7 +3053,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.0.6" + "glob": "^7.0.5" } } } @@ -2952,8 +3063,8 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", "requires": { - "async": "1.5.2", - "rimraf": "2.6.2" + "async": "^1.5.2", + "rimraf": "^2.5.1" }, "dependencies": { "async": { @@ -2976,10 +3087,10 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-1.0.0.tgz", "integrity": "sha1-2u6wSVTxTihovMm6bq+RBf3C2kw=", "requires": { - "chalk": "1.0.0", - "coffee-script": "1.10.0", - "lodash": "4.3.0", - "uri-path": "1.0.0" + "chalk": "~1.0.0", + "coffee-script": "~1.10.0", + "lodash": "~4.3.0", + "uri-path": "~1.0.0" }, "dependencies": { "ansi-regex": { @@ -2992,11 +3103,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", "integrity": "sha1-s89O0P9Tl8mcdbj2edsvUoMfltw=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "1.0.3", - "strip-ansi": "2.0.1", - "supports-color": "1.3.1" + "ansi-styles": "^2.0.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^1.0.3", + "strip-ansi": "^2.0.1", + "supports-color": "^1.3.0" } }, "has-ansi": { @@ -3004,8 +3115,8 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz", "integrity": "sha1-wLWxYV2eOCsP9nFp2We0JeSMpTg=", "requires": { - "ansi-regex": "1.1.1", - "get-stdin": "4.0.1" + "ansi-regex": "^1.1.0", + "get-stdin": "^4.0.1" } }, "lodash": { @@ -3018,7 +3129,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=", "requires": { - "ansi-regex": "1.1.1" + "ansi-regex": "^1.0.0" } }, "supports-color": { @@ -3033,8 +3144,8 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", "requires": { - "chalk": "1.1.3", - "source-map": "0.5.7" + "chalk": "^1.0.0", + "source-map": "^0.5.3" } }, "grunt-contrib-copy": { @@ -3042,8 +3153,8 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", "requires": { - "chalk": "1.1.3", - "file-sync-cmp": "0.1.1" + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" } }, "grunt-contrib-cssmin": { @@ -3051,9 +3162,9 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz", "integrity": "sha512-IXNomhQ5ekVZbDbj/ik5YccoD9khU6LT2fDXqO1+/Txjq8cp0tQKjVS8i8EAbHOrSDkL7/UD6A7b+xj98gqh9w==", "requires": { - "chalk": "1.1.3", - "clean-css": "4.1.11", - "maxmin": "2.1.0" + "chalk": "^1.0.0", + "clean-css": "~4.1.1", + "maxmin": "^2.1.0" }, "dependencies": { "gzip-size": { @@ -3061,7 +3172,7 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", "requires": { - "duplexer": "0.1.1" + "duplexer": "^0.1.1" } }, "maxmin": { @@ -3069,10 +3180,10 @@ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", "requires": { - "chalk": "1.1.3", - "figures": "1.7.0", - "gzip-size": "3.0.0", - "pretty-bytes": "3.0.1" + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^3.0.0", + "pretty-bytes": "^3.0.0" } }, "pretty-bytes": { @@ -3080,7 +3191,7 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } } } @@ -3090,8 +3201,8 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-jst/-/grunt-contrib-jst-1.0.0.tgz", "integrity": "sha1-uOcDWuO2JYdYC9bYPI8MSEEGOHQ=", "requires": { - "chalk": "1.1.3", - "lodash": "2.4.2" + "chalk": "^1.0.0", + "lodash": "^2.4.1" }, "dependencies": { "lodash": { @@ -3106,10 +3217,10 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.3.0.tgz", "integrity": "sha1-UY73yG3GDhWeZRCKp125OpyP9dQ=", "requires": { - "async": "1.5.2", - "chalk": "1.1.3", - "less": "2.6.1", - "lodash": "4.17.4" + "async": "^1.5.2", + "chalk": "^1.0.0", + "less": "~2.6.0", + "lodash": "^4.8.2" }, "dependencies": { "async": { @@ -3129,11 +3240,11 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-sass/-/grunt-contrib-sass-1.0.0.tgz", "integrity": "sha1-gGg4JRy8DhqU1k1RXN00z2dNcBs=", "requires": { - "async": "0.9.2", - "chalk": "1.1.3", - "cross-spawn": "0.2.9", - "dargs": "4.1.0", - "which": "1.2.14" + "async": "^0.9.0", + "chalk": "^1.0.0", + "cross-spawn": "^0.2.3", + "dargs": "^4.0.0", + "which": "^1.0.5" }, "dependencies": { "async": { @@ -3148,11 +3259,11 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.1.tgz", "integrity": "sha1-rWhBG5Y7mWYSEfdvRmve3tT7B6w=", "requires": { - "chalk": "1.1.3", - "lodash": "4.17.4", - "maxmin": "1.1.0", - "uglify-js": "2.6.4", - "uri-path": "1.0.0" + "chalk": "^1.0.0", + "lodash": "^4.0.1", + "maxmin": "^1.1.0", + "uglify-js": "~2.6.2", + "uri-path": "^1.0.0" }, "dependencies": { "lodash": { @@ -3167,10 +3278,10 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify-es/-/grunt-contrib-uglify-es-3.3.0.tgz", "integrity": "sha1-wV97Ef1BMgPU4MkTf10/r1Wo34A=", "requires": { - "chalk": "1.1.3", - "maxmin": "1.1.0", - "uglify-es": "3.3.9", - "uri-path": "1.0.0" + "chalk": "^1.0.0", + "maxmin": "^1.1.0", + "uglify-es": "~3.3.0", + "uri-path": "^1.0.0" }, "dependencies": { "commander": { @@ -3188,8 +3299,8 @@ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "commander": "~2.13.0", + "source-map": "~0.6.1" } } } @@ -3199,10 +3310,10 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", "requires": { - "async": "2.6.1", - "gaze": "1.1.3", - "lodash": "4.17.10", - "tiny-lr": "1.1.1" + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" }, "dependencies": { "async": { @@ -3210,7 +3321,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } } } @@ -3225,10 +3336,10 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", "requires": { - "colors": "1.1.2", - "grunt-legacy-log-utils": "2.0.1", - "hooker": "0.2.3", - "lodash": "4.17.10" + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" } }, "grunt-legacy-log-utils": { @@ -3236,8 +3347,8 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", "requires": { - "chalk": "2.4.1", - "lodash": "4.17.10" + "chalk": "~2.4.1", + "lodash": "~4.17.10" }, "dependencies": { "ansi-styles": { @@ -3245,7 +3356,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -3253,9 +3364,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -3263,7 +3374,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3273,13 +3384,13 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", "requires": { - "async": "1.5.2", - "exit": "0.1.2", - "getobject": "0.1.0", - "hooker": "0.2.3", - "lodash": "4.17.10", - "underscore.string": "3.3.4", - "which": "1.3.1" + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" }, "dependencies": { "async": { @@ -3292,7 +3403,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } } } @@ -3322,9 +3433,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "glob": { @@ -3332,12 +3443,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz", "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "jsonfile": { @@ -3345,7 +3456,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } } } @@ -3355,10 +3466,10 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-1.2.2.tgz", "integrity": "sha1-Fyd2oanZasCfwioA9b6DzubeiCA=", "requires": { - "google-p12-pem": "0.1.2", - "jws": "3.1.5", - "mime": "1.4.1", - "request": "2.83.0" + "google-p12-pem": "^0.1.0", + "jws": "^3.0.0", + "mime": "^1.2.11", + "request": "^2.72.0" } }, "gzip-size": { @@ -3366,8 +3477,8 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", "requires": { - "browserify-zlib": "0.1.4", - "concat-stream": "1.6.2" + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" } }, "handlebars": { @@ -3375,10 +3486,10 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", "requires": { - "async": "1.5.0", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.6.4" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -3386,7 +3497,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -3401,8 +3512,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.2.3", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -3410,7 +3521,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -3418,7 +3529,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary": { @@ -3461,10 +3572,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.0.2" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "he": { @@ -3493,8 +3604,8 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", "requires": { - "inherits": "2.0.3", - "statuses": "1.3.1" + "inherits": "~2.0.1", + "statuses": "1" } }, "http-parser-js": { @@ -3507,7 +3618,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "requires": { - "agent-base": "4.2.1", + "agent-base": "4", "debug": "3.1.0" }, "dependencies": { @@ -3516,7 +3627,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "debug": { @@ -3539,9 +3650,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -3549,9 +3660,9 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "2", + "debug": "2", + "extend": "3" } }, "i": { @@ -3564,12 +3675,12 @@ "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.1.tgz", "integrity": "sha1-mTi0IBCovrrpkMaYY7KvXyvqNic=", "requires": { - "debug": "2.6.9", - "make-plural": "3.0.6", - "math-interval-parser": "1.1.0", - "messageformat": "0.3.1", - "mustache": "2.3.0", - "sprintf-js": "1.0.3" + "debug": "*", + "make-plural": "^3.0.3", + "math-interval-parser": "^1.1.0", + "messageformat": "^0.3.1", + "mustache": "*", + "sprintf-js": ">=1.0.3" } }, "iconv-lite": { @@ -3577,7 +3688,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignorefs": { @@ -3585,8 +3696,8 @@ "resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.2.0.tgz", "integrity": "sha1-2ln7hYl25KXkNwLM0fKC/byeV1Y=", "requires": { - "editions": "1.3.3", - "ignorepatterns": "1.1.0" + "editions": "^1.3.3", + "ignorepatterns": "^1.1.0" } }, "ignorepatterns": { @@ -3625,9 +3736,9 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz", "integrity": "sha1-25m8xYPrarux5I3LsZmamGBBy2s=", "requires": { - "get-stdin": "4.0.1", - "minimist": "1.2.0", - "repeating": "1.1.3" + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" } }, "indexof": { @@ -3645,8 +3756,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3694,7 +3805,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-finite": { @@ -3702,7 +3813,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -3710,7 +3821,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-my-json-valid": { @@ -3718,10 +3829,10 @@ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" }, "dependencies": { "generate-function": { @@ -3776,8 +3887,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" + "argparse": "^1.0.2", + "esprima": "^2.6.0" } }, "jsbn": { @@ -3801,7 +3912,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -3819,7 +3930,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -3832,8 +3943,8 @@ "resolved": "https://registry.npmjs.org/jsonlint-lines/-/jsonlint-lines-1.7.1.tgz", "integrity": "sha1-UH3mgNP7jEvhZBzFfW9nnynxeP8=", "requires": { - "JSV": "4.0.2", - "nomnom": "1.8.1" + "JSV": ">= 4.0.x", + "nomnom": ">= 1.5.x" } }, "jsonpointer": { @@ -3846,15 +3957,15 @@ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", "integrity": "sha512-oge/hvlmeJCH+iIz1DwcO7vKPkNGJHhgkspk8OH3VKlw+mbi42WtD4ig1+VXRln765vxptAv+xT26Fd3cteqag==", "requires": { - "jws": "3.1.5", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.1.1" + "jws": "^3.1.5", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1" }, "dependencies": { "jws": { @@ -3862,8 +3973,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.1" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "ms": { @@ -3891,7 +4002,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" }, "dependencies": { "ecdsa-sig-formatter": { @@ -3899,7 +4010,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } } } @@ -3909,8 +4020,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.1" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "kind-of": { @@ -3918,7 +4029,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -3926,7 +4037,7 @@ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "lazy-cache": { @@ -3939,7 +4050,67 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" + } + }, + "ldap-filter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz", + "integrity": "sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=", + "requires": { + "assert-plus": "0.1.5" + }, + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=" + } + } + }, + "ldapauth-fork": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-4.0.2.tgz", + "integrity": "sha512-YoPHsyfV6L/4SO5EMi/Jk1xUMaY+ANlR4Yp+WIsqGkWOLPKkuzRYB4s/IsdKBeb3sdwVCw+q/YN9eoa1dXmQdA==", + "requires": { + "@types/ldapjs": "^1.0.0", + "@types/node": "^7.0.21", + "bcryptjs": "^2.4.0", + "ldapjs": "^1.0.1", + "lru-cache": "^4.0.2" + }, + "dependencies": { + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "ldapjs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.2.tgz", + "integrity": "sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "^1.0.0", + "backoff": "^2.5.0", + "bunyan": "^1.8.3", + "dashdash": "^1.14.0", + "dtrace-provider": "~0.8", + "ldap-filter": "0.2.2", + "once": "^1.4.0", + "vasync": "^1.6.4", + "verror": "^1.8.1" } }, "less": { @@ -3947,14 +4118,14 @@ "resolved": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", "integrity": "sha1-ZY4B7JrDFJlZxrbfvPvAoXCv2no=", "requires": { - "errno": "0.1.4", - "graceful-fs": "4.1.11", - "image-size": "0.4.0", - "mime": "1.4.1", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.83.0", - "source-map": "0.5.7" + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.4.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.51.0", + "source-map": "^0.5.3" } }, "levn": { @@ -3962,8 +4133,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "libbase64": { @@ -4003,11 +4174,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "lodash": { @@ -4090,7 +4261,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "longest": { @@ -4103,8 +4274,8 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -4117,12 +4288,12 @@ "resolved": "https://registry.npmjs.org/machine/-/machine-4.1.1.tgz", "integrity": "sha1-7y7KudSqwtvDl4UCl4o25x/ln9c=", "requires": { - "convert-to-ecmascript-compatible-varname": "0.1.5", - "debug": "2.6.9", - "lodash": "2.4.2", - "object-hash": "0.3.0", - "rttc": "1.0.2", - "switchback": "1.1.3" + "convert-to-ecmascript-compatible-varname": "^0.1.0", + "debug": "^2.1.1", + "lodash": "~2.4.1", + "object-hash": "~0.3.0", + "rttc": "^1.0.2", + "switchback": "^1.1.3" }, "dependencies": { "lodash": { @@ -4135,7 +4306,7 @@ "resolved": "https://registry.npmjs.org/rttc/-/rttc-1.0.2.tgz", "integrity": "sha1-TTZCjpUoQrJ0P6cC5PVhoi9kje8=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" } } } @@ -4145,7 +4316,7 @@ "resolved": "https://registry.npmjs.org/machinepack-urls/-/machinepack-urls-3.1.1.tgz", "integrity": "sha1-1fswMs9KATXicoU1Bvawxm3plqo=", "requires": { - "machine": "4.1.1" + "machine": "^4.0.0" } }, "mailcomposer": { @@ -4179,15 +4350,15 @@ "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.18.1.tgz", "integrity": "sha512-lvuMP14u24HS2uBsJEnzSyPMxzU2b99tQsIx1o6QNjqxjk8b3WvR+vq5oG1mjqz/IBYo+5gF+uSoDS0RkMVHmg==", "requires": { - "async": "2.6.1", - "debug": "3.1.0", - "form-data": "2.3.1", - "inflection": "1.12.0", - "is-stream": "1.1.0", - "path-proxy": "1.0.0", - "promisify-call": "2.0.4", - "proxy-agent": "3.0.1", - "tsscmp": "1.0.5" + "async": "~2.6.0", + "debug": "~3.1.0", + "form-data": "~2.3.0", + "inflection": "~1.12.0", + "is-stream": "^1.1.0", + "path-proxy": "~1.0.0", + "promisify-call": "^2.0.2", + "proxy-agent": "~3.0.0", + "tsscmp": "~1.0.0" }, "dependencies": { "async": { @@ -4195,7 +4366,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } }, "debug": { @@ -4218,7 +4389,7 @@ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-3.0.6.tgz", "integrity": "sha1-IDOgO6wpC487uRJY9lud9+iwHKc=", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "map-obj": { @@ -4231,7 +4402,7 @@ "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-1.1.0.tgz", "integrity": "sha1-2+2lsGsySZc8bfYXD94jhvCv2JM=", "requires": { - "xregexp": "2.0.0" + "xregexp": "^2.0.0" } }, "maxmin": { @@ -4239,10 +4410,10 @@ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", "requires": { - "chalk": "1.1.3", - "figures": "1.7.0", - "gzip-size": "1.0.0", - "pretty-bytes": "1.0.4" + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" } }, "md5-file": { @@ -4260,10 +4431,10 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-2.0.0.tgz", "integrity": "sha1-j1MKjs9dQNP0tN+Tw0cpAPuiqPE=", "requires": { - "camelcase-keys": "1.0.0", - "indent-string": "1.2.2", - "minimist": "1.2.0", - "object-assign": "1.0.0" + "camelcase-keys": "^1.0.0", + "indent-string": "^1.1.0", + "minimist": "^1.1.0", + "object-assign": "^1.0.0" } }, "merge-defaults": { @@ -4271,7 +4442,7 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.2.1.tgz", "integrity": "sha1-3UIkjrlrtqUVIXJDIccv+Vg93oA=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -4291,11 +4462,11 @@ "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-0.3.1.tgz", "integrity": "sha1-5Y//gkXps5cXmeW0PbWLPpQX9aI=", "requires": { - "async": "1.5.2", - "glob": "6.0.4", - "make-plural": "3.0.6", - "nopt": "3.0.6", - "watchr": "2.4.13" + "async": "~1.5.2", + "glob": "~6.0.4", + "make-plural": "~3.0.3", + "nopt": "~3.0.6", + "watchr": "~2.4.13" }, "dependencies": { "async": { @@ -4308,11 +4479,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -4322,10 +4493,10 @@ "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.5.tgz", "integrity": "sha1-LNXNv/AMNnPXrjRRGagSpdlbjI4=", "requires": { - "debug": "2.2.0", - "methods": "1.1.2", - "parseurl": "1.3.2", - "vary": "1.0.1" + "debug": "~2.2.0", + "methods": "~1.1.1", + "parseurl": "~1.3.0", + "vary": "~1.0.1" }, "dependencies": { "debug": { @@ -4358,7 +4529,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "minimatch": { @@ -4366,7 +4537,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4429,12 +4600,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "ms": { @@ -4449,7 +4620,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4500,8 +4671,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.19.tgz", "integrity": "sha512-Jt4AtWUkpuW03kRdYGxga4O65O1UHlFfvvInslEfLlGi+zDMxbBe3J2NVmN9qPJ957Mn6Iz0UpMtV80cmxCVxw==", "requires": { - "bson": "1.0.4", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "morgan": { @@ -4509,11 +4680,11 @@ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", "requires": { - "basic-auth": "1.0.4", - "debug": "2.2.0", - "depd": "1.0.1", - "on-finished": "2.3.0", - "on-headers": "1.0.1" + "basic-auth": "~1.0.3", + "debug": "~2.2.0", + "depd": "~1.0.1", + "on-finished": "~2.3.0", + "on-headers": "~1.0.0" }, "dependencies": { "debug": { @@ -4541,7 +4712,7 @@ "resolved": "https://registry.npmjs.org/msgpack-js/-/msgpack-js-0.3.0.tgz", "integrity": "sha1-Aw7AjFlW+cp9F9QKVy1Tlv7BCSM=", "requires": { - "bops": "0.0.7" + "bops": "~0.0.6" } }, "multiparty": { @@ -4549,8 +4720,8 @@ "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", "requires": { - "readable-stream": "1.1.14", - "stream-counter": "0.2.0" + "readable-stream": "~1.1.9", + "stream-counter": "~0.2.0" }, "dependencies": { "isarray": { @@ -4563,10 +4734,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -4586,6 +4757,47 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "optional": true, + "requires": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "optional": true + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "optional": true, + "requires": { + "glob": "^6.0.1" + } + } + } + }, "mysql": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.15.0.tgz", @@ -4617,10 +4829,10 @@ "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", "requires": { - "json-stringify-safe": "5.0.1", - "minimist": "1.2.0", - "split2": "2.2.0", - "through2": "2.0.3" + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.0", + "split2": "^2.1.0", + "through2": "^2.0.3" } }, "negotiator": { @@ -4648,18 +4860,18 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", "requires": { - "fstream": "1.0.11", - "glob": "7.0.6", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.81.0", - "rimraf": "2.2.8", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.2.14" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": ">=2.9.0 <2.82.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "ajv": { @@ -4667,8 +4879,8 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "assert-plus": { @@ -4686,7 +4898,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -4694,7 +4906,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "form-data": { @@ -4702,9 +4914,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-schema": { @@ -4717,8 +4929,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "hawk": { @@ -4726,10 +4938,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -4742,9 +4954,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "performance-now": { @@ -4762,28 +4974,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "semver": { @@ -4796,7 +5008,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "uuid": { @@ -4811,25 +5023,25 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.2.tgz", "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.0.6", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.7.0", - "npmlog": "4.1.2", + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", "request": "2.87.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { "camelcase": { @@ -4860,8 +5072,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "meow": { @@ -4891,26 +5103,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "uuid": { @@ -4941,11 +5153,11 @@ "integrity": "sha512-oLNmye2Km8xALu+U2AJh+U+kpBXePNP5KhSC0QSHauaSZTtKq/kaaYtzGhnzDCur+cyELlWrQIiVF2vAGn6PIg==", "requires": { "async-series": "0.0.1", - "consolidate": "0.14.5", - "lodash.pickby": "4.6.0", - "lodash.some": "4.6.0", - "lodash.startswith": "4.2.1", - "mailgun-js": "0.18.1" + "consolidate": "^0.14.0", + "lodash.pickby": "^4.3.0", + "lodash.some": "^4.3.0", + "lodash.startswith": "^4.0.1", + "mailgun-js": "^0.18.0" } }, "nodemailer-shared": { @@ -4961,8 +5173,8 @@ "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", "requires": { - "chalk": "0.4.0", - "underscore": "1.6.0" + "chalk": "~0.4.0", + "underscore": "~1.6.0" }, "dependencies": { "ansi-styles": { @@ -4975,9 +5187,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "strip-ansi": { @@ -4992,7 +5204,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -5000,10 +5212,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npmlog": { @@ -5011,10 +5223,10 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -5052,9 +5264,9 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "object-keys": "1.0.11" + "define-properties": "^1.1.2", + "function-bind": "^1.1.0", + "object-keys": "^1.0.10" } }, "on-finished": { @@ -5075,7 +5287,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -5083,8 +5295,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { @@ -5099,12 +5311,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -5129,7 +5341,7 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -5142,8 +5354,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "pac-proxy-agent": { @@ -5151,14 +5363,14 @@ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz", "integrity": "sha512-cDNAN1Ehjbf5EHkNY5qnRhGPUCp6SnpyVof5fRzN800QV1Y2OkzbH9rmjZkbBRa8igof903yOnjIl6z0SlAhxA==", "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0", - "get-uri": "2.0.2", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "pac-resolver": "3.0.0", - "raw-body": "2.3.3", - "socks-proxy-agent": "3.0.1" + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^3.0.0" }, "dependencies": { "agent-base": { @@ -5166,7 +5378,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "bytes": { @@ -5192,10 +5404,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "https-proxy-agent": { @@ -5203,8 +5415,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "iconv-lite": { @@ -5212,7 +5424,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ms": { @@ -5241,8 +5453,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "requires": { - "agent-base": "4.2.1", - "socks": "1.1.10" + "agent-base": "^4.1.0", + "socks": "^1.1.10" } }, "statuses": { @@ -5257,11 +5469,11 @@ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", "requires": { - "co": "4.6.0", - "degenerator": "1.0.4", - "ip": "1.1.5", - "netmask": "1.0.6", - "thunkify": "2.1.2" + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" } }, "pako": { @@ -5274,7 +5486,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parsejson": { @@ -5282,7 +5494,7 @@ "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseqs": { @@ -5290,7 +5502,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -5298,7 +5510,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -5311,16 +5523,27 @@ "resolved": "https://registry.npmjs.org/passport/-/passport-0.3.0.tgz", "integrity": "sha1-FMFRsOtnlaqTNSOYJ/VI1flMcEY=", "requires": { - "passport-strategy": "1.0.0", + "passport-strategy": "1.x.x", "pause": "0.0.1" } }, + "passport-ldapauth": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/passport-ldapauth/-/passport-ldapauth-2.0.0.tgz", + "integrity": "sha1-Qt/wBEFxhdCk2fd2o+7Y1HMf1ok=", + "requires": { + "@types/node": "^7.0.23", + "@types/passport": "^0.3.3", + "ldapauth-fork": "^4.0.1", + "passport-strategy": "^1.0.0" + } + }, "passport-local": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=", "requires": { - "passport-strategy": "1.0.0" + "passport-strategy": "1.x.x" } }, "passport-strategy": { @@ -5333,7 +5556,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -5346,7 +5569,7 @@ "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=", "requires": { - "inflection": "1.3.8" + "inflection": "~1.3.0" }, "dependencies": { "inflection": { @@ -5376,9 +5599,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pause": { @@ -5406,7 +5629,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkginfo": { @@ -5419,7 +5642,7 @@ "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "requires": { - "irregular-plurals": "1.3.0" + "irregular-plurals": "^1.0.0" } }, "pluralize": { @@ -5427,6 +5650,11 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=" }, + "precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -5437,8 +5665,8 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.1.0" }, "dependencies": { "camelcase": { @@ -5451,8 +5679,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "meow": { @@ -5460,16 +5688,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "object-assign": { @@ -5489,7 +5717,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promised-io": { @@ -5502,7 +5730,7 @@ "resolved": "https://registry.npmjs.org/promisify-call/-/promisify-call-2.0.4.tgz", "integrity": "sha1-1IwtRWUszM1SgB3ey9UzptS9X7o=", "requires": { - "with-callback": "1.0.2" + "with-callback": "^1.0.2" } }, "prompt": { @@ -5510,11 +5738,11 @@ "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", "requires": { - "pkginfo": "0.4.1", - "read": "1.0.7", - "revalidator": "0.1.8", - "utile": "0.2.1", - "winston": "0.8.3" + "pkginfo": "0.x.x", + "read": "1.0.x", + "revalidator": "0.1.x", + "utile": "0.2.x", + "winston": "0.8.x" } }, "proxy-addr": { @@ -5522,7 +5750,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "integrity": "sha1-DUCoL4Afw1VWfS7LZe/j8HfxIcU=", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.0", "ipaddr.js": "1.0.5" } }, @@ -5531,14 +5759,14 @@ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.0.1.tgz", "integrity": "sha512-mAZexaz9ZxQhYPWfAjzlrloEjW+JHiBFryE4AJXFDTnaXfmH/FKqC1swTRKuEPbHWz02flQNXFOyDUF7zfEG6A==", "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "pac-proxy-agent": "2.0.2", - "proxy-from-env": "1.0.0", - "socks-proxy-agent": "4.0.1" + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^2.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "agent-base": { @@ -5546,7 +5774,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "debug": { @@ -5562,8 +5790,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "lru-cache": { @@ -5571,8 +5799,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "ms": { @@ -5645,10 +5873,10 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "deep-extend": { @@ -5663,7 +5891,7 @@ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { - "mute-stream": "0.0.7" + "mute-stream": "~0.0.4" } }, "read-pkg": { @@ -5671,9 +5899,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -5681,22 +5909,22 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "redent": { @@ -5704,8 +5932,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { @@ -5713,7 +5941,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "repeating": { @@ -5721,7 +5949,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } } } @@ -5731,7 +5959,7 @@ "resolved": "https://registry.npmjs.org/redis/-/redis-2.3.0.tgz", "integrity": "sha1-lQHtiJGKVokm4RDx2h671xl7ebI=", "requires": { - "double-ended-queue": "2.1.0-0" + "double-ended-queue": "^2.1.0-0" } }, "reduce-component": { @@ -5750,7 +5978,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "replace-ext": { @@ -5763,10 +5991,10 @@ "resolved": "https://registry.npmjs.org/reportback/-/reportback-0.1.9.tgz", "integrity": "sha1-Yh9BMIvB1W0FXtAGNtwBdeEyz08=", "requires": { - "captains-log": "0.11.11", - "lodash": "2.4.2", - "merge-defaults": "0.1.4", - "switchback": "1.1.3" + "captains-log": "~0.11.5", + "lodash": "~2.4.1", + "merge-defaults": "~0.1.0", + "switchback": "~1.1.1" }, "dependencies": { "captains-log": { @@ -5774,10 +6002,10 @@ "resolved": "https://registry.npmjs.org/captains-log/-/captains-log-0.11.11.tgz", "integrity": "sha1-live/UQ1HDBrAMRabalhSsNYU4w=", "requires": { - "colors": "0.6.2", + "colors": "~0.6.2", "lodash": "2.4.1", - "merge-defaults": "0.1.4", - "rc": "0.3.5" + "merge-defaults": "~0.1.0", + "rc": "~0.3.2" }, "dependencies": { "lodash": { @@ -5807,7 +6035,7 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.1.4.tgz", "integrity": "sha1-kkDUlaPxUC0608oEGwMfAFmb8Xg=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" } }, "minimist": { @@ -5820,9 +6048,9 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-0.3.5.tgz", "integrity": "sha1-/OIiBZO+V6oSlmhafjftAD38xyg=", "requires": { - "deep-extend": "0.2.11", - "ini": "1.1.0", - "minimist": "0.0.10" + "deep-extend": "~0.2.5", + "ini": "~1.1.0", + "minimist": "~0.0.7" } } } @@ -5832,28 +6060,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "stringstream": "~0.0.5", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" }, "dependencies": { "uuid": { @@ -5878,8 +6106,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.4.1" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "resolve": { @@ -5897,8 +6125,8 @@ "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", "requires": { - "depd": "1.1.1", - "on-headers": "1.0.1" + "depd": "~1.1.0", + "on-headers": "~1.0.1" } }, "retry": { @@ -5916,7 +6144,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -5934,7 +6162,7 @@ "resolved": "https://registry.npmjs.org/rttc/-/rttc-9.3.3.tgz", "integrity": "sha1-YL25KXLPRnNIjwrFaAf2l7EEEig=", "requires": { - "lodash": "3.10.1" + "lodash": "^3.8.0" }, "dependencies": { "lodash": { @@ -5954,12 +6182,18 @@ "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=" }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true + }, "safefs": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/safefs/-/safefs-3.2.2.tgz", "integrity": "sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "*" } }, "safer-buffer": { @@ -5972,9 +6206,9 @@ "resolved": "https://registry.npmjs.org/sails/-/sails-0.12.14.tgz", "integrity": "sha1-Sti+mM/PRW59HIX253MfMa8zI5c=", "requires": { - "@sailshq/express": "3.21.3", - "@sailshq/lodash": "3.10.2", - "anchor": "0.10.5", + "@sailshq/express": "^3.21.3", + "@sailshq/lodash": "^3.10.2", + "anchor": "~0.10.5", "async": "1.5.0", "captains-log": "1.0.0", "chalk": "1.1.3", @@ -5991,7 +6225,7 @@ "ejs-locals": "1.0.2", "express-handlebars": "3.0.0", "express-session": "1.14.2", - "flaverr": "1.2.4", + "flaverr": "^1.0.0", "glob": "5.0.15", "grunt": "1.0.1", "grunt-cli": "1.2.0", @@ -6004,11 +6238,11 @@ "grunt-contrib-less": "1.3.0", "grunt-contrib-uglify": "1.0.1", "grunt-contrib-watch": "1.0.0", - "grunt-sails-linker": "0.10.1", + "grunt-sails-linker": "~0.10.1", "grunt-sync": "0.5.2", "i18n": "0.8.1", - "include-all": "1.0.8", - "merge-defaults": "0.2.1", + "include-all": "^1.0.0", + "merge-defaults": "~0.2.1", "method-override": "2.3.5", "mock-req": "0.2.0", "mock-res": "0.3.0", @@ -6017,18 +6251,18 @@ "pluralize": "1.2.1", "prompt": "0.2.14", "rc": "1.0.1", - "reportback": "0.1.9", + "reportback": "~0.1.9", "rttc": "9.3.3", - "sails-disk": "0.10.10", - "sails-generate": "0.13.0", - "sails-hook-orm": "1.0.9", - "sails-hook-sockets": "0.13.11", - "sails-stringfile": "0.3.2", - "sails-util": "0.11.0", + "sails-disk": "~0.10.9", + "sails-generate": "~0.13.0", + "sails-hook-orm": "~1.0.9", + "sails-hook-sockets": "^0.13.9", + "sails-stringfile": "~0.3.2", + "sails-util": "~0.11.0", "semver": "5.1.0", "serve-favicon": "2.3.0", "serve-static": "1.10.2", - "skipper": "0.7.6", + "skipper": "~0.7.0", "uid-safe": "1.1.0", "walk": "2.3.9" }, @@ -6043,8 +6277,8 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", "requires": { - "commander": "2.8.1", - "source-map": "0.4.4" + "commander": "2.8.x", + "source-map": "0.4.x" }, "dependencies": { "commander": { @@ -6052,7 +6286,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } } } @@ -6062,7 +6296,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "consolidate": { @@ -6070,7 +6304,7 @@ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.1.tgz", "integrity": "sha1-UG1SnvfiEWJNLkpfM334vhNu9yc=", "requires": { - "bluebird": "3.5.0" + "bluebird": "^3.1.1" } }, "debug": { @@ -6091,11 +6325,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "grunt": { @@ -6103,22 +6337,22 @@ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=", "requires": { - "coffee-script": "1.10.0", - "dateformat": "1.0.12", - "eventemitter2": "0.4.14", - "exit": "0.1.2", - "findup-sync": "0.3.0", - "glob": "7.0.6", - "grunt-cli": "1.2.0", - "grunt-known-options": "1.1.0", - "grunt-legacy-log": "1.0.2", - "grunt-legacy-util": "1.0.0", - "iconv-lite": "0.4.23", - "js-yaml": "3.5.5", - "minimatch": "3.0.4", - "nopt": "3.0.6", - "path-is-absolute": "1.0.1", - "rimraf": "2.2.8" + "coffee-script": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~1.0.0", + "grunt-legacy-util": "~1.0.0", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.0", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.2.8" }, "dependencies": { "glob": { @@ -6126,12 +6360,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "rimraf": { @@ -6146,10 +6380,10 @@ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", "requires": { - "findup-sync": "0.3.0", - "grunt-known-options": "1.1.0", - "nopt": "3.0.6", - "resolve": "1.1.7" + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" } }, "grunt-contrib-clean": { @@ -6157,8 +6391,8 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", "integrity": "sha1-ay7ZQRfix//jLuBFeMlv5GJam20=", "requires": { - "async": "1.5.2", - "rimraf": "2.6.2" + "async": "^1.5.2", + "rimraf": "^2.5.1" }, "dependencies": { "async": { @@ -6173,9 +6407,9 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.1.tgz", "integrity": "sha1-9tRSRMyH79zFIfaRjq/ZIe/YyNo=", "requires": { - "chalk": "1.1.3", - "clean-css": "3.4.28", - "maxmin": "1.1.0" + "chalk": "^1.0.0", + "clean-css": "~3.4.2", + "maxmin": "^1.1.0" } }, "grunt-contrib-watch": { @@ -6183,10 +6417,10 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=", "requires": { - "async": "1.5.0", - "gaze": "1.1.3", - "lodash": "3.10.1", - "tiny-lr": "0.2.1" + "async": "^1.5.0", + "gaze": "^1.0.0", + "lodash": "^3.10.1", + "tiny-lr": "^0.2.1" } }, "grunt-legacy-log": { @@ -6194,10 +6428,10 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.2.tgz", "integrity": "sha512-WdedTJ/6zCXnI/coaouzqvkI19uwqbcPkdsXiDRKJyB5rOUlOxnCnTVbpeUdEckKVir2uHF3rDBYppj2p6N3+g==", "requires": { - "colors": "1.1.2", - "grunt-legacy-log-utils": "1.0.0", - "hooker": "0.2.3", - "lodash": "4.17.10" + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" }, "dependencies": { "lodash": { @@ -6212,8 +6446,8 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=", "requires": { - "chalk": "1.1.3", - "lodash": "4.3.0" + "chalk": "~1.1.1", + "lodash": "~4.3.0" }, "dependencies": { "lodash": { @@ -6228,13 +6462,13 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=", "requires": { - "async": "1.5.2", - "exit": "0.1.2", - "getobject": "0.1.0", - "hooker": "0.2.3", - "lodash": "4.3.0", - "underscore.string": "3.2.3", - "which": "1.2.14" + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.3.0", + "underscore.string": "~3.2.3", + "which": "~1.2.1" }, "dependencies": { "async": { @@ -6254,9 +6488,9 @@ "resolved": "https://registry.npmjs.org/grunt-sync/-/grunt-sync-0.5.2.tgz", "integrity": "sha1-YWLEj0LhualvX5MEM+HzqIDYpuw=", "requires": { - "glob": "4.5.3", - "lodash": "3.10.1", - "md5-file": "2.0.3", + "glob": "^4.0.5", + "lodash": "^3.10.1", + "md5-file": "^2.0.3", "promised-io": "0.3.3" }, "dependencies": { @@ -6265,10 +6499,10 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.4.0" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" } }, "minimatch": { @@ -6276,7 +6510,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.0.0" } } } @@ -6306,10 +6540,10 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-1.0.1.tgz", "integrity": "sha1-+RnCXoBMsKpg9v2S2Sn8hrRQE+g=", "requires": { - "deep-extend": "0.2.11", - "ini": "1.3.5", - "minimist": "0.0.10", - "strip-json-comments": "0.1.3" + "deep-extend": "~0.2.5", + "ini": "~1.3.0", + "minimist": "~0.0.7", + "strip-json-comments": "0.1.x" } }, "rimraf": { @@ -6317,7 +6551,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" }, "dependencies": { "glob": { @@ -6325,12 +6559,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -6345,7 +6579,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "strip-json-comments": { @@ -6358,12 +6592,12 @@ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", "requires": { - "body-parser": "1.14.2", - "debug": "2.2.0", - "faye-websocket": "0.10.0", - "livereload-js": "2.3.0", - "parseurl": "1.3.1", - "qs": "5.1.0" + "body-parser": "~1.14.0", + "debug": "~2.2.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.2.0", + "parseurl": "~1.3.0", + "qs": "~5.1.0" } }, "underscore.string": { @@ -6378,12 +6612,12 @@ "resolved": "https://registry.npmjs.org/sails-disk/-/sails-disk-0.10.10.tgz", "integrity": "sha1-asXeoAlQz2VopT/hP9C4060yYP8=", "requires": { - "async": "0.2.10", + "async": "~0.2.9", "fs-extra": "0.30.0", "lodash": "3.10.1", - "waterline-criteria": "1.0.1", - "waterline-cursor": "0.0.7", - "waterline-errors": "0.10.1" + "waterline-criteria": "~1.0.1", + "waterline-cursor": "~0.0.6", + "waterline-errors": "~0.10.1" }, "dependencies": { "async": { @@ -6403,23 +6637,23 @@ "resolved": "https://registry.npmjs.org/sails-generate/-/sails-generate-0.13.0.tgz", "integrity": "sha1-n2UeZ7qW7xn6GE0NeJjk0+oJdJI=", "requires": { - "async": "0.2.10", - "fs-extra": "0.8.1", - "lodash": "2.4.2", - "merge-defaults": "0.1.4", - "reportback": "0.1.9", - "sails-generate-adapter": "0.10.7", - "sails-generate-api": "0.10.1", - "sails-generate-backend": "0.12.6", - "sails-generate-controller": "0.10.9", - "sails-generate-frontend": "0.12.3", - "sails-generate-generator": "0.10.11", - "sails-generate-gruntfile": "0.10.11", - "sails-generate-model": "0.10.12", - "sails-generate-new": "0.10.29", - "sails-generate-sails.io.js": "0.13.4", - "sails-generate-views": "0.10.8", - "sails-generate-views-jade": "0.10.4" + "async": "~0.2.9", + "fs-extra": "~0.8.1", + "lodash": "~2.4.1", + "merge-defaults": "~0.1.0", + "reportback": "~0.1.8", + "sails-generate-adapter": "~0.10.5", + "sails-generate-api": "~0.10.0", + "sails-generate-backend": "~0.12.2", + "sails-generate-controller": "~0.10.7", + "sails-generate-frontend": "^0.12.0", + "sails-generate-generator": "~0.10.0", + "sails-generate-gruntfile": "~0.10.10", + "sails-generate-model": "~0.10.10", + "sails-generate-new": "~0.10.19", + "sails-generate-sails.io.js": "^0.13.0", + "sails-generate-views": "~0.10.5", + "sails-generate-views-jade": "~0.10.3" }, "dependencies": { "async": { @@ -6432,10 +6666,10 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.8.1.tgz", "integrity": "sha1-Dld5/7/t9RG8dVWVx/A8BtS0Po0=", "requires": { - "jsonfile": "1.1.1", - "mkdirp": "0.3.5", - "ncp": "0.4.2", - "rimraf": "2.2.8" + "jsonfile": "~1.1.0", + "mkdirp": "0.3.x", + "ncp": "~0.4.2", + "rimraf": "~2.2.0" } }, "jsonfile": { @@ -6453,7 +6687,7 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.1.4.tgz", "integrity": "sha1-kkDUlaPxUC0608oEGwMfAFmb8Xg=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" } }, "mkdirp": { @@ -6468,8 +6702,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-adapter/-/sails-generate-adapter-0.10.7.tgz", "integrity": "sha1-/9U0BMwvY27NAyghwLmByFsFzVU=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1" + "lodash": "~2.4.1", + "merge-defaults": ">=0.1.0" }, "dependencies": { "lodash": { @@ -6484,9 +6718,9 @@ "resolved": "https://registry.npmjs.org/sails-generate-api/-/sails-generate-api-0.10.1.tgz", "integrity": "sha1-FVCVe2DU8Dpjerb1nE9j2jom9As=", "requires": { - "async": "0.2.10", - "lodash": "2.4.2", - "merge-defaults": "0.1.4" + "async": "~0.2.9", + "lodash": "~2.4.1", + "merge-defaults": "~0.1.0" }, "dependencies": { "async": { @@ -6504,7 +6738,7 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.1.4.tgz", "integrity": "sha1-kkDUlaPxUC0608oEGwMfAFmb8Xg=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" } } } @@ -6514,8 +6748,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-backend/-/sails-generate-backend-0.12.6.tgz", "integrity": "sha1-Ty5O9ztmOYivzUjBzVN2cR8yCdA=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1" + "lodash": "~2.4.1", + "merge-defaults": ">=0.1.0" }, "dependencies": { "lodash": { @@ -6530,10 +6764,10 @@ "resolved": "https://registry.npmjs.org/sails-generate-controller/-/sails-generate-controller-0.10.9.tgz", "integrity": "sha1-GRtjX23KnjJx1eIVQZnlLVA0a+E=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1", + "lodash": "~2.4.1", + "merge-defaults": ">=0.1.0", "pluralize": "0.0.9", - "underscore.string": "2.3.3" + "underscore.string": "~2.3.3" }, "dependencies": { "lodash": { @@ -6560,7 +6794,7 @@ "requires": { "lodash": "2.4.1", "merge-defaults": "0.1.0", - "sails-generate-sails.io.js": "0.14.0" + "sails-generate-sails.io.js": "^0.14.0" }, "dependencies": { "lodash": { @@ -6573,7 +6807,7 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.1.0.tgz", "integrity": "sha1-2ky3qSPbg5VZkFvj3b31vV+aK7g=", "requires": { - "lodash": "2.4.1" + "lodash": "~2.4.1" } }, "sails-generate-sails.io.js": { @@ -6581,8 +6815,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-sails.io.js/-/sails-generate-sails.io.js-0.14.0.tgz", "integrity": "sha1-i1UQitjkIX+vGKG472hBned81eA=", "requires": { - "lodash": "2.4.1", - "sails.io.js-dist": "0.14.0" + "lodash": "~2.4.1", + "sails.io.js-dist": "^0.14.0" } } } @@ -6592,8 +6826,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-generator/-/sails-generate-generator-0.10.11.tgz", "integrity": "sha1-+z2Pd10k63uZ809562YPXWY/Qcs=", "requires": { - "lodash": "4.17.10", - "merge-defaults": "0.2.1" + "lodash": ">=2.4.x", + "merge-defaults": ">=0.1.0" } }, "sails-generate-gruntfile": { @@ -6601,8 +6835,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-gruntfile/-/sails-generate-gruntfile-0.10.11.tgz", "integrity": "sha1-zUOadw8TraPLbj2kFpLqmF1oaVs=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1" + "lodash": "~2.4.1", + "merge-defaults": ">=0.1.0" }, "dependencies": { "lodash": { @@ -6617,9 +6851,9 @@ "resolved": "https://registry.npmjs.org/sails-generate-model/-/sails-generate-model-0.10.12.tgz", "integrity": "sha1-O8k6xzx2p7SJFUeSEPJ2c3xHH7k=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1", - "underscore.string": "2.3.3" + "lodash": "~2.4.0", + "merge-defaults": ">=0.1.0", + "underscore.string": "~2.3.3" }, "dependencies": { "lodash": { @@ -6639,11 +6873,11 @@ "resolved": "https://registry.npmjs.org/sails-generate-new/-/sails-generate-new-0.10.29.tgz", "integrity": "sha1-eL0B70gULDZ2nRrGvxbqcjqQOC8=", "requires": { - "async": "1.2.1", - "cross-spawn-async": "2.2.5", - "fs-extra": "0.30.0", - "lodash": "3.9.3", - "merge-defaults": "0.2.1" + "async": "~1.2.0", + "cross-spawn-async": "^2.1.6", + "fs-extra": "*", + "lodash": "~3.9.0", + "merge-defaults": ">=0.2.x" }, "dependencies": { "async": { @@ -6663,8 +6897,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-sails.io.js/-/sails-generate-sails.io.js-0.13.4.tgz", "integrity": "sha1-zdKJOViqqPpysH5RefoJgIULSI4=", "requires": { - "lodash": "2.4.2", - "sails.io.js-dist": "0.13.8" + "lodash": "~2.4.1", + "sails.io.js-dist": "^0.13.3" }, "dependencies": { "lodash": { @@ -6684,8 +6918,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-views/-/sails-generate-views-0.10.8.tgz", "integrity": "sha1-fVFes83mMx7e/8sq8+h2JtPgHZs=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1" + "lodash": "~2.4.1", + "merge-defaults": ">=0.1.0" }, "dependencies": { "lodash": { @@ -6700,8 +6934,8 @@ "resolved": "https://registry.npmjs.org/sails-generate-views-jade/-/sails-generate-views-jade-0.10.4.tgz", "integrity": "sha1-7YF9wcIvRJQ/uUFoxXac3w9VhQk=", "requires": { - "lodash": "2.4.2", - "merge-defaults": "0.2.1" + "lodash": "~2.4.1", + "merge-defaults": ">=0.1.0" }, "dependencies": { "lodash": { @@ -6719,8 +6953,8 @@ "async": "1.5.2", "lodash": "3.10.1", "prompt": "0.2.14", - "rttc": "9.3.3", - "waterline": "0.11.12" + "rttc": "~9.3.0", + "waterline": "~0.11.0" }, "dependencies": { "async": { @@ -6742,8 +6976,8 @@ "requires": { "async": "1.5.0", "lodash": "3.10.1", - "machinepack-urls": "3.1.1", - "semver": "4.3.6", + "machinepack-urls": "^3.1.1", + "semver": "^4.3.4", "socket.io": "1.7.3", "uid2": "0.0.3" }, @@ -6765,7 +6999,7 @@ "resolved": "https://registry.npmjs.org/sails-mongo/-/sails-mongo-0.12.3.tgz", "integrity": "sha1-NmV3/9sc59tkQlAj1myvYDtlPQ8=", "requires": { - "@sailshq/lodash": "3.10.2", + "@sailshq/lodash": "^3.10.2", "async": "2.0.1", "mongodb": "2.2.22", "validator": "4.5.1", @@ -6778,7 +7012,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.0.1.tgz", "integrity": "sha1-twnMAoCpw28J9FNr6CPIOKkEniU=", "requires": { - "lodash": "4.17.4" + "lodash": "^4.8.0" } }, "lodash": { @@ -6801,8 +7035,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.7.tgz", "integrity": "sha1-aieQm5gULvJQjZJMJ0lpAIlU+ik=", "requires": { - "bson": "1.0.4", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "readable-stream": { @@ -6810,13 +7044,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -6860,7 +7094,7 @@ "integrity": "sha1-nuXkbwVrK6OnhAoQ6uNCb1k4QpI=", "requires": { "bignumber.js": "2.1.4", - "readable-stream": "1.1.13" + "readable-stream": "~1.1.13" }, "dependencies": { "bignumber.js": { @@ -6873,10 +7107,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "integrity": "sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" }, "dependencies": { "core-util-is": { @@ -6908,8 +7142,8 @@ "resolved": "https://registry.npmjs.org/waterline-cursor/-/waterline-cursor-0.0.6.tgz", "integrity": "sha1-d1DuqIuI+ACZbRFTBH28hQ9FL08=", "requires": { - "async": "0.9.2", - "lodash": "2.4.2" + "async": "~0.9.0", + "lodash": "~2.4.1" }, "dependencies": { "async": { @@ -6978,9 +7212,9 @@ "generic-pool": "2.1.1", "packet-reader": "0.2.0", "pg-connection-string": "0.1.3", - "pg-types": "1.11.0", + "pg-types": "1.*", "pgpass": "0.0.3", - "semver": "4.3.6" + "semver": "^4.1.0" }, "dependencies": { "buffer-writer": { @@ -7008,11 +7242,11 @@ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.11.0.tgz", "integrity": "sha1-qukagtlStjO7iNAGNQoWbar26pA=", "requires": { - "ap": "0.2.0", - "postgres-array": "1.0.0", - "postgres-bytea": "1.0.0", - "postgres-date": "1.0.1", - "postgres-interval": "1.0.2" + "ap": "~0.2.0", + "postgres-array": "~1.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.0", + "postgres-interval": "~1.0.0" }, "dependencies": { "ap": { @@ -7040,7 +7274,7 @@ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.0.2.tgz", "integrity": "sha1-cmFDjYYrQSkhxv23YXZoQktzpu0=", "requires": { - "xtend": "4.0.1" + "xtend": "^4.0.0" }, "dependencies": { "xtend": { @@ -7057,7 +7291,7 @@ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-0.0.3.tgz", "integrity": "sha1-EuZ+NDsxicLzEgbrycwL7//PkUA=", "requires": { - "split": "0.3.3" + "split": "~0.3" }, "dependencies": { "split": { @@ -7065,7 +7299,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "requires": { - "through": "2.3.8" + "through": "2" }, "dependencies": { "through": { @@ -7089,8 +7323,8 @@ "resolved": "https://registry.npmjs.org/waterline-cursor/-/waterline-cursor-0.0.6.tgz", "integrity": "sha1-d1DuqIuI+ACZbRFTBH28hQ9FL08=", "requires": { - "async": "0.9.2", - "lodash": "2.4.2" + "async": "~0.9.0", + "lodash": "~2.4.1" }, "dependencies": { "async": { @@ -7132,10 +7366,10 @@ "resolved": "https://registry.npmjs.org/sails-sqlserver/-/sails-sqlserver-0.10.8.tgz", "integrity": "sha1-jir3F7UL0YqZ5rdkXKN/jmDl9v0=", "requires": { - "captains-log": "0.11.11", - "lodash": "3.10.1", - "mssql": "2.1.3", - "underscore.string": "3.0.3", + "captains-log": "^0.11.11", + "lodash": "^3.8.0", + "mssql": "^2.1.3", + "underscore.string": "^3.0.0", "waterline-cursor": "0.0.5" }, "dependencies": { @@ -7144,10 +7378,10 @@ "resolved": "https://registry.npmjs.org/captains-log/-/captains-log-0.11.11.tgz", "integrity": "sha1-live/UQ1HDBrAMRabalhSsNYU4w=", "requires": { - "colors": "0.6.2", + "colors": "~0.6.2", "lodash": "2.4.1", - "merge-defaults": "0.1.4", - "rc": "0.3.5" + "merge-defaults": "~0.1.0", + "rc": "~0.3.2" }, "dependencies": { "lodash": { @@ -7177,7 +7411,7 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.1.4.tgz", "integrity": "sha1-kkDUlaPxUC0608oEGwMfAFmb8Xg=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -7197,9 +7431,9 @@ "resolved": "https://registry.npmjs.org/mssql/-/mssql-2.1.3.tgz", "integrity": "sha1-B2TQamU5YM1+RGDcr48SUxim98M=", "requires": { - "generic-pool": "2.2.0", - "promise": "7.0.1", - "tedious": "1.11.0" + "generic-pool": "^2.2.0", + "promise": "^7.0.1", + "tedious": "^1.11.0" }, "dependencies": { "generic-pool": { @@ -7212,7 +7446,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.1.tgz", "integrity": "sha1-ODtJE2yywlniZVIJeCgSg9QPr94=", "requires": { - "asap": "2.0.3" + "asap": "~2.0.1" }, "dependencies": { "asap": { @@ -7256,9 +7490,9 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-0.3.5.tgz", "integrity": "sha1-/OIiBZO+V6oSlmhafjftAD38xyg=", "requires": { - "deep-extend": "0.2.11", - "ini": "1.1.0", - "minimist": "0.0.10" + "deep-extend": "~0.2.5", + "ini": "~1.1.0", + "minimist": "~0.0.7" } }, "underscore.string": { @@ -7271,8 +7505,8 @@ "resolved": "https://registry.npmjs.org/waterline-cursor/-/waterline-cursor-0.0.5.tgz", "integrity": "sha1-j7feFv04YKI3Pz0oCFb67dHrKeA=", "requires": { - "async": "0.9.0", - "lodash": "2.4.2" + "async": "~0.9.0", + "lodash": "~2.4.1" }, "dependencies": { "async": { @@ -7294,8 +7528,8 @@ "resolved": "https://registry.npmjs.org/sails-stringfile/-/sails-stringfile-0.3.2.tgz", "integrity": "sha1-2k42Zqj5z9Ph80a/uBFqMD4cML0=", "requires": { - "colors": "1.1.2", - "lodash": "2.4.2" + "colors": "*", + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -7310,12 +7544,12 @@ "resolved": "https://registry.npmjs.org/sails-util/-/sails-util-0.11.0.tgz", "integrity": "sha1-eqwpW0KWrJ11Z+Q2+QSvCarKPWM=", "requires": { - "fs-extra": "0.8.1", - "json-stringify-safe": "5.0.1", + "fs-extra": "~0.8.1", + "json-stringify-safe": "~5.0.0", "lodash": "3.10.1", - "optimist": "0.6.1", - "switchback": "1.1.3", - "underscore.string": "2.3.3" + "optimist": "~0.6.0", + "switchback": "~1.1.1", + "underscore.string": "~2.3.3" }, "dependencies": { "fs-extra": { @@ -7323,10 +7557,10 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.8.1.tgz", "integrity": "sha1-Dld5/7/t9RG8dVWVx/A8BtS0Po0=", "requires": { - "jsonfile": "1.1.1", - "mkdirp": "0.3.5", - "ncp": "0.4.2", - "rimraf": "2.2.8" + "jsonfile": "~1.1.0", + "mkdirp": "0.3.x", + "ncp": "~0.4.2", + "rimraf": "~2.2.0" } }, "jsonfile": { @@ -7361,10 +7595,10 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "requires": { - "glob": "7.0.6", - "lodash": "4.17.10", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" }, "dependencies": { "camelcase": { @@ -7377,9 +7611,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "yargs": { @@ -7387,19 +7621,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" } } } @@ -7409,9 +7643,9 @@ "resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz", "integrity": "sha1-bOA/VKCQtmjjy+2/IO354xBZPnI=", "requires": { - "ignorefs": "1.2.0", - "safefs": "3.2.2", - "taskgroup": "4.3.1" + "ignorefs": "^1.0.0", + "safefs": "^3.1.2", + "taskgroup": "^4.0.5" } }, "scss-tokenizer": { @@ -7419,8 +7653,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "requires": { - "js-base64": "2.4.6", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -7428,7 +7662,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -7443,18 +7677,18 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", "integrity": "sha1-UY+SGusFYK7H3KspkLFM9vPM5d4=", "requires": { - "debug": "2.2.0", - "depd": "1.0.1", + "debug": "~2.2.0", + "depd": "~1.0.1", "destroy": "1.0.3", "escape-html": "1.0.2", - "etag": "1.7.0", + "etag": "~1.7.0", "fresh": "0.3.0", - "http-errors": "1.3.1", + "http-errors": "~1.3.1", "mime": "1.3.4", "ms": "0.7.1", - "on-finished": "2.3.0", - "range-parser": "1.0.3", - "statuses": "1.2.1" + "on-finished": "~2.3.0", + "range-parser": "~1.0.2", + "statuses": "~1.2.1" }, "dependencies": { "debug": { @@ -7492,8 +7726,8 @@ "resolved": "https://registry.npmjs.org/sendmail/-/sendmail-1.4.1.tgz", "integrity": "sha512-MfprntdcmRUlxZJisAJGb4sp8kL4biCbrmcLT9FJsECDATTn3Q1rYkxXyT+DFZ5fIZ5ZPJt+H/eHWUFd1xWUuw==", "requires": { - "dkim-signer": "0.2.2", - "mailcomposer": "3.12.0" + "dkim-signer": "^0.2.2", + "mailcomposer": "^3.12.0" } }, "serve-favicon": { @@ -7501,10 +7735,10 @@ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.0.tgz", "integrity": "sha1-rtNsxoNAaabxicxyIsahqBHcWzk=", "requires": { - "etag": "1.7.0", + "etag": "~1.7.0", "fresh": "0.3.0", "ms": "0.7.1", - "parseurl": "1.3.2" + "parseurl": "~1.3.0" } }, "serve-index": { @@ -7512,13 +7746,13 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", "requires": { - "accepts": "1.2.13", + "accepts": "~1.2.13", "batch": "0.5.3", - "debug": "2.2.0", - "escape-html": "1.0.3", - "http-errors": "1.3.1", - "mime-types": "2.1.17", - "parseurl": "1.3.2" + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "http-errors": "~1.3.1", + "mime-types": "~2.1.9", + "parseurl": "~1.3.1" }, "dependencies": { "debug": { @@ -7541,8 +7775,8 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz", "integrity": "sha1-/rgA0OciEk3QsAMzFgwW6cqovLM=", "requires": { - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", "send": "0.13.1" }, "dependencies": { @@ -7569,18 +7803,18 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "integrity": "sha1-ow1fTILIqbrprQCh2bG9vm8Zntc=", "requires": { - "debug": "2.2.0", - "depd": "1.1.1", - "destroy": "1.0.4", - "escape-html": "1.0.3", - "etag": "1.7.0", + "debug": "~2.2.0", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "escape-html": "~1.0.3", + "etag": "~1.7.0", "fresh": "0.3.0", - "http-errors": "1.3.1", + "http-errors": "~1.3.1", "mime": "1.3.4", "ms": "0.7.1", - "on-finished": "2.3.0", - "range-parser": "1.0.3", - "statuses": "1.2.1" + "on-finished": "~2.3.0", + "range-parser": "~1.0.3", + "statuses": "~1.2.1" } }, "statuses": { @@ -7613,7 +7847,7 @@ }, "should-equal": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.5.0.tgz", + "resolved": "http://registry.npmjs.org/should-equal/-/should-equal-0.5.0.tgz", "integrity": "sha1-x5fxNfMGf+tp6+zbMGscP+IbPm8=", "dev": true, "requires": { @@ -7653,7 +7887,7 @@ "lodash": "3.10.1", "multiparty": "3.2.10", "semver": "4.3.6", - "skipper-disk": "0.5.9", + "skipper-disk": "~0.5.6", "string_decoder": "0.10.31", "uuid": "3.0.1" }, @@ -7663,7 +7897,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.0.1.tgz", "integrity": "sha1-twnMAoCpw28J9FNr6CPIOKkEniU=", "requires": { - "lodash": "4.17.4" + "lodash": "^4.8.0" }, "dependencies": { "lodash": { @@ -7679,15 +7913,15 @@ "integrity": "sha1-dbO8mN3W5+DY/+dQ36ylxmmT+kc=", "requires": { "bytes": "2.4.0", - "content-type": "1.0.4", + "content-type": "~1.0.2", "debug": "2.6.1", - "depd": "1.1.1", - "http-errors": "1.6.2", + "depd": "~1.1.0", + "http-errors": "~1.6.1", "iconv-lite": "0.4.15", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.4.0", - "raw-body": "2.2.0", - "type-is": "1.6.15" + "raw-body": "~2.2.0", + "type-is": "~1.6.14" }, "dependencies": { "debug": { @@ -7728,7 +7962,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" } }, "iconv-lite": { @@ -7756,8 +7990,8 @@ "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.2.10.tgz", "integrity": "sha1-+JghtveRKb8R/5v5NPSRHew9KcM=", "requires": { - "readable-stream": "1.1.14", - "stream-counter": "0.2.0" + "readable-stream": "~1.1.9", + "stream-counter": "~0.2.0" } }, "qs": { @@ -7780,10 +8014,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "semver": { @@ -7843,7 +8077,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "socket.io": { @@ -8039,8 +8273,8 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" } }, "socks-proxy-agent": { @@ -8048,8 +8282,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "requires": { - "agent-base": "4.2.1", - "socks": "2.2.1" + "agent-base": "~4.2.0", + "socks": "~2.2.0" }, "dependencies": { "agent-base": { @@ -8057,7 +8291,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "smart-buffer": { @@ -8070,8 +8304,8 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz", "integrity": "sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==", "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.1" + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" } } } @@ -8086,7 +8320,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -8102,9 +8336,9 @@ "split2": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha1-GGsldbz4PoW30YRldWI47k7kJJM=", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "requires": { - "through2": "2.0.3" + "through2": "^2.0.2" } }, "sprintf-js": { @@ -8122,15 +8356,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-trace": { @@ -8148,7 +8382,7 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.1" } }, "stream-counter": { @@ -8156,7 +8390,7 @@ "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", "requires": { - "readable-stream": "1.1.14" + "readable-stream": "~1.1.8" }, "dependencies": { "isarray": { @@ -8169,10 +8403,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -8192,17 +8426,17 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -8215,7 +8449,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -8223,7 +8457,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -8231,7 +8465,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -8247,7 +8481,7 @@ "requires": { "component-emitter": "1.1.2", "cookiejar": "2.0.1", - "debug": "2.6.9", + "debug": "2", "extend": "1.2.1", "form-data": "0.2.0", "formidable": "1.0.14", @@ -8291,9 +8525,9 @@ "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", "dev": true, "requires": { - "async": "0.9.2", - "combined-stream": "0.0.7", - "mime-types": "2.0.14" + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime-types": "~2.0.3" } }, "isarray": { @@ -8326,7 +8560,7 @@ "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", "dev": true, "requires": { - "mime-db": "1.12.0" + "mime-db": "~1.12.0" } }, "qs": { @@ -8341,10 +8575,10 @@ "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -8361,8 +8595,8 @@ "integrity": "sha1-PEQbLZ7A7UJSTrMUlWEco9Q0qxw=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "1.3.0" + "methods": "1.x", + "superagent": "~1.3.0" } }, "supports-color": { @@ -8375,7 +8609,7 @@ "resolved": "https://registry.npmjs.org/switchback/-/switchback-1.1.3.tgz", "integrity": "sha1-EscBCTSNailvc5upEO64U/i25jE=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -8390,9 +8624,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "taskgroup": { @@ -8400,8 +8634,8 @@ "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-4.3.1.tgz", "integrity": "sha1-feGT/r12gnPEV3MElwJNUSwnkVo=", "requires": { - "ambi": "2.5.0", - "csextends": "1.1.1" + "ambi": "^2.2.0", + "csextends": "^1.0.3" } }, "through2": { @@ -8409,8 +8643,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "thunkify": { @@ -8423,12 +8657,12 @@ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", "requires": { - "body": "5.1.0", - "debug": "3.1.0", - "faye-websocket": "0.10.0", - "livereload-js": "2.3.0", - "object-assign": "4.1.1", - "qs": "6.5.1" + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" }, "dependencies": { "debug": { @@ -8466,7 +8700,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "trim": { @@ -8484,7 +8718,7 @@ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", "requires": { - "glob": "6.0.4" + "glob": "^6.0.4" }, "dependencies": { "glob": { @@ -8492,11 +8726,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -8511,7 +8745,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -8525,7 +8759,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -8540,7 +8774,7 @@ "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.15" } }, "typechecker": { @@ -8558,7 +8792,7 @@ "resolved": "https://registry.npmjs.org/ua-parser/-/ua-parser-0.3.5.tgz", "integrity": "sha1-L/T5yebi1k1xFGHxe+ssnGl/Lxo=", "requires": { - "yamlparser": "0.0.2" + "yamlparser": ">=0.0.2" } }, "uglify-js": { @@ -8566,10 +8800,10 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "async": { @@ -8590,7 +8824,7 @@ "integrity": "sha1-WNbF2r+N+9jVKDSDmAbAP9YUMjI=", "requires": { "base64-url": "1.2.1", - "native-or-bluebird": "1.1.2" + "native-or-bluebird": "~1.1.2" } }, "uid2": { @@ -8613,8 +8847,8 @@ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", "requires": { - "sprintf-js": "1.0.3", - "util-deprecate": "1.0.2" + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" } }, "unirest": { @@ -8622,9 +8856,9 @@ "resolved": "https://registry.npmjs.org/unirest/-/unirest-0.5.1.tgz", "integrity": "sha1-nfV2YYcoDyRbTpp1zh+tMTM31u0=", "requires": { - "form-data": "0.2.0", - "mime": "1.3.6", - "request": "2.74.0" + "form-data": "^0.2.0", + "mime": "~1.3.4", + "request": "~2.74.0" }, "dependencies": { "assert-plus": { @@ -8647,7 +8881,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "caseless": { @@ -8668,7 +8902,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "delayed-stream": { @@ -8681,9 +8915,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", "requires": { - "async": "0.9.2", - "combined-stream": "0.0.7", - "mime-types": "2.0.14" + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime-types": "~2.0.3" } }, "har-validator": { @@ -8691,10 +8925,10 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.1", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -8702,10 +8936,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -8718,9 +8952,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "lodash": { @@ -8743,7 +8977,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", "requires": { - "mime-db": "1.12.0" + "mime-db": "~1.12.0" } }, "qs": { @@ -8756,27 +8990,27 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "bl": "1.1.2", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "1.0.1", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.2.3", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc4", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" }, "dependencies": { "async": { @@ -8784,7 +9018,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "combined-stream": { @@ -8792,7 +9026,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "delayed-stream": { @@ -8805,9 +9039,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "requires": { - "async": "2.5.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } }, "mime-db": { @@ -8820,7 +9054,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } } } @@ -8830,7 +9064,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "tunnel-agent": { @@ -8875,12 +9109,12 @@ "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", "requires": { - "async": "0.2.10", - "deep-equal": "1.0.1", - "i": "0.3.5", - "mkdirp": "0.5.1", - "ncp": "0.4.2", - "rimraf": "2.2.8" + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" }, "dependencies": { "async": { @@ -8905,8 +9139,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "validator": { @@ -8919,14 +9153,37 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=" }, + "vasync": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", + "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", + "requires": { + "verror": "1.6.0" + }, + "dependencies": { + "extsprintf": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", + "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=" + }, + "verror": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", + "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", + "requires": { + "extsprintf": "1.2.0" + } + } + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vfile": { @@ -8934,11 +9191,11 @@ "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.0.0.tgz", "integrity": "sha1-iGIFAONrrQJaCwHMJRBtvLMJBUg=", "requires": { - "has": "1.0.1", - "is-buffer": "1.1.5", + "has": "^1.0.1", + "is-buffer": "^1.1.4", "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.1", - "x-is-string": "0.1.0" + "unist-util-stringify-position": "^1.0.0", + "x-is-string": "^0.1.0" } }, "vfile-reporter": { @@ -8946,14 +9203,14 @@ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-3.0.0.tgz", "integrity": "sha1-/lBxTjc+DSlAUQA4qZvWCb3IIJ8=", "requires": { - "chalk": "1.1.3", - "log-symbols": "1.0.2", - "plur": "2.1.2", - "repeat-string": "1.6.1", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", + "chalk": "^1.1.0", + "log-symbols": "^1.0.2", + "plur": "^2.0.0", + "repeat-string": "^1.5.0", + "string-width": "^1.0.0", + "strip-ansi": "^3.0.1", "trim": "0.0.1", - "unist-util-stringify-position": "1.1.1" + "unist-util-stringify-position": "^1.0.0" } }, "vhost": { @@ -8966,7 +9223,7 @@ "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz", "integrity": "sha1-MbTbZnjyrgHDnqn7hyWpAx5Vins=", "requires": { - "foreachasync": "3.0.0" + "foreachasync": "^3.0.0" } }, "watchr": { @@ -8974,14 +9231,14 @@ "resolved": "https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz", "integrity": "sha1-10hHu01vkPYf4sdPn2hmKqDgdgE=", "requires": { - "eachr": "2.0.4", - "extendr": "2.1.0", - "extract-opts": "2.2.0", - "ignorefs": "1.2.0", - "safefs": "3.2.2", - "scandirectory": "2.5.0", - "taskgroup": "4.3.1", - "typechecker": "2.1.0" + "eachr": "^2.0.2", + "extendr": "^2.1.0", + "extract-opts": "^2.2.0", + "ignorefs": "^1.0.0", + "safefs": "^3.1.2", + "scandirectory": "^2.5.0", + "taskgroup": "^4.2.0", + "typechecker": "^2.0.8" } }, "waterline": { @@ -8989,15 +9246,15 @@ "resolved": "https://registry.npmjs.org/waterline/-/waterline-0.11.12.tgz", "integrity": "sha1-MyVk5sC0KuPKXNrPuIKEbrQObx4=", "requires": { - "anchor": "0.11.6", + "anchor": "~0.11.0", "async": "1.5.2", "bluebird": "3.2.1", "deep-diff": "0.3.3", "lodash": "3.10.1", "prompt": "0.2.14", "switchback": "2.0.0", - "waterline-criteria": "0.11.2", - "waterline-schema": "0.2.2" + "waterline-criteria": "~0.11.2", + "waterline-schema": "~0.2.1" }, "dependencies": { "anchor": { @@ -9006,7 +9263,7 @@ "integrity": "sha1-4Ir+9pRxvHE7YcDY7d8jmoV7sQw=", "requires": { "@mapbox/geojsonhint": "2.0.1", - "@sailshq/lodash": "3.10.2", + "@sailshq/lodash": "^3.10.2", "validator": "4.4.0" } }, @@ -9030,7 +9287,7 @@ "resolved": "https://registry.npmjs.org/switchback/-/switchback-2.0.0.tgz", "integrity": "sha1-KifZAzPe8wWnUh3MHjL2qOOtcgU=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -9050,7 +9307,7 @@ "resolved": "https://registry.npmjs.org/waterline-criteria/-/waterline-criteria-0.11.2.tgz", "integrity": "sha1-apEVVjd47531TEbF0Wh8unmoTqE=", "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -9123,8 +9380,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -9137,7 +9394,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -9150,7 +9407,7 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "window-size": { @@ -9163,13 +9420,13 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", "requires": { - "async": "0.2.10", - "colors": "0.6.2", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "pkginfo": "0.3.1", - "stack-trace": "0.0.10" + "async": "0.2.x", + "colors": "0.6.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "pkginfo": "0.3.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -9204,8 +9461,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -9218,8 +9475,8 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "options": ">=0.0.5", + "ultron": "1.0.x" } }, "wtf-8": { @@ -9267,9 +9524,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } }, @@ -9278,7 +9535,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/views/layout.ejs b/views/layout.ejs index 8affd4b7d..0f947d1bc 100644 --- a/views/layout.ejs +++ b/views/layout.ejs @@ -30,15 +30,15 @@ - - - - - - - - - + + + + + + + + + @@ -98,210 +98,210 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - From 834bba64f4c4a85c8432948647e2fbf2305b2fc1 Mon Sep 17 00:00:00 2001 From: pantsel Date: Tue, 24 Jul 2018 23:16:10 +0300 Subject: [PATCH 16/35] removed orphaned links from the pipeline --- tasks/pipeline.js | 107 ++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 56 deletions(-) diff --git a/tasks/pipeline.js b/tasks/pipeline.js index 5c55c48a8..5d65f3c42 100644 --- a/tasks/pipeline.js +++ b/tasks/pipeline.js @@ -17,15 +17,15 @@ // (if you're using LESS with the built-in default config, you'll want // to change `assets/styles/importer.less` instead.) var cssFilesToInject = [ - "bower_components/angular-loading-bar/build/loading-bar.css", - "bower_components/angular-xeditable/dist/css/xeditable.css", - "bower_components/angular-toastr/dist/angular-toastr.css", - "bower_components/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css", - "bower_components/angular-spinkit/build/angular-spinkit.min.css", - "bower_components/angular-chips/dist/main.css", - "bower_components/angular-json-human/dist/angular-json-human.css", - "bower_components/mdi/css/materialdesignicons.css", - "styles/**/*.css" + "bower_components/angular-loading-bar/build/loading-bar.css", + "bower_components/angular-xeditable/dist/css/xeditable.css", + "bower_components/angular-toastr/dist/angular-toastr.css", + "bower_components/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css", + "bower_components/angular-spinkit/build/angular-spinkit.min.css", + "bower_components/angular-chips/dist/main.css", + "bower_components/angular-json-human/dist/angular-json-human.css", + "bower_components/mdi/css/materialdesignicons.css", + "styles/**/*.css" ]; @@ -33,44 +33,44 @@ var cssFilesToInject = [ // (uses Grunt-style wildcard/glob/splat expressions) var jsFilesToInject = [ - // Load sails.io before everything else - //'js/dependencies/sails.io.js', - - "bower_components/jquery/dist/jquery.js", - "bower_components/angular/angular.js", - "bower_components/angular-animate/angular-animate.js", - "bower_components/angular-loading-bar/build/loading-bar.js", - "bower_components/angular-ui-router/release/angular-ui-router.js", - "bower_components/angular-ui-utils/ui-utils.js", - "bower_components/moment/moment.js", - "bower_components/later/later.js", - "bower_components/prettycron/prettycron.js", - "bower_components/angular-bootstrap-show-errors/src/showErrors.js", - "bower_components/angular-sanitize/angular-sanitize.js", - "bower_components/angular-xeditable/dist/js/xeditable.js", - "bower_components/angular-toastr/dist/angular-toastr.tpls.js", - "bower_components/bootstrap/dist/js/bootstrap.js", - "bower_components/angularSails/dist/ngsails.io.js", - "bower_components/ngstorage/ngStorage.js", - "bower_components/bootswatch-dist/js/bootstrap.js", - "bower_components/angular-bootstrap/ui-bootstrap-tpls.js", - "bower_components/lodash/lodash.js", - "bower_components/bootstrap-switch/dist/js/bootstrap-switch.js", - "bower_components/angular-spinkit/build/angular-spinkit.js", - "bower_components/angular-chips/dist/angular-chips.js", - "bower_components/ng-file-upload/ng-file-upload.js", - "bower_components/angular-messages/angular-messages.js", - "bower_components/angular-utils-pagination/dirPagination.js", - "bower_components/chart.js/dist/Chart.js", - "bower_components/angular-resource/angular-resource.js", - "bower_components/angular-moment/angular-moment.js", - "bower_components/bootbox/bootbox.js", - "bower_components/ngBootbox/dist/ngBootbox.js", - "bower_components/angular-json-human/dist/angular-json-human.js", - "bower_components/angular-bootstrap-switch/dist/angular-bootstrap-switch.js", - "bower_components/angular-chart.js/dist/angular-chart.js", - "bower_components/angular-base64/angular-base64.js", - "bower_components/angular-google-chart/ng-google-chart.js", + // Load sails.io before everything else + //'js/dependencies/sails.io.js', + + "bower_components/jquery/dist/jquery.js", + "bower_components/angular/angular.js", + "bower_components/angular-animate/angular-animate.js", + "bower_components/angular-loading-bar/build/loading-bar.js", + "bower_components/angular-ui-router/release/angular-ui-router.js", + "bower_components/angular-ui-utils/ui-utils.js", + "bower_components/moment/moment.js", + "bower_components/later/later.js", + "bower_components/prettycron/prettycron.js", + "bower_components/angular-bootstrap-show-errors/src/showErrors.js", + "bower_components/angular-sanitize/angular-sanitize.js", + "bower_components/angular-xeditable/dist/js/xeditable.js", + "bower_components/angular-toastr/dist/angular-toastr.tpls.js", + "bower_components/bootstrap/dist/js/bootstrap.js", + "bower_components/angularSails/dist/ngsails.io.js", + "bower_components/ngstorage/ngStorage.js", + "bower_components/bootswatch-dist/js/bootstrap.js", + "bower_components/angular-bootstrap/ui-bootstrap-tpls.js", + "bower_components/lodash/lodash.js", + "bower_components/bootstrap-switch/dist/js/bootstrap-switch.js", + "bower_components/angular-spinkit/build/angular-spinkit.js", + "bower_components/angular-chips/dist/angular-chips.js", + "bower_components/ng-file-upload/ng-file-upload.js", + "bower_components/angular-messages/angular-messages.js", + "bower_components/angular-utils-pagination/dirPagination.js", + "bower_components/chart.js/dist/Chart.js", + "bower_components/angular-resource/angular-resource.js", + "bower_components/angular-moment/angular-moment.js", + "bower_components/bootbox/bootbox.js", + "bower_components/ngBootbox/dist/ngBootbox.js", + "bower_components/angular-json-human/dist/angular-json-human.js", + "bower_components/angular-bootstrap-switch/dist/angular-bootstrap-switch.js", + "bower_components/angular-chart.js/dist/angular-chart.js", + "bower_components/angular-base64/angular-base64.js", + "bower_components/angular-google-chart/ng-google-chart.js", // All of the rest of your client-side js files // will be injected here in no particular order. @@ -92,37 +92,32 @@ var templateFilesToInject = [ ]; - - - - - // Default path for public folder (see documentation for more information) var tmpPath = '.tmp/public/'; // Prefix relative paths to source files so they point to the proper locations // (i.e. where the other Grunt tasks spit them out, or in some cases, where // they reside in the first place) -module.exports.cssFilesToInject = cssFilesToInject.map(function(cssPath) { +module.exports.cssFilesToInject = cssFilesToInject.map(function (cssPath) { // If we're ignoring the file, make sure the ! is at the beginning of the path if (cssPath[0] === '!') { return require('path').join('!.tmp/public/', cssPath.substr(1)); } return require('path').join('.tmp/public/', cssPath); }); -module.exports.jsFilesToInject = jsFilesToInject.map(function(jsPath) { +module.exports.jsFilesToInject = jsFilesToInject.map(function (jsPath) { // If we're ignoring the file, make sure the ! is at the beginning of the path if (jsPath[0] === '!') { return require('path').join('!.tmp/public/', jsPath.substr(1)); } return require('path').join('.tmp/public/', jsPath); }); -module.exports.templateFilesToInject = templateFilesToInject.map(function(tplPath) { +module.exports.templateFilesToInject = templateFilesToInject.map(function (tplPath) { // If we're ignoring the file, make sure the ! is at the beginning of the path if (tplPath[0] === '!') { return require('path').join('!assets/', tplPath.substr(1)); } - return require('path').join('assets/',tplPath); + return require('path').join('assets/', tplPath); }); From 9ac4edc18e0b1d9c1479afb7aa26d1c962abb72a Mon Sep 17 00:00:00 2001 From: pantsel Date: Sat, 28 Jul 2018 12:16:43 +0300 Subject: [PATCH 17/35] Remove trailing slash from kong connection url --- api/controllers/KongProxyController.js | 1 + api/policies/dynamicNode.js | 76 ++++++++++++++------------ 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/api/controllers/KongProxyController.js b/api/controllers/KongProxyController.js index d83e0f10e..594bdfbe1 100644 --- a/api/controllers/KongProxyController.js +++ b/api/controllers/KongProxyController.js @@ -44,6 +44,7 @@ var self = module.exports = { }); } + sails.log("Kong admin url =>", req.connection.kong_admin_url); var request = unirest[req.method.toLowerCase()](req.connection.kong_admin_url + req.url) diff --git a/api/policies/dynamicNode.js b/api/policies/dynamicNode.js index 3be590ad2..d35a92580 100644 --- a/api/policies/dynamicNode.js +++ b/api/policies/dynamicNode.js @@ -11,42 +11,46 @@ var _ = require('lodash'); */ module.exports = function dynamicNode(request, response, next) { - if(request.headers['connection-id'] || request.query.connection_id) { - - sails.log.debug("Policy:dynamicNode", "`connection-id` is defined."); - - sails.models.kongnode.findOne(request.headers['connection-id'] || request.query.connection_id) - .exec(function(err,node) { - if (err) return next(err); - if (!node) return response.notFound({ - message: "connection not found" - }) - - request.connection = node; - - return next(); - }); - - }else{ - // Get the default node from user - sails.models.user.findOne({ - id:request.token - }).populate('node').exec(function(err,user) { - if(err) return next(err); - if(!user) return response.notFound({ - message : "user not found" - }) - - if(user.node) { - // sails.config.kong_admin_url = user.node.kong_admin_url - request.connection = user.node; - return next(); - }else{ - return response.badRequest({ - message : "No connection is selected. Please activate a connection in settings" - }); - } + if (request.headers['connection-id'] || request.query.connection_id) { + + sails.log.debug("Policy:dynamicNode", "`connection-id` is defined."); + + sails.models.kongnode.findOne(request.headers['connection-id'] || request.query.connection_id) + .exec(function (err, node) { + if (err) return next(err); + if (!node) return response.notFound({ + message: "connection not found" + }) + + // Remove trailing slash from kong_admin_url property + _.update(node, 'kong_admin_url', function(o) { return o.replace(/\/$/, ""); }); + + request.connection = node; + + return next(); + }); + + } else { + // Get the default node from user + sails.models.user.findOne({ + id: request.token + }).populate('node').exec(function (err, user) { + if (err) return next(err); + if (!user) return response.notFound({ + message: "user not found" + }) + + if (user.node) { + // Remove trailing slash from kong_admin_url property + _.update(user.node, 'kong_admin_url', function(o) { return o.replace(/\/$/, ""); }); + request.connection = user.node; + return next(); + } else { + return response.badRequest({ + message: "No connection is selected. Please activate a connection in settings" }); - } + } + }); + } }; From 1ea537f5e04d8a2176f5c072f860132da0bc7c01 Mon Sep 17 00:00:00 2001 From: pantsel Date: Sat, 28 Jul 2018 12:25:09 +0300 Subject: [PATCH 18/35] Remove trailing slash from kong connection url --- api/controllers/KongProxyController.js | 1 + api/services/KongService.js | 32 +++++++++++++------------- api/services/Utils.js | 25 ++++++++++++-------- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/api/controllers/KongProxyController.js b/api/controllers/KongProxyController.js index 594bdfbe1..bc6e8985d 100644 --- a/api/controllers/KongProxyController.js +++ b/api/controllers/KongProxyController.js @@ -6,6 +6,7 @@ var unirest = require("unirest"); var KongService = require("../services/KongService"); var ProxyHooks = require("../services/KongProxyHooks"); var _ = require("lodash"); +var Utils = require('../services/Utils'); function getEntityFromRequest(req) { diff --git a/api/services/KongService.js b/api/services/KongService.js index e790f5924..4db8393bc 100644 --- a/api/services/KongService.js +++ b/api/services/KongService.js @@ -33,7 +33,7 @@ var KongService = { create: function (req, res) { - unirest.post(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.post(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .send(req.body) .end(function (response) { @@ -44,7 +44,7 @@ var KongService = { createCb: function (req, res, cb) { - unirest.post(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.post(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .send(req.body) .end(function (response) { @@ -55,7 +55,7 @@ var KongService = { createFromEndpointCb: function (endpoint, data, req, cb) { - unirest.post(req.connection.kong_admin_url + endpoint) + unirest.post(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + endpoint) .headers(KongService.headers(req, true)) .send(data) .end(function (response) { @@ -65,8 +65,8 @@ var KongService = { }, deleteFromEndpointCb: function (endpoint, req, cb) { - sails.log('Deleting ' + req.connection.kong_admin_url + endpoint); - unirest.delete(req.connection.kong_admin_url + endpoint) + sails.log('Deleting ' + Utils.withoutTrailingSlash(req.connection.kong_admin_url) + endpoint); + unirest.delete(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + endpoint) .headers(KongService.headers(req, true)) .end(function (response) { if (response.error) return cb(response) @@ -76,7 +76,7 @@ var KongService = { retrieve: function (req, res) { - unirest.get(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.get(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .end(function (response) { if (response.error) return res.kongError(response); @@ -87,7 +87,7 @@ var KongService = { fetch: (endpoint,req) => { return new Promise((resolve, reject) => { - unirest.get(req.connection.kong_admin_url + endpoint) + unirest.get(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + endpoint) .header('Content-Type', 'application/json') .end(function (response) { if (response.error) return reject(response) @@ -99,7 +99,7 @@ var KongService = { nodeStatus: function (node, cb) { - unirest.get(node.kong_admin_url + "/status") + unirest.get(Utils.withoutTrailingSlash(node.kong_admin_url) + "/status") .headers(KongService.headers(node, true)) .end(function (response) { if (response.error) return cb(response); @@ -109,7 +109,7 @@ var KongService = { nodeInfo: function (node, cb) { - unirest.get(node.kong_admin_url) + unirest.get(Utils.withoutTrailingSlash(node.kong_admin_url)) .headers(KongService.headers(node, true)) .end(function (response) { if (response.error) return cb(response); @@ -133,7 +133,7 @@ var KongService = { } }); }; - getData([], (req.kong_admin_url || req.connection.kong_admin_url) + endpoint); + getData([], (Utils.withoutTrailingSlash(req.kong_admin_url) || Utils.withoutTrailingSlash(req.connection.kong_admin_url)) + endpoint); }, @@ -153,11 +153,11 @@ var KongService = { } }); }; - getData([], (req.kong_admin_url || req.connection.kong_admin_url) + req.url.replace('/kong', '')); + getData([], (Utils.withoutTrailingSlash(req.kong_admin_url) || Utils.withoutTrailingSlash(req.connection.kong_admin_url)) + req.url.replace('/kong', '')); }, update: function (req, res) { - unirest.patch(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.patch(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .send(req.body) .end(function (response) { @@ -176,7 +176,7 @@ var KongService = { }, updateCb: function (req, res, cb) { - unirest.patch(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.patch(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .send(req.body) .end(function (response) { @@ -196,7 +196,7 @@ var KongService = { }, updateOrCreate: function (req, res) { - unirest.put(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.put(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .send(req.body) .end(function (response) { @@ -206,7 +206,7 @@ var KongService = { }, delete: function (req, res) { - unirest.delete(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.delete(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .end(function (response) { if (response.error) return res.kongError(response); @@ -227,7 +227,7 @@ var KongService = { }, deleteCb: function (req, res, cb) { - unirest.delete(req.connection.kong_admin_url + req.url.replace('/kong', '')) + unirest.delete(Utils.withoutTrailingSlash(req.connection.kong_admin_url) + req.url.replace('/kong', '')) .header('Content-Type', 'application/json') .end(function (response) { if (response.error) return cb(response); diff --git a/api/services/Utils.js b/api/services/Utils.js index b566f127a..edd0c95f9 100644 --- a/api/services/Utils.js +++ b/api/services/Utils.js @@ -1,14 +1,19 @@ module.exports = { - Object : { - clean : function clean(obj) { - for(var key in obj) { - if(JSON.stringify(obj[key])=="{}" || !obj[key]) { - delete obj[key]; - } else if (typeof obj[key] == "object") { - obj[key] = this.clean(obj[key]); - } - } - return obj; + Object: { + clean: function clean(obj) { + for (var key in obj) { + if (JSON.stringify(obj[key]) == "{}" || !obj[key]) { + delete obj[key]; + } else if (typeof obj[key] == "object") { + obj[key] = this.clean(obj[key]); } + } + return obj; } + }, + + withoutTrailingSlash(str) { + return str.replace(/\/$/, "") + } + } From f2bde960f248448a03d6e4d58b589b74d3ab4400 Mon Sep 17 00:00:00 2001 From: pantsel Date: Sat, 28 Jul 2018 12:33:05 +0300 Subject: [PATCH 19/35] Remove trailing slash from kong connection url --- api/helpers/utils.js | 5 +++++ api/services/KongService.js | 1 + api/services/SnapshotsService.js | 2 +- api/services/Utils.js | 5 ----- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/api/helpers/utils.js b/api/helpers/utils.js index 57443eebc..6b25ae68e 100644 --- a/api/helpers/utils.js +++ b/api/helpers/utils.js @@ -72,6 +72,11 @@ module.exports = { } return version; + }, + + withoutTrailingSlash(str) { + return str.replace(/\/$/, "") } + } \ No newline at end of file diff --git a/api/services/KongService.js b/api/services/KongService.js index 4db8393bc..393754def 100644 --- a/api/services/KongService.js +++ b/api/services/KongService.js @@ -3,6 +3,7 @@ var unirest = require("unirest") var ApiHealthCheckService = require('../services/ApiHealthCheckService') var JWT = require("./Token"); +var Utils = require('../helpers/utils'); var KongService = { diff --git a/api/services/SnapshotsService.js b/api/services/SnapshotsService.js index 117ab5e0c..8c0a697b0 100644 --- a/api/services/SnapshotsService.js +++ b/api/services/SnapshotsService.js @@ -215,7 +215,7 @@ module.exports = { sails.models.snapshot.create({ name: name || "snap@" + Date.now(), kong_node_name: node.name, - kong_node_url: node.kong_admin_url, + kong_node_url: Utils.withoutTrailingSlash(node.kong_admin_url), kong_version: status.version, data: result }).exec(function (err, created) { diff --git a/api/services/Utils.js b/api/services/Utils.js index edd0c95f9..2712f1f06 100644 --- a/api/services/Utils.js +++ b/api/services/Utils.js @@ -10,10 +10,5 @@ module.exports = { } return obj; } - }, - - withoutTrailingSlash(str) { - return str.replace(/\/$/, "") } - } From 0e3659664ada095056f1674e0fd047166026d970 Mon Sep 17 00:00:00 2001 From: pantsel Date: Sat, 28 Jul 2018 12:39:43 +0300 Subject: [PATCH 20/35] Remove trailing slash from kong connection url --- api/helpers/utils.js | 1 + 1 file changed, 1 insertion(+) diff --git a/api/helpers/utils.js b/api/helpers/utils.js index 6b25ae68e..a2954e40a 100644 --- a/api/helpers/utils.js +++ b/api/helpers/utils.js @@ -75,6 +75,7 @@ module.exports = { }, withoutTrailingSlash(str) { + if(!str) return str; return str.replace(/\/$/, "") } From 3c09b083b5704782d4ee6889b405ec32d1af4ec0 Mon Sep 17 00:00:00 2001 From: pantsel Date: Sat, 28 Jul 2018 12:53:32 +0300 Subject: [PATCH 21/35] Updated CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9c83932c..597b108ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. +## [0.12.1](https://github.com/pantsel/konga/releases/tag/0.12.1) - 28-07-2018 +* **[Deprecation]** Deprecated consumer imports. This feature was not adopted and provided unnecessary +complexity to maintenance as well as increased the overall project's size. +* **[Fix]** Fixed the trailing slash issue. Konga is now able to communicate with +Kong even if a trailing slash exists in the connection url. +* Cleaned up unused dependencies. + ## [0.12.0](https://github.com/pantsel/konga/releases/tag/0.12.0) - 07-07-2018 * **[Fix]** Fix snapshots implementation. Use auto generated entity ids for proper relationships mapping. * **[Compatibility]** Implement new Kong plugins properly. From bb6a7cd2b14a3db0ce62ec17d4fd150cd3e29a9b Mon Sep 17 00:00:00 2001 From: pantsel Date: Sat, 28 Jul 2018 15:22:58 +0300 Subject: [PATCH 22/35] Updated package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 109d4f91e..072deed8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kongadmin", - "version": "0.12.1", + "version": "0.12.1-1", "description": "Kong admin GUI", "keywords": [ "sails.js", From c6c3386542fe6205166630bc24f9cfea5e891b45 Mon Sep 17 00:00:00 2001 From: Panagis Tselentis Date: Thu, 9 Aug 2018 11:47:07 +0300 Subject: [PATCH 23/35] pre pull --- package-lock.json | 68 ++++---- views/layout.ejs | 426 +++++++++++++++++++++++----------------------- 2 files changed, 247 insertions(+), 247 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c3025839..256a3f002 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "kongadmin", - "version": "0.12.0-rc2", + "version": "0.12.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -299,7 +299,7 @@ "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + "integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk=" }, "boom": { "version": "2.10.1", @@ -2611,12 +2611,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } @@ -2931,10 +2931,10 @@ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", "requires": { - "findup-sync": "~0.3.0", - "grunt-known-options": "~1.1.0", - "nopt": "~3.0.6", - "resolve": "~1.1.0" + "findup-sync": "0.3.0", + "grunt-known-options": "1.1.0", + "nopt": "3.0.6", + "resolve": "1.1.7" } }, "rimraf": { @@ -2966,7 +2966,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.0.6" } } } @@ -4484,13 +4484,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } } } @@ -4842,8 +4842,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "cross-spawn": { @@ -4851,8 +4851,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.2.14" } }, "lru-cache": { @@ -4869,16 +4869,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" } }, "object-assign": { diff --git a/views/layout.ejs b/views/layout.ejs index 8affd4b7d..0f947d1bc 100644 --- a/views/layout.ejs +++ b/views/layout.ejs @@ -30,15 +30,15 @@ - - - - - - - - - + + + + + + + + + @@ -98,210 +98,210 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +