diff --git a/app.js b/app.js
index 2ee3e2d..cb055d0 100644
--- a/app.js
+++ b/app.js
@@ -42,16 +42,16 @@ app.get('*', function(req, res, next) {
});
app.use('/api/login', new RateLimit({
- windowMs: settings.rateLimitWindow,
- max: settings.loginRequestLimit,
- delayMs: 0
-}));
+ windowMs: settings.rateLimitWindow,
+ max: settings.loginRequestLimit,
+ delayMs: 0
+ }));
app.use('/api', new RateLimit({
- windowMs: settings.rateLimitWindow,
- max: settings.requestLimit,
- delayMs: 0
-}));
+ windowMs: settings.rateLimitWindow,
+ max: settings.requestLimit,
+ delayMs: 0
+ }));
app.use(function(req, res, next) {
if (req.path === '/api/login' || req.path.indexOf('/api/external-upload') === 0) {
@@ -71,7 +71,7 @@ app.use(function(req, res, next) {
for (let route of routes) {
app.use('/api', route);
}
-const cronexample = require('./lib/cron');
+require('./lib/cron');
require('./error_handler')(app);
// Teardown can be passed any modules necessary for proper teardown
diff --git a/bin/create_programs.js b/bin/create_programs.js
new file mode 100644
index 0000000..97b98ab
--- /dev/null
+++ b/bin/create_programs.js
@@ -0,0 +1,170 @@
+#!/usr/bin/env node
+'use strict';
+require('dotenv').config();
+
+const csv = require('csv');
+const fs = require('fs');
+const mongoose = require('mongoose');
+mongoose.promise = Promise;
+mongoose.connect(process.env.DB_HOST, {useMongoClient: true});
+
+const College = require('../models/college.model');
+const Department = require('../models/department.model');
+const Program = require('../models/program.model');
+
+let completed = 0;
+let toComplete;
+
+function loadCSV(callback) {
+ fs.readFile('./bin/raw-programs.csv', 'utf-8', (error, data) => {
+ if (error)
+ return console.log(error);
+
+ csv.parse(data, {columns: true}, (error, data) => {
+ if (error)
+ return console.log('There was an error parsing data!')
+ toComplete = data.length;
+ callback(data);
+ });
+ });
+}
+
+function createCollege(currentCollege, currentDepartment, currentProgram) {
+ return new Promise((resolve, reject) => {
+ const college = new College(currentCollege);
+ college.save((err, savedCollege) => {
+ if (!err) {
+ currentDepartment.college = savedCollege._id;
+ return createDepartment(currentDepartment, currentProgram).then(function() {
+ resolve();
+ }, err => {
+ console.log(err);
+ reject();
+ });
+ } else {
+ console.log(err);
+ reject();
+ }
+ });
+ });
+}
+
+function createDepartment(currentDepartment, currentProgram) {
+ return new Promise((resolve, reject) => {
+ const department = new Department(currentDepartment);
+
+ department.save((err, savedDepartment) => {
+
+ if (!err) {
+ currentProgram.department = savedDepartment._id;
+ createProgram(currentProgram).then(function() {
+ resolve();
+ }, err => {
+ console.log(err);
+ reject();
+ });
+ } else {
+ console.log(err);
+ reject();
+ }
+ });
+ });
+}
+
+function createProgram(currentProgram) {
+ return new Promise((resolve, reject) => {
+ const program = new Program(currentProgram);
+ program.save((err, savedProgram) => {
+ if (!err) {
+ completed += 1;
+ resolve();
+ } else {
+ console.log(err);
+ reject();
+ }
+ });
+ });
+}
+
+async function applyImport(entries) {
+ for (let entry of entries) {
+ await importEntry(entry);
+ }
+}
+
+function importEntry(entry) {
+ return new Promise((resolve, reject) => {
+ College.findOne({name: entry.college}, '_id', (err, foundCollege) => {
+ if (foundCollege) {
+ Department.findOne({name: entry.department}, '_id', (err, foundDepartment) => {
+ if (foundDepartment) {
+ createProgram({
+ name: entry.program,
+ department: foundDepartment._id,
+ nextReviewDate: entry.nextReviewDate
+ }).then(resolve, reject);
+ ;
+ } else {
+ createDepartment({name: entry.department, college: foundCollege._id, abbreviation: entry.departmentAbbreviation}, {name: entry.program, nextReviewDate: entry.nextReviewDate}).then(resolve, reject);
+ ;
+ }
+ });
+ } else {
+ createCollege({name: entry.college, abbreviation: entry.collegeAbbreviation}, {name: entry.department, abbreviation: entry.departmentAbbreviation}, {name: entry.program, nextReviewDate: entry.nextReviewDate}).then(resolve, reject);
+ }
+ });
+ });
+}
+
+function removePrograms() {
+ return new Promise((resolve, reject) => {
+ Program.find({}).remove(function(err) {
+ if (!err) {
+ resolve();
+ } else {
+ reject();
+ }
+ });
+ });
+}
+
+function removeDepartments() {
+ return new Promise((resolve, reject) => {
+ Department.find({}).remove(function(err) {
+ if (!err) {
+ resolve();
+ } else {
+ reject();
+ }
+ });
+ });
+}
+
+function removeColleges() {
+ return new Promise((resolve, reject) => {
+ College.find({}).remove(function(err) {
+ if (!err) {
+ resolve();
+ } else {
+ reject();
+ }
+ });
+ });
+}
+
+removePrograms().then(function() {
+ return removeDepartments();
+ })
+ .then(function() {
+ return removeColleges();
+ })
+ .then(function() {
+ loadCSV(applyImport);
+ });
+
+setInterval(() => {
+ if (completed === toComplete) {
+ console.log('Successfully added colleges, departments, and programs');
+ process.exit(0);
+ }
+}, 100);
diff --git a/lib/cron/cronexample.js b/lib/cron/cronexample.js
index f5e9942..76e111b 100644
--- a/lib/cron/cronexample.js
+++ b/lib/cron/cronexample.js
@@ -1,69 +1,71 @@
const mongoose = require('mongoose');
+const winston = require('winston');
const nodemailer = require('nodemailer');
const hbs = require('nodemailer-express-handlebars');
const Review = mongoose.model('Review');
+const Document = mongoose.model('Document');
+const User = mongoose.model('User');
const _ = require('lodash');
+
const CronJob = require('cron').CronJob;
const job = new CronJob({
cronTime: '5,10,15,20,25,30,35,40,45,50,55,59 * * * * *',
onTick: function() {
- Review.find({}, (err,reviews) => {
- if(err) {
- console.log("error");
- }
- reviews.forEach(function(review) {
- for (let node of _.values(review.nodes)) {
- if (node.title === 'Questions' && node.completionEstimate === 3){
- nodemailer.createTestAccount((err, account) => {
- if (err) {
- console.error('Failed to create a testing account. ' + err.message);
- return process.exit(1);
- }
-
- console.log('Credentials obtained, sending message...');
-
- // Create a SMTP transporter object
- let transporter = nodemailer.createTransport({
- host: account.smtp.host,
- port: account.smtp.port,
- secure: account.smtp.secure,
- auth: {
- user: account.user,
- pass: account.pass
- }
- });
- transporter.use('compile', hbs ({
- viewPath: 'templates',
- extName: '.hbs'
- }));
+ Review.find({}, (err, reviews) => {
+ if (err) {
+ console.log('error');
+ }
+ reviews.forEach(function(review) {
+ for (let node of _.values(review.nodes)) {
+ let currentDate = Date.now();
+ let documentDate = node.finishDate.getTime();
+ let daysRemaining = Math.floor((documentDate - currentDate) / 86400000);
+ if (daysRemaining === 1) {
+ console.log(node.title);
+ Document.findById(node.document).then(function(document) {
+ for (let id of document.subscribers) {
+ User.findById(id).then(function(user) {
+ // Create a SMTP transporter object
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
- const memberArray = ['Justin', 'Andrew', 'Ben'];
- let message = {
- from: 'allen3just@yahoo.com',
- to: 'example@example.com',
- subject: 'Notification email',
- template: '../lib/templates/document_deadline_notification',
- context: {
- Member: memberArray
- }
- };
-
- transporter.sendMail(message, (err, info) => {
- if (err) {
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../templates/document_deadline_notification',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ document: document.title
+ }
+ };
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
console.log('Error occurred. ' + err.message);
return process.exit(1);
- }
+ }
- console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
- });
- });
- };
- };
+ });
+ }, winston.error);
+ }
+ }, winston.error);
+ }
+ }
+ });
});
- });
},
start: true,
timeZone: 'America/Los_Angeles'
@@ -71,5 +73,4 @@ const job = new CronJob({
-
-// module.exports = job();
+module.exports = job;
diff --git a/lib/cron/document_deadline.js b/lib/cron/document_deadline.js
index 4fbb2f7..00576e6 100644
--- a/lib/cron/document_deadline.js
+++ b/lib/cron/document_deadline.js
@@ -1,69 +1,80 @@
+const winston = require('winston');
const mongoose = require('mongoose');
const nodemailer = require('nodemailer');
const hbs = require('nodemailer-express-handlebars');
const Review = mongoose.model('Review');
+const Document = mongoose.model('Document');
+const User = mongoose.model('User');
const _ = require('lodash');
const CronJob = require('cron').CronJob;
-const job = new CronJob({
+const deadlineJob = new CronJob({
cronTime: '* 30 08 * * *',
onTick: function() {
- Review.find({}, (err,reviews) => {
- if(err) {
- console.log("error");
- }
- reviews.forEach(function(review) {
- for (let node of _.values(review.nodes)) {
- if (node.title === 'Self-study Document' && node.completionEstimate === 3){
- nodemailer.createTestAccount((err, account) => {
- if (err) {
- console.error('Failed to create a testing account. ' + err.message);
- return process.exit(1);
- }
-
- console.log('Credentials obtained, sending message...');
+ Review.find({}, (err, reviews) => {
+ if (err) {
+ console.log('error');
+ }
+ reviews.forEach(function(review) {
+ for (let node of _.values(review.nodes)) {
+ let currentDate = Date.now();
+ let documentDate = node.finishDate.getTime();
+ let daysRemaining = Math.floor((documentDate - currentDate) / 86400000);
+ if (daysRemaining === 1) {
+ Document.findById(node.document).then(function(document) {
+ for (let id of document.subscribers) {
+ User.findById(id).then(function(user) {
+ nodemailer.createTestAccount((err, account) => {
+ if (err) {
+ console.error('Failed to create a testing account. ' + err.message);
+ return process.exit(1);
+ }
- // Create a SMTP transporter object
- let transporter = nodemailer.createTransport({
- host: account.smtp.host,
- port: account.smtp.port,
- secure: account.smtp.secure,
- auth: {
- user: account.user,
- pass: account.pass
- }
- });
- transporter.use('compile', hbs ({
- viewPath: 'templates',
- extName: '.hbs'
- }));
+ console.log('Credentials obtained, sending message...');
- const memberArray = ['Justin', 'Andrew', 'Ben'];
- let message = {
- from: 'allen3just@yahoo.com',
- to: 'example@example.com',
- subject: 'Notification email',
- template: '../lib/templates/document_deadline_notification',
- context: {
- Member: memberArray
- }
- };
+ // Create a SMTP transporter object
+ let transporter = nodemailer.createTransport({
+ host: account.smtp.host,
+ port: account.smtp.port,
+ secure: account.smtp.secure,
+ auth: {
+ user: account.user,
+ pass: account.pass
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
- transporter.sendMail(message, (err, info) => {
- if (err) {
- console.log('Error occurred. ' + err.message);
- return process.exit(1);
- }
+ let message = {
+ from: 'allen3just@yahoo.com',
+ to: user.email,
+ subject: 'Notification email',
+ template: '../lib/templates/document_deadline_notification',
+ context: {
+ doc: document.title,
+ member: user.name
+ }
+ };
- console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
- });
- });
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
- };
- };
+ console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
+ });
+ });
+ }, winston.error);
+ }
+ }, winston.error);
+ }
+ }
+ });
});
- });
},
start: true,
timeZone: 'America/Los_Angeles'
@@ -71,5 +82,4 @@ const job = new CronJob({
-
-// module.exports = job();
+module.exports = deadlineJob;
diff --git a/lib/cron/index.js b/lib/cron/index.js
index 01e7838..2c4e556 100644
--- a/lib/cron/index.js
+++ b/lib/cron/index.js
@@ -1,4 +1,5 @@
module.exports = [
require('./document_deadline'),
- require('./questions_notification')
+ require('./questions_notification'),
+ require('./cronexample')
];
diff --git a/lib/review_node.js b/lib/review_node.js
index 938401f..f8b35cd 100644
--- a/lib/review_node.js
+++ b/lib/review_node.js
@@ -9,6 +9,7 @@ module.exports = {
finishDateOverriden: Boolean,
finalized: Boolean,
email: Object,
+ emailSent: Boolean,
document: mongoose.Schema.Types.ObjectId,
prerequisites: {
type: [mongoose.Schema.Types.ObjectId],
diff --git a/lib/templates/document_deadline_notification.hbs b/lib/templates/document_deadline_notification.hbs
index d338276..7f45b60 100644
--- a/lib/templates/document_deadline_notification.hbs
+++ b/lib/templates/document_deadline_notification.hbs
@@ -1,4 +1,21 @@
-To {{Member}}:
-There is an upcoming deadline for document {{Document}}. Please review and update any changes that you may have.
+
+
+
-Thank you.
+ Hello {{first}} {{last}},
+
+
+
+The following Document "{{document}}" has an upcoming deadline.
+Please check PRISM for more details or click the link below.
+
+
+ Link to dashboard
+
+
+
+
+From,
+
+Program Review Information System Management
+
diff --git a/lib/templates/event_cancel.hbs b/lib/templates/event_cancel.hbs
new file mode 100644
index 0000000..6220c48
--- /dev/null
+++ b/lib/templates/event_cancel.hbs
@@ -0,0 +1,22 @@
+
+
+
+
+ Hello {{first}} {{last}},
+
+
+
+The following event "{{title}}" has been canceled.
+Please check PRISM calendar for more details or click the link below.
+
+
+ Link to calendar
+
+
+
+
+
+From,
+
+Program Review Information System Management
+
diff --git a/lib/templates/event_change_date.hbs b/lib/templates/event_change_date.hbs
new file mode 100644
index 0000000..8d33174
--- /dev/null
+++ b/lib/templates/event_change_date.hbs
@@ -0,0 +1,22 @@
+
+
+
+
+ Hello {{first}} {{last}},
+
+
+
+The following event "{{title}}" has been moved to a new date.
+Please check PRISM calendar for more details or click the link below.
+
+
+ Link to calendar
+
+
+
+
+
+From,
+
+Program Review Information System Management
+
diff --git a/lib/templates/event_created.hbs b/lib/templates/event_created.hbs
new file mode 100644
index 0000000..7784111
--- /dev/null
+++ b/lib/templates/event_created.hbs
@@ -0,0 +1,22 @@
+
+
+
+
+ Hello {{first}} {{last}},
+
+
+
+The following event "{{title}}" has been created.
+Please check PRISM calendar for more details or click the link below.
+
+
+ Link to calendar
+
+
+
+
+
+From,
+
+Program Review Information System Management
+
diff --git a/lib/templates/external_upload.hbs b/lib/templates/external_upload.hbs
new file mode 100644
index 0000000..f3630ab
--- /dev/null
+++ b/lib/templates/external_upload.hbs
@@ -0,0 +1,2 @@
+Hello {{name}},
+Please visit the following link http://ecst-csproj2.calstatela.edu:4188/{{token}} in order to upload your external review document.
diff --git a/lib/templates/review_created.hbs b/lib/templates/review_created.hbs
new file mode 100644
index 0000000..ab7e9cf
--- /dev/null
+++ b/lib/templates/review_created.hbs
@@ -0,0 +1,21 @@
+
+
+
+
+ Hello {{first}} {{last}},
+
+
+
+The following review for program "{{program}}" has been created.
+Please check PRISM for more details or click the link below.
+
+
+ Link to Review
+
+
+
+
+From,
+
+Program Review Information System Management
+
diff --git a/models/document.model.js b/models/document.model.js
index bc5bdff..a2d32f8 100644
--- a/models/document.model.js
+++ b/models/document.model.js
@@ -54,7 +54,7 @@ const documentSchema = new mongoose.Schema({
required: true
},
creationDate: {
- type: String,
+ type: Date,
required: true
},
revision: {
diff --git a/models/event.model.js b/models/event.model.js
index 6ef32f4..c68be58 100644
--- a/models/event.model.js
+++ b/models/event.model.js
@@ -4,6 +4,14 @@ const mongoose = require('mongoose');
const Document = mongoose.model('Document');
+const Group = mongoose.model('Group');
+
+const User = mongoose.model('User');
+
+
+const nodemailer = require('nodemailer');
+const hbs = require('nodemailer-express-handlebars');
+
const eventSchema = new mongoose.Schema({
title: {
type: String,
@@ -74,14 +82,161 @@ eventSchema.methods.deleteDocument = function(document) {
eventSchema.methods.changeDate = function(newDate, sendNotifications = true) {
this.date = newDate;
if (sendNotifications && this.sendNotifications) {
- // Send the notifications via the email manager
+ for (let id of this.people) {
+ User.findById(id).then(function(user) {
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/event_change_date',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ title: this.title
+ }
+ };
+
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
+ });
+ });
+ }
+ for (let groupid of this.groups) {
+ Group.findById(groupid).then(function(group) {
+ for (let id of group.members) {
+ User.findById(id).then(function(user) {
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/event_change_date',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ title: this.title
+ }
+ };
+
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
+
+ });
+
+ });
+ }
+ });
+ }
}
};
eventSchema.methods.cancel = function() {
this.canceled = true;
if (this.sendNotifications) {
- // Send the notifications via the email manager
+ for (let id of this.people) {
+ User.findById(id).then(function(user) {
+
+
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/event_cancel',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ title: this.title
+ }
+ };
+
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
+ });
+ });
+ }
+ for (let groupid of this.groups) {
+ Group.findById(groupid).then(function(group) {
+ for (let id of group.members) {
+ User.findById(id).then(function(user) {
+
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/event_cancel',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ title: this.title
+ }
+ };
+
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
+ });
+ });
+ }
+ });
+ }
}
};
diff --git a/models/index.js b/models/index.js
index 12165ea..957e60d 100644
--- a/models/index.js
+++ b/models/index.js
@@ -3,9 +3,9 @@ exports.College = require('./college.model');
exports.Department = require('./department.model');
exports.Document = require('./document.model');
exports.Group = require('./group.model');
+exports.User = require('./user.model');
exports.Event = require('./event.model');
exports.ExternalUpload = require('./external_upload.model');
exports.Program = require('./program.model');
exports.Resource = require('./resource.model');
exports.Review = require('./review.model');
-exports.User = require('./user.model');
diff --git a/models/resource.model.js b/models/resource.model.js
index 0a00823..4969d75 100644
--- a/models/resource.model.js
+++ b/models/resource.model.js
@@ -35,7 +35,9 @@ const resourceSchema = new mongoose.Schema({
}
-}, {usePushEach: true});
+
+},
+ {usePushEach: true});
resourceSchema.methods.addFiles = function(message, user) {
this.files.push({
diff --git a/models/review.model.js b/models/review.model.js
index 653dcce..bc25488 100644
--- a/models/review.model.js
+++ b/models/review.model.js
@@ -80,6 +80,7 @@ const nodeValidators = {
'finishDateOverriden': _.isBoolean,
'finalized': _.isBoolean,
'email': validEmailSettings,
+ 'emailSent': _.isBoolean,
'document': validObjectId,
'prerequisites': validPrerequisites,
'title': _.isString
diff --git a/package-lock.json b/package-lock.json
index 0eb0bc5..b4a027d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,16 +9,16 @@
"resolved": "https://registry.npmjs.org/@ladjs/i18n/-/i18n-0.2.0.tgz",
"integrity": "sha512-e9gkXFmpoAJfX4louxiX07Yawv8vNEoxvekK0AYWK2HKOFNSNxeJKjNJ80B6CKt1z42P7AESFw17TIsMUMwSqg==",
"requires": {
- "auto-bind": "^1.1.0",
- "boolean": "^0.1.3",
+ "auto-bind": "1.2.0",
+ "boolean": "0.1.3",
"boom": "5.2.0",
- "country-language": "^0.1.7",
- "i18n": "^0.8.3",
- "i18n-locales": "^0.0.2",
- "lodash": "^4.17.4",
- "moment": "^2.18.1",
- "qs": "^6.5.1",
- "underscore.string": "^3.3.4"
+ "country-language": "0.1.7",
+ "i18n": "0.8.3",
+ "i18n-locales": "0.0.2",
+ "lodash": "4.17.10",
+ "moment": "2.22.1",
+ "qs": "6.5.1",
+ "underscore.string": "3.3.4"
}
},
"@types/babel-types": {
@@ -31,7 +31,7 @@
"resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz",
"integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==",
"requires": {
- "@types/babel-types": "*"
+ "@types/babel-types": "7.0.1"
}
},
"abbrev": {
@@ -44,7 +44,7 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
"requires": {
- "mime-types": "~2.1.18",
+ "mime-types": "2.1.18",
"negotiator": "0.6.1"
}
},
@@ -58,7 +58,7 @@
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
"integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
"requires": {
- "acorn": "^4.0.4"
+ "acorn": "4.0.13"
},
"dependencies": {
"acorn": {
@@ -73,10 +73,10 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "co": "4.6.0",
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
}
},
"align-text": {
@@ -84,9 +84,9 @@
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"requires": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
}
},
"ambi": {
@@ -94,8 +94,8 @@
"resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz",
"integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=",
"requires": {
- "editions": "^1.1.1",
- "typechecker": "^4.3.0"
+ "editions": "1.3.4",
+ "typechecker": "4.5.0"
},
"dependencies": {
"typechecker": {
@@ -103,7 +103,7 @@
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.5.0.tgz",
"integrity": "sha512-bqPE/ck3bVIaXP7gMKTKSHrypT32lpYTpiqzPYeYzdSQnmaGvaGhy7TnN/M/+5R+2rs/kKcp9ZLPRp/Q9Yj+4w==",
"requires": {
- "editions": "^1.3.4"
+ "editions": "1.3.4"
}
}
}
@@ -133,7 +133,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
- "sprintf-js": "~1.0.2"
+ "sprintf-js": "1.0.3"
},
"dependencies": {
"sprintf-js": {
@@ -198,8 +198,8 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "core-js": "2.5.6",
+ "regenerator-runtime": "0.11.1"
}
},
"babel-types": {
@@ -207,10 +207,10 @@
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.10",
+ "to-fast-properties": "1.0.3"
}
},
"babylon": {
@@ -268,8 +268,8 @@
"version": "1.1.4",
"bundled": true,
"requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.5"
}
},
"balanced-match": {
@@ -280,7 +280,7 @@
"version": "1.1.11",
"bundled": true,
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@@ -327,7 +327,7 @@
"version": "1.2.5",
"bundled": true,
"requires": {
- "minipass": "^2.2.1"
+ "minipass": "2.2.4"
}
},
"fs.realpath": {
@@ -338,26 +338,26 @@
"version": "2.7.4",
"bundled": true,
"requires": {
- "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"
+ "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.2"
}
},
"glob": {
"version": "7.1.2",
"bundled": true,
"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"
}
},
"has-unicode": {
@@ -368,22 +368,22 @@
"version": "0.4.21",
"bundled": true,
"requires": {
- "safer-buffer": "^2.1.0"
+ "safer-buffer": "2.1.2"
}
},
"ignore-walk": {
"version": "3.0.1",
"bundled": true,
"requires": {
- "minimatch": "^3.0.4"
+ "minimatch": "3.0.4"
}
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -398,7 +398,7 @@
"version": "1.0.0",
"bundled": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"isarray": {
@@ -409,7 +409,7 @@
"version": "3.0.4",
"bundled": true,
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -420,8 +420,8 @@
"version": "2.2.4",
"bundled": true,
"requires": {
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.0"
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
},
"dependencies": {
"yallist": {
@@ -434,7 +434,7 @@
"version": "1.1.0",
"bundled": true,
"requires": {
- "minipass": "^2.2.1"
+ "minipass": "2.2.4"
}
},
"mkdirp": {
@@ -452,33 +452,33 @@
"version": "2.2.0",
"bundled": true,
"requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
}
},
"node-pre-gyp": {
"version": "0.9.1",
"bundled": true,
"requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.0",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.1.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
+ "detect-libc": "1.0.3",
+ "mkdirp": "0.5.1",
+ "needle": "2.2.0",
+ "nopt": "4.0.1",
+ "npm-packlist": "1.1.10",
+ "npmlog": "4.1.2",
+ "rc": "1.2.6",
+ "rimraf": "2.6.2",
+ "semver": "5.5.0",
+ "tar": "4.4.1"
}
},
"nopt": {
"version": "4.0.1",
"bundled": true,
"requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
}
},
"npm-bundled": {
@@ -489,18 +489,18 @@
"version": "1.1.10",
"bundled": true,
"requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
}
},
"npmlog": {
"version": "4.1.2",
"bundled": true,
"requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
}
},
"number-is-nan": {
@@ -515,7 +515,7 @@
"version": "1.4.0",
"bundled": true,
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"os-homedir": {
@@ -530,8 +530,8 @@
"version": "0.1.5",
"bundled": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
@@ -546,10 +546,10 @@
"version": "1.2.6",
"bundled": true,
"requires": {
- "deep-extend": "~0.4.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
+ "deep-extend": "0.4.2",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
@@ -562,20 +562,20 @@
"version": "2.3.5",
"bundled": true,
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.0.3",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
}
},
"rimraf": {
"version": "2.6.2",
"bundled": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "7.1.2"
}
},
"safe-buffer": {
@@ -606,23 +606,23 @@
"version": "1.0.2",
"bundled": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
},
"string_decoder": {
"version": "1.0.3",
"bundled": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.1"
}
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-json-comments": {
@@ -633,13 +633,13 @@
"version": "4.4.1",
"bundled": true,
"requires": {
- "chownr": "^1.0.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.2.4",
- "minizlib": "^1.1.0",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.2"
+ "chownr": "1.0.1",
+ "fs-minipass": "1.2.5",
+ "minipass": "2.2.4",
+ "minizlib": "1.1.0",
+ "mkdirp": "0.5.1",
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
},
"dependencies": {
"yallist": {
@@ -656,7 +656,7 @@
"version": "1.1.2",
"bundled": true,
"requires": {
- "string-width": "^1.0.2"
+ "string-width": "1.0.2"
}
},
"wrappy": {
@@ -671,7 +671,7 @@
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"optional": true,
"requires": {
- "tweetnacl": "^0.14.3"
+ "tweetnacl": "0.14.5"
}
},
"bluebird": {
@@ -685,15 +685,15 @@
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
"requires": {
"bytes": "3.0.0",
- "content-type": "~1.0.4",
+ "content-type": "1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.1",
- "http-errors": "~1.6.2",
+ "depd": "1.1.2",
+ "http-errors": "1.6.3",
"iconv-lite": "0.4.19",
- "on-finished": "~2.3.0",
+ "on-finished": "2.3.0",
"qs": "6.5.1",
"raw-body": "2.3.2",
- "type-is": "~1.6.15"
+ "type-is": "1.6.16"
}
},
"boolbase": {
@@ -711,7 +711,7 @@
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
"requires": {
- "hoek": "4.x.x"
+ "hoek": "4.2.1"
},
"dependencies": {
"hoek": {
@@ -726,7 +726,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@@ -761,7 +761,7 @@
"integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
"requires": {
"dicer": "0.2.5",
- "readable-stream": "1.1.x"
+ "readable-stream": "1.1.14"
},
"dependencies": {
"isarray": {
@@ -774,10 +774,10 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
"isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "string_decoder": "0.10.31"
}
},
"string_decoder": {
@@ -802,8 +802,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"
},
"dependencies": {
"camelcase": {
@@ -823,8 +823,8 @@
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"requires": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
}
},
"chalk": {
@@ -832,11 +832,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.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "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"
}
},
"character-parser": {
@@ -844,7 +844,7 @@
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
"integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
"requires": {
- "is-regex": "^1.0.3"
+ "is-regex": "1.0.4"
}
},
"cheerio": {
@@ -852,22 +852,22 @@
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
"integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
"requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash.assignin": "^4.0.9",
- "lodash.bind": "^4.1.4",
- "lodash.defaults": "^4.0.1",
- "lodash.filter": "^4.4.0",
- "lodash.flatten": "^4.2.0",
- "lodash.foreach": "^4.3.0",
- "lodash.map": "^4.4.0",
- "lodash.merge": "^4.4.0",
- "lodash.pick": "^4.2.1",
- "lodash.reduce": "^4.4.0",
- "lodash.reject": "^4.4.0",
- "lodash.some": "^4.4.0"
+ "css-select": "1.2.0",
+ "dom-serializer": "0.1.0",
+ "entities": "1.1.1",
+ "htmlparser2": "3.9.2",
+ "lodash.assignin": "4.2.0",
+ "lodash.bind": "4.2.1",
+ "lodash.defaults": "4.2.0",
+ "lodash.filter": "4.6.0",
+ "lodash.flatten": "4.4.0",
+ "lodash.foreach": "4.5.0",
+ "lodash.map": "4.6.0",
+ "lodash.merge": "4.6.1",
+ "lodash.pick": "4.4.0",
+ "lodash.reduce": "4.6.0",
+ "lodash.reject": "4.6.0",
+ "lodash.some": "4.6.0"
}
},
"clean-css": {
@@ -875,7 +875,7 @@
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
"integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
"requires": {
- "source-map": "0.5.x"
+ "source-map": "0.5.7"
}
},
"cliui": {
@@ -883,8 +883,8 @@
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
"requires": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
"wordwrap": "0.0.2"
},
"dependencies": {
@@ -920,7 +920,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"requires": {
- "delayed-stream": "~1.0.0"
+ "delayed-stream": "1.0.0"
}
},
"commander": {
@@ -928,7 +928,7 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
"requires": {
- "graceful-readlink": ">= 1.0.0"
+ "graceful-readlink": "1.0.1"
}
},
"concat-map": {
@@ -941,10 +941,10 @@
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
+ "buffer-from": "1.0.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6",
+ "typedarray": "0.0.6"
}
},
"consolidate": {
@@ -952,7 +952,7 @@
"resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
"integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
"requires": {
- "bluebird": "^3.1.1"
+ "bluebird": "3.5.1"
}
},
"constantinople": {
@@ -960,10 +960,10 @@
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
"integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
"requires": {
- "@types/babel-types": "^7.0.0",
- "@types/babylon": "^6.16.2",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0"
+ "@types/babel-types": "7.0.1",
+ "@types/babylon": "6.16.2",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0"
}
},
"content-disposition": {
@@ -1010,8 +1010,8 @@
"resolved": "https://registry.npmjs.org/country-language/-/country-language-0.1.7.tgz",
"integrity": "sha1-eHD0uhJduaYHHxlze9nvk0OuNds=",
"requires": {
- "underscore": "~1.7.0",
- "underscore.deep": "~0.5.1"
+ "underscore": "1.7.0",
+ "underscore.deep": "0.5.1"
}
},
"cron": {
@@ -1019,7 +1019,7 @@
"resolved": "https://registry.npmjs.org/cron/-/cron-1.3.0.tgz",
"integrity": "sha512-K/SF7JlgMmNjcThWxkKvsHhey2EDB4CeOEWJ9aXWj3fbQJppsvTPIeyLdHfNq5IbbsMUUjRW1nr5dSO95f2E4w==",
"requires": {
- "moment-timezone": "^0.5.x"
+ "moment-timezone": "0.5.16"
}
},
"cross-spawn": {
@@ -1027,9 +1027,9 @@
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "lru-cache": "4.1.2",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
}
},
"cryptiles": {
@@ -1037,7 +1037,7 @@
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
"integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
"requires": {
- "boom": "5.x.x"
+ "boom": "5.2.0"
}
},
"csextends": {
@@ -1050,10 +1050,10 @@
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
+ "boolbase": "1.0.0",
+ "css-what": "2.1.0",
"domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "nth-check": "1.0.1"
},
"dependencies": {
"domutils": {
@@ -1061,8 +1061,8 @@
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
+ "dom-serializer": "0.1.0",
+ "domelementtype": "1.3.0"
}
}
}
@@ -1077,10 +1077,10 @@
"resolved": "https://registry.npmjs.org/csv/-/csv-2.0.0.tgz",
"integrity": "sha1-DVHY+j7OJ4tUCfeVcX/PzVrOmz4=",
"requires": {
- "csv-generate": "^2.0.0",
- "csv-parse": "^2.0.0",
- "csv-stringify": "^2.0.0",
- "stream-transform": "^1.0.0"
+ "csv-generate": "2.0.2",
+ "csv-parse": "2.4.0",
+ "csv-stringify": "2.1.0",
+ "stream-transform": "1.0.2"
}
},
"csv-generate": {
@@ -1098,7 +1098,7 @@
"resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-2.1.0.tgz",
"integrity": "sha512-wEmZksjlGEZEP0Ai7eyCQuVd68CUqP1TmQ7ay4bchtxTY37tAm1DgM1xPj2L9isEylGEmvfFwA6RXwnqLzKfuA==",
"requires": {
- "lodash.get": "~4.4.2"
+ "lodash.get": "4.4.2"
}
},
"currently-unhandled": {
@@ -1106,7 +1106,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.1"
+ "array-find-index": "1.0.2"
}
},
"cycle": {
@@ -1119,7 +1119,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"
}
},
"datauri": {
@@ -1127,9 +1127,9 @@
"resolved": "https://registry.npmjs.org/datauri/-/datauri-1.1.0.tgz",
"integrity": "sha512-0q+cTTKx7q8eDteZRIQLTFJuiIsVing17UbWTPssY4JLSMaYsk/VKpNulBDo9NSgQWcvlPrkEHW8kUO67T/7mQ==",
"requires": {
- "image-size": "^0.6.2",
- "mimer": "^0.3.2",
- "semver": "^5.5.0"
+ "image-size": "0.6.2",
+ "mimer": "0.3.2",
+ "semver": "5.5.0"
}
},
"dateformat": {
@@ -1137,8 +1137,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.3.0"
+ "get-stdin": "4.0.1",
+ "meow": "3.7.0"
}
},
"debug": {
@@ -1164,7 +1164,7 @@
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
"requires": {
- "clone": "^1.0.2"
+ "clone": "1.0.4"
}
},
"define-properties": {
@@ -1172,8 +1172,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.8"
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
}
},
"delayed-stream": {
@@ -1196,7 +1196,7 @@
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
"integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
"requires": {
- "readable-stream": "1.1.x",
+ "readable-stream": "1.1.14",
"streamsearch": "0.1.2"
},
"dependencies": {
@@ -1210,10 +1210,10 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
"isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "string_decoder": "0.10.31"
}
},
"string_decoder": {
@@ -1233,8 +1233,8 @@
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
"integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "domelementtype": "1.1.3",
+ "entities": "1.1.1"
},
"dependencies": {
"domelementtype": {
@@ -1254,7 +1254,7 @@
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
"integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
"requires": {
- "domelementtype": "1"
+ "domelementtype": "1.3.0"
}
},
"domutils": {
@@ -1262,8 +1262,8 @@
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
"requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
+ "dom-serializer": "0.1.0",
+ "domelementtype": "1.3.0"
}
},
"dotenv": {
@@ -1276,7 +1276,7 @@
"resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz",
"integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=",
"requires": {
- "typechecker": "^2.0.8"
+ "typechecker": "2.1.0"
}
},
"ecc-jsbn": {
@@ -1285,7 +1285,7 @@
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
- "jsbn": "~0.1.0"
+ "jsbn": "0.1.1"
}
},
"ecdsa-sig-formatter": {
@@ -1293,8 +1293,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.0.1"
+ "base64url": "2.0.0",
+ "safe-buffer": "5.1.2"
}
},
"editions": {
@@ -1312,19 +1312,19 @@
"resolved": "https://registry.npmjs.org/email-templates/-/email-templates-3.6.0.tgz",
"integrity": "sha512-y7ZDYBTbLjLX4DUdVnMaG6B6Yl0QNyvkYsqWHsV1L1FAXRqxGMlNmfgqmUYhgaShjyxQT1bFcUrB/ZfTGorlFw==",
"requires": {
- "@ladjs/i18n": "^0.2.0",
- "auto-bind": "^1.1.0",
- "bluebird": "^3.5.1",
- "consolidate": "^0.15.0",
- "debug": "^3.1.0",
- "fs-extra": "^5.0.0",
- "get-paths": "^0.0.2",
- "html-to-text": "^3.3.0",
- "juice": "^4.2.2",
- "juice-resources-promise": "^0.0.2",
- "lodash": "^4.17.4",
- "nodemailer": "^4.4.1",
- "preview-email": "^0.0.7"
+ "@ladjs/i18n": "0.2.0",
+ "auto-bind": "1.2.0",
+ "bluebird": "3.5.1",
+ "consolidate": "0.15.1",
+ "debug": "3.1.0",
+ "fs-extra": "5.0.0",
+ "get-paths": "0.0.2",
+ "html-to-text": "3.3.0",
+ "juice": "4.2.3",
+ "juice-resources-promise": "0.0.2",
+ "lodash": "4.17.10",
+ "nodemailer": "4.6.4",
+ "preview-email": "0.0.7"
},
"dependencies": {
"debug": {
@@ -1352,7 +1352,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"
}
},
"es6-promise": {
@@ -1400,34 +1400,34 @@
"resolved": "https://registry.npmjs.org/express/-/express-4.15.5.tgz",
"integrity": "sha1-ZwI1ypWYiQpa6BcLg9tyK4Qu2Sc=",
"requires": {
- "accepts": "~1.3.3",
+ "accepts": "1.3.5",
"array-flatten": "1.1.1",
"content-disposition": "0.5.2",
- "content-type": "~1.0.2",
+ "content-type": "1.0.4",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.1",
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "etag": "~1.8.0",
- "finalhandler": "~1.0.6",
+ "depd": "1.1.2",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "finalhandler": "1.0.6",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.1",
+ "methods": "1.1.2",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
"path-to-regexp": "0.1.7",
- "proxy-addr": "~1.1.5",
+ "proxy-addr": "1.1.5",
"qs": "6.5.0",
- "range-parser": "~1.2.0",
+ "range-parser": "1.2.0",
"send": "0.15.6",
"serve-static": "1.12.6",
"setprototypeof": "1.0.3",
- "statuses": "~1.3.1",
- "type-is": "~1.6.15",
+ "statuses": "1.3.1",
+ "type-is": "1.6.16",
"utils-merge": "1.0.0",
- "vary": "~1.1.1"
+ "vary": "1.1.2"
},
"dependencies": {
"qs": {
@@ -1452,11 +1452,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.2",
- "handlebars": "^4.0.5",
- "object.assign": "^4.0.3",
- "promise": "^7.0.0"
+ "glob": "6.0.4",
+ "graceful-fs": "4.1.11",
+ "handlebars": "4.0.11",
+ "object.assign": "4.1.0",
+ "promise": "7.3.1"
}
},
"express-rate-limit": {
@@ -1464,7 +1464,7 @@
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-2.11.0.tgz",
"integrity": "sha512-KMZayDxj3Wr7zYuwTuDZj5hMW0nhnyJVBVCwMEVKwMdW6CkYh4vnfnUbRJYhKC0v6UuIbPerwKY0dqWmEzFjKA==",
"requires": {
- "defaults": "^1.0.3"
+ "defaults": "1.0.3"
}
},
"extend": {
@@ -1477,7 +1477,7 @@
"resolved": "https://registry.npmjs.org/extendr/-/extendr-2.1.0.tgz",
"integrity": "sha1-MBqgu+pWX00tyPVw8qImEahSe1Y=",
"requires": {
- "typechecker": "~2.0.1"
+ "typechecker": "2.0.8"
},
"dependencies": {
"typechecker": {
@@ -1492,7 +1492,7 @@
"resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz",
"integrity": "sha1-H6KOunNSxttID4hc63GkaBC+bX0=",
"requires": {
- "typechecker": "~2.0.1"
+ "typechecker": "2.0.8"
},
"dependencies": {
"typechecker": {
@@ -1528,12 +1528,12 @@
"integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=",
"requires": {
"debug": "2.6.9",
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.2",
- "statuses": "~1.3.1",
- "unpipe": "~1.0.0"
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "statuses": "1.3.1",
+ "unpipe": "1.0.0"
},
"dependencies": {
"statuses": {
@@ -1548,8 +1548,8 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"requires": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
}
},
"findup-sync": {
@@ -1557,7 +1557,7 @@
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
"integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
"requires": {
- "glob": "~5.0.0"
+ "glob": "5.0.15"
},
"dependencies": {
"glob": {
@@ -1565,11 +1565,11 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
"requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^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"
}
}
}
@@ -1589,9 +1589,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"requires": {
- "asynckit": "^0.4.0",
+ "asynckit": "0.4.0",
"combined-stream": "1.0.6",
- "mime-types": "^2.1.12"
+ "mime-types": "2.1.18"
}
},
"forwarded": {
@@ -1609,9 +1609,9 @@
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
"integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
"requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
}
},
"fs.realpath": {
@@ -1629,7 +1629,7 @@
"resolved": "https://registry.npmjs.org/get-paths/-/get-paths-0.0.2.tgz",
"integrity": "sha512-cB/Yr1D8Ug9IzBqor1maxVCOtcaQgUBZpZtq6Mf9RKkyRe6ohEdgx/zMLcPcOaXaegxNIt2vSij8YcuZGF3tXA==",
"requires": {
- "fs-extra": "^4.0.2"
+ "fs-extra": "4.0.3"
},
"dependencies": {
"fs-extra": {
@@ -1637,9 +1637,9 @@
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
"integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
"requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
}
}
}
@@ -1659,7 +1659,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": {
@@ -1667,11 +1667,11 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^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"
}
},
"graceful-fs": {
@@ -1689,22 +1689,22 @@
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.2.tgz",
"integrity": "sha1-TmpeaVtwRy/VME9fqeNCNoNqc7w=",
"requires": {
- "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": "~1.0.0",
- "grunt-legacy-util": "~1.0.0",
- "iconv-lite": "~0.4.13",
- "js-yaml": "~3.5.2",
- "minimatch": "~3.0.2",
- "nopt": "~3.0.6",
- "path-is-absolute": "~1.0.0",
- "rimraf": "~2.2.8"
+ "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": "1.0.2",
+ "grunt-legacy-util": "1.0.0",
+ "iconv-lite": "0.4.19",
+ "js-yaml": "3.5.5",
+ "minimatch": "3.0.4",
+ "nopt": "3.0.6",
+ "path-is-absolute": "1.0.1",
+ "rimraf": "2.2.8"
},
"dependencies": {
"glob": {
@@ -1748,10 +1748,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.5"
+ "colors": "1.1.2",
+ "grunt-legacy-log-utils": "1.0.0",
+ "hooker": "0.2.3",
+ "lodash": "4.17.10"
}
},
"grunt-legacy-log-utils": {
@@ -1759,8 +1759,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.1",
- "lodash": "~4.3.0"
+ "chalk": "1.1.3",
+ "lodash": "4.3.0"
},
"dependencies": {
"lodash": {
@@ -1775,13 +1775,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.1",
- "getobject": "~0.1.0",
- "hooker": "~0.2.3",
- "lodash": "~4.3.0",
- "underscore.string": "~3.2.3",
- "which": "~1.2.1"
+ "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"
},
"dependencies": {
"lodash": {
@@ -1799,7 +1799,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
"integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
"requires": {
- "isexe": "^2.0.0"
+ "isexe": "2.0.0"
}
}
}
@@ -1809,10 +1809,10 @@
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
"integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
"requires": {
- "async": "^1.4.0",
- "optimist": "^0.6.1",
- "source-map": "^0.4.4",
- "uglify-js": "^2.6"
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
},
"dependencies": {
"source-map": {
@@ -1820,7 +1820,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"requires": {
- "amdefine": ">=0.0.4"
+ "amdefine": "1.0.1"
}
}
}
@@ -1835,8 +1835,8 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"requires": {
- "ajv": "^5.1.0",
- "har-schema": "^2.0.0"
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
}
},
"has": {
@@ -1844,7 +1844,7 @@
"resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
"requires": {
- "function-bind": "^1.0.2"
+ "function-bind": "1.1.1"
}
},
"has-ansi": {
@@ -1852,7 +1852,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"has-symbols": {
@@ -1865,10 +1865,10 @@
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
"integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
"requires": {
- "boom": "4.x.x",
- "cryptiles": "3.x.x",
- "hoek": "4.x.x",
- "sntp": "2.x.x"
+ "boom": "4.3.1",
+ "cryptiles": "3.1.2",
+ "hoek": "4.2.1",
+ "sntp": "2.1.0"
},
"dependencies": {
"boom": {
@@ -1876,7 +1876,7 @@
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
"requires": {
- "hoek": "4.x.x"
+ "hoek": "4.2.1"
}
},
"hoek": {
@@ -1916,11 +1916,11 @@
"resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-3.3.0.tgz",
"integrity": "sha1-aptjxpm4hbt7qEsURr/mh2u/z7c=",
"requires": {
- "he": "^1.0.0",
- "htmlparser2": "^3.9.2",
- "optimist": "^0.6.1",
- "underscore": "^1.8.3",
- "underscore.string": "^3.2.3"
+ "he": "1.1.1",
+ "htmlparser2": "3.9.2",
+ "optimist": "0.6.1",
+ "underscore": "1.9.0",
+ "underscore.string": "3.3.4"
},
"dependencies": {
"underscore": {
@@ -1935,12 +1935,12 @@
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
"integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
"requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
+ "domelementtype": "1.3.0",
+ "domhandler": "2.4.1",
+ "domutils": "1.7.0",
+ "entities": "1.1.1",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6"
}
},
"http-errors": {
@@ -1948,10 +1948,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.4.0 < 2"
+ "statuses": "1.5.0"
}
},
"http-signature": {
@@ -1959,9 +1959,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.2.2",
- "sshpk": "^1.7.0"
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.14.1"
}
},
"i18n": {
@@ -1969,12 +1969,12 @@
"resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.3.tgz",
"integrity": "sha1-LYzxwkciYCwgQdAbpq5eqlE4jw4=",
"requires": {
- "debug": "*",
- "make-plural": "^3.0.3",
- "math-interval-parser": "^1.1.0",
- "messageformat": "^0.3.1",
- "mustache": "*",
- "sprintf-js": ">=1.0.3"
+ "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.1.1"
}
},
"i18n-locales": {
@@ -1992,8 +1992,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.4",
+ "ignorepatterns": "1.1.0"
}
},
"ignorepatterns": {
@@ -2011,7 +2011,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"requires": {
- "repeating": "^2.0.0"
+ "repeating": "2.0.1"
}
},
"inflight": {
@@ -2019,8 +2019,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -2048,7 +2048,7 @@
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
- "builtin-modules": "^1.0.0"
+ "builtin-modules": "1.1.1"
}
},
"is-expression": {
@@ -2056,8 +2056,8 @@
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
"integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
"requires": {
- "acorn": "~4.0.2",
- "object-assign": "^4.0.1"
+ "acorn": "4.0.13",
+ "object-assign": "4.1.1"
},
"dependencies": {
"acorn": {
@@ -2072,7 +2072,7 @@
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"is-promise": {
@@ -2085,7 +2085,7 @@
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"requires": {
- "has": "^1.0.1"
+ "has": "1.0.1"
}
},
"is-typedarray": {
@@ -2129,9 +2129,9 @@
"integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=",
"dev": true,
"requires": {
- "exit": "^0.1.2",
- "glob": "^7.0.6",
- "jasmine-core": "~2.99.0"
+ "exit": "0.1.2",
+ "glob": "7.1.2",
+ "jasmine-core": "2.99.1"
},
"dependencies": {
"glob": {
@@ -2140,12 +2140,12 @@
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"dev": true,
"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"
}
}
}
@@ -2161,10 +2161,10 @@
"resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz",
"integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
"requires": {
- "hoek": "2.x.x",
- "isemail": "1.x.x",
- "moment": "2.x.x",
- "topo": "1.x.x"
+ "hoek": "2.16.3",
+ "isemail": "1.2.0",
+ "moment": "2.22.1",
+ "topo": "1.1.0"
},
"dependencies": {
"hoek": {
@@ -2184,8 +2184,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
"integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
"requires": {
- "argparse": "^1.0.2",
- "esprima": "^2.6.0"
+ "argparse": "1.0.10",
+ "esprima": "2.7.3"
}
},
"jsbn": {
@@ -2214,7 +2214,7 @@
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"requires": {
- "graceful-fs": "^4.1.6"
+ "graceful-fs": "4.1.11"
}
},
"jsonwebtoken": {
@@ -2222,16 +2222,16 @@
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.2.1.tgz",
"integrity": "sha512-l8rUBr0fqYYwPc8/ZGrue7GiW7vWdZtZqelxo4Sd5lMvuEeCK8/wS54sEo6tJhdZ6hqfutsj6COgC0d1XdbHGw==",
"requires": {
- "jws": "^3.1.4",
- "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",
- "xtend": "^4.0.1"
+ "jws": "3.1.4",
+ "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",
+ "xtend": "4.0.1"
},
"dependencies": {
"ms": {
@@ -2257,8 +2257,8 @@
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
"integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
"requires": {
- "is-promise": "^2.0.0",
- "promise": "^7.0.1"
+ "is-promise": "2.1.0",
+ "promise": "7.3.1"
}
},
"juice": {
@@ -2266,13 +2266,13 @@
"resolved": "https://registry.npmjs.org/juice/-/juice-4.2.3.tgz",
"integrity": "sha512-Jisv2A20k7y/aqLpEevSm0E+1JfWmd13jY2s5aST54cHJQKHkKES2RlDtkdOM/ecGnvUKAjG/j+KcDbkzoGjKg==",
"requires": {
- "cheerio": "^0.22.0",
+ "cheerio": "0.22.0",
"commander": "2.9.0",
- "cross-spawn": "^5.0.1",
- "deep-extend": "^0.5.0",
- "mensch": "^0.3.3",
+ "cross-spawn": "5.1.0",
+ "deep-extend": "0.5.1",
+ "mensch": "0.3.3",
"slick": "1.12.2",
- "web-resource-inliner": "^4.2.0"
+ "web-resource-inliner": "4.2.1"
}
},
"juice-resources-promise": {
@@ -2288,7 +2288,7 @@
"base64url": "2.0.0",
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.9",
- "safe-buffer": "^5.0.1"
+ "safe-buffer": "5.1.2"
}
},
"jws": {
@@ -2296,9 +2296,9 @@
"resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz",
"integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=",
"requires": {
- "base64url": "^2.0.0",
- "jwa": "^1.1.4",
- "safe-buffer": "^5.0.1"
+ "base64url": "2.0.0",
+ "jwa": "1.1.5",
+ "safe-buffer": "5.1.2"
}
},
"jwt-simple": {
@@ -2316,7 +2316,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.6"
}
},
"lazy-cache": {
@@ -2329,11 +2329,11 @@
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
}
},
"lodash": {
@@ -2456,8 +2456,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.0"
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
}
},
"lru-cache": {
@@ -2465,8 +2465,8 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
"integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
"requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
}
},
"make-plural": {
@@ -2474,7 +2474,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": {
@@ -2487,7 +2487,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"
}
},
"media-typer": {
@@ -2505,16 +2505,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"
}
},
"merge-descriptors": {
@@ -2527,11 +2527,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.3",
- "nopt": "~3.0.6",
- "watchr": "~2.4.13"
+ "async": "1.5.2",
+ "glob": "6.0.4",
+ "make-plural": "3.0.6",
+ "nopt": "3.0.6",
+ "watchr": "2.4.13"
}
},
"methods": {
@@ -2554,7 +2554,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
"requires": {
- "mime-db": "~1.33.0"
+ "mime-db": "1.33.0"
}
},
"mimer": {
@@ -2567,7 +2567,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -2600,7 +2600,7 @@
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.16.tgz",
"integrity": "sha512-4d1l92plNNqnMkqI/7boWNVXJvwGL2WyByl1Hxp3h/ao3HZiAqaoQY+6KBkYdiN5QtNDpndq+58ozl8W4GVoNw==",
"requires": {
- "moment": ">= 2.9.0"
+ "moment": "2.22.1"
}
},
"mongodb": {
@@ -2637,7 +2637,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.2"
}
}
}
@@ -2647,8 +2647,8 @@
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz",
"integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=",
"requires": {
- "bson": "~1.0.4",
- "require_optional": "~1.0.0"
+ "bson": "1.0.6",
+ "require_optional": "1.0.1"
}
},
"mongoose": {
@@ -2657,7 +2657,7 @@
"integrity": "sha512-pH8NK5AYGbnPeEFFGs5ACk18vzzcy4DFT48U9kKvkfg6SI3nJZkzGfN7o1NDWjy+kP26hWyU/AMhYTfe5hSVnA==",
"requires": {
"async": "2.1.4",
- "bson": "~1.0.4",
+ "bson": "1.0.6",
"hooks-fixed": "2.0.2",
"kareem": "1.5.0",
"lodash.get": "4.4.2",
@@ -2686,11 +2686,11 @@
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz",
"integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=",
"requires": {
- "basic-auth": "~2.0.0",
+ "basic-auth": "2.0.0",
"debug": "2.6.9",
- "depd": "~1.1.1",
- "on-finished": "~2.3.0",
- "on-headers": "~1.0.1"
+ "depd": "1.1.2",
+ "on-finished": "2.3.0",
+ "on-headers": "1.0.1"
}
},
"mpath": {
@@ -2736,14 +2736,14 @@
"resolved": "https://registry.npmjs.org/multer/-/multer-1.3.0.tgz",
"integrity": "sha1-CSsmcPaEb6SRSWXvyM+Uwg/sbNI=",
"requires": {
- "append-field": "^0.1.0",
- "busboy": "^0.2.11",
- "concat-stream": "^1.5.0",
- "mkdirp": "^0.5.1",
- "object-assign": "^3.0.0",
- "on-finished": "^2.3.0",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
+ "append-field": "0.1.0",
+ "busboy": "0.2.14",
+ "concat-stream": "1.6.2",
+ "mkdirp": "0.5.1",
+ "object-assign": "3.0.0",
+ "on-finished": "2.3.0",
+ "type-is": "1.6.16",
+ "xtend": "4.0.1"
},
"dependencies": {
"object-assign": {
@@ -2783,7 +2783,7 @@
"resolved": "https://registry.npmjs.org/nodemailer-express-handlebars/-/nodemailer-express-handlebars-2.0.0.tgz",
"integrity": "sha1-nCd16bVZOMYyad/0WO81wmQ0Njc=",
"requires": {
- "express-handlebars": "^3.0.0"
+ "express-handlebars": "3.0.0"
}
},
"nopt": {
@@ -2791,7 +2791,7 @@
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"requires": {
- "abbrev": "1"
+ "abbrev": "1.1.1"
}
},
"normalize-package-data": {
@@ -2799,10 +2799,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.1.4",
- "is-builtin-module": "^1.0.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "hosted-git-info": "2.6.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.5.0",
+ "validate-npm-package-license": "3.0.3"
}
},
"nth-check": {
@@ -2810,7 +2810,7 @@
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
"integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
"requires": {
- "boolbase": "~1.0.0"
+ "boolbase": "1.0.0"
}
},
"number-is-nan": {
@@ -2838,10 +2838,10 @@
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
+ "define-properties": "1.1.2",
+ "function-bind": "1.1.1",
+ "has-symbols": "1.0.0",
+ "object-keys": "1.0.11"
}
},
"on-finished": {
@@ -2862,7 +2862,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"opn": {
@@ -2870,7 +2870,7 @@
"resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
"integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
"requires": {
- "is-wsl": "^1.1.0"
+ "is-wsl": "1.1.0"
}
},
"optimist": {
@@ -2878,8 +2878,8 @@
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"requires": {
- "minimist": "~0.0.1",
- "wordwrap": "~0.0.2"
+ "minimist": "0.0.10",
+ "wordwrap": "0.0.3"
},
"dependencies": {
"minimist": {
@@ -2894,7 +2894,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"requires": {
- "error-ex": "^1.2.0"
+ "error-ex": "1.3.1"
}
},
"parseurl": {
@@ -2907,7 +2907,7 @@
"resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
"integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
"requires": {
- "passport-strategy": "1.x.x",
+ "passport-strategy": "1.0.0",
"pause": "0.0.1"
}
},
@@ -2916,8 +2916,8 @@
"resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-3.0.1.tgz",
"integrity": "sha1-5Pcnba2L0lHUPG/DiIMTC5YycvY=",
"requires": {
- "jsonwebtoken": "^7.0.0",
- "passport-strategy": "^1.0.0"
+ "jsonwebtoken": "7.4.3",
+ "passport-strategy": "1.0.0"
},
"dependencies": {
"jsonwebtoken": {
@@ -2925,11 +2925,11 @@
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz",
"integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=",
"requires": {
- "joi": "^6.10.1",
- "jws": "^3.1.4",
- "lodash.once": "^4.0.0",
- "ms": "^2.0.0",
- "xtend": "^4.0.1"
+ "joi": "6.10.1",
+ "jws": "3.1.4",
+ "lodash.once": "4.1.1",
+ "ms": "2.0.0",
+ "xtend": "4.0.1"
}
}
}
@@ -2944,8 +2944,8 @@
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
"integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
"requires": {
- "process": "^0.11.1",
- "util": "^0.10.3"
+ "process": "0.11.10",
+ "util": "0.10.3"
}
},
"path-exists": {
@@ -2953,7 +2953,7 @@
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"requires": {
- "pinkie-promise": "^2.0.0"
+ "pinkie-promise": "2.0.1"
}
},
"path-is-absolute": {
@@ -2976,9 +2976,9 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"requires": {
- "graceful-fs": "^4.1.2",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
}
},
"pause": {
@@ -3006,7 +3006,7 @@
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
},
"preview-email": {
@@ -3014,12 +3014,12 @@
"resolved": "https://registry.npmjs.org/preview-email/-/preview-email-0.0.7.tgz",
"integrity": "sha512-VBXartEr84WVw5kWTe6y1gDzF1+HWX+GDZ0NGOyGjRq2V5tZr1o8gMLa5lxc7da3IQ7Xy4yd0a8o4zgpb+uisA==",
"requires": {
- "fs-extra": "^4.0.2",
- "moment": "^2.18.1",
- "nodemailer": "^4.2.0",
- "opn": "^5.1.0",
- "pug": "^2.0.0-rc.4",
- "uuid": "^3.1.0"
+ "fs-extra": "4.0.3",
+ "moment": "2.22.1",
+ "nodemailer": "4.6.4",
+ "opn": "5.3.0",
+ "pug": "2.0.3",
+ "uuid": "3.2.1"
},
"dependencies": {
"fs-extra": {
@@ -3027,9 +3027,9 @@
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
"integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
"requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
}
}
}
@@ -3049,7 +3049,7 @@
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"requires": {
- "asap": "~2.0.3"
+ "asap": "2.0.6"
}
},
"proxy-addr": {
@@ -3057,7 +3057,7 @@
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz",
"integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=",
"requires": {
- "forwarded": "~0.1.0",
+ "forwarded": "0.1.2",
"ipaddr.js": "1.4.0"
}
},
@@ -3071,14 +3071,14 @@
"resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz",
"integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=",
"requires": {
- "pug-code-gen": "^2.0.1",
- "pug-filters": "^3.1.0",
- "pug-lexer": "^4.0.0",
- "pug-linker": "^3.0.5",
- "pug-load": "^2.0.11",
- "pug-parser": "^5.0.0",
- "pug-runtime": "^2.0.4",
- "pug-strip-comments": "^1.0.3"
+ "pug-code-gen": "2.0.1",
+ "pug-filters": "3.1.0",
+ "pug-lexer": "4.0.0",
+ "pug-linker": "3.0.5",
+ "pug-load": "2.0.11",
+ "pug-parser": "5.0.0",
+ "pug-runtime": "2.0.4",
+ "pug-strip-comments": "1.0.3"
}
},
"pug-attrs": {
@@ -3086,9 +3086,9 @@
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz",
"integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=",
"requires": {
- "constantinople": "^3.0.1",
- "js-stringify": "^1.0.1",
- "pug-runtime": "^2.0.4"
+ "constantinople": "3.1.2",
+ "js-stringify": "1.0.2",
+ "pug-runtime": "2.0.4"
}
},
"pug-code-gen": {
@@ -3096,14 +3096,14 @@
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz",
"integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=",
"requires": {
- "constantinople": "^3.0.1",
- "doctypes": "^1.1.0",
- "js-stringify": "^1.0.1",
- "pug-attrs": "^2.0.3",
- "pug-error": "^1.3.2",
- "pug-runtime": "^2.0.4",
- "void-elements": "^2.0.1",
- "with": "^5.0.0"
+ "constantinople": "3.1.2",
+ "doctypes": "1.1.0",
+ "js-stringify": "1.0.2",
+ "pug-attrs": "2.0.3",
+ "pug-error": "1.3.2",
+ "pug-runtime": "2.0.4",
+ "void-elements": "2.0.1",
+ "with": "5.1.1"
}
},
"pug-error": {
@@ -3116,13 +3116,13 @@
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz",
"integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=",
"requires": {
- "clean-css": "^4.1.11",
- "constantinople": "^3.0.1",
+ "clean-css": "4.1.11",
+ "constantinople": "3.1.2",
"jstransformer": "1.0.0",
- "pug-error": "^1.3.2",
- "pug-walk": "^1.1.7",
- "resolve": "^1.1.6",
- "uglify-js": "^2.6.1"
+ "pug-error": "1.3.2",
+ "pug-walk": "1.1.7",
+ "resolve": "1.7.1",
+ "uglify-js": "2.8.29"
}
},
"pug-lexer": {
@@ -3130,9 +3130,9 @@
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz",
"integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=",
"requires": {
- "character-parser": "^2.1.1",
- "is-expression": "^3.0.0",
- "pug-error": "^1.3.2"
+ "character-parser": "2.2.0",
+ "is-expression": "3.0.0",
+ "pug-error": "1.3.2"
}
},
"pug-linker": {
@@ -3140,8 +3140,8 @@
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz",
"integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=",
"requires": {
- "pug-error": "^1.3.2",
- "pug-walk": "^1.1.7"
+ "pug-error": "1.3.2",
+ "pug-walk": "1.1.7"
}
},
"pug-load": {
@@ -3149,8 +3149,8 @@
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz",
"integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=",
"requires": {
- "object-assign": "^4.1.0",
- "pug-walk": "^1.1.7"
+ "object-assign": "4.1.1",
+ "pug-walk": "1.1.7"
}
},
"pug-parser": {
@@ -3158,7 +3158,7 @@
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz",
"integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=",
"requires": {
- "pug-error": "^1.3.2",
+ "pug-error": "1.3.2",
"token-stream": "0.0.1"
}
},
@@ -3172,7 +3172,7 @@
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz",
"integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=",
"requires": {
- "pug-error": "^1.3.2"
+ "pug-error": "1.3.2"
}
},
"pug-walk": {
@@ -3219,7 +3219,7 @@
"depd": "1.1.1",
"inherits": "2.0.3",
"setprototypeof": "1.0.3",
- "statuses": ">= 1.3.1 < 2"
+ "statuses": "1.5.0"
}
},
"setprototypeof": {
@@ -3234,9 +3234,9 @@
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"requires": {
- "load-json-file": "^1.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^1.0.0"
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
}
},
"read-pkg-up": {
@@ -3244,8 +3244,8 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"requires": {
- "find-up": "^1.0.0",
- "read-pkg": "^1.0.0"
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
}
},
"readable-stream": {
@@ -3253,13 +3253,13 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"redent": {
@@ -3267,8 +3267,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"
}
},
"regenerator-runtime": {
@@ -3291,7 +3291,7 @@
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"requires": {
- "is-finite": "^1.0.0"
+ "is-finite": "1.0.2"
}
},
"request": {
@@ -3299,28 +3299,28 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz",
"integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==",
"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.5",
- "tough-cookie": "~2.3.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.1.0"
+ "aws-sign2": "0.7.0",
+ "aws4": "1.7.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.6",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.2",
+ "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.18",
+ "oauth-sign": "0.8.2",
+ "performance-now": "2.1.0",
+ "qs": "6.5.1",
+ "safe-buffer": "5.1.2",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.4",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.2.1"
}
},
"require_optional": {
@@ -3328,8 +3328,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.1.0"
+ "resolve-from": "2.0.0",
+ "semver": "5.5.0"
}
},
"resolve": {
@@ -3337,7 +3337,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
- "path-parse": "^1.0.5"
+ "path-parse": "1.0.5"
}
},
"resolve-from": {
@@ -3350,7 +3350,7 @@
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"requires": {
- "align-text": "^0.1.1"
+ "align-text": "0.1.4"
}
},
"rimraf": {
@@ -3368,7 +3368,7 @@
"resolved": "https://registry.npmjs.org/safefs/-/safefs-3.2.2.tgz",
"integrity": "sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw=",
"requires": {
- "graceful-fs": "*"
+ "graceful-fs": "4.1.11"
}
},
"scandirectory": {
@@ -3376,9 +3376,9 @@
"resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz",
"integrity": "sha1-bOA/VKCQtmjjy+2/IO354xBZPnI=",
"requires": {
- "ignorefs": "^1.0.0",
- "safefs": "^3.1.2",
- "taskgroup": "^4.0.5"
+ "ignorefs": "1.2.0",
+ "safefs": "3.2.2",
+ "taskgroup": "4.3.1"
}
},
"semver": {
@@ -3392,18 +3392,18 @@
"integrity": "sha1-IPI6nJJbdiq4JwX+L52yUqzkfjQ=",
"requires": {
"debug": "2.6.9",
- "depd": "~1.1.1",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
+ "depd": "1.1.2",
+ "destroy": "1.0.4",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
"fresh": "0.5.2",
- "http-errors": "~1.6.2",
+ "http-errors": "1.6.3",
"mime": "1.3.4",
"ms": "2.0.0",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.0",
- "statuses": "~1.3.1"
+ "on-finished": "2.3.0",
+ "range-parser": "1.2.0",
+ "statuses": "1.3.1"
},
"dependencies": {
"statuses": {
@@ -3418,10 +3418,10 @@
"resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.5.tgz",
"integrity": "sha512-s7F8h2NrslMkG50KxvlGdj+ApSwaLex0vexuJ9iFf3GLTIp1ph/l1qZvRe9T9TJEYZgmq72ZwJ2VYiAEtChknw==",
"requires": {
- "etag": "~1.8.1",
+ "etag": "1.8.1",
"fresh": "0.5.2",
"ms": "2.0.0",
- "parseurl": "~1.3.2",
+ "parseurl": "1.3.2",
"safe-buffer": "5.1.1"
},
"dependencies": {
@@ -3437,9 +3437,9 @@
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.6.tgz",
"integrity": "sha1-uXN3P2NEmTTaVOW+ul4x2fQhFXc=",
"requires": {
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.2",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "parseurl": "1.3.2",
"send": "0.15.6"
}
},
@@ -3453,7 +3453,7 @@
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"requires": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "1.0.0"
}
},
"shebang-regex": {
@@ -3481,7 +3481,7 @@
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
"integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
"requires": {
- "hoek": "4.x.x"
+ "hoek": "4.2.1"
},
"dependencies": {
"hoek": {
@@ -3501,8 +3501,8 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
"requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "spdx-expression-parse": "3.0.0",
+ "spdx-license-ids": "3.0.0"
}
},
"spdx-exceptions": {
@@ -3515,8 +3515,8 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
"requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "spdx-exceptions": "2.1.0",
+ "spdx-license-ids": "3.0.0"
}
},
"spdx-license-ids": {
@@ -3534,14 +3534,14 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
"integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
"requires": {
- "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",
- "tweetnacl": "~0.14.0"
+ "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",
+ "tweetnacl": "0.14.5"
}
},
"stack-trace": {
@@ -3569,7 +3569,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.2"
}
},
"stringstream": {
@@ -3582,7 +3582,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-bom": {
@@ -3590,7 +3590,7 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"requires": {
- "is-utf8": "^0.2.0"
+ "is-utf8": "0.2.1"
}
},
"strip-indent": {
@@ -3598,7 +3598,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"
}
},
"supports-color": {
@@ -3611,8 +3611,8 @@
"resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-4.3.1.tgz",
"integrity": "sha1-feGT/r12gnPEV3MElwJNUSwnkVo=",
"requires": {
- "ambi": "^2.2.0",
- "csextends": "^1.0.3"
+ "ambi": "2.5.0",
+ "csextends": "1.2.0"
}
},
"to-fast-properties": {
@@ -3630,7 +3630,7 @@
"resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
"integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
"requires": {
- "hoek": "2.x.x"
+ "hoek": "2.16.3"
},
"dependencies": {
"hoek": {
@@ -3645,7 +3645,7 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"requires": {
- "punycode": "^1.4.1"
+ "punycode": "1.4.1"
}
},
"trim-newlines": {
@@ -3658,7 +3658,7 @@
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
- "safe-buffer": "^5.0.1"
+ "safe-buffer": "5.1.2"
}
},
"tweetnacl": {
@@ -3673,7 +3673,7 @@
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
"requires": {
"media-typer": "0.3.0",
- "mime-types": "~2.1.18"
+ "mime-types": "2.1.18"
}
},
"typechecker": {
@@ -3691,9 +3691,9 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
}
},
"uglify-to-browserify": {
@@ -3717,8 +3717,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.1.1",
+ "util-deprecate": "1.0.2"
}
},
"universalify": {
@@ -3771,8 +3771,8 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "spdx-correct": "3.0.0",
+ "spdx-expression-parse": "3.0.0"
}
},
"validator": {
@@ -3790,9 +3790,9 @@
"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.2.0"
+ "extsprintf": "1.3.0"
}
},
"void-elements": {
@@ -3805,14 +3805,14 @@
"resolved": "https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz",
"integrity": "sha1-10hHu01vkPYf4sdPn2hmKqDgdgE=",
"requires": {
- "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"
+ "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"
}
},
"web-resource-inliner": {
@@ -3820,14 +3820,14 @@
"resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.2.1.tgz",
"integrity": "sha512-fOWnBQHVX8zHvEbECDTxtYL0FXIIZZ5H3LWoez8mGopYJK7inEru1kVMDzM1lVdeJBNEqUnNP5FBGxvzuMcwwQ==",
"requires": {
- "async": "^2.1.2",
- "chalk": "^1.1.3",
- "datauri": "^1.0.4",
- "htmlparser2": "^3.9.2",
- "lodash.unescape": "^4.0.1",
- "request": "^2.78.0",
- "valid-data-url": "^0.1.4",
- "xtend": "^4.0.0"
+ "async": "2.6.0",
+ "chalk": "1.1.3",
+ "datauri": "1.1.0",
+ "htmlparser2": "3.9.2",
+ "lodash.unescape": "4.0.1",
+ "request": "2.85.0",
+ "valid-data-url": "0.1.6",
+ "xtend": "4.0.1"
},
"dependencies": {
"async": {
@@ -3835,7 +3835,7 @@
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
"requires": {
- "lodash": "^4.14.0"
+ "lodash": "4.17.10"
}
}
}
@@ -3845,7 +3845,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"requires": {
- "isexe": "^2.0.0"
+ "isexe": "2.0.0"
}
},
"window-size": {
@@ -3858,12 +3858,12 @@
"resolved": "https://registry.npmjs.org/winston/-/winston-2.4.2.tgz",
"integrity": "sha512-4S/Ad4ZfSNl8OccCLxnJmNISWcm2joa6Q0YGDxlxMzH0fgSwWsjMt+SmlNwCqdpaPg3ev1HKkMBsIiXeSUwpbA==",
"requires": {
- "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"
+ "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"
},
"dependencies": {
"async": {
@@ -3883,8 +3883,8 @@
"resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
"integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
"requires": {
- "acorn": "^3.1.0",
- "acorn-globals": "^3.0.0"
+ "acorn": "3.3.0",
+ "acorn-globals": "3.1.0"
}
},
"wordwrap": {
@@ -3917,9 +3917,9 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"requires": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
"window-size": "0.1.0"
}
}
diff --git a/routes/event.route.js b/routes/event.route.js
index c5d0331..3c979f3 100644
--- a/routes/event.route.js
+++ b/routes/event.route.js
@@ -6,11 +6,17 @@ const router = express.Router();
const mongoose = require('mongoose');
const Event = mongoose.model('Event');
+const User = mongoose.model('User');
+const Group = mongoose.model('Group');
const access = require('../lib/access');
const actionLogger = require('../lib/action_logger');
const subscribeMiddlewareFactory = require('../lib/subscribe_middleware_factory');
+const nodemailer = require('nodemailer');
+const hbs = require('nodemailer-express-handlebars');
+
+
router.route('/event/:event_id')
.get(access.allowGroups(['Administrators', 'Program Review Subcommittee']), function(req, res, next) {
Event.findById(req.params.event_id).populate('documents').then(function(event) {
@@ -70,9 +76,84 @@ router.route('/event/:event_id')
router.route('/event').post(access.allowGroups(['Administrators', 'Program Review Subcommittee']), function(req, res, next) {
Event.create({
'title': req.body.title,
- 'date': req.body.date
+ 'date': req.body.date,
+ 'people': req.body.people,
+ 'documents': req.body.documents,
+ 'groups': req.body.groups
})
.then(function(newEvent) {
+ //send out email of event
+ for (let id of newEvent.people) {
+ User.findById(id).then(function(user) {
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/event_created',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ title: newEvent.title
+ }
+ };
+
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
+ });
+ });
+ }
+ for (let groupid of newEvent.groups) {
+ Group.findById(groupid).then(function(group) {
+ for (let id of group.members) {
+ User.findById(id).then(function(user) {
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/event_created',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ title: newEvent.title
+ }
+ };
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ }
+ });
+ });
+ }
+ });
+ }
res.status(201);
res.json(newEvent);
winston.info(`Created event with id ${newEvent._id}`);
diff --git a/routes/review.route.js b/routes/review.route.js
index 1f6d48b..afe8554 100644
--- a/routes/review.route.js
+++ b/routes/review.route.js
@@ -3,10 +3,15 @@ const winston = require('winston');
const express = require('express');
const router = express.Router();
+const nodemailer = require('nodemailer');
+const hbs = require('nodemailer-express-handlebars');
const mongoose = require('mongoose');
const Document = mongoose.model('Document');
const Review = mongoose.model('Review');
+const Program = mongoose.model('Program');
+const Department = mongoose.model('Department');
+const User = mongoose.model('User');
const access = require('../lib/access');
const actionLogger = require('../lib/action_logger');
@@ -76,7 +81,58 @@ router.post('/review/:review_id/restore', access.allowGroups(['Administrators'])
router.route('/review').post(access.allowGroups(['Administrators']), function(req, res, next) {
reviewFactory.getReview(req.body).then(function(newReview) {
newReview.recalculateDates();
+ console.log('review created');
newReview.save().then(function() {
+ console.log('review created1');
+ //put email here to send to department chairs, review>program>department>department chairs
+ Program.findById(newReview.program).then(function(program) {
+ console.log('review created2');
+ Department.findById(program.department).then(function(dept) {
+ console.log('review created3');
+ for (let id of dept.chairs) {
+ console.log('review created4');
+ User.findById(id).then(function(user) {
+ console.log('review created5');
+
+ // Create a SMTP transporter object
+ let transporter = nodemailer.createTransport({
+ service: 'gmail',
+ auth: {
+ user: 'prismtestserver@gmail.com',
+ pass: 'Answer30'
+ }
+ });
+ transporter.use('compile', hbs({
+ viewPath: 'templates',
+ extName: '.hbs'
+ }));
+
+ let message = {
+ from: 'prismtestserver@gmail.com',
+ to: 'allen3just@yahoo.com',
+ subject: 'Notification email',
+ template: '../lib/templates/review_created',
+ context: {
+ first: user.name.first,
+ last: user.name.last,
+ program: program.name,
+ reviewID: newReview._id
+ }
+ };
+
+ transporter.sendMail(message, (err, info) => {
+ if (err) {
+ console.log('Error occurred. ' + err.message);
+ return process.exit(1);
+ } else {
+ console.log(info);
+ }
+ });
+
+ });
+ }
+ });
+ });
res.status(201);
res.json(newReview);
winston.info(`Created review with id ${newReview._id}`);