-
-
-
- {t('talk-plugin-viewing-options.viewing_options')}
- {props.open ? : }
-
+ render() {
+ const {open, data, root, asset} = this.props;
+ return (
+
+
+
+
+
+ {t('talk-plugin-viewing-options.viewing_options')}
+ {open
+ ?
+ :
+ }
+
+
+ {open &&
}
- {
- props.open ? (
-
-
- {
- React.Children.map( , (component) => {
- return React.createElement('li', {
- className: 'talk-plugin-viewing-options-item'
- }, component);
- })
- }
-
-
- ) : null
- }
-
-
- );
-};
+
+ );
+ }
+}
export default ViewingOptions;
diff --git a/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js b/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js
index 22608828e..8749d0137 100644
--- a/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js
+++ b/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js
@@ -1,7 +1,14 @@
-import {connect} from 'plugin-api/beta/client/hocs';
+import {connect, withFragments} from 'plugin-api/beta/client/hocs';
import {bindActionCreators} from 'redux';
import ViewingOptions from '../components/ViewingOptions';
import {openMenu, closeMenu} from '../actions';
+import {compose, gql} from 'react-apollo';
+import {getSlotFragmentSpreads} from 'plugin-api/beta/client/utils';
+
+const slots = [
+ 'viewingOptionsSort',
+ 'viewingOptionsFilter',
+];
const mapStateToProps = ({talkPluginViewingOptions: state}) => ({
open: state.open
@@ -10,4 +17,22 @@ const mapStateToProps = ({talkPluginViewingOptions: state}) => ({
const mapDispatchToProps = (dispatch) =>
bindActionCreators({openMenu, closeMenu}, dispatch);
-export default connect(mapStateToProps, mapDispatchToProps)(ViewingOptions);
+const withViewingOptionsFragments = withFragments({
+ root: gql`
+ fragment TalkViewingOptions_ViewingOptions_root on RootQuery {
+ __typename
+ ${getSlotFragmentSpreads(slots, 'root')}
+ }`,
+ asset: gql`
+ fragment TalkViewingOptions_ViewingOptions_asset on Asset {
+ __typename
+ ${getSlotFragmentSpreads(slots, 'asset')}
+ }`,
+});
+
+const enhance = compose(
+ connect(mapStateToProps, mapDispatchToProps),
+ withViewingOptionsFragments,
+);
+
+export default enhance(ViewingOptions);
diff --git a/plugins/talk-plugin-viewing-options/client/translations.yml b/plugins/talk-plugin-viewing-options/client/translations.yml
index d1b1c1896..c06bffb9e 100644
--- a/plugins/talk-plugin-viewing-options/client/translations.yml
+++ b/plugins/talk-plugin-viewing-options/client/translations.yml
@@ -1,6 +1,8 @@
en:
talk-plugin-viewing-options:
viewing_options: "Viewing Options"
+ sort: Sorting
+ filter: Filtering
es:
talk-plugin-viewing-options:
viewing_options: "Opciones de visualización"
diff --git a/scripts/poste2e.sh b/scripts/poste2e.sh
deleted file mode 100755
index 1a8279da1..000000000
--- a/scripts/poste2e.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-# If there is a PID file from the e2e tests...
-if [ -e /tmp/talk-e2e.pid ]
-then
-
- # Then kill the running talk server.
- kill $(cat /tmp/talk-e2e.pid)
-
-fi
diff --git a/scripts/pree2e.sh b/scripts/pree2e.sh
deleted file mode 100755
index 5b6f21ab3..000000000
--- a/scripts/pree2e.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-# fail the e2e if any of these fail
-set -e
-
-# install selenium
-selenium-standalone install --config=./selenium.config.js
-
-# Clear db
-mongo test --eval "db.dropDatabase()"
-
-# Init application
-./bin/cli setup --defaults
-
-# Creating Admin Test User
-./bin/cli users create --flag_mode --email "admin@test.com" --password "testtest" --name "AdminTestUser" --role "ADMIN"
-
-# Creating Moderator Test User
-./bin/cli users create --flag_mode --email "moderator@test.com" --password "testtest" --name "ModeratorTestUser" --role "MODERATOR"
-
-# Creating Commenter Test User
-./bin/cli users create --flag_mode --email "commenter@test.com" --password "testtest" --name "CommenterTestUser"
-
-# Start the server and write the PID to a file to be killed later.
-./bin/cli --pid /tmp/talk-e2e.pid serve --jobs &
diff --git a/selenium.config.js b/selenium.config.js
deleted file mode 100644
index b43c31ef0..000000000
--- a/selenium.config.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- drivers: {
- chrome: {
- version: '2.25',
- arch: process.arch,
- baseURL: 'https://chromedriver.storage.googleapis.com'
- },
- },
-};
diff --git a/services/actions.js b/services/actions.js
index 74c3bdad3..ba9f1fde5 100644
--- a/services/actions.js
+++ b/services/actions.js
@@ -1,11 +1,49 @@
const ActionModel = require('../models/action');
const _ = require('lodash');
const errors = require('../errors');
+const events = require('./events');
+const {
+ ACTIONS_NEW,
+ ACTIONS_DELETE,
+} = require('./events/constants');
+
+/**
+ * findOnlyOneAndUpdate will perform a fondOneAndUpdate on the mongo collection
+ * and ensure that the found record wasn't already found. This is essentially
+ * a "findOneOrUpsert".
+ *
+ * @param {object} query the query operation for the mongo findOneAndUpdate op
+ * @param {object} update the update operation for the mongo findOneAndUpdate op
+ * @param {object} options the options operation for the mongo findOneAndUpdate op
+ */
+const findOnlyOneAndUpdate = async (query, update, options = {}) => new Promise((resolve, reject) => {
+ ActionModel.findOneAndUpdate(query, update, Object.assign({}, options, {
+
+ // Use raw result to get `updatedExisting`.
+ passRawResult: true,
+
+ // Ensure that if it's new, we return the new object created.
+ new: true,
+
+ // Perform an upsert in the event that this doesn't exist.
+ upsert: true,
+
+ // Set the default values if not provided based on the mongoose models.
+ setDefaultsOnInsert: true
+ }), (err, doc, raw) => {
+ if (err) { return reject(err); }
+ if (raw.lastErrorObject.updatedExisting) {
+ return reject(new errors.ErrAlreadyExists(raw.value));
+ }
+ return resolve(raw.value);
+ });
+});
module.exports = class ActionsService {
/**
* Finds an action by the id.
+ *
* @param {String} id identifier of the action (uuid)
*/
static findById(id) {
@@ -14,55 +52,37 @@ module.exports = class ActionsService {
/**
* Inserts an action.
+ *
* @param {String} item_id identifier of the item (uuid)
* @param {String} user_id user id of the action (uuid)
* @param {String} action the new action to the item
* @return {Promise}
*/
- static insertUserAction(action) {
+ static async create(action) {
// Actions are made unique by using a query that can be reproducable, i.e.,
// not containing user inputable values.
- let query = {
+ let foundAction = await findOnlyOneAndUpdate({
action_type: action.action_type,
item_type: action.item_type,
item_id: action.item_id,
user_id: action.user_id,
- group_id: action.group_id
- };
+ group_id: action.group_id,
+ }, {
- // Create/Update the action.
- return new Promise((resolve, reject) => {
- ActionModel.findOneAndUpdate(
- query, {
-
- // Only set when not existing.
- $setOnInsert: action,
- }, {
-
- // Ensure that if it's new, we return the new object created.
- new: true,
-
- // Use raw result to get `updatedExisting`.
- passRawResult: true,
-
- // Perform an upsert in the event that this doesn't exist.
- upsert: true,
-
- // Set the default values if not provided based on the mongoose models.
- setDefaultsOnInsert: true
- }, (err, doc, raw) => {
- if (err) { return reject(err); }
- if (raw.lastErrorObject.updatedExisting) {
- return reject(new errors.ErrAlreadyExists(raw.value));
- }
- return resolve(raw.value);
- });
+ // Only set when not existing.
+ $setOnInsert: action,
});
+
+ // Emit that there was a new action created.
+ await events.emitAsync(ACTIONS_NEW, foundAction);
+
+ return foundAction;
}
/**
* Finds actions in an array of ids.
+ *
* @param {String} ids array of user identifiers (uuid)
*/
static async findByItemIdArray(item_ids) {
@@ -80,6 +100,7 @@ module.exports = class ActionsService {
/**
* Fetches the action summaries for the given asset, and comments around the
* given user id.
+ *
* @param {[type]} asset_id [description]
* @param {[type]} comments [description]
* @param {String} [current_user_id=''] [description]
@@ -106,7 +127,8 @@ module.exports = class ActionsService {
}
/**
- * Returns summaries of actions for an array of ids
+ * Returns summaries of actions for an array of ids.
+ *
* @param {String} ids array of user identifiers (uuid)
*/
static getActionSummaries(item_ids, current_user_id = '') {
@@ -178,8 +200,9 @@ module.exports = class ActionsService {
]);
}
- /*
+ /**
* Finds all comments for a specific action.
+ *
* @param {String} action_type type of action
* @param {String} item_type type of item the action is on
*/
@@ -190,8 +213,31 @@ module.exports = class ActionsService {
});
}
+ /**
+ * delete will remove the record from the collection if it exists. Otherwise
+ * it will do nothing. This will then return the deleted action.
+ *
+ * @param {object} param the action to use as the query source, for which we
+ * only look at the id, user_id.
+ */
+ static async delete({id, user_id}) {
+ let action = await ActionModel.findOneAndRemove({
+ id,
+ user_id,
+ });
+ if (!action) {
+ return;
+ }
+
+ // Emit that the action was deleted.
+ await events.emitAsync(ACTIONS_DELETE, action);
+
+ return action;
+ }
+
/**
* Finds all comments ids for a specific action.
+ *
* @param {String} action_type type of action
* @param {String} item_type type of item the action is on
*/
diff --git a/services/comments.js b/services/comments.js
index af7593a8e..db0714233 100644
--- a/services/comments.js
+++ b/services/comments.js
@@ -1,10 +1,18 @@
const CommentModel = require('../models/comment');
-const ActionModel = require('../models/action');
+const debug = require('debug')('talk:services:comments');
const ActionsService = require('./actions');
const SettingsService = require('./settings');
+const sc = require('snake-case');
const errors = require('../errors');
+const events = require('./events');
+const {
+ ACTIONS_NEW,
+ ACTIONS_DELETE,
+ COMMENTS_NEW,
+ COMMENTS_EDIT,
+} = require('./events/constants');
module.exports = class CommentsService {
@@ -13,7 +21,7 @@ module.exports = class CommentsService {
* @param {Mixed} comment either a single comment or an array of comments.
* @return {Promise}
*/
- static publicCreate(comment) {
+ static async publicCreate(comment) {
// Check to see if this is an array of comments, if so map it out.
if (Array.isArray(comment)) {
@@ -35,7 +43,12 @@ module.exports = class CommentsService {
}]
}, comment));
- return commentModel.save();
+ const savedCommentModel = await commentModel.save();
+
+ // Emit that the comment was created!
+ await events.emitAsync(COMMENTS_NEW, savedCommentModel);
+
+ return savedCommentModel;
}
/**
@@ -48,7 +61,10 @@ module.exports = class CommentsService {
static async edit(id, author_id, {body, status, ignoreEditWindow = false}) {
const query = {
id,
- author_id
+ author_id,
+ status: {
+ $in: ['NONE', 'PREMOD', 'ACCEPTED'],
+ },
};
// Establish the edit window (if it exists) and add the condition to the
@@ -62,9 +78,7 @@ module.exports = class CommentsService {
};
}
- const {
- value: comment
- } = await CommentModel.findOneAndUpdate(query, {
+ const originalComment = await CommentModel.findOneAndUpdate(query, {
$set: {
body,
status,
@@ -79,33 +93,54 @@ module.exports = class CommentsService {
created_at: new Date(),
}
},
- }, {
- new: true,
- rawResult: true
});
- if (comment === null) {
+ if (originalComment == null) {
// Try to get the comment.
const comment = await CommentsService.findById(id);
- if (comment === null) {
+ if (comment == null) {
+ debug('rejecting comment edit because comment was not found');
throw errors.ErrNotFound;
}
// Check to see if the user was't allowed to edit it.
if (comment.author_id !== author_id) {
+ debug('rejecting comment edit because author id does not match editing user');
+ throw errors.ErrNotAuthorized;
+ }
+
+ // Check to see if the comment had a status that was editable.
+ if (!['NONE', 'PREMOD', 'ACCEPTED'].includes(comment.status)) {
+ debug('rejecting comment edit because original comment has a non-editable status');
throw errors.ErrNotAuthorized;
}
// Check to see if the edit window expired.
if (!ignoreEditWindow && comment.created_at <= lastEditableCommentCreatedAt) {
+ debug('rejecting comment edit because outside edit time window');
throw errors.ErrEditWindowHasEnded;
}
throw new Error('comment edit failed for an unexpected reason');
}
- return comment;
+ // Mutate the comment like Mongo would have.
+ const editedComment = originalComment;
+ editedComment.status = status;
+ editedComment.body = body;
+ editedComment.body_history.push({
+ body,
+ created_at: new Date(),
+ });
+ editedComment.status_history.push({
+ type: status,
+ created_at: new Date(),
+ });
+
+ await events.emitAsync(COMMENTS_EDIT, originalComment, editedComment);
+
+ return editedComment;
}
/**
@@ -205,21 +240,36 @@ module.exports = class CommentsService {
* moderation action
* @return {Promise}
*/
- static pushStatus(id, status, assigned_by = null) {
- return CommentModel.findOneAndUpdate({id}, {
+ static async pushStatus(id, status, assigned_by = null) {
+ const created_at = new Date();
+ const originalComment = await CommentModel.findOneAndUpdate({id}, {
$push: {
status_history: {
type: status,
- created_at: new Date(),
- assigned_by
+ created_at,
+ assigned_by,
}
},
$set: {status}
- }, {
-
- // return modified comment.
- new: true,
});
+
+ if (originalComment == null) {
+ throw errors.ErrNotFound;
+ }
+
+ const editedComment = new CommentModel(originalComment.toObject());
+ editedComment.status_history.push({
+ type: status,
+ created_at,
+ assigned_by,
+ });
+ editedComment.status = status;
+
+ // Emit that the comment was edited, and pass the original comment and the
+ // edited comment.
+ await events.emitAsync(COMMENTS_EDIT, originalComment, editedComment);
+
+ return editedComment;
}
/**
@@ -230,7 +280,7 @@ module.exports = class CommentsService {
* @return {Promise}
*/
static addAction(item_id, user_id, action_type, metadata = {}) {
- return ActionsService.insertUserAction({
+ return ActionsService.create({
item_id,
item_type: 'COMMENTS',
user_id,
@@ -238,55 +288,99 @@ module.exports = class CommentsService {
metadata
});
}
+};
- /**
- * Change the status of a comment.
- * @param {String} id identifier of the comment (uuid)
- * @param {String} status the new status of the comment
- * @return {Promise}
- */
- static removeById(id) {
- return CommentModel.remove({id});
+//==============================================================================
+// Event Hooks
+//==============================================================================
+
+const incrActionCounts = async (action, value) => {
+ const ACTION_TYPE = sc(action.action_type.toLowerCase());
+
+ const update = {
+ [`action_counts.${ACTION_TYPE}`]: value,
+ };
+
+ if (action.group_id && action.group_id.length > 0) {
+ const GROUP_ID = sc(action.group_id.toLowerCase());
+
+ update[`action_counts.${ACTION_TYPE}_${GROUP_ID}`] = value;
}
- /**
- * Remove an action from the comment.
- * @param {String} id identifier of the comment (uuid)
- * @param {String} action_type the type of the action to be removed
- * @param {String} user_id the id of the user performing the action
- * @return {Promise}
- */
- static removeAction(item_id, user_id, action_type) {
- return ActionModel.remove({
- action_type,
- item_type: 'COMMENTS',
- item_id,
- user_id
+ try {
+ await CommentModel.update({
+ id: action.item_id,
+ }, {
+ $inc: update,
});
- }
-
- /**
- * Returns all the comments in the collection.
- * @return {Promise}
- */
- static all() {
- return CommentModel.find({});
- }
-
- /**
- * Returns all the comments by user
- * probably to be paginated at some point in the future
- * @return {Promise} array resolves to an array of comments by that user
- */
- static findByUserId(author_id, admin = false) {
-
- // do not return un-published comments for non-admins
- let query = {author_id};
-
- if (!admin) {
- query.$nor = [{status: 'PREMOD'}, {status: 'REJECTED'}];
- }
-
- return CommentModel.find(query);
+ } catch (err) {
+ console.error(`Can't mutate the action_counts.${ACTION_TYPE}:`, err);
}
};
+
+// When a new action is created, modify the comment.
+events.on(ACTIONS_NEW, async (action) => {
+ if (!action || action.item_type !== 'COMMENTS') {
+ return;
+ }
+
+ return incrActionCounts(action, 1);
+});
+
+// When an action is deleted, remove the action count on the comment.
+events.on(ACTIONS_DELETE, async (action) => {
+ if (!action || action.item_type !== 'COMMENTS') {
+ return;
+ }
+
+ return incrActionCounts(action, -1);
+});
+
+const incrReplyCount = async (comment, value) => {
+ try {
+ await CommentModel.update({
+ id: comment.parent_id,
+ }, {
+ $inc: {
+ reply_count: value,
+ },
+ });
+ } catch (err) {
+ console.error('Can\'t mutate the reply count:', err);
+ }
+};
+
+// When a comment is created, if it is a reply, increment the reply count on the
+// parent's document.
+events.on(COMMENTS_NEW, async (comment) => {
+ if (
+ !comment || // Check that the comment is defined.
+ (!comment.parent_id || comment.parent_id.length === 0) || // Check that the comment has a parent (is a reply).
+ !(comment.status === 'NONE' || comment.status === 'APPROVED') // Check that the comment is visible.
+ ) {
+ return;
+ }
+
+ return incrReplyCount(comment, 1);
+});
+
+// When a comment is edited, if the visability changed publicly, then modify the
+// comment.
+events.on(COMMENTS_EDIT, async (originalComment, editedComment) => {
+ if (
+ !editedComment || // Check that the comment is defined.
+ (!editedComment.parent_id || editedComment.parent_id.length === 0) // Check that the comment has a parent (is a reply).
+ ) {
+ return;
+ }
+
+ // If the comment was visible before, and now it isn't, decrement the count;
+ if (originalComment.visible && !editedComment.visible) {
+ return incrReplyCount(editedComment, -1);
+ }
+
+ // If the comment was not visible before, and now it is, increment the count.
+ if (!originalComment.visible && editedComment.visible) {
+ return incrReplyCount(editedComment, 1);
+ }
+});
diff --git a/services/events/constants.js b/services/events/constants.js
new file mode 100644
index 000000000..a1da8dce6
--- /dev/null
+++ b/services/events/constants.js
@@ -0,0 +1,4 @@
+module.exports.ACTIONS_DELETE = 'actions.delete';
+module.exports.ACTIONS_NEW = 'actions.new';
+module.exports.COMMENTS_NEW = 'comments.new';
+module.exports.COMMENTS_EDIT = 'comments.edit';
diff --git a/services/events/index.js b/services/events/index.js
new file mode 100644
index 000000000..214e23d65
--- /dev/null
+++ b/services/events/index.js
@@ -0,0 +1,22 @@
+const {EventEmitter2} = require('eventemitter2');
+const debug = require('debug')('talk:services:events');
+const enabled = require('debug').enabled('talk:services:events');
+
+const events = new EventEmitter2({
+ wildcard: true,
+});
+
+// If event debugging is enabled, bind the debugger to all events being emitted
+// and log a debug message.
+if (enabled) {
+ events.onAny(function(event) {
+ debug(`[${event}] ${arguments.length - 1} argument${arguments.length - 1 === 1 ? '' : 's'}`);
+ });
+}
+
+// The default error handler.
+events.on('error', (err) => {
+ console.error('events error:', err);
+});
+
+module.exports = events;
diff --git a/services/mongoose.js b/services/mongoose.js
index 07f3b2189..fb23a5fe1 100644
--- a/services/mongoose.js
+++ b/services/mongoose.js
@@ -1,7 +1,7 @@
const mongoose = require('mongoose');
const debug = require('debug')('talk:db');
const enabled = require('debug').enabled;
-const queryDebuger = require('debug')('talk:db:query');
+const queryDebugger = require('debug')('talk:db:query');
const {
MONGO_URL,
@@ -27,14 +27,14 @@ function debugQuery(name, i, ...args) {
let params = `(${_args.join(', ')})`;
- queryDebuger(functionCall + params);
+ queryDebugger(functionCall + params);
}
// Use native promises
mongoose.Promise = global.Promise;
// Check if debugging is enabled on the talk:db prefix.
-if (enabled('talk:db')) {
+if (enabled('talk:db:query')) {
// Enable the mongoose debugger, here we wrap the similar print function
// provided by setting the debug parameter.
@@ -53,14 +53,17 @@ if (WEBPACK) {
} else {
// Connect to the Mongo instance.
- mongoose.connect(MONGO_URL, (err) => {
- if (err) {
- throw err;
- }
-
- debug('connection established');
- });
-
+ mongoose
+ .connect(MONGO_URL, {
+ useMongoClient: true,
+ })
+ .then(() => {
+ debug('connection established');
+ })
+ .catch((err) => {
+ console.error(err);
+ process.exit(1);
+ });
}
module.exports = mongoose;
diff --git a/services/users.js b/services/users.js
index 7ed55f712..64e4494a0 100644
--- a/services/users.js
+++ b/services/users.js
@@ -737,7 +737,7 @@ module.exports = class UsersService {
* @return {Promise}
*/
static addAction(item_id, user_id, action_type, metadata) {
- return ActionsService.insertUserAction({
+ return ActionsService.create({
item_id,
item_type: 'users',
user_id,
diff --git a/test/client/.babelrc b/test/client/.babelrc
deleted file mode 100644
index 633f93f42..000000000
--- a/test/client/.babelrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "extends": "../../.babelrc"
-}
diff --git a/test/client/.eslintrc.json b/test/client/.eslintrc.json
deleted file mode 100644
index a935eaec6..000000000
--- a/test/client/.eslintrc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "env": {
- "browser": true,
- "es6": true,
- "mocha": true
- },
- "extends": "../.eslintrc.json",
- "parserOptions": {
- "ecmaFeatures": {
- "experimentalObjectRestSpread": true,
- "jsx": true
- },
- "sourceType": "module"
- },
- "parser": "babel-eslint",
- "plugins": [
- "react"
- ],
- "rules": {
- "react/jsx-uses-react": "error",
- "react/jsx-uses-vars": "error"
- }
-}
diff --git a/test/client/coral-admin/actions/assets.js b/test/client/coral-admin/actions/assets.js
deleted file mode 100644
index 24a28daef..000000000
--- a/test/client/coral-admin/actions/assets.js
+++ /dev/null
@@ -1,89 +0,0 @@
-import 'react';
-import 'redux';
-import {expect} from 'chai';
-import fetchMock from 'fetch-mock';
-import * as actions from '../../../../client/coral-admin/src/actions/assets';
-import {Map} from 'immutable';
-
-import configureStore from 'redux-mock-store';
-
-const mockStore = configureStore();
-
-describe('Asset actions', () => {
- let store;
-
- const assets = [
- {
- url: 'http://test.com',
- id: '123',
- status: 'closed'
- },
- {
- url: 'http://test.org',
- id: '456',
- status: 'open'
- }
- ];
-
- beforeEach(() => {
- store = mockStore(new Map({}));
- fetchMock.restore();
- });
-
- describe('FETCH_ASSETS_REQUEST', () => {
-
- it('should fetch a list of assets', () => {
-
- fetchMock.get('*', JSON.stringify({
- result: assets,
- count: 2
- }));
-
- return actions.fetchAssets(2, 20)(store.dispatch)
- .then(() => {
- expect(store.getActions()[0]).to.have.property('type', 'FETCH_ASSETS_REQUEST');
- expect(store.getActions()[1]).to.have.property('type', 'FETCH_ASSETS_SUCCESS');
- expect(store.getActions()[1]).to.have.property('count', 2);
- expect(store.getActions()[1]).to.have.property('assets').
- and.to.deep.equal(assets);
- });
- });
-
- it('should return an error appropriatly', () => {
-
- fetchMock.get('*', 404);
-
- return actions.fetchAssets(2, 20)(store.dispatch)
- .then(() => {
- expect(store.getActions()[0]).to.have.property('type', 'FETCH_ASSETS_REQUEST');
- expect(store.getActions()[1]).to.have.property('type', 'FETCH_ASSETS_FAILURE');
- });
- });
- });
-
- describe('UPDATE_ASSET_STATE_REQUEST', () => {
-
- it('should update an asset', () => {
-
- fetchMock.put('*', JSON.stringify(assets[0]));
-
- return actions.updateAssetState('123', 'status', 'open')(store.dispatch)
- .then(() => {
- expect(store.getActions()[0]).to.have.property('type', 'UPDATE_ASSET_STATE_REQUEST');
- expect(store.getActions()[1]).to.have.property('type', 'UPDATE_ASSET_STATE_SUCCESS');
- });
-
- });
-
- it('should return an error appropriately', () => {
-
- fetchMock.put('*', 404);
-
- return actions.updateAssetState('123', 'status', 'open')(store.dispatch)
- .then(() => {
- expect(store.getActions()[0]).to.have.property('type', 'UPDATE_ASSET_STATE_REQUEST');
- expect(store.getActions()[1]).to.have.property('type', 'UPDATE_ASSET_STATE_FAILURE');
- });
- });
- });
-});
diff --git a/test/client/coral-admin/reducers/assets.js b/test/client/coral-admin/reducers/assets.js
deleted file mode 100644
index 753061612..000000000
--- a/test/client/coral-admin/reducers/assets.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import {Map, fromJS} from 'immutable';
-import {expect} from 'chai';
-import assetsReducer from '../../../../client/coral-admin/src/reducers/assets';
-
-describe ('assetsReducer', () => {
- describe('FETCH_ASSETS_SUCCESS', () => {
- it('should replace the existing assets', () => {
- const action = {
- type: 'FETCH_ASSETS_SUCCESS',
- count: 200,
- assets: [
- {
- id: '123',
- url: 'http://test.com',
- closedAt: 'tomorrow'
- },
- {
- id: '456',
- url: 'http://test2.com',
- closedAt: 'thursday'
- },
- ]
- };
- const store = new Map({});
- const result = assetsReducer(store, action);
- expect(result.getIn(['byId', '123']).toJS()).to.deep.equal({
- url: 'http://test.com',
- closedAt: 'tomorrow',
- id: '123'
- });
- expect(result.getIn(['ids']).toJS()).to.deep.equal([
- '123',
- '456'
- ]);
- expect(result.getIn(['count'])).to.equal(200);
- });
- });
-
- describe('UPDATE_ASSET_STATE_REQUEST', () => {
- it('should update the state of a particular asset', () => {
- const action = {
- type: 'UPDATE_ASSET_STATE_REQUEST',
- id: '123',
- closedAt: null
- };
- const store = new fromJS({
- byId: {
- '123': {
- id: '123',
- url: 'http://test.com',
- closedAt: Date.now()
- },
- '456': {
- id: '456',
- url: 'http://test2.com',
- closedAt: 'thursday'
- }
- }
- });
- const result = assetsReducer(store, action);
- expect(result.getIn(['byId', '123', 'closedAt'])).to.equal.null;
- });
- });
-});
diff --git a/test/client/coral-framework/reducers/assetReducer.spec.js b/test/client/coral-framework/reducers/assetReducer.spec.js
deleted file mode 100644
index c54f51737..000000000
--- a/test/client/coral-framework/reducers/assetReducer.spec.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import {Map} from 'immutable';
-import {expect} from 'chai';
-import assetReducer from '../../../../client/coral-framework/reducers/asset';
-import * as actions from '../../../../client/coral-framework/constants/asset';
-
-describe ('coral-embed-stream assetReducer', () => {
- describe('UPDATE_COUNT_CACHE', () => {
- it('should update the count cache', () => {
- const action = {
- type: actions.UPDATE_COUNT_CACHE,
- id: '123',
- count: 456
- };
- const store = new Map({});
- const result = assetReducer(store, action);
- expect(result.getIn(['countCache', '123'])).to.equal(456);
- });
- });
-});
diff --git a/test/e2e/globals.js b/test/e2e/globals.js
deleted file mode 100644
index da80a5dd9..000000000
--- a/test/e2e/globals.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = {
- waitForConditionTimeout: 8000,
- baseUrl: 'http://localhost:3011',
- users: {
- admin: {
- email: 'admin@test.com',
- pass: 'testtest'
- },
- moderator: {
- email: 'moderator@test.com',
- pass: 'testtest'
- },
- commenter: {
- email: 'commenter@test.com',
- pass: 'testtest'
- }
- },
-};
diff --git a/test/e2e/mocks.js b/test/e2e/mocks.js
deleted file mode 100644
index f1e46f0ea..000000000
--- a/test/e2e/mocks.js
+++ /dev/null
@@ -1,26 +0,0 @@
-const Comments = require('../../services/comments');
-const Users = require('../../services/users');
-const Actions = require('../../services/actions');
-const Assets = require('../../services/assets');
-const Settings = require('../../services/settings');
-const globals = require('./globals');
-
-/* Create an array of comments */
-module.exports.comments = (comments) => Assets.findOrCreateByUrl(globals.baseUrl)
- .then((asset) => {
- comments = comments.map((comment) => {
- comment.asset_id = asset.id;
- return comment;
- });
- return Comments.publicCreate(comments);
- });
-
-/* Create an array of users */
-module.exports.users = (users) => Users.createLocalUsers(users);
-
-/* Create an array of actions */
-module.exports.actions = (actions) => Actions.create(actions);
-
-/* Update a setting */
-module.exports.settings = (setting) => Settings.init().then(() =>
- Settings.update(setting));
diff --git a/test/e2e/pages/adminPage.js b/test/e2e/pages/adminPage.js
deleted file mode 100644
index e1568ef51..000000000
--- a/test/e2e/pages/adminPage.js
+++ /dev/null
@@ -1,38 +0,0 @@
-const embedStreamCommands = {
- url: function () {
- return `${this.api.launchUrl}/admin`;
- },
- ready() {
- return this
- .waitForElementVisible('body', 2000);
- },
- approveComment() {
- return this
- .waitForElementVisible('@moderateNav')
- .click('@moderateNav')
- .waitForElementVisible('@moderationList')
- .waitForElementVisible('@approveButton')
- .click('@approveButton');
- }
-};
-
-module.exports = {
- commands: [embedStreamCommands],
- elements: {
- moderateNav: {
- selector: '#moderateNav'
- },
- moderationList: {
- selector: '#moderationList'
- },
- banButton: {
- selector: '#moderationList .actions:first-child .ban'
- },
- rejectButton: {
- selector: '#moderationList .actions:first-child .reject'
- },
- approveButton: {
- selector: '#moderationList .actions:first-child .approve'
- }
- }
-};
diff --git a/test/e2e/pages/embedStreamPage.js b/test/e2e/pages/embedStreamPage.js
deleted file mode 100644
index 75e9e0ecd..000000000
--- a/test/e2e/pages/embedStreamPage.js
+++ /dev/null
@@ -1,165 +0,0 @@
-const embedStreamCommands = {
- url: function () {
- return this
- .api.launchUrl;
- },
- ready() {
- return this
- .waitForElementVisible('body', 4000)
- .waitForElementVisible('#coralStreamEmbed > iframe')
- .api.frame('coralStreamEmbed_iframe');
- },
- signUp(user) {
- return this
- .waitForElementVisible('@signInButton', 2000)
- .click('@signInButton')
- .waitForElementVisible('@signInDialog')
- .waitForElementVisible('@registerButton')
- .click('@registerButton')
- .setValue('@signInDialogEmail', user.email)
- .setValue('@signInDialogPassword', user.pass)
- .setValue('@signUpDialogConfirmPassword', user.pass)
- .setValue('@signUpDialogUsername', user.username)
- .waitForElementVisible('@signUpButton')
- .click('@signUpButton')
- .waitForElementVisible('@signInViewTrigger')
- .click('@signInViewTrigger')
- .waitForElementVisible('@logInButton')
- .click('@logInButton')
- .waitForElementVisible('@logoutButton', 5000);
- },
- login(user) {
- return this
- .waitForElementVisible('@signInButton', 2000)
- .click('@signInButton')
- .waitForElementVisible('@signInDialog')
- .waitForElementVisible('@signInDialogEmail')
- .waitForElementVisible('@signInDialogPassword')
- .setValue('@signInDialogEmail', user.email)
- .setValue('@signInDialogPassword', user.pass)
- .waitForElementVisible('@logInButton')
- .click('@logInButton')
- .waitForElementVisible('@logoutButton', 5000);
- },
- logout() {
- return this
- .waitForElementVisible('@logoutButton', 5000)
- .click('@logoutButton')
- .waitForElementVisible('@signInButton', 5000);
- },
- postComment(comment = 'Test Comment') {
- return this
- .waitForElementVisible('@commentBox', 2000)
- .setValue('@commentBox', comment)
- .click('@postButton');
- },
- likeComment() {
- return this
- .waitForElementVisible('@likeButton')
- .click('@likeButton');
- },
- flagComment() {
- return this
- .waitForElementVisible('@flagButton')
- .click('@flagButton');
- },
- flagUsername() {
- return this
- .waitForElementVisible('@flagButton')
- .click('@flagButton');
- },
- getPermalink(fn) {
- return this
- .waitForElementVisible('@permalinkButton')
- .click('@permalinkButton')
- .waitForElementVisible('@permalinkPopUp')
- .getValue('@permalinkInput', (result) => fn(result.value));
- }
-};
-
-module.exports = {
- commands: [embedStreamCommands],
- elements: {
- signInButton: {
- selector: '#coralSignInButton'
- },
- signInDialog:{
- selector: '#signInDialog'
- },
- signInDialogEmail: {
- selector: '#signInDialog #email'
- },
- signInDialogPassword: {
- selector: '#signInDialog #password'
- },
- signUpDialogConfirmPassword: {
- selector: '#signInDialog #confirmPassword'
- },
- signUpDialogUsername: {
- selector: '#signInDialog #username'
- },
- logInButton: {
- selector: '#coralLogInButton'
- },
- signUpButton: {
- selector: '#coralSignUpButton'
- },
- signInViewTrigger: {
- selector: '#coralSignInViewTrigger'
- },
- logoutButton: {
- selector: '#coralStream #logout'
- },
- commentBox: {
- selector: '.talk-plugin-commentbox-textarea'
- },
- postButton: {
- selector: '#commentBox .talk-plugin-commentbox-button'
- },
- likeButton: {
- selector: '.embed__stream .comment .talk-plugin-likes-container .talk-plugin-likes-button'
- },
- likeText: {
- selector: '.embed__stream .comment .talk-plugin-likes-container .talk-plugin-likes-button .talk-plugin-likes-button-text'
- },
- likesCount: {
- selector: '.embed__stream .comment .talk-plugin-likes-container .talk-plugin-likes-button .talk-plugin-likes-like-count'
- },
- flagButton: {
- selector: '.embed__stream .comment .talk-plugin-flags-container .talk-plugin-flags-button'
- },
- flagPopUp: {
- selector: '.embed__stream .comment .talk-plugin-flags-popup'
- },
- flagCommentOption: {
- selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-radio-label[for="COMMENTS"]'
- },
- flagUsernameOption: {
- selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-radio-label[for="USERS"]'
- },
- flagOtherOption: {
- selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-radio-label[for="other"]'
- },
- flagHeaderMessage: {
- selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-header'
- },
- flagButtonText: {
- selector: '.embed__stream .comment .talk-plugin-flags-button-text'
- },
- flagDoneButton: {
- selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-button'
- },
- permalinkButton: {
- selector: '.embed__stream .comment .talk-plugin-permalinks-button'
- },
- permalinkPopUp: {
- selector: '.embed__stream .comment .talk-plugin-permalinks-popover.active'
- },
- permalinkInput: {
- selector: '.embed__stream .comment .talk-plugin-permalinks-popover.active input'
- },
- registerButton: {
- selector: '#signInDialog #coralRegister'
- }
- }
-};
diff --git a/test/e2e/tests/00_AppTest.js b/test/e2e/tests/00_AppTest.js
deleted file mode 100644
index 4294c4483..000000000
--- a/test/e2e/tests/00_AppTest.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- '@tags': ['app'],
- 'Base url and Hostname': (browser) => {
- const {baseUrl} = browser.globals;
- browser
- .url(baseUrl)
- .assert.title('Coral Talk')
- .waitForElementPresent('body', 1000);
- }
-};
diff --git a/test/e2e/tests/01_EmbedStreamTest.js b/test/e2e/tests/01_EmbedStreamTest.js
deleted file mode 100644
index 50d1feef0..000000000
--- a/test/e2e/tests/01_EmbedStreamTest.js
+++ /dev/null
@@ -1,52 +0,0 @@
-const mocks = require('../mocks');
-
-module.exports = {
- '@tags': ['embedStream'],
- before: (client) => {
- client.perform((client, done) => {
- mocks.settings({moderation: 'PRE'})
- .then(() => {
- const embedStreamPage = client.page.embedStreamPage();
- embedStreamPage
- .navigate()
- .ready();
- done();
- });
- });
- },
- 'Login as commenter': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
- embedStreamPage
- .login(users.commenter);
- },
- 'Add test comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- embedStreamPage
- .postComment('Test Comment');
- },
- 'Logout': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- embedStreamPage
- .logout();
- },
- 'Login as admin': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
- embedStreamPage
- .login(users.admin);
- },
- 'Approve test comment': (client) => {
- const adminPage = client.page.adminPage();
-
- adminPage
- .navigate()
- .ready();
-
- adminPage
- .approveComment();
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Admin/LoginTest.js b/test/e2e/tests/Admin/LoginTest.js
deleted file mode 100644
index dcc076631..000000000
--- a/test/e2e/tests/Admin/LoginTest.js
+++ /dev/null
@@ -1,23 +0,0 @@
-module.exports = {
- '@tags': ['login', 'ADMIN'],
- before(client) {
- const embedStreamPage = client.page.embedStreamPage();
- const {launchUrl} = client;
-
- client
- .url(launchUrl);
-
- embedStreamPage
- .ready();
- },
- 'Admin logs in': (client) => {
- const {users} = client.globals;
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .login(users.admin);
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Commenter/FlagCommentTest.js b/test/e2e/tests/Commenter/FlagCommentTest.js
deleted file mode 100644
index 87927528f..000000000
--- a/test/e2e/tests/Commenter/FlagCommentTest.js
+++ /dev/null
@@ -1,34 +0,0 @@
-module.exports = {
- '@tags': ['flag', 'comments', 'commenter'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
-
- embedStreamPage
- .navigate()
- .ready();
-
- embedStreamPage
- .login(users.commenter);
- },
- 'Commenter flags a comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .flagComment()
- .waitForElementVisible('@flagPopUp')
- .waitForElementVisible('@flagCommentOption')
- .click('@flagCommentOption')
- .waitForElementVisible('@flagDoneButton')
- .click('@flagDoneButton')
- .waitForElementVisible('@flagOtherOption')
- .click('@flagOtherOption')
- .waitForElementVisible('@flagDoneButton')
- .click('@flagDoneButton')
- .click('@flagDoneButton')
- .expect.element('@flagButtonText').text.to.equal('Reported');
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Commenter/FlagUsernameTest.js b/test/e2e/tests/Commenter/FlagUsernameTest.js
deleted file mode 100644
index c25299df9..000000000
--- a/test/e2e/tests/Commenter/FlagUsernameTest.js
+++ /dev/null
@@ -1,34 +0,0 @@
-module.exports = {
- '@tags': ['flag', 'commenter'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
-
- embedStreamPage
- .navigate()
- .ready();
-
- embedStreamPage
- .login(users.commenter);
- },
- 'Commenter flags a username': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .flagUsername()
- .click('@flagButton')
- .waitForElementVisible('@flagPopUp')
- .waitForElementVisible('@flagUsernameOption')
- .click('@flagUsernameOption')
- .waitForElementVisible('@flagDoneButton')
- .click('@flagDoneButton')
- .waitForElementVisible('@flagOtherOption')
- .click('@flagOtherOption')
- .waitForElementVisible('@flagDoneButton')
- .click('@flagDoneButton')
- .click('@flagDoneButton');
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Commenter/LikeCommentTest.js b/test/e2e/tests/Commenter/LikeCommentTest.js
deleted file mode 100644
index b8a964558..000000000
--- a/test/e2e/tests/Commenter/LikeCommentTest.js
+++ /dev/null
@@ -1,27 +0,0 @@
-module.exports = {
- '@tags': ['like', 'comments', 'commenter'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
-
- embedStreamPage
- .navigate()
- .ready();
-
- embedStreamPage
- .login(users.commenter);
- },
- 'Commenter likes a comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .postComment(`hi ${Math.random()}`)
- .likeComment()
- .waitForElementVisible('@likesCount', 2000)
- .expect.element('@likeText').text.to.equal('Liked');
-
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Commenter/LoginTest.js b/test/e2e/tests/Commenter/LoginTest.js
deleted file mode 100644
index bc04f72d3..000000000
--- a/test/e2e/tests/Commenter/LoginTest.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- '@tags': ['login', 'commenter'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .navigate()
- .ready();
- },
- 'Commenter logs in': (client) => {
- const {users} = client.globals;
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .login(users.commenter);
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Commenter/PermalinkTest.js b/test/e2e/tests/Commenter/PermalinkTest.js
deleted file mode 100644
index d3d369264..000000000
--- a/test/e2e/tests/Commenter/PermalinkTest.js
+++ /dev/null
@@ -1,34 +0,0 @@
-let permalink = '';
-
-module.exports = {
- '@tags': ['permalink', 'commenter'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
-
- embedStreamPage
- .navigate()
- .ready();
-
- embedStreamPage
- .login(users.commenter);
- },
- 'Commenter gets the permalink of a comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- embedStreamPage
- .getPermalink((value) => {
- permalink = value;
- });
- },
- 'Commenter navigates to the permalink': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- embedStreamPage
- .navigate(permalink);
-
- client.assert.urlContains(permalink);
- },
- after: (client) => {
- client.end();
- }
-};
-
diff --git a/test/e2e/tests/Commenter/PostComment.js b/test/e2e/tests/Commenter/PostComment.js
deleted file mode 100644
index 033d52cbe..000000000
--- a/test/e2e/tests/Commenter/PostComment.js
+++ /dev/null
@@ -1,38 +0,0 @@
-module.exports = {
- '@tags': ['write', 'commenter'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
-
- embedStreamPage
- .navigate()
- .ready();
-
- embedStreamPage
- .login(users.commenter);
- },
- 'Commenter posts a comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .postComment('I read the comments');
- },
- after: (client) => {
- const adminPage = client.page.adminPage();
- const embedStreamPage = client.page.embedStreamPage();
- const {users} = client.globals;
-
- embedStreamPage
- .logout()
- .login(users.admin);
-
- adminPage
- .navigate()
- .ready();
-
- adminPage
- .approveComment();
-
- client.end();
- }
-};
diff --git a/test/e2e/tests/EmbedStreamTests.js b/test/e2e/tests/EmbedStreamTests.js
deleted file mode 100644
index 0db0ad4d7..000000000
--- a/test/e2e/tests/EmbedStreamTests.js
+++ /dev/null
@@ -1,182 +0,0 @@
-const mongoose = require('../../helpers/mongoose');
-const mocks = require('../mocks');
-
-const mockComment = 'I read the comments';
-const mockReply = 'This is a test reply';
-const mockUser = {
- email: `${Date.now()}@test.com`,
- name: `testuser${Math.random()
- .toString()
- .slice(-5)}`,
- pw: 'testtest'
-};
-
-module.exports = {
- '@tags': ['embed-stream', 'comment', 'premodoff', 'premodon'],
- before: () => {
- mongoose.waitTillConnect(function(err) {
- if (err) {
- console.error(err);
- }
- });
- },
- 'User registers and posts a comment with premod off': (client) => {
- client.perform((client, done) => {
- mocks.settings({moderation: 'POST'})
- .then(() => {
-
- // Load Page
- client.resizeWindow(1200, 800)
- .url(client.globals.baseUrl)
- .frame('coralStreamEmbed_iframe')
-
- // Register and Log In
- .waitForElementVisible('#coralSignInButton', 2000)
- .click('#coralSignInButton')
- .waitForElementVisible('#coralRegister', 1000)
- .click('#coralRegister')
- .waitForElementVisible('#email', 1000)
- .setValue('#email', mockUser.email)
- .setValue('#username', mockUser.name)
- .setValue('#password', mockUser.pw)
- .setValue('#confirmPassword', mockUser.pw)
- .click('#coralSignUpButton')
- .waitForElementVisible('#coralLogInButton', 10000)
- .click('#coralLogInButton')
- .waitForElementVisible('.talk-plugin-commentbox-button', 4000)
-
- // Post a comment
- .setValue('.talk-plugin-commentbox-textarea', mockComment)
- .click('.talk-plugin-commentbox-button')
- .waitForElementVisible('.embed__stream .talk-plugin-commentcontent-text', 1000)
-
- // Verify that it appears
- .assert.containsText('.embed__stream .talk-plugin-commentcontent-text', mockComment);
- done();
- })
- .catch((err) => {
- console.log(err);
- done();
- });
- });
- },
- 'User posts a comment with premod on': (client) => {
- client.perform((client, done) => {
- mocks.settings({moderation: 'PRE'})
- .then(() => {
-
- // Load Page
- client.url(client.globals.baseUrl)
- .frame('coralStreamEmbed_iframe');
-
- // Post a comment
- client.waitForElementVisible('.talk-plugin-commentbox-button', 2000)
- .setValue('.talk-plugin-commentbox-textarea', mockComment)
- .click('.talk-plugin-commentbox-button');
- done();
- })
- .catch((err) => {
- console.log(err);
- done();
- });
- });
- },
- 'User replies to a comment with premod off': (client) => {
- client.perform((client, done) => {
- mocks.settings({moderation: 'POST'})
- .then(() => {
-
- // Load Page
- client.resizeWindow(1200, 800)
- .url(client.globals.baseUrl)
- .frame('coralStreamEmbed_iframe');
-
- // Post a comment
- client.waitForElementVisible('.talk-plugin-commentbox-button', 2000)
- .setValue('.talk-plugin-commentbox-textarea', mockComment)
- .click('.talk-plugin-commentbox-button')
-
- // Post a reply
-
- .waitForElementVisible('.embed__stream .talk-plugin-replies-reply-button', 5000)
- .click('.embed__stream .talk-plugin-replies-reply-button')
- .waitForElementVisible('#replyText')
- .setValue('#replyText', mockReply)
- .click('.embed__stream .talk-plugin-replies-textarea .talk-plugin-commentbox-button')
- .waitForElementVisible('.embed__stream .reply', 20000)
-
- // Verify that it appears
- .assert.containsText('.embed__stream .reply', mockReply);
- done();
- })
- .catch((err) => {
- console.log(err);
- done();
- });
- });
- },
-
- // Commenting out this test, it fails if the notification is below the fold, which
- // happens if too many previous tests have added comments
- // 'User replies to a comment with premod on': client => {
- // client.perform((client, done) => {
- // mocks.settings({moderation: 'PRE'})
- //
- // // Add a mock user
- // .then(() => mocks.users([{
- // username: 'BabyBlue',
- // email: 'whale@tale.sea',
- // password: 'krillaretasty'
- // }]))
- //
- // // Add a mock preapproved comment by that user
- // .then((user) => mocks.comments([{
- // body: 'Whales are not fish.',
- // status: 'ACCEPTED',
- // author_id: user.id
- // }]))
- // .then(() => {
- //
- // // Load Page
- // client.resizeWindow(1200, 800)
- // .url(client.globals.baseUrl)
- // .frame('coralStreamEmbed_iframe');
- //
- // // Post a reply
- // client.waitForElementVisible('.talk-plugin-replies-reply-button', 5000)
- // .click('.talk-plugin-replies-reply-button')
- // .waitForElementVisible('#replyText')
- // .setValue('#replyText', mockReply)
- // .click('.talk-plugin-replies-textarea button')
- // .waitForElementVisible('#coral-notif', 1000)
- //
- // // Verify that it appears
- // .assert.containsText('#coral-notif', 'moderation team');
- // done();
- // })
- // .catch((err) => {
- // console.log(err);
- // done();
- // });
- // });
- // },
- 'Total comment count premod on': (client) => {
- client.perform((client, done) => {
- client.url(client.globals.baseUrl)
- .frame('coralStreamEmbed_iframe');
-
- // Verify that comment count is correct
- client.waitForElementVisible('.talk-plugin-comment-count-text', 2000)
- .assert.containsText('.talk-plugin-comment-count-text', '5 Comments');
- done();
- });
- },
- after: (client) => {
- mongoose.disconnect(function(err) {
- if (err) {
- console.error(err);
- }
- });
- client.end();
- }
-};
diff --git a/test/e2e/tests/Moderator/LoginTest.js b/test/e2e/tests/Moderator/LoginTest.js
deleted file mode 100644
index bb32679ee..000000000
--- a/test/e2e/tests/Moderator/LoginTest.js
+++ /dev/null
@@ -1,23 +0,0 @@
-module.exports = {
- '@tags': ['login', 'MODERATOR'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
- const {launchUrl} = client;
-
- client
- .url(launchUrl);
-
- embedStreamPage
- .ready();
- },
- 'Moderator logs in': (client) => {
- const {users} = client.globals;
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .login(users.moderator);
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Visitor/FlagCommentTest.js b/test/e2e/tests/Visitor/FlagCommentTest.js
deleted file mode 100644
index b4a5a802f..000000000
--- a/test/e2e/tests/Visitor/FlagCommentTest.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- '@tags': ['flag', 'comments', 'visitor'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .navigate()
- .ready();
- },
- 'Visitor tries to flag a comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .flagComment()
- .waitForElementVisible('@signInDialog', 2000);
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Visitor/LikeCommentTest.js b/test/e2e/tests/Visitor/LikeCommentTest.js
deleted file mode 100644
index 1b931683e..000000000
--- a/test/e2e/tests/Visitor/LikeCommentTest.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- '@tags': ['like', 'comments', 'visitor'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .navigate()
- .ready();
- },
- 'Visitor tries to like a comment': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .likeComment()
- .waitForElementVisible('@signInDialog', 2000);
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/e2e/tests/Visitor/SignUpTest.js b/test/e2e/tests/Visitor/SignUpTest.js
deleted file mode 100644
index 3436ca850..000000000
--- a/test/e2e/tests/Visitor/SignUpTest.js
+++ /dev/null
@@ -1,23 +0,0 @@
-module.exports = {
- '@tags': ['signup', 'visitor'],
- before: (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .navigate()
- .ready();
- },
- 'Visitor signs up': (client) => {
- const embedStreamPage = client.page.embedStreamPage();
-
- embedStreamPage
- .signUp({
- email: `visitor_${Date.now()}@test.com`,
- username: `visitor${Date.now()}`,
- pass: 'testtest'
- });
- },
- after: (client) => {
- client.end();
- }
-};
diff --git a/test/helpers/browser.js b/test/helpers/browser.js
deleted file mode 100644
index 07da2a566..000000000
--- a/test/helpers/browser.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/* eslint-env browser */
-
-const jsdom = require('jsdom').jsdom;
-const fs = require('fs');
-const path = require('path');
-
-// Storage Mock
-function storageMock() {
- const storage = {};
-
- return {
- setItem: function(key, value) {
- storage[key] = value || '';
- },
- getItem: function(key) {
- return storage[key] || null;
- },
- removeItem: function(key) {
- delete storage[key];
- },
- get length() {
- return Object.keys(storage).length;
- },
- key: function(i) {
- const keys = Object.keys(storage);
- return keys[i] || null;
- }
- };
-}
-
-global.document = jsdom(fs.readFileSync(path.resolve(__dirname, 'index.test.html')));
-global.window = document.defaultView;
-
-// these lines are required for react-mdl
-global.window.CustomEvent = undefined;
-require('react-mdl/extra/material');
-
-global.Element = global.window.Element;
-
-global.navigator = {
- userAgent: 'node.js'
-};
-
-global.documentRef = document;
-global.localStorage = {};
-global.sessionStorage = storageMock();
-global.XMLHttpRequest = storageMock();
-
-global.Headers = function(headers) {
- return headers;
-};
diff --git a/test/helpers/index.test.html b/test/helpers/index.test.html
deleted file mode 100644
index 92ff1eb3a..000000000
--- a/test/helpers/index.test.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
Coral - (Beta)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/server/kue.js b/test/helpers/kue.js
similarity index 100%
rename from test/server/kue.js
rename to test/helpers/kue.js
diff --git a/test/helpers/mongoose.js b/test/helpers/mongoose.js
index 48cea6b3f..567aa8047 100644
--- a/test/helpers/mongoose.js
+++ b/test/helpers/mongoose.js
@@ -1,8 +1,8 @@
const mongoose = require('../../services/mongoose');
-module.exports = {};
+before(function(done) {
+ this.timeout(30000);
-module.exports.waitTillConnect = function(done) {
mongoose.connection.on('open', function(err) {
if (err) {
return done(err);
@@ -10,9 +10,9 @@ module.exports.waitTillConnect = function(done) {
return done();
});
-};
+});
-module.exports.clearDB = function(done) {
+beforeEach(function(done) {
Promise.all(Object.keys(mongoose.connection.collections).map((collection) => {
return new Promise((resolve, reject) => {
mongoose.connection.collections[collection].remove(function(err) {
@@ -30,9 +30,9 @@ module.exports.clearDB = function(done) {
.catch((err) => {
done(err);
});
-};
+});
-module.exports.disconnect = function(done) {
+after(function(done) {
mongoose.disconnect();
- return done();
-};
+ done();
+});
diff --git a/test/helpers/redis.js b/test/helpers/redis.js
index 02ab81b51..b013dfe25 100644
--- a/test/helpers/redis.js
+++ b/test/helpers/redis.js
@@ -1,15 +1,14 @@
const {createClient} = require('../../services/redis');
-
-// Create a redis client to use for clearing the database.
+const cache = require('../../services/cache');
const client = createClient();
-module.exports.clearDB = () =>
- new Promise((resolve, reject) =>
- client.flushdb((err) => {
- if (err) {
- return reject(err);
- }
+beforeEach(() => Promise.all([
+ new Promise((resolve, reject) => client.flushdb((err) => {
+ if (err) {
+ return reject(err);
+ }
- return resolve();
- })
- );
+ return resolve();
+ })),
+ cache.init(),
+]));
diff --git a/test/mocha.opts b/test/mocha.opts
index 36be84461..2b6128133 100644
--- a/test/mocha.opts
+++ b/test/mocha.opts
@@ -1,9 +1,5 @@
test/helpers/*.js
-
-test/e2e
test/server
---compilers js:babel-core/register
---require ignore-styles
--recursive
--colors
--sort
diff --git a/test/server/graph/context.js b/test/server/graph/context.js
index 7d30042e4..a12d46a67 100644
--- a/test/server/graph/context.js
+++ b/test/server/graph/context.js
@@ -1,10 +1,11 @@
-const expect = require('chai').expect;
const User = require('../../../models/user');
const Context = require('../../../graph/context');
const errors = require('../../../errors');
const SettingsService = require('../../../services/settings');
+const {expect} = require('chai');
+
describe('graph.Context', () => {
beforeEach(() => SettingsService.init());
diff --git a/test/server/graph/loaders/metrics.js b/test/server/graph/loaders/metrics.js
index 3cc5c4565..4414428bd 100644
--- a/test/server/graph/loaders/metrics.js
+++ b/test/server/graph/loaders/metrics.js
@@ -1,4 +1,3 @@
-const {expect} = require('chai');
const {graphql} = require('graphql');
const schema = require('../../../../graph/schema');
@@ -9,13 +8,15 @@ const SettingsService = require('../../../../services/settings');
const ActionModel = require('../../../../models/action');
const CommentModel = require('../../../../models/comment');
+const {expect} = require('chai');
+
describe('graph.loaders.Metrics', () => {
beforeEach(() => SettingsService.init());
describe('#Comments', () => {
const query = `
query CommentMetrics($from: Date!, $to: Date!) {
- flagged: commentMetrics(from: $from, to: $to, sort: FLAG) {
+ flagged: commentMetrics(from: $from, to: $to, sortBy: FLAG) {
id
}
}
@@ -23,11 +24,11 @@ describe('graph.loaders.Metrics', () => {
describe('different comment states', () => {
- beforeEach(() =>[
- CommentModel.create({id: '1', body: 'a new comment!'}),
- CommentModel.create({id: '2', body: 'a new comment!'}),
- CommentModel.create({id: '3', body: 'a new comment!'})
- ]);
+ beforeEach(() => CommentModel.create([
+ {id: '1', body: 'a new comment!'},
+ {id: '2', body: 'a new comment!'},
+ {id: '3', body: 'a new comment!'}
+ ]));
[
{flagged: 0, actions: []},
@@ -75,7 +76,7 @@ describe('graph.loaders.Metrics', () => {
}
query Metrics($from: Date!, $to: Date!) {
- assetsByFlag: assetMetrics(from: $from, to: $to, sort: FLAG) {
+ assetsByFlag: assetMetrics(from: $from, to: $to, sortBy: FLAG) {
...metrics
}
}
diff --git a/test/server/graph/mutations/addTag.js b/test/server/graph/mutations/addTag.js
index 38a96ad1f..52f20b065 100644
--- a/test/server/graph/mutations/addTag.js
+++ b/test/server/graph/mutations/addTag.js
@@ -1,4 +1,3 @@
-const expect = require('chai').expect;
const {graphql} = require('graphql');
const schema = require('../../../../graph/schema');
@@ -8,6 +7,8 @@ const UserModel = require('../../../../models/user');
const SettingsService = require('../../../../services/settings');
const CommentsService = require('../../../../services/comments');
+const {expect} = require('chai');
+
describe('graph.mutations.addTag', () => {
let comment, asset;
beforeEach(async () => {
diff --git a/test/server/graph/mutations/createComment.js b/test/server/graph/mutations/createComment.js
index e32943720..03d35416c 100644
--- a/test/server/graph/mutations/createComment.js
+++ b/test/server/graph/mutations/createComment.js
@@ -1,4 +1,3 @@
-const expect = require('chai').expect;
const {graphql} = require('graphql');
const schema = require('../../../../graph/schema');
@@ -11,6 +10,8 @@ const ActionModel = require('../../../../models/action');
const SettingsService = require('../../../../services/settings');
const CommentsService = require('../../../../services/comments');
+const {expect} = require('chai');
+
describe('graph.mutations.createComment', () => {
beforeEach(() => SettingsService.init());
diff --git a/test/server/graph/mutations/editComment.js b/test/server/graph/mutations/editComment.js
index 3be892f90..8507fdc36 100644
--- a/test/server/graph/mutations/editComment.js
+++ b/test/server/graph/mutations/editComment.js
@@ -1,4 +1,3 @@
-const expect = require('chai').expect;
const {graphql} = require('graphql');
const timekeeper = require('timekeeper');
@@ -9,21 +8,15 @@ const AssetModel = require('../../../../models/asset');
const SettingsService = require('../../../../services/settings');
const CommentsService = require('../../../../services/comments');
+const {expect} = require('chai');
+
describe('graph.mutations.editComment', () => {
- let asset;
- let user;
- let settings;
+ let asset, user;
beforeEach(async () => {
timekeeper.reset();
- settings = await SettingsService.init();
+ await SettingsService.init();
asset = await AssetModel.create({});
- user = await UsersService.createLocalUser(
- 'usernameA@example.com', 'password', 'usernameA');
- });
- afterEach(async () => {
- await asset.remove();
- await user.remove();
- await settings.remove();
+ user = await UsersService.createLocalUser('usernameA@example.com', 'password', 'usernameA');
});
const editCommentMutation = `
@@ -119,8 +112,7 @@ describe('graph.mutations.editComment', () => {
body: `hello there! ${String(Math.random()).slice(2)}`,
});
- const userB = await UsersService.createLocalUser(
- 'usernameB@example.com', 'password', 'usernameB');
+ const userB = await UsersService.createLocalUser('usernameB@example.com', 'password', 'usernameB');
const newBody = 'This body should never be set';
const context = new Context({user: userB});
const response = await graphql(schema, editCommentMutation, {}, context, {
@@ -133,7 +125,7 @@ describe('graph.mutations.editComment', () => {
expect(response.errors).to.be.empty;
expect(response.data.editComment.errors).to.not.be.empty;
expect(response.data.editComment.errors[0].translation_key).to.equal('NOT_AUTHORIZED');
- const commentAfterEdit = await CommentsService.findById(comment.id);
+ const commentAfterEdit = await CommentsService.findById(comment.id);
// it *hasn't* changed from the original
expect(commentAfterEdit.body).to.equal(comment.body);
@@ -160,7 +152,7 @@ describe('graph.mutations.editComment', () => {
const bannedWord = 'BANNED_WORD';
[
{
- description: 'premod: editing a REJECTED comment sets back to PREMOD',
+ description: 'premod: editing a REJECTED comment is rejected',
settings: {
moderation: 'PRE',
},
@@ -171,9 +163,7 @@ describe('graph.mutations.editComment', () => {
edit: {
body: 'I have been edited to be less offensive',
},
- afterEdit: {
- status: 'PREMOD',
- },
+ error: true
},
{
description: 'editing an ACCEPTED comment to add a bad word sets status to REJECTED',
@@ -195,7 +185,7 @@ describe('graph.mutations.editComment', () => {
},
},
{
- description: 'postmod: editing a REJECTED comment with banned word to remove banned word sets status to NONE',
+ description: 'postmod: editing a REJECTED comment with banned word be rejected',
settings: {
moderation: 'POST',
wordlist: {
@@ -209,9 +199,7 @@ describe('graph.mutations.editComment', () => {
edit: {
body: 'I have been edited to remove the bad word'
},
- afterEdit: {
- status: 'NONE',
- },
+ error: true
},
{
description: 'postmod + premodLinksEnable: editing an ACCEPTED comment to add a link sets status to PREMOD',
@@ -230,9 +218,8 @@ describe('graph.mutations.editComment', () => {
status: 'PREMOD',
},
},
- ].forEach(({description, settings, beforeEdit, edit, afterEdit, only}) => {
- const test = only ? it.only : it;
- test(description, async () => {
+ ].forEach(({description, settings, beforeEdit, edit, afterEdit, error}) => {
+ it(description, async () => {
await SettingsService.update(settings);
const context = new Context({user});
const comment = await CommentsService.publicCreate(Object.assign(
@@ -240,7 +227,7 @@ describe('graph.mutations.editComment', () => {
asset_id: asset.id,
author_id: user.id,
},
- beforeEdit,
+ beforeEdit
));
// now edit
@@ -252,11 +239,18 @@ describe('graph.mutations.editComment', () => {
body: newBody
}
});
- if (response.errors && response.errors.length) {console.error(response.errors);}
- expect(response.errors).to.be.empty;
- const commentAfterEdit = await CommentsService.findById(comment.id);
- expect(commentAfterEdit.body).to.equal(newBody);
- expect(commentAfterEdit.status).to.equal(afterEdit.status);
+
+ if (error) {
+ expect(response.data.editComment.errors).to.not.be.empty;
+ } else {
+ if (response.data.editComment.errors && response.data.editComment.errors.length) {
+ console.error(response.data.editComment.errors);
+ }
+ expect(response.data.editComment.errors).to.be.null;
+ const commentAfterEdit = await CommentsService.findById(comment.id);
+ expect(commentAfterEdit.body).to.equal(newBody);
+ expect(commentAfterEdit.status).to.equal(afterEdit.status);
+ }
});
- });
+ });
});
diff --git a/test/server/graph/mutations/ignoreUser.js b/test/server/graph/mutations/ignoreUser.js
index 256fd732b..3d9db2d00 100644
--- a/test/server/graph/mutations/ignoreUser.js
+++ b/test/server/graph/mutations/ignoreUser.js
@@ -1,4 +1,3 @@
-const expect = require('chai').expect;
const {graphql} = require('graphql');
const schema = require('../../../../graph/schema');
@@ -6,6 +5,8 @@ const Context = require('../../../../graph/context');
const UsersService = require('../../../../services/users');
const SettingsService = require('../../../../services/settings');
+const {expect} = require('chai');
+
const ignoreUserMutation = `
mutation ignoreUser ($id: ID!) {
ignoreUser(id:$id) {
diff --git a/test/server/graph/mutations/removeTag.js b/test/server/graph/mutations/removeTag.js
index a1521c2ce..4cb4f1e6a 100644
--- a/test/server/graph/mutations/removeTag.js
+++ b/test/server/graph/mutations/removeTag.js
@@ -1,4 +1,3 @@
-const expect = require('chai').expect;
const {graphql} = require('graphql');
const schema = require('../../../../graph/schema');
@@ -11,6 +10,8 @@ const SettingsService = require('../../../../services/settings');
const CommentsService = require('../../../../services/comments');
const TagsService = require('../../../../services/tags');
+const {expect} = require('chai');
+
describe('graph.mutations.removeTag', () => {
let asset, comment;
beforeEach(async () => {
diff --git a/test/server/graph/queries/asset.js b/test/server/graph/queries/asset.js
index a11155c47..68270f9ba 100644
--- a/test/server/graph/queries/asset.js
+++ b/test/server/graph/queries/asset.js
@@ -1,4 +1,3 @@
-const expect = require('chai').expect;
const {graphql} = require('graphql');
const schema = require('../../../../graph/schema');
@@ -8,6 +7,8 @@ const SettingsService = require('../../../../services/settings');
const Asset = require('../../../../models/asset');
const CommentsService = require('../../../../services/comments');
+const {expect} = require('chai');
+
describe('graph.queries.asset', () => {
let asset, users;
beforeEach(async () => {
@@ -44,7 +45,7 @@ describe('graph.queries.asset', () => {
const assetCommentsQuery = `
query assetCommentsQuery($id: ID!) {
asset(id: $id) {
- comments(limit: 10) {
+ comments(query: {limit: 10}) {
nodes {
id
body
@@ -58,7 +59,7 @@ describe('graph.queries.asset', () => {
}
`;
const res = await graphql(schema, assetCommentsQuery, {}, context, {id: asset.id});
- expect(res.erros).is.empty;
+ expect(res.errors).is.empty;
const {nodes, startCursor, endCursor, hasNextPage} = res.data.asset.comments;
expect(nodes.length).to.equal(2);
expect(startCursor).to.equal(nodes[0].created_at);
@@ -81,7 +82,7 @@ describe('graph.queries.asset', () => {
const query = `
query assetCommentsQuery($id: ID!, $url: String!, $excludeIgnored: Boolean!) {
asset(id: $id, url: $url) {
- comments(limit: 10, excludeIgnored: $excludeIgnored) {
+ comments(query: {limit: 10, excludeIgnored: $excludeIgnored}) {
nodes {
id
body
diff --git a/test/server/mongoose.js b/test/server/mongoose.js
deleted file mode 100644
index a1bac6150..000000000
--- a/test/server/mongoose.js
+++ /dev/null
@@ -1,15 +0,0 @@
-const mongoose = require('../helpers/mongoose');
-
-before(function(done) {
- this.timeout(30000);
-
- mongoose.waitTillConnect(done);
-});
-
-beforeEach(function(done) {
- mongoose.clearDB(done);
-});
-
-after(function(done) {
- mongoose.disconnect(done);
-});
diff --git a/test/server/redis.js b/test/server/redis.js
deleted file mode 100644
index 454a2afd8..000000000
--- a/test/server/redis.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const redis = require('../helpers/redis');
-const cache = require('../../services/cache');
-
-beforeEach(() => Promise.all([redis.clearDB(), cache.init()]));
diff --git a/test/server/routes/api/account/index.js b/test/server/routes/api/account/index.js
index 3195db0e5..7574c41b4 100644
--- a/test/server/routes/api/account/index.js
+++ b/test/server/routes/api/account/index.js
@@ -2,15 +2,15 @@ const passport = require('../../../passport');
const app = require('../../../../../app');
-const chai = require('chai');
-chai.use(require('chai-as-promised'));
-chai.use(require('chai-http'));
-const expect = chai.expect;
-
const UsersService = require('../../../../../services/users');
const SettingsService = require('../../../../../services/settings');
const settings = {id: '1', moderation: 'PRE', wordlist: {banned: ['bad words'], suspect: ['suspect words']}};
+const chai = require('chai');
+chai.should();
+chai.use(require('chai-http'));
+const expect = chai.expect;
+
describe('/api/v1/account/username', () => {
let mockUser;
beforeEach(async () => {
diff --git a/test/server/routes/api/assets/index.js b/test/server/routes/api/assets/index.js
index 7fd6e68d1..daccd5511 100644
--- a/test/server/routes/api/assets/index.js
+++ b/test/server/routes/api/assets/index.js
@@ -1,12 +1,11 @@
const passport = require('../../../passport');
const app = require('../../../../../app');
-const chai = require('chai');
-const expect = chai.expect;
-// Setup chai.
+const chai = require('chai');
chai.should();
chai.use(require('chai-http'));
+const expect = chai.expect;
const AssetModel = require('../../../../../models/asset');
const AssetsService = require('../../../../../services/assets');
diff --git a/test/server/routes/api/auth/index.js b/test/server/routes/api/auth/index.js
index 1d0ed6b3a..f90b2d646 100644
--- a/test/server/routes/api/auth/index.js
+++ b/test/server/routes/api/auth/index.js
@@ -1,8 +1,9 @@
const app = require('../../../../../app');
-const chai = require('chai');
-const expect = chai.expect;
+const chai = require('chai');
+chai.should();
chai.use(require('chai-http'));
+const expect = chai.expect;
const UsersService = require('../../../../../services/users');
diff --git a/test/server/routes/api/settings/index.js b/test/server/routes/api/settings/index.js
index 54a8f357f..c7704fc7e 100644
--- a/test/server/routes/api/settings/index.js
+++ b/test/server/routes/api/settings/index.js
@@ -1,11 +1,11 @@
const passport = require('../../../passport');
const app = require('../../../../../app');
-const chai = require('chai');
-const expect = chai.expect;
+const chai = require('chai');
chai.should();
chai.use(require('chai-http'));
+const expect = chai.expect;
const SettingsService = require('../../../../../services/settings');
const defaults = {id: '1', moderation: 'PRE'};
diff --git a/test/server/routes/api/user/index.js b/test/server/routes/api/user/index.js
index fc1feb66e..28ab049f9 100644
--- a/test/server/routes/api/user/index.js
+++ b/test/server/routes/api/user/index.js
@@ -2,15 +2,14 @@ const passport = require('../../../passport');
const app = require('../../../../../app');
const mailer = require('../../../../../services/mailer');
-const chai = require('chai');
-const expect = chai.expect;
const SettingsService = require('../../../../../services/settings');
const settings = {id: '1', moderation: 'PRE', wordlist: {banned: ['bad words'], suspect: ['suspect words']}};
-// Setup chai.
+const chai = require('chai');
chai.should();
chai.use(require('chai-http'));
+const expect = chai.expect;
const UsersService = require('../../../../../services/users');
diff --git a/test/server/services/actions.js b/test/server/services/actions.js
index 4d22dff6f..aef565908 100644
--- a/test/server/services/actions.js
+++ b/test/server/services/actions.js
@@ -1,36 +1,134 @@
const ActionModel = require('../../../models/action');
const ActionsService = require('../../../services/actions');
+const CommentModel = require('../../../models/comment');
-const expect = require('chai').expect;
+const chai = require('chai');
+chai.use(require('chai-as-promised'));
+const expect = chai.expect;
+
+const events = require('../../../services/events');
+const {ACTIONS_NEW, ACTIONS_DELETE} = require('../../../services/events/constants');
+
+const sinon = require('sinon');
describe('services.ActionsService', () => {
let mockActions = [];
+ let comment;
- beforeEach(() => ActionModel.create([
- {
- action_type: 'FLAG',
- item_id: '123',
- item_type: 'COMMENTS',
- user_id: 'flagginguserid'
- },
- {
- action_type: 'FLAG',
- item_id: '456',
- item_type: 'COMMENTS'
- },
- {
- action_type: 'FLAG',
- item_id: '123',
- item_type: 'COMMENTS'
- },
- {
- action_type: 'LIKE',
- item_id: '123',
- item_type: 'COMMENTS'
- }
- ]).then((actions) => {
- mockActions = actions;
- }));
+ beforeEach(async () => {
+ comment = await CommentModel.create({
+ body: 'comment 10',
+ asset_id: '123',
+ status_history: [],
+ parent_id: '',
+ author_id: '123',
+ id: '1'
+ });
+
+ mockActions = await ActionModel.create([
+ {
+ action_type: 'FLAG',
+ item_id: comment.id,
+ item_type: 'COMMENTS',
+ user_id: 'flagginguserid'
+ },
+ {
+ action_type: 'FLAG',
+ item_id: '456',
+ item_type: 'COMMENTS',
+ user_id: '1'
+ },
+ {
+ action_type: 'FLAG',
+ item_id: comment.id,
+ item_type: 'COMMENTS',
+ user_id: '2'
+ },
+ {
+ action_type: 'LIKE',
+ item_id: comment.id,
+ item_type: 'COMMENTS',
+ user_id: '3'
+ }
+ ]);
+ });
+
+ describe('#create', () => {
+
+ it('creates an action', async () => {
+ const srcAction = {
+ action_type: 'LIKE',
+ item_type: 'COMMENTS',
+ item_id: comment.id,
+ };
+
+ const createdAction = await ActionsService.create(srcAction);
+
+ expect(createdAction).is.not.null;
+ expect(createdAction).has.property('id');
+ expect(createdAction).has.property('item_id', comment.id);
+
+ const retrievedAction = await ActionModel.findOne({id: createdAction.id});
+
+ expect(retrievedAction).is.not.null;
+ expect(retrievedAction).has.property('id', createdAction.id);
+ expect(retrievedAction).has.property('item_id', comment.id);
+ });
+
+ it('fires the callback sucesfully', async () => {
+ const srcAction = {
+ action_type: 'LIKE',
+ item_type: 'COMMENTS',
+ item_id: comment.id,
+ };
+
+ const spy = sinon.spy();
+ events.once(ACTIONS_NEW, spy);
+
+ const createdAction = await ActionsService.create(srcAction);
+
+ expect(createdAction).is.not.null;
+ expect(createdAction).has.property('id');
+ expect(createdAction).has.property('item_id', comment.id);
+
+ expect(spy).to.have.been.calledWith(createdAction);
+
+ const retrievedComment = await CommentModel.findOne({id: comment.id});
+
+ expect(retrievedComment).to.have.property('action_counts');
+ expect(retrievedComment.action_counts).to.have.property('like', 1);
+ });
+
+ });
+
+ describe('#delete', () => {
+
+ it('deletes an action', async () => {
+ const deletedAction = await ActionsService.delete(mockActions[0]);
+
+ expect(deletedAction).has.property('id', mockActions[0].id);
+
+ const retrievedAction = await ActionModel.findOne({id: deletedAction.id});
+
+ expect(retrievedAction).is.null;
+ });
+
+ it('fires the callback sucesfully', async () => {
+ const spy = sinon.spy();
+ events.once(ACTIONS_DELETE, spy);
+
+ const deletedAction = await ActionsService.delete(mockActions[0]);
+
+ expect(deletedAction).has.property('id', mockActions[0].id);
+ expect(spy).to.have.been.calledWith(deletedAction);
+
+ const retrievedComment = await CommentModel.findOne({id: comment.id});
+
+ expect(retrievedComment).to.have.property('action_counts');
+ expect(retrievedComment.action_counts).to.have.property('flag', -1);
+ });
+
+ });
describe('#findById()', () => {
it('should find an action by id', () => {
@@ -43,7 +141,7 @@ describe('services.ActionsService', () => {
describe('#findByItemIdArray()', () => {
it('should find an array of actions from an array of item_ids', () => {
- return ActionsService.findByItemIdArray(['123', '456']).then((result) => {
+ return ActionsService.findByItemIdArray([comment.id, '456']).then((result) => {
expect(result).to.have.length(4);
});
});
@@ -52,14 +150,14 @@ describe('services.ActionsService', () => {
describe('#getActionSummaries()', () => {
it('should return properly formatted summaries from an array of item_ids', () => {
return ActionsService
- .getActionSummaries(['123', '789'])
+ .getActionSummaries([comment.id, '789'])
.then((summaries) => {
expect(summaries).to.have.length(2);
expect(summaries).to.deep.include({
action_type: 'LIKE',
count: 1,
- item_id: '123',
+ item_id: comment.id,
item_type: 'COMMENTS',
current_user: null
});
@@ -67,7 +165,7 @@ describe('services.ActionsService', () => {
expect(summaries).to.deep.include({
action_type: 'FLAG',
count: 2,
- item_id: '123',
+ item_id: comment.id,
item_type: 'COMMENTS',
current_user: null
});
@@ -76,15 +174,15 @@ describe('services.ActionsService', () => {
it('should include a current user when one is passed', () => {
return ActionsService
- .getActionSummaries(['123'], 'flagginguserid')
+ .getActionSummaries([comment.id], 'flagginguserid')
.then((summaries) => {
expect(summaries).to.have.length(2);
- let summary = summaries.find((s) => s.item_id === '123' && s.action_type === 'FLAG');
+ let summary = summaries.find((s) => s.item_id === comment.id && s.action_type === 'FLAG');
expect(summary).to.not.be.undefined;
expect(summary.current_user).to.not.be.null;
- expect(summary.current_user).to.have.property('item_id', '123');
+ expect(summary.current_user).to.have.property('item_id', comment.id);
expect(summary.current_user).to.have.property('item_type', 'COMMENTS');
expect(summary.current_user).to.have.property('user_id', 'flagginguserid');
expect(summary.current_user).to.have.property('action_type', 'FLAG');
@@ -93,7 +191,7 @@ describe('services.ActionsService', () => {
it('should not include a current user when one is passed for a user that doesn\'t have an action', () => {
return ActionsService
- .getActionSummaries(['123'], 'flagginguserid2')
+ .getActionSummaries([comment.id], 'flagginguserid2')
.then((summaries) => {
expect(summaries).to.have.length(2);
diff --git a/test/server/services/assets.js b/test/server/services/assets.js
index 748e177e0..6ab33321b 100644
--- a/test/server/services/assets.js
+++ b/test/server/services/assets.js
@@ -6,14 +6,12 @@ const SettingsService = require('../../../services/settings');
const url = require('url');
const chai = require('chai');
-const expect = chai.expect;
-const chaiAsPromised = require('chai-as-promised');
-chai.use(chaiAsPromised);
-
-// Use the chai should.
+chai.use(require('chai-as-promised'));
chai.should();
+const expect = chai.expect;
+
const settings = {id: '1', moderation: 'PRE', domains: {whitelist: ['new.test.com', 'test.com', 'override.test.com']}};
const defaults = {url:'http://test.com'};
diff --git a/test/server/services/comments.js b/test/server/services/comments.js
index 36e77b3ea..e33089325 100644
--- a/test/server/services/comments.js
+++ b/test/server/services/comments.js
@@ -1,14 +1,20 @@
const CommentModel = require('../../../models/comment');
const ActionModel = require('../../../models/action');
-const ActionsService = require('../../../services/actions');
+const events = require('../../../services/events');
+const {COMMENTS_EDIT} = require('../../../services/events/constants');
const UsersService = require('../../../services/users');
const SettingsService = require('../../../services/settings');
const CommentsService = require('../../../services/comments');
const settings = {id: '1', moderation: 'PRE', wordlist: {banned: ['bad words'], suspect: ['suspect words']}};
-const expect = require('chai').use(require('chai-as-promised')).expect;
+const chai = require('chai');
+chai.use(require('chai-as-promised'));
+chai.use(require('sinon-chai'));
+const expect = chai.expect;
+
+const sinon = require('sinon');
describe('services.CommentsService', () => {
const comments = [{
@@ -186,58 +192,32 @@ describe('services.CommentsService', () => {
});
- describe('#removeAction', () => {
-
- it('should remove an action', () => {
- return CommentsService
- .removeAction('3', '123', 'flag')
- .then(() => {
- return ActionsService.findByItemIdArray(['123']);
- })
- .then((actions) => {
- expect(actions.length).to.equal(0);
- });
- });
- });
-
- describe('#findByUserId', () => {
- it('should return all comments if admin', () => {
- return CommentsService
- .findByUserId('456', true)
- .then((comments) => {
- expect(comments).to.have.length(4);
- });
- });
-
- it('should not return premod and rejected comments if not admin', () => {
- return CommentsService
- .findByUserId('456')
- .then((comments) => {
- expect(comments).to.have.length(1);
- });
- });
-
- });
-
describe('#changeStatus', () => {
- it('should change the status of a comment from no status', () => {
+ it('should change the status of a comment from no status', async () => {
let comment_id = comments[0].id;
- return CommentsService.findById(comment_id)
- .then((c) => {
- expect(c.status).to.be.equal('NONE');
+ let c = await CommentsService.findById(comment_id);
+ expect(c.status).to.be.equal('NONE');
- return CommentsService.pushStatus(comment_id, 'REJECTED', '123');
- })
- .then(() => CommentsService.findById(comment_id))
- .then((c) => {
- expect(c).to.have.property('status');
- expect(c.status).to.equal('REJECTED');
- expect(c.status_history).to.have.length(1);
- expect(c.status_history[0]).to.have.property('type', 'REJECTED');
- expect(c.status_history[0]).to.have.property('assigned_by', '123');
- });
+ const spy = sinon.spy();
+ events.once(COMMENTS_EDIT, spy);
+
+ let c2 = await CommentsService.pushStatus(comment_id, 'REJECTED', '123');
+ expect(c2).to.have.property('status');
+ expect(c2.status).to.equal('REJECTED');
+ expect(c2.status_history).to.have.length(1);
+ expect(c2.status_history[0]).to.have.property('type', 'REJECTED');
+ expect(c2.status_history[0]).to.have.property('assigned_by', '123');
+
+ expect(spy).to.have.been.called;
+
+ let c3 = await CommentsService.findById(comment_id);
+ expect(c3).to.have.property('status');
+ expect(c3.status).to.equal('REJECTED');
+ expect(c3.status_history).to.have.length(1);
+ expect(c3.status_history[0]).to.have.property('type', 'REJECTED');
+ expect(c3.status_history[0]).to.have.property('assigned_by', '123');
});
it('should change the status of a comment from accepted', () => {
diff --git a/test/server/services/settings.js b/test/server/services/settings.js
index d460ae272..82d28ea41 100644
--- a/test/server/services/settings.js
+++ b/test/server/services/settings.js
@@ -1,5 +1,6 @@
const SettingsService = require('../../../services/settings');
-const expect = require('chai').expect;
+const chai = require('chai');
+const expect = chai.expect;
describe('services.SettingsService', () => {
diff --git a/test/server/services/tags.js b/test/server/services/tags.js
index 1080563f0..69630ec82 100644
--- a/test/server/services/tags.js
+++ b/test/server/services/tags.js
@@ -5,7 +5,8 @@ const SettingsService = require('../../../services/settings');
const CommentModel = require('../../../models/comment');
-const expect = require('chai').use(require('chai-as-promised')).expect;
+const chai = require('chai');
+const expect = chai.expect;
describe('services.TagsService', () => {
let comment, user;
diff --git a/test/server/services/tokens.js b/test/server/services/tokens.js
index 2aa1f291d..a89d01bef 100644
--- a/test/server/services/tokens.js
+++ b/test/server/services/tokens.js
@@ -3,10 +3,7 @@ const UsersService = require('../../../services/users');
const SettingsService = require('../../../services/settings');
const chai = require('chai');
-const chaiAsPromised = require('chai-as-promised');
-
-chai.use(chaiAsPromised);
-
+chai.use(require('chai-as-promised'));
const expect = chai.expect;
describe('services.TokensService', () => {
diff --git a/test/server/services/users.js b/test/server/services/users.js
index 53f4bc018..7340cd9cb 100644
--- a/test/server/services/users.js
+++ b/test/server/services/users.js
@@ -1,7 +1,8 @@
const UsersService = require('../../../services/users');
const SettingsService = require('../../../services/settings');
-const expect = require('chai').expect;
+const chai = require('chai');
+const expect = chai.expect;
describe('services.UsersService', () => {
diff --git a/test/server/services/wordlist.js b/test/server/services/wordlist.js
index 19545ff3e..27460f049 100644
--- a/test/server/services/wordlist.js
+++ b/test/server/services/wordlist.js
@@ -1,8 +1,10 @@
-const expect = require('chai').expect;
const Errors = require('../../../errors');
const Wordlist = require('../../../services/wordlist');
const SettingsService = require('../../../services/settings');
+const chai = require('chai');
+const expect = chai.expect;
+
describe('services.Wordlist', () => {
const wordlists = {
diff --git a/webpack.config.js b/webpack.config.js
index 873d20472..c555333bc 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -5,7 +5,7 @@ const autoprefixer = require('autoprefixer');
const precss = require('precss');
const _ = require('lodash');
const Copy = require('copy-webpack-plugin');
-const LicenseWebpackPlugin = require('license-webpack-plugin');
+const {LicenseWebpackPlugin} = require('license-webpack-plugin');
const webpack = require('webpack');
const debug = require('debug')('talk:webpack');
@@ -90,8 +90,7 @@ const config = {
plugins: [
new LicenseWebpackPlugin({
pattern: /^(MIT|ISC|BSD.*)$/,
- addUrl: true,
- suppressErrors: true
+ suppressErrors: true,
}),
new Copy([
...buildEmbeds.map((embed) => ({
diff --git a/yarn.lock b/yarn.lock
index 818049337..a0150559a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -55,7 +55,7 @@
dependencies:
"@types/node" "*"
-abab@^1.0.0, abab@^1.0.3:
+abab@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
@@ -82,7 +82,7 @@ acorn-globals@^1.0.4:
dependencies:
acorn "^2.1.0"
-acorn-globals@^3.0.0, acorn-globals@^3.1.0:
+acorn-globals@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
dependencies:
@@ -114,13 +114,6 @@ addressparser@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746"
-agent-base@2:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e"
- dependencies:
- extend "~3.0.0"
- semver "~5.0.1"
-
ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@@ -144,12 +137,6 @@ alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
-alter@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/alter/-/alter-0.2.0.tgz#c7588808617572034aae62480af26b1d4d1cb3cd"
- dependencies:
- stable "~0.1.3"
-
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
@@ -264,10 +251,6 @@ arr-flatten@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
-array-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
-
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
@@ -293,7 +276,7 @@ array.prototype.find@^2.0.1:
define-properties "^1.1.2"
es-abstract "^1.7.0"
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -327,26 +310,10 @@ assert@^1.1.1:
dependencies:
util "0.10.3"
-assertion-error@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b"
-
assertion-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-ast-traverse@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6"
-
-ast-types@0.8.12:
- version "0.8.12"
- resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc"
-
-ast-types@0.9.6, ast-types@0.x.x:
- version "0.9.6"
- resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
-
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
@@ -355,10 +322,6 @@ async@0.2.x:
version "0.2.10"
resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
-async@1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/async/-/async-1.2.1.tgz#a4816a17cd5ff516dfa2c7698a453369b9790de0"
-
async@1.x, async@^1.4.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -369,7 +332,7 @@ async@2.1.4:
dependencies:
lodash "^4.14.0"
-async@^2.0.1, async@^2.1.2, async@^2.1.4, async@^2.5.0:
+async@^2.0.1, async@^2.1.2, async@^2.1.4:
version "2.5.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
dependencies:
@@ -431,7 +394,7 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.0"
-babel-core@^6.0.0, babel-core@^6.24.0, babel-core@^6.24.1:
+babel-core@^6.24.0, babel-core@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83"
dependencies:
@@ -477,22 +440,6 @@ babel-generator@^6.18.0, babel-generator@^6.24.1:
source-map "^0.5.0"
trim-right "^1.0.1"
-babel-helper-bindify-decorators@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330"
- dependencies:
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
- dependencies:
- babel-helper-explode-assignable-expression "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
babel-helper-builder-react-jsx@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc"
@@ -519,23 +466,6 @@ babel-helper-define-map@^6.24.1:
babel-types "^6.24.1"
lodash "^4.2.0"
-babel-helper-explode-assignable-expression@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
- dependencies:
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-explode-class@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb"
- dependencies:
- babel-helper-bindify-decorators "^6.24.1"
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
babel-helper-function-name@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
@@ -603,14 +533,6 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-jest@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-19.0.0.tgz#59323ced99a3a84d359da219ca881074ffc6ce3f"
- dependencies:
- babel-core "^6.0.0"
- babel-plugin-istanbul "^4.0.0"
- babel-preset-jest "^19.0.0"
-
babel-loader@^6.4.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
@@ -636,62 +558,26 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-istanbul@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.1.tgz#c12de0fc6fe42adfb16be56f1ad11e4a9782eca9"
- dependencies:
- find-up "^2.1.0"
- istanbul-lib-instrument "^1.6.2"
- test-exclude "^4.0.3"
-
-babel-plugin-jest-hoist@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz#4ae2a04ea612a6e73651f3fde52c178991304bea"
-
babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
-babel-plugin-syntax-async-generators@^6.5.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
-
-babel-plugin-syntax-class-constructor-call@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
-
babel-plugin-syntax-class-properties@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
-babel-plugin-syntax-decorators@^6.1.18, babel-plugin-syntax-decorators@^6.13.0:
+babel-plugin-syntax-decorators@^6.1.18:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
-babel-plugin-syntax-do-expressions@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d"
-
babel-plugin-syntax-dynamic-import@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
-babel-plugin-syntax-exponentiation-operator@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
-
-babel-plugin-syntax-export-extensions@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
-
babel-plugin-syntax-flow@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
-babel-plugin-syntax-function-bind@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
-
babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
@@ -700,19 +586,7 @@ babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
-babel-plugin-syntax-trailing-function-commas@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
-
-babel-plugin-transform-async-generator-functions@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
- dependencies:
- babel-helper-remap-async-to-generator "^6.24.1"
- babel-plugin-syntax-async-generators "^6.5.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async-to-generator@^6.24.1:
+babel-plugin-transform-async-to-generator@^6.16.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
dependencies:
@@ -720,15 +594,7 @@ babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async-
babel-plugin-syntax-async-functions "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-class-constructor-call@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9"
- dependencies:
- babel-plugin-syntax-class-constructor-call "^6.18.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-class-properties@^6.23.0, babel-plugin-transform-class-properties@^6.24.1:
+babel-plugin-transform-class-properties@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
dependencies:
@@ -745,23 +611,6 @@ babel-plugin-transform-decorators-legacy@^1.3.4:
babel-runtime "^6.2.0"
babel-template "^6.3.0"
-babel-plugin-transform-decorators@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d"
- dependencies:
- babel-helper-explode-class "^6.24.1"
- babel-plugin-syntax-decorators "^6.13.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-types "^6.24.1"
-
-babel-plugin-transform-do-expressions@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb"
- dependencies:
- babel-plugin-syntax-do-expressions "^6.8.0"
- babel-runtime "^6.22.0"
-
babel-plugin-transform-es2015-arrow-functions@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
@@ -930,21 +779,6 @@ babel-plugin-transform-es2015-unicode-regex@^6.24.1:
babel-runtime "^6.22.0"
regexpu-core "^2.0.0"
-babel-plugin-transform-exponentiation-operator@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
- dependencies:
- babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
- babel-plugin-syntax-exponentiation-operator "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-export-extensions@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653"
- dependencies:
- babel-plugin-syntax-export-extensions "^6.8.0"
- babel-runtime "^6.22.0"
-
babel-plugin-transform-flow-strip-types@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
@@ -952,20 +786,13 @@ babel-plugin-transform-flow-strip-types@^6.22.0:
babel-plugin-syntax-flow "^6.18.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-function-bind@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97"
- dependencies:
- babel-plugin-syntax-function-bind "^6.8.0"
- babel-runtime "^6.22.0"
-
babel-plugin-transform-object-assign@^6.8.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba"
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.23.0:
+babel-plugin-transform-object-rest-spread@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921"
dependencies:
@@ -1056,12 +883,6 @@ babel-preset-flow@^6.23.0:
dependencies:
babel-plugin-transform-flow-strip-types "^6.22.0"
-babel-preset-jest@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz#22d67201d02324a195811288eb38294bb3cac396"
- dependencies:
- babel-plugin-jest-hoist "^19.0.0"
-
babel-preset-react@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
@@ -1073,41 +894,6 @@ babel-preset-react@^6.23.0:
babel-plugin-transform-react-jsx-source "^6.22.0"
babel-preset-flow "^6.23.0"
-babel-preset-stage-0@^6.16.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a"
- dependencies:
- babel-plugin-transform-do-expressions "^6.22.0"
- babel-plugin-transform-function-bind "^6.22.0"
- babel-preset-stage-1 "^6.24.1"
-
-babel-preset-stage-1@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
- dependencies:
- babel-plugin-transform-class-constructor-call "^6.24.1"
- babel-plugin-transform-export-extensions "^6.22.0"
- babel-preset-stage-2 "^6.24.1"
-
-babel-preset-stage-2@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1"
- dependencies:
- babel-plugin-syntax-dynamic-import "^6.18.0"
- babel-plugin-transform-class-properties "^6.24.1"
- babel-plugin-transform-decorators "^6.24.1"
- babel-preset-stage-3 "^6.24.1"
-
-babel-preset-stage-3@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395"
- dependencies:
- babel-plugin-syntax-trailing-function-commas "^6.22.0"
- babel-plugin-transform-async-generator-functions "^6.24.1"
- babel-plugin-transform-async-to-generator "^6.24.1"
- babel-plugin-transform-exponentiation-operator "^6.24.1"
- babel-plugin-transform-object-rest-spread "^6.22.0"
-
babel-register@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
@@ -1214,12 +1000,6 @@ bindings@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
-bl@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98"
- dependencies:
- readable-stream "^2.0.5"
-
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
@@ -1294,10 +1074,6 @@ braces@^1.8.2:
preserve "^0.2.0"
repeat-element "^1.1.2"
-breakable@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/breakable/-/breakable-1.0.0.tgz#784a797915a38ead27bad456b5572cb4bbaa78c1"
-
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -1368,10 +1144,6 @@ bson@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c"
-buffer-crc32@~0.2.3:
- version "0.2.13"
- resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
-
buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
@@ -1412,14 +1184,14 @@ builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-bytes@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070"
-
bytes@2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339"
+bytes@2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a"
+
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -1430,7 +1202,7 @@ callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-camelcase@^1.0.2, camelcase@^1.2.1:
+camelcase@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
@@ -1455,10 +1227,6 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000662"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000662.tgz#616b17a525b52fec14611f88af3d5a9b5438c050"
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
-
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -1486,13 +1254,6 @@ chai-http@^3.0.0:
qs "^6.2.0"
superagent "^2.0.0"
-chai-nightwatch@~0.1.x:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz#1ca56de768d3c0868fe7fc2f4d32c2fe894e6be9"
- dependencies:
- assertion-error "1.0.0"
- deep-eql "0.1.3"
-
chai@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
@@ -1728,10 +1489,6 @@ co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-co@~3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda"
-
coa@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3"
@@ -1808,22 +1565,22 @@ combined-stream@~0.0.4:
dependencies:
delayed-stream "0.0.5"
-commander@2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d"
-
commander@2.8.x:
version "2.8.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
dependencies:
graceful-readlink ">= 1.0.0"
-commander@2.9.0, commander@^2.5.0, commander@^2.8.1, commander@^2.9.0:
+commander@2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
graceful-readlink ">= 1.0.0"
+commander@^2.11.0, commander@^2.8.1, commander@^2.9.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+
commander@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
@@ -1838,29 +1595,15 @@ commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
-commoner@~0.10.3:
- version "0.10.8"
- resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5"
- dependencies:
- commander "^2.5.0"
- detective "^4.3.1"
- glob "^5.0.15"
- graceful-fs "^4.1.2"
- iconv-lite "^0.4.5"
- mkdirp "^0.5.0"
- private "^0.1.6"
- q "^1.1.2"
- recast "^0.11.17"
-
component-emitter@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
-compressible@~2.0.8:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.10.tgz#feda1c7f7617912732b29bf8cf26252a20b9eecd"
+compressible@~2.0.10:
+ version "2.0.11"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a"
dependencies:
- mime-db ">= 1.27.0 < 2"
+ mime-db ">= 1.29.0 < 2"
compression-webpack-plugin@^0.4.0:
version "0.4.0"
@@ -1871,16 +1614,17 @@ compression-webpack-plugin@^0.4.0:
optionalDependencies:
node-zopfli "^2.0.0"
-compression@^1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3"
+compression@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d"
dependencies:
accepts "~1.3.3"
- bytes "2.3.0"
- compressible "~2.0.8"
- debug "~2.2.0"
+ bytes "2.5.0"
+ compressible "~2.0.10"
+ debug "2.6.8"
on-headers "~1.0.1"
- vary "~1.1.0"
+ safe-buffer "5.1.1"
+ vary "~1.1.1"
concat-map@0.0.1:
version "0.0.1"
@@ -1907,19 +1651,12 @@ configstore@^1.0.0:
write-file-atomic "^1.1.2"
xdg-basedir "^2.0.0"
-connect-redis@^3.1.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/connect-redis/-/connect-redis-3.2.0.tgz#2d29ea60c8ae8c2c818a710247fdfed158f43388"
+connect@3.6.2:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.2.tgz#694e8d20681bfe490282c8ab886be98f09f42fe7"
dependencies:
- debug "^2.2.0"
- redis "^2.1.0"
-
-connect@3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.0.tgz#f09a4f7dcd17324b663b725c815bdb1c4158a46e"
- dependencies:
- debug "2.6.1"
- finalhandler "1.0.0"
+ debug "2.6.7"
+ finalhandler "1.0.3"
parseurl "~1.3.1"
utils-merge "1.0.0"
@@ -1958,10 +1695,6 @@ content-security-policy-builder@1.1.0:
dependencies:
dashify "^0.2.0"
-content-type-parser@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94"
-
content-type@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
@@ -2023,7 +1756,7 @@ core-js@^2.4.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -2039,10 +1772,6 @@ cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
os-homedir "^1.0.1"
require-from-string "^1.1.0"
-crc@3.4.4:
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
-
create-ecdh@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
@@ -2106,14 +1835,6 @@ crypto-browserify@^3.11.0:
public-encrypt "^4.0.0"
randombytes "^2.0.0"
-csrf@~3.0.3:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.0.6.tgz#b61120ddceeafc91e76ed5313bb5c0b2667b710a"
- dependencies:
- rndm "1.2.0"
- tsscmp "1.0.5"
- uid-safe "2.1.4"
-
css-color-function@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.0.tgz#72c767baf978f01b8a8a94f42f17ba5d22a776fc"
@@ -2236,25 +1957,16 @@ csso@~2.3.1:
clap "^1.0.9"
source-map "^0.5.3"
-cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", "cssom@>= 0.3.2 < 0.4.0":
+cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0":
version "0.3.2"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
-"cssstyle@>= 0.2.29 < 0.3.0", "cssstyle@>= 0.2.37 < 0.3.0":
+"cssstyle@>= 0.2.29 < 0.3.0":
version "0.2.37"
resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
dependencies:
cssom "0.3.x"
-csurf@^1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/csurf/-/csurf-1.9.0.tgz#49d2c6925ffcec7b7de559597c153fa533364133"
- dependencies:
- cookie "0.3.1"
- cookie-signature "1.0.6"
- csrf "~3.0.3"
- http-errors "~1.5.0"
-
cz-conventional-changelog@1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-1.1.5.tgz#0a4d1550c4e2fb6a3aed8f6cd858c21760e119b8"
@@ -2296,10 +2008,6 @@ dashify@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/dashify/-/dashify-0.2.2.tgz#6a07415a01c91faf4a32e38d9dfba71f61cb20fe"
-data-uri-to-buffer@0:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz#46e13ab9da8e309745c8d01ce547213ebdb2fe3f"
-
dataloader@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.3.0.tgz#6fec5be4b30a712e4afd30b86b4334566b97673b"
@@ -2308,11 +2016,11 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-debug@*, debug@2, debug@2.6.4, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.3:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
+debug@*, debug@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.0.0.tgz#1d2feae53349047b08b264ec41906ba17a8516e4"
dependencies:
- ms "0.7.3"
+ ms "2.0.0"
debug@2.2.0, debug@~2.2.0:
version "2.2.0"
@@ -2338,11 +2046,23 @@ debug@2.6.1:
dependencies:
ms "0.7.2"
-debug@2.6.3:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d"
+debug@2.6.7:
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e"
dependencies:
- ms "0.7.2"
+ ms "2.0.0"
+
+debug@2.6.8, debug@^2.2.0, debug@^2.3.3:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.1.1:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
+ dependencies:
+ ms "0.7.3"
debug@~0.7.4:
version "0.7.4"
@@ -2352,7 +2072,7 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-deep-eql@0.1.3, deep-eql@^0.1.3:
+deep-eql@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
dependencies:
@@ -2389,29 +2109,6 @@ defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-defs@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/defs/-/defs-1.1.1.tgz#b22609f2c7a11ba7a3db116805c139b1caffa9d2"
- dependencies:
- alter "~0.2.0"
- ast-traverse "~0.1.1"
- breakable "~1.0.0"
- esprima-fb "~15001.1001.0-dev-harmony-fb"
- simple-fmt "~0.1.0"
- simple-is "~0.2.0"
- stringmap "~0.2.2"
- stringset "~0.2.1"
- tryor "~0.1.2"
- yargs "~3.27.0"
-
-degenerator@~1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095"
- dependencies:
- ast-types "0.x.x"
- escodegen "1.x.x"
- esprima "3.x.x"
-
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
@@ -2444,6 +2141,10 @@ depd@1.1.0, depd@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
+depd@1.1.1, depd@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
+
deprecated-decorator@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37"
@@ -2465,22 +2166,11 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
-detective@^4.3.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/detective/-/detective-4.5.0.tgz#6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1"
- dependencies:
- acorn "^4.0.3"
- defined "^1.0.0"
-
dialog-polyfill@^0.4.4:
version "0.4.7"
resolved "https://registry.yarnpkg.com/dialog-polyfill/-/dialog-polyfill-0.4.7.tgz#e9995d519f1df349597193198c184ea9402fdbf5"
-diff@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf"
-
-diff@3.2.0:
+diff@3.2.0, diff@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
@@ -2592,13 +2282,9 @@ ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-ejs@0.8.3:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-0.8.3.tgz#db8aac47ff80a7df82b4c82c126fe8970870626f"
-
-ejs@^2.5.6:
- version "2.5.6"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.6.tgz#479636bfa3fe3b1debd52087f0acb204b4f19c88"
+ejs@^2.5.7:
+ version "2.5.7"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
electron-to-chromium@^1.2.7:
version "1.3.8"
@@ -2636,12 +2322,6 @@ end-of-stream@1.0.0:
dependencies:
once "~1.3.0"
-end-of-stream@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
- dependencies:
- once "^1.4.0"
-
enhanced-resolve@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec"
@@ -2663,20 +2343,20 @@ env-rewrite@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/env-rewrite/-/env-rewrite-1.0.2.tgz#3e344a95af1bdaab34a559479b8be3abd0804183"
-enzyme@^2.6.0:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.8.2.tgz#6c8bcb05012abc4aa4bc3213fb23780b9b5b1714"
+enzyme@^2.9.1:
+ version "2.9.1"
+ resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6"
dependencies:
cheerio "^0.22.0"
function.prototype.name "^1.0.0"
is-subset "^0.1.1"
- lodash "^4.17.2"
+ lodash "^4.17.4"
object-is "^1.0.1"
object.assign "^4.0.4"
- object.entries "^1.0.3"
- object.values "^1.0.3"
- prop-types "^15.5.4"
- uuid "^2.0.3"
+ object.entries "^1.0.4"
+ object.values "^1.0.4"
+ prop-types "^15.5.10"
+ uuid "^3.0.1"
errno@^0.1.3:
version "0.1.4"
@@ -2691,13 +2371,14 @@ error-ex@^1.2.0:
is-arrayish "^0.2.1"
es-abstract@^1.6.1, es-abstract@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.0"
+ has "^1.0.1"
is-callable "^1.1.3"
- is-regex "^1.0.3"
+ is-regex "^1.0.4"
es-to-primitive@^1.1.1:
version "1.1.1"
@@ -2783,7 +2464,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@1.x.x, escodegen@^1.6.1:
+escodegen@^1.6.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
dependencies:
@@ -2918,18 +2599,14 @@ espree@^3.4.0:
acorn "^5.0.1"
acorn-jsx "^3.0.0"
-esprima-fb@~15001.1001.0-dev-harmony-fb:
- version "15001.1001.0-dev-harmony-fb"
- resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659"
-
-esprima@3.x.x, esprima@^3.1.1, esprima@~3.1.0:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-
esprima@^2.6.0, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+esprima@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+
esquery@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
@@ -3016,6 +2693,10 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
+expect-ct@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.1.0.tgz#52735678de18530890d8d7b95f0ac63640958094"
+
exports-loader@^0.6.4:
version "0.6.4"
resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.4.tgz#d70fc6121975b35fc12830cf52754be2740fc886"
@@ -3023,23 +2704,9 @@ exports-loader@^0.6.4:
loader-utils "^1.0.2"
source-map "0.5.x"
-express-session@^1.15.1:
- version "1.15.2"
- resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.15.2.tgz#d98516443a4ccb8688e1725ae584c02daa4093d4"
- dependencies:
- cookie "0.3.1"
- cookie-signature "1.0.6"
- crc "3.4.4"
- debug "2.6.3"
- depd "~1.1.0"
- on-headers "~1.0.1"
- parseurl "~1.3.1"
- uid-safe "~2.1.4"
- utils-merge "1.0.0"
-
-express@^4.12.2, express@^4.15.2:
- version "4.15.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35"
+express@^4.12.2, express@^4.15.4:
+ version "4.15.4"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1"
dependencies:
accepts "~1.3.3"
array-flatten "1.1.1"
@@ -3047,37 +2714,37 @@ express@^4.12.2, express@^4.15.2:
content-type "~1.0.2"
cookie "0.3.1"
cookie-signature "1.0.6"
- debug "2.6.1"
- depd "~1.1.0"
+ debug "2.6.8"
+ depd "~1.1.1"
encodeurl "~1.0.1"
escape-html "~1.0.3"
etag "~1.8.0"
- finalhandler "~1.0.0"
+ finalhandler "~1.0.4"
fresh "0.5.0"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
parseurl "~1.3.1"
path-to-regexp "0.1.7"
- proxy-addr "~1.1.3"
- qs "6.4.0"
+ proxy-addr "~1.1.5"
+ qs "6.5.0"
range-parser "~1.2.0"
- send "0.15.1"
- serve-static "1.12.1"
+ send "0.15.4"
+ serve-static "1.12.4"
setprototypeof "1.0.3"
statuses "~1.3.1"
- type-is "~1.6.14"
+ type-is "~1.6.15"
utils-merge "1.0.0"
- vary "~1.1.0"
-
-extend@3, extend@^3.0.0, extend@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
+ vary "~1.1.1"
extend@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extend/-/extend-1.3.0.tgz#d1516fb0ff5624d2ebf9123ea1dac5a1994004f8"
+extend@^3.0.0, extend@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
+
external-editor@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
@@ -3104,7 +2771,7 @@ fastparse@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
-fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9:
+fbjs@^0.8.1, fbjs@^0.8.9:
version "0.8.12"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04"
dependencies:
@@ -3116,20 +2783,6 @@ fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9:
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
-fd-slicer@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
- dependencies:
- pend "~1.2.0"
-
-fetch-mock@^5.5.0:
- version "5.10.0"
- resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-5.10.0.tgz#52e29c72800640e48410602fe076ac3615e590ad"
- dependencies:
- glob-to-regexp "^0.3.0"
- node-fetch "^1.3.3"
- path-to-regexp "^1.7.0"
-
figures@^1.3.5:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -3156,10 +2809,6 @@ file-loader@^0.11.2:
dependencies:
loader-utils "^1.0.2"
-file-uri-to-path@0:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-0.0.2.tgz#37cdd1b5b905404b3f05e1b23645be694ff70f82"
-
filename-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
@@ -3181,11 +2830,11 @@ fill-range@^2.1.0:
repeat-element "^1.1.2"
repeat-string "^1.5.2"
-finalhandler@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.0.tgz#b5691c2c0912092f18ac23e9416bde5cd7dc6755"
+finalhandler@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89"
dependencies:
- debug "2.6.1"
+ debug "2.6.7"
encodeurl "~1.0.1"
escape-html "~1.0.3"
on-finished "~2.3.0"
@@ -3193,11 +2842,11 @@ finalhandler@1.0.0:
statuses "~1.3.1"
unpipe "~1.0.0"
-finalhandler@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.2.tgz#d0e36f9dbc557f2de14423df6261889e9d60c93a"
+finalhandler@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7"
dependencies:
- debug "2.6.4"
+ debug "2.6.8"
encodeurl "~1.0.1"
escape-html "~1.0.3"
on-finished "~2.3.0"
@@ -3220,12 +2869,6 @@ find-up@^1.0.0:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
-find-up@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- dependencies:
- locate-path "^2.0.0"
-
findup@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb"
@@ -3280,7 +2923,15 @@ form-data@^0.2.0:
combined-stream "~0.0.4"
mime-types "~2.0.3"
-form-data@^2.1.2, form-data@~2.1.1:
+form-data@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.2.0.tgz#9a5e3b9295f980b2623cf64fa238b14cebca707b"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+form-data@~2.1.1:
version "2.1.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
dependencies:
@@ -3288,6 +2939,12 @@ form-data@^2.1.2, form-data@~2.1.1:
combined-stream "^1.0.5"
mime-types "^2.1.12"
+formatio@1.2.0, formatio@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb"
+ dependencies:
+ samsam "1.x"
+
formidable@^1.0.17:
version "1.1.1"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
@@ -3327,9 +2984,9 @@ fs-extra@^0.26.4:
path-is-absolute "^1.0.0"
rimraf "^2.2.8"
-fs-extra@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
+fs-extra@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
dependencies:
graceful-fs "^4.1.2"
jsonfile "^3.0.0"
@@ -3373,24 +3030,17 @@ fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10:
mkdirp ">=0.5 0"
rimraf "2"
-ftp@~0.3.5:
- version "0.3.10"
- resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
- dependencies:
- readable-stream "1.1.x"
- xregexp "2.0.0"
-
function-bind@^1.0.2, function-bind@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
function.prototype.name@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.0.tgz#5f523ca64e491a5f95aba80cc1e391080a14482e"
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac"
dependencies:
define-properties "^1.1.2"
function-bind "^1.1.0"
- is-callable "^1.1.2"
+ is-callable "^1.1.3"
gauge@~2.7.1:
version "2.7.4"
@@ -3425,17 +3075,6 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-get-uri@1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-1.1.0.tgz#7375d04daf7fcb584b3632679cbdf339b51bb149"
- dependencies:
- data-uri-to-buffer "0"
- debug "2"
- extend "3"
- file-uri-to-path "0"
- ftp "~0.3.5"
- readable-stream "2"
-
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
@@ -3510,21 +3149,6 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
-glob-to-regexp@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
-
-glob@7.0.5:
- version "7.0.5"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
glob@7.0.x:
version "7.0.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
@@ -3547,7 +3171,7 @@ glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^5.0.15, glob@^5.0.3:
+glob@^5.0.3:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
dependencies:
@@ -3768,15 +3392,6 @@ har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
-har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
- pinkie-promise "^2.0.0"
-
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
@@ -3823,28 +3438,29 @@ hawk@~3.1.3:
hoek "2.x.x"
sntp "1.x.x"
-helmet-csp@2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.4.0.tgz#7e53a157167a0645aadd7177d12ae6c605c1842e"
+helmet-csp@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.5.1.tgz#5f3deec8f922fa7e074dbc3987c168a50573c36d"
dependencies:
camelize "1.0.0"
content-security-policy-builder "1.1.0"
dasherize "2.0.0"
lodash.reduce "4.6.0"
- platform "1.3.3"
+ platform "1.3.4"
-helmet@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.5.0.tgz#e1d6de27d2e3317d3182e00d672df3d0e1e12539"
+helmet@^3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.8.1.tgz#bef2b68ffbaa19759e858c19cca7db213bb58b2d"
dependencies:
- connect "3.6.0"
+ connect "3.6.2"
dns-prefetch-control "0.1.0"
dont-sniff-mimetype "1.0.0"
+ expect-ct "0.1.0"
frameguard "3.0.0"
- helmet-csp "2.4.0"
+ helmet-csp "2.5.1"
hide-powered-by "1.0.0"
hpkp "2.0.0"
- hsts "2.0.0"
+ hsts "2.1.0"
ienoopen "1.0.0"
nocache "2.0.0"
referrer-policy "1.1.0"
@@ -3916,22 +3532,14 @@ hr@0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/hr/-/hr-0.1.3.tgz#d9aa30f5929dabfd0b65ba395938a3e184dbcafe"
-hsts@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.0.0.tgz#a52234c6070decf214b2b6b70bb144d07e4776c7"
- dependencies:
- core-util-is "1.0.2"
+hsts@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.1.0.tgz#cbd6c918a2385fee1dd5680bfb2b3a194c0121cc"
html-comment-regex@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
-html-encoding-sniffer@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da"
- dependencies:
- whatwg-encoding "^1.0.1"
-
htmlparser2@^3.9.1:
version "3.9.2"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
@@ -3953,14 +3561,6 @@ htmlparser2@~3.8.1:
entities "1.0"
readable-stream "1.1"
-http-errors@~1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750"
- dependencies:
- inherits "2.0.3"
- setprototypeof "1.0.2"
- statuses ">= 1.3.1 < 2"
-
http-errors@~1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257"
@@ -3970,13 +3570,14 @@ http-errors@~1.6.1:
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
-http-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a"
+http-errors@~1.6.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
- agent-base "2"
- debug "2"
- extend "3"
+ depd "1.1.1"
+ inherits "2.0.3"
+ setprototypeof "1.0.3"
+ statuses ">= 1.3.1 < 2"
http-signature@~1.1.0:
version "1.1.1"
@@ -4001,23 +3602,11 @@ https-browserify@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
-https-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
-
-iconv-lite@0.4.13:
- version "0.4.13"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
-
iconv-lite@0.4.15:
version "0.4.15"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
-iconv-lite@^0.4.17, iconv-lite@^0.4.5, iconv-lite@~0.4.13:
+iconv-lite@^0.4.17, iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
@@ -4037,10 +3626,6 @@ ignore-by-default@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
-ignore-styles@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ignore-styles/-/ignore-styles-5.0.1.tgz#b49ef2274bdafcd8a4880a966bfe38d1a0bf4671"
-
ignore@^3.2.0:
version "3.2.7"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.7.tgz#4810ca5f1d8eca5595213a34b94f2eb4ed926bbd"
@@ -4148,9 +3733,9 @@ inquirer@0.8.2:
rx "^2.4.3"
through "^2.3.6"
-inquirer@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175"
+inquirer@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.2.tgz#c2aaede1507cc54d826818737742d621bef2e823"
dependencies:
ansi-escapes "^2.0.0"
chalk "^2.0.0"
@@ -4189,20 +3774,14 @@ ip@^1.1.2:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-ipaddr.js@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec"
+ipaddr.js@1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0"
is-absolute-url@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
-is-absolute@^0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f"
- dependencies:
- is-relative "^0.1.0"
-
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -4223,7 +3802,7 @@ is-builtin-module@^1.0.0:
dependencies:
builtin-modules "^1.0.0"
-is-callable@^1.1.1, is-callable@^1.1.2, is-callable@^1.1.3:
+is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
@@ -4309,7 +3888,7 @@ is-isodate@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/is-isodate/-/is-isodate-0.0.1.tgz#4fe2e937d50f3ba68c7b69b0218008b624aa5036"
-is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4:
+is-my-json-valid@^2.10.0:
version "2.16.0"
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693"
dependencies:
@@ -4368,16 +3947,12 @@ is-redirect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
-is-regex@^1.0.3:
+is-regex@^1.0.3, is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
has "^1.0.1"
-is-relative@^0.1.0:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82"
-
is-resolvable@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
@@ -4483,7 +4058,7 @@ istanbul-lib-hook@^1.0.5:
dependencies:
append-transform "^0.4.0"
-istanbul-lib-instrument@^1.6.2, istanbul-lib-instrument@^1.7.0:
+istanbul-lib-instrument@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.0.tgz#b8e0dc25709bb44e17336ab47b7bb5c97c23f659"
dependencies:
@@ -4558,9 +4133,9 @@ jodid25519@^1.0.0:
dependencies:
jsbn "~0.1.0"
-joi@^10.4.1:
- version "10.4.1"
- resolved "https://registry.yarnpkg.com/joi/-/joi-10.4.1.tgz#a2fca1f0d603d1b843f2c1e086b52461f6be1f36"
+joi@^10.6.0:
+ version "10.6.0"
+ resolved "https://registry.yarnpkg.com/joi/-/joi-10.6.0.tgz#52587f02d52b8b75cdb0c74f0b164a191a0e1fc2"
dependencies:
hoek "4.x.x"
isemail "2.x.x"
@@ -4630,30 +4205,6 @@ jsdom@^7.0.2:
whatwg-url-compat "~0.6.5"
xml-name-validator ">= 2.0.1 < 3.0.0"
-jsdom@^9.8.3:
- version "9.12.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4"
- dependencies:
- abab "^1.0.3"
- acorn "^4.0.4"
- acorn-globals "^3.1.0"
- array-equal "^1.0.0"
- content-type-parser "^1.0.1"
- cssom ">= 0.3.2 < 0.4.0"
- cssstyle ">= 0.2.37 < 0.3.0"
- escodegen "^1.6.1"
- html-encoding-sniffer "^1.0.1"
- nwmatcher ">= 1.3.9 < 2.0.0"
- parse5 "^1.5.1"
- request "^2.79.0"
- sax "^1.2.1"
- symbol-tree "^3.2.1"
- tough-cookie "^2.3.2"
- webidl-conversions "^4.0.0"
- whatwg-encoding "^1.0.1"
- whatwg-url "^4.3.0"
- xml-name-validator "^2.0.1"
-
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
@@ -4714,14 +4265,14 @@ jsonpointer@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
-jsonwebtoken@^7.0.0, jsonwebtoken@^7.3.0:
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.0.tgz#515bf2bba070ec615bad97fd2e945027eb476946"
+jsonwebtoken@^7.0.0, jsonwebtoken@^7.4.3:
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638"
dependencies:
joi "^6.10.1"
jws "^3.1.4"
lodash.once "^4.0.0"
- ms "^0.7.1"
+ ms "^2.0.0"
xtend "^4.0.1"
jsprim@^1.2.2:
@@ -4744,6 +4295,10 @@ jsx-ast-utils@^1.3.4:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
+just-extend@^1.1.22:
+ version "1.1.22"
+ resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.22.tgz#3330af756cab6a542700c64b2e4e4aa062d52fff"
+
jwa@^1.1.4:
version "1.1.5"
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5"
@@ -4765,9 +4320,9 @@ jwt-decode@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79"
-kareem@1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/kareem/-/kareem-1.4.1.tgz#ed76200044fa041ef32b4da8261e2553f1173531"
+kareem@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/kareem/-/kareem-1.5.0.tgz#e3e4101d9dcfde299769daf4b4db64d895d17448"
keymaster@^1.6.2:
version "1.6.2"
@@ -4785,9 +4340,9 @@ klaw@^1.0.0:
optionalDependencies:
graceful-fs "^4.1.9"
-kue@^0.11.5:
- version "0.11.5"
- resolved "https://registry.yarnpkg.com/kue/-/kue-0.11.5.tgz#ac2fa8c8087e4d4c48e5c9c2d4b17687eed0e1df"
+kue@^0.11.6:
+ version "0.11.6"
+ resolved "https://registry.yarnpkg.com/kue/-/kue-0.11.6.tgz#5b76916bcedd56636a107861471c63c94611860a"
dependencies:
body-parser "^1.12.2"
express "^4.12.2"
@@ -4852,11 +4407,11 @@ libqp@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8"
-license-webpack-plugin@^0.4.2:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-0.4.3.tgz#f9d88d4ebc04407a0061e8ccac26571f88e51a16"
+license-webpack-plugin@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-1.0.0.tgz#9515229075bacce8ec420cadf99a54a5f78cc7df"
dependencies:
- object-assign "^4.1.0"
+ ejs "^2.5.7"
linkify-it@^1.2.0:
version "1.2.4"
@@ -4901,25 +4456,10 @@ loader-utils@^1.0.2:
emojis-list "^2.0.0"
json5 "^0.5.0"
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
lodash-es@^4.2.1:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
-lodash._arraycopy@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1"
-
-lodash._arrayeach@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e"
-
lodash._baseassign@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
@@ -4927,21 +4467,6 @@ lodash._baseassign@^3.0.0:
lodash._basecopy "^3.0.0"
lodash.keys "^3.0.0"
-lodash._baseclone@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7"
- dependencies:
- lodash._arraycopy "^3.0.0"
- lodash._arrayeach "^3.0.0"
- lodash._baseassign "^3.0.0"
- lodash._basefor "^3.0.0"
- lodash.isarray "^3.0.0"
- lodash.keys "^3.0.0"
-
-lodash._baseclone@^4.0.0:
- version "4.5.7"
- resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434"
-
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
@@ -4950,10 +4475,6 @@ lodash._basecreate@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
-lodash._basefor@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
-
lodash._bindcallback@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
@@ -4974,10 +4495,6 @@ lodash._isiterateecall@^3.0.0:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-lodash._stack@^4.0.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/lodash._stack/-/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0"
-
lodash.assign@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa"
@@ -5002,14 +4519,6 @@ lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
-lodash.clone@3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043"
- dependencies:
- lodash._baseclone "^3.0.0"
- lodash._bindcallback "^3.0.0"
- lodash._isiterateecall "^3.0.0"
-
lodash.cond@^4.3.0:
version "4.5.2"
resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
@@ -5033,17 +4542,6 @@ lodash.defaults@^4.0.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
-lodash.defaultsdeep@4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz#6c1a586e6c5647b0e64e2d798141b8836158be8a"
- dependencies:
- lodash._baseclone "^4.0.0"
- lodash._stack "^4.0.0"
- lodash.isplainobject "^4.0.0"
- lodash.keysin "^4.0.0"
- lodash.mergewith "^4.0.0"
- lodash.rest "^4.0.0"
-
lodash.filter@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
@@ -5072,10 +4570,6 @@ lodash.isobject@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
-lodash.isplainobject@^4.0.0:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
-
lodash.isstring@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
@@ -5088,10 +4582,6 @@ lodash.keys@^3.0.0:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
-lodash.keysin@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-4.2.0.tgz#8cc3fb35c2d94acc443a1863e02fa40799ea6f28"
-
lodash.map@^4.4.0, lodash.map@^4.5.1:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
@@ -5104,10 +4594,6 @@ lodash.merge@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"
-lodash.mergewith@^4.0.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
-
lodash.once@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
@@ -5124,10 +4610,6 @@ lodash.reject@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415"
-lodash.rest@^4.0.0:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa"
-
lodash.restparam@^3.0.0:
version "3.6.1"
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
@@ -5136,6 +4618,10 @@ lodash.some@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
+lodash.toarray@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
+
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@@ -5144,14 +4630,18 @@ lodash@3.10.1, lodash@^3.3.1:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-lodash@3.9.3:
- version "3.9.3"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.9.3.tgz#0159e86832feffc6d61d852b12a953b99496bd32"
-
-lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
+lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+lolex@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6"
+
+lolex@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.1.2.tgz#2694b953c9ea4d013e5b8bfba891c991025b2629"
+
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -5170,7 +4660,7 @@ lowercase-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
-lru-cache@^2.5.0, lru-cache@~2.6.5:
+lru-cache@^2.5.0:
version "2.6.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5"
@@ -5241,9 +4731,9 @@ merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-metascraper@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-1.0.6.tgz#d7f9ec99bda3ca6870ee5b730c1b44f41d2d7fa4"
+metascraper@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-1.0.7.tgz#2343f9108f34e4d2b55b7b4f543c96dfc52e1478"
dependencies:
cheerio "^0.20.0"
chrono-node "^1.2.3"
@@ -5256,7 +4746,7 @@ methods@1.x, methods@^1.1.1, methods@^1.1.2, methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-micromatch@^2.1.5, micromatch@^2.3.11:
+micromatch@^2.1.5:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
dependencies:
@@ -5281,14 +4771,18 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-"mime-db@>= 1.27.0 < 2", mime-db@~1.27.0:
- version "1.27.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
+"mime-db@>= 1.29.0 < 2":
+ version "1.29.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
mime-db@~1.12.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7"
+mime-db@~1.27.0:
+ version "1.27.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
+
mime-types@^2.1.10, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
version "2.1.15"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
@@ -5317,7 +4811,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-"minimatch@2 || 3", minimatch@3.0.3, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3:
+"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
dependencies:
@@ -5327,30 +4821,16 @@ minimist@0.0.8, minimist@~0.0.1:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-minimist@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.0.tgz#cdf225e8898f840a258ded44fc91776770afdc93"
-
minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-mkdirp@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
- dependencies:
- minimist "0.0.8"
-
mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
-mkpath@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d"
-
mocha-junit-reporter@^1.12.1:
version "1.13.0"
resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.13.0.tgz#030db8c530b244667253b03861d4cd336f7e56c8"
@@ -5360,22 +4840,6 @@ mocha-junit-reporter@^1.12.1:
mkdirp "~0.5.1"
xml "^1.0.0"
-mocha-nightwatch@3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/mocha-nightwatch/-/mocha-nightwatch-3.2.1.tgz#0e810f9c958d91bc3982c5948044a91436182c29"
- dependencies:
- browser-stdout "1.3.0"
- commander "2.9.0"
- debug "2.2.0"
- diff "1.4.0"
- escape-string-regexp "1.0.5"
- glob "7.0.5"
- growl "1.9.2"
- json3 "3.3.2"
- lodash.create "3.1.1"
- mkdirp "0.5.1"
- supports-color "3.1.2"
-
mocha@^3.1.2:
version "3.3.0"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.3.0.tgz#d29b7428d3f52c82e2e65df1ecb7064e1aabbfb5"
@@ -5400,62 +4864,62 @@ moment@2.x.x, moment@^2.10.3:
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
-mongodb-core@2.1.10:
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.10.tgz#eb290681d196d3346a492161aa2ea0905e63151b"
+mongodb-core@2.1.15:
+ version "2.1.15"
+ resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.15.tgz#841f53b87ffff4c7458189c35c8ae827e1169764"
dependencies:
bson "~1.0.4"
require_optional "~1.0.0"
-mongodb@2.2.26:
- version "2.2.26"
- resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.26.tgz#1bd50c557c277c98e1a05da38c9839c4922b034a"
+mongodb@2.2.31:
+ version "2.2.31"
+ resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.31.tgz#1940445c661e19217bb3bf8245d9854aaef548db"
dependencies:
es6-promise "3.2.1"
- mongodb-core "2.1.10"
+ mongodb-core "2.1.15"
readable-stream "2.2.7"
-mongoose@^4.9.8:
- version "4.9.9"
- resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.9.9.tgz#8671fbe06c945f55fba7ad03797bc02f19516762"
+mongoose@^4.11.7:
+ version "4.11.7"
+ resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.11.7.tgz#39e6f60880146eadf2efc37257e628fad9ceed8d"
dependencies:
async "2.1.4"
bson "~1.0.4"
hooks-fixed "2.0.0"
- kareem "1.4.1"
- mongodb "2.2.26"
- mpath "0.2.1"
+ kareem "1.5.0"
+ mongodb "2.2.31"
+ mpath "0.3.0"
mpromise "0.5.5"
- mquery "2.3.0"
- ms "0.7.2"
- muri "1.2.1"
+ mquery "2.3.1"
+ ms "2.0.0"
+ muri "1.2.2"
regexp-clone "0.0.1"
sliced "1.0.1"
-morgan@^1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.8.1.tgz#f93023d3887bd27b78dfd6023cea7892ee27a4b1"
+morgan@^1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.8.2.tgz#784ac7734e4a453a9c6e6e8680a9329275c8b687"
dependencies:
basic-auth "~1.1.0"
- debug "2.6.1"
+ debug "2.6.8"
depd "~1.1.0"
on-finished "~2.3.0"
on-headers "~1.0.1"
-mpath@0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.2.1.tgz#3a4e829359801de96309c27a6b2e102e89f9e96e"
+mpath@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.3.0.tgz#7a58f789e9b5fd3c94520634157960f26bd5ef44"
mpromise@0.5.5:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6"
-mquery@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.3.0.tgz#3d1717ad8958d0c99e42ea2461a109f3e5f3e458"
+mquery@2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.3.1.tgz#9ab36749714800ff0bb53a681ce4bc4d5f07c87b"
dependencies:
bluebird "2.10.2"
- debug "2.2.0"
+ debug "2.6.8"
regexp-clone "0.0.1"
sliced "0.0.5"
@@ -5467,17 +4931,17 @@ ms@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
-ms@0.7.3, ms@^0.7.1:
+ms@0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
-ms@^2.0.0:
+ms@2.0.0, ms@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-muri@1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/muri/-/muri-1.2.1.tgz#ec7ea5ce6ca6a523eb1ab35bacda5fa816c9aa3c"
+muri@1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/muri/-/muri-1.2.2.tgz#63198132650db08a04cc79ccd00dd389afd2631c"
murmurhash-js@^1.0.0:
version "1.0.0"
@@ -5499,6 +4963,10 @@ nan@^2.0.0, nan@^2.3.0, nan@^2.4.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8"
+native-promise-only@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11"
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -5511,13 +4979,14 @@ natural@^0.2.0:
sylvester ">= 0.0.12"
underscore ">=1.3.1"
-natural@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/natural/-/natural-0.5.1.tgz#99a5c8b7f1be0b2d7f9a7803f596f8cc846b5aaf"
+natural@^0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/natural/-/natural-0.5.4.tgz#ace41c1655daca2912dfbf99ad7b05314e205f54"
dependencies:
apparatus ">= 0.0.9"
sylvester ">= 0.0.12"
underscore ">=1.3.1"
+ optionalDependencies:
webworker-threads ">=0.6.2"
negotiator@0.6.1:
@@ -5530,30 +4999,20 @@ nested-error-stacks@^1.0.0:
dependencies:
inherits "~2.0.1"
-netmask@~1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
-
nib@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/nib/-/nib-1.1.2.tgz#6a69ede4081b95c0def8be024a4c8ae0c2cbb6c7"
dependencies:
stylus "0.54.5"
-nightwatch@^0.9.11:
- version "0.9.14"
- resolved "https://registry.yarnpkg.com/nightwatch/-/nightwatch-0.9.14.tgz#897eb2e418b75492c3671e28e8e413abe17cc268"
+nise@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-1.0.1.tgz#0da92b10a854e97c0f496f6c2845a301280b3eef"
dependencies:
- chai-nightwatch "~0.1.x"
- ejs "0.8.3"
- lodash.clone "3.0.3"
- lodash.defaultsdeep "4.3.2"
- minimatch "3.0.3"
- mkpath "1.0.0"
- mocha-nightwatch "3.2.1"
- optimist "0.6.1"
- proxy-agent "2.0.0"
- q "1.4.1"
+ formatio "^1.2.0"
+ just-extend "^1.1.22"
+ lolex "^1.6.0"
+ path-to-regexp "^1.7.0"
no-case@^2.2.0:
version "2.3.1"
@@ -5571,15 +5030,15 @@ node-dir@^0.1.10:
dependencies:
minimatch "^3.0.2"
-node-emoji@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.5.1.tgz#fd918e412769bf8c448051238233840b2aff16a1"
+node-emoji@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826"
dependencies:
- string.prototype.codepointat "^0.2.0"
+ lodash.toarray "^4.4.0"
-node-fetch@^1.0.1, node-fetch@^1.3.3, node-fetch@^1.6.3:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04"
+node-fetch@^1.0.1, node-fetch@^1.7.2:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
@@ -5776,7 +5235,7 @@ number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-"nwmatcher@>= 1.3.7 < 2.0.0", "nwmatcher@>= 1.3.9 < 2.0.0":
+"nwmatcher@>= 1.3.7 < 2.0.0":
version "1.3.9"
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
@@ -5808,7 +5267,7 @@ object.assign@^4.0.4:
function-bind "^1.1.0"
object-keys "^1.0.10"
-object.entries@^1.0.3:
+object.entries@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
dependencies:
@@ -5824,7 +5283,7 @@ object.omit@^2.0.0:
for-own "^0.1.4"
is-extendable "^0.1.1"
-object.values@^1.0.3:
+object.values@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
dependencies:
@@ -5916,40 +5375,6 @@ output-file-sync@^1.1.0:
mkdirp "^0.5.1"
object-assign "^4.1.0"
-p-limit@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
-
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- dependencies:
- p-limit "^1.1.0"
-
-pac-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.0.0.tgz#dcd5b746581367430a236e88eacfd4e5b8d068a5"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
- get-uri "1"
- http-proxy-agent "1"
- https-proxy-agent "1"
- pac-resolver "~1.2.1"
- socks-proxy-agent "2"
- stream-to-buffer "0.1.0"
-
-pac-resolver@~1.2.1:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-1.2.6.tgz#ed03af0c5b5933505bdd3f07f75175466d5e7cfb"
- dependencies:
- co "~3.0.6"
- degenerator "~1.0.0"
- netmask "~1.0.4"
- regenerator "~0.8.13"
- thunkify "~2.1.1"
-
package-json@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0"
@@ -6007,9 +5432,9 @@ parseurl@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
-passport-jwt@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-2.2.1.tgz#0e004c94071319d673d9d9bcfd1574a868011527"
+passport-jwt@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-3.0.0.tgz#7d9e4ff0fa0522108540ce1fcfa83bbd8faa29c9"
dependencies:
jsonwebtoken "^7.0.0"
passport-strategy "^1.0.0"
@@ -6024,9 +5449,9 @@ passport-strategy@1.x.x, passport-strategy@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
-passport@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/passport/-/passport-0.3.2.tgz#9dd009f915e8fe095b0124a01b8f82da07510102"
+passport@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811"
dependencies:
passport-strategy "1.x.x"
pause "0.0.1"
@@ -6041,10 +5466,6 @@ path-exists@^2.0.0:
dependencies:
pinkie-promise "^2.0.0"
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -6091,10 +5512,6 @@ pbkdf2@^3.0.3:
dependencies:
create-hmac "^1.1.2"
-pend@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-
performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
@@ -6135,14 +5552,18 @@ pkg-up@^1.0.0:
dependencies:
find-up "^1.0.0"
-platform@1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.3.tgz#646c77011899870b6a0903e75e997e8e51da7461"
+platform@1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.4.tgz#6f0fb17edaaa48f21442b3a975c063130f1c3ebd"
pluralize@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+pluralize@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
+
pop-iterate@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/pop-iterate/-/pop-iterate-1.0.1.tgz#ceacfdab4abf353d7a0f2aaa2c1fc7b3f9413ba3"
@@ -6637,7 +6058,7 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-private@^0.1.6, private@~0.1.5:
+private@^0.1.6:
version "0.1.7"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
@@ -6649,7 +6070,7 @@ process@^0.11.0:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
-progress@1.1.8, progress@^1.1.8:
+progress@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
@@ -6676,25 +6097,12 @@ protocols@^1.1.0, protocols@^1.4.0:
version "1.4.5"
resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.5.tgz#21de1f441c4ef7094408ed9f1c94f7a114b87557"
-proxy-addr@~1.1.3:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3"
+proxy-addr@~1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918"
dependencies:
forwarded "~0.1.0"
- ipaddr.js "1.3.0"
-
-proxy-agent@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
- http-proxy-agent "1"
- https-proxy-agent "1"
- lru-cache "~2.6.5"
- pac-proxy-agent "1"
- socks-proxy-agent "2"
+ ipaddr.js "1.4.0"
prr@~0.0.0:
version "0.0.0"
@@ -6825,14 +6233,10 @@ pym.js@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pym.js/-/pym.js-1.2.0.tgz#feb1e2c9b396613e5172192b0cdd75408f9c8322"
-q@1.1.2:
+q@1.1.2, q@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/q/-/q-1.1.2.tgz#6357e291206701d99f197ab84e57e8ad196f2a89"
-q@1.4.1, q@^1.1.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-
q@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/q/-/q-2.0.3.tgz#75b8db0255a1a5af82f58c3f3aaa1efec7d0d134"
@@ -6841,13 +6245,13 @@ q@2.0.3:
pop-iterate "^1.0.1"
weak-map "^1.0.5"
-qs@6.4.0, qs@^6.1.0, qs@^6.2.0, qs@~6.4.0:
+qs@6.4.0, qs@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
-qs@~6.3.0:
- version "6.3.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
+qs@6.5.0, qs@^6.1.0, qs@^6.2.0:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49"
query-string@^4.1.0, query-string@^4.2.2:
version "4.3.4"
@@ -6882,10 +6286,6 @@ ramda@^0.23.0:
version "0.23.0"
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.23.0.tgz#ccd13fff73497a93974e3e86327bfd87bd6e8e2b"
-random-bytes@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
-
randomatic@^1.1.3:
version "1.1.6"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
@@ -6918,13 +6318,6 @@ rc@^1.0.1, rc@~1.1.6:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-addons-test-utils@^15.4.2:
- version "15.5.1"
- resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.5.1.tgz#e0d258cda2a122ad0dff69f838260d0c3958f5f7"
- dependencies:
- fbjs "^0.8.4"
- object-assign "^4.1.0"
-
react-apollo@^1.4.12:
version "1.4.12"
resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-1.4.12.tgz#0cacbdd335acec4c1079feb48047df1c43f77bdf"
@@ -7073,7 +6466,7 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
-readable-stream@1.1, readable-stream@1.1.x:
+readable-stream@1.1:
version "1.1.13"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
dependencies:
@@ -7082,7 +6475,7 @@ readable-stream@1.1, readable-stream@1.1.x:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@2, readable-stream@2.2.7, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.6:
+readable-stream@2.2.7, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.6:
version "2.2.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1"
dependencies:
@@ -7130,24 +6523,6 @@ readline2@^1.0.1:
is-fullwidth-code-point "^1.0.0"
mute-stream "0.0.5"
-recast@0.10.33:
- version "0.10.33"
- resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697"
- dependencies:
- ast-types "0.8.12"
- esprima-fb "~15001.1001.0-dev-harmony-fb"
- private "~0.1.5"
- source-map "~0.5.0"
-
-recast@^0.11.17:
- version "0.11.23"
- resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
- dependencies:
- ast-types "0.9.6"
- esprima "~3.1.0"
- private "~0.1.5"
- source-map "~0.5.0"
-
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -7167,7 +6542,7 @@ redis-commands@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b"
-redis-parser@^2.0.0, redis-parser@^2.5.0:
+redis-parser@^2.0.0, redis-parser@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"
@@ -7175,13 +6550,13 @@ redis@^0.12.1:
version "0.12.1"
resolved "https://registry.yarnpkg.com/redis/-/redis-0.12.1.tgz#64df76ad0fc8acebaebd2a0645e8a48fac49185e"
-redis@^2.1.0, redis@^2.6.3, redis@^2.7.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/redis/-/redis-2.7.1.tgz#7d56f7875b98b20410b71539f1d878ed58ebf46a"
+redis@^2.6.3, redis@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02"
dependencies:
double-ended-queue "^2.1.0-0"
redis-commands "^1.2.0"
- redis-parser "^2.5.0"
+ redis-parser "^2.6.0"
redis@~2.6.0-2:
version "2.6.5"
@@ -7212,10 +6587,6 @@ reduce-function-call@^1.0.1:
dependencies:
balanced-match "^0.4.2"
-redux-mock-store@^1.2.1:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.2.3.tgz#1b3ad299da91cb41ba30d68e3b6f024475fb9e1b"
-
redux-thunk@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5"
@@ -7241,10 +6612,6 @@ regenerator-runtime@^0.10.0:
version "0.10.4"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.4.tgz#74cb6598d3ba2eb18694e968a40e2b3b4df9cf93"
-regenerator-runtime@~0.9.5:
- version "0.9.6"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029"
-
regenerator-transform@0.9.11:
version "0.9.11"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283"
@@ -7253,18 +6620,6 @@ regenerator-transform@0.9.11:
babel-types "^6.19.0"
private "^0.1.6"
-regenerator@^0.8.46, regenerator@~0.8.13:
- version "0.8.46"
- resolved "https://registry.yarnpkg.com/regenerator/-/regenerator-0.8.46.tgz#154c327686361ed52cad69b2545efc53a3d07696"
- dependencies:
- commoner "~0.10.3"
- defs "~1.1.0"
- esprima-fb "~15001.1001.0-dev-harmony-fb"
- private "~0.1.5"
- recast "0.10.33"
- regenerator-runtime "~0.9.5"
- through "~2.3.8"
-
regex-cache@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
@@ -7332,31 +6687,6 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@2.79.0:
- version "2.79.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- qs "~6.3.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
- uuid "^3.0.0"
-
request@^2.55.0, request@^2.74.0, request@^2.79.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
@@ -7422,9 +6752,9 @@ resolve-from@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
dependencies:
path-parse "^1.0.5"
@@ -7466,10 +6796,6 @@ ripemd160@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e"
-rndm@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c"
-
run-async@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
@@ -7500,15 +6826,23 @@ rx@^2.4.3:
version "2.5.3"
resolved "https://registry.yarnpkg.com/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566"
-safe-buffer@^5.0.1, safe-buffer@~5.0.1:
+safe-buffer@5.1.1, safe-buffer@^5.0.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+safe-buffer@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
+samsam@1.x, samsam@^1.1.3:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.2.1.tgz#edd39093a3184370cb859243b2bdf255e7d8ea67"
+
sax@0.5.x:
version "0.5.8"
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
-sax@^1.1.4, sax@^1.2.1, sax@~1.2.1:
+sax@^1.1.4, sax@~1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828"
@@ -7516,22 +6850,6 @@ select@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
-selenium-standalone@^5.11.2:
- version "5.11.2"
- resolved "https://registry.yarnpkg.com/selenium-standalone/-/selenium-standalone-5.11.2.tgz#724ccaa72fb26f3711e0e20989e478c4133df844"
- dependencies:
- async "1.2.1"
- commander "2.6.0"
- lodash "3.9.3"
- minimist "1.1.0"
- mkdirp "0.5.0"
- progress "1.1.8"
- request "2.79.0"
- tar-stream "1.5.2"
- urijs "1.16.1"
- which "1.1.1"
- yauzl "^2.5.0"
-
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@@ -7542,44 +6860,44 @@ semver-regex@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9"
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
semver@5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.0.tgz#85f2cf8550465c4df000cf7d86f6b054106ab9e5"
-semver@~5.0.1:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
+semver@~5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-send@0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.15.1.tgz#8a02354c26e6f5cca700065f5f0cdeba90ec7b5f"
+send@0.15.4:
+ version "0.15.4"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9"
dependencies:
- debug "2.6.1"
- depd "~1.1.0"
+ debug "2.6.8"
+ depd "~1.1.1"
destroy "~1.0.4"
encodeurl "~1.0.1"
escape-html "~1.0.3"
etag "~1.8.0"
fresh "0.5.0"
- http-errors "~1.6.1"
+ http-errors "~1.6.2"
mime "1.3.4"
- ms "0.7.2"
+ ms "2.0.0"
on-finished "~2.3.0"
range-parser "~1.2.0"
statuses "~1.3.1"
-serve-static@1.12.1:
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.1.tgz#7443a965e3ced647aceb5639fa06bf4d1bbe0039"
+serve-static@1.12.4:
+ version "1.12.4"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961"
dependencies:
encodeurl "~1.0.1"
escape-html "~1.0.3"
parseurl "~1.3.1"
- send "0.15.1"
+ send "0.15.4"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@@ -7593,10 +6911,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-setprototypeof@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08"
-
setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
@@ -7646,14 +6960,6 @@ simple-commit-message@2.2.1:
semver "5.1.0"
word-wrap "1.1.0"
-simple-fmt@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/simple-fmt/-/simple-fmt-0.1.0.tgz#191bf566a59e6530482cb25ab53b4a8dc85c3a6b"
-
-simple-is@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0"
-
simplemde@^1.11.2:
version "1.11.2"
resolved "https://registry.yarnpkg.com/simplemde/-/simplemde-1.11.2.tgz#a23a35d978d2c40ef07dec008c92f070d8e080e3"
@@ -7662,6 +6968,24 @@ simplemde@^1.11.2:
codemirror-spell-checker "*"
marked "*"
+sinon-chai@^2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.13.0.tgz#b9a42e801c20234bfc2f43b29e6f4f61b60990c4"
+
+sinon@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-3.2.1.tgz#d8adabd900730fd497788a027049c64b08be91c2"
+ dependencies:
+ diff "^3.1.0"
+ formatio "1.2.0"
+ lolex "^2.1.2"
+ native-promise-only "^0.8.1"
+ nise "^1.0.1"
+ path-to-regexp "^1.7.0"
+ samsam "^1.1.3"
+ text-encoding "0.6.4"
+ type-detect "^4.0.0"
+
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -7709,15 +7033,7 @@ sntp@1.x.x:
dependencies:
hoek "2.x.x"
-socks-proxy-agent@2:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.0.0.tgz#c674842d70410fb28ae1e92e6135a927854bc275"
- dependencies:
- agent-base "2"
- extend "3"
- socks "~1.1.5"
-
-socks@1.1.9, socks@~1.1.5:
+socks@1.1.9:
version "1.1.9"
resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691"
dependencies:
@@ -7738,6 +7054,10 @@ source-list-map@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.1.tgz#1a33ac210ca144d1e561f906ebccab5669ff4cb4"
+source-list-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
+
source-map-support@^0.4.2:
version "0.4.14"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef"
@@ -7756,7 +7076,7 @@ source-map@0.4.x, source-map@^0.4.4:
dependencies:
amdefine ">=0.0.4"
-source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3:
+source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3:
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
@@ -7813,10 +7133,6 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
-stable@~0.1.3:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10"
-
"statuses@>= 1.3.1 < 2", statuses@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
@@ -7848,16 +7164,6 @@ stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
-stream-to-buffer@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9"
- dependencies:
- stream-to "~0.2.0"
-
-stream-to@~0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d"
-
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -7887,10 +7193,6 @@ string-width@^2.0.0, string-width@^2.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
-string.prototype.codepointat@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78"
-
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -7901,14 +7203,6 @@ string_decoder@~1.0.0:
dependencies:
buffer-shims "~1.0.0"
-stringmap@~0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1"
-
-stringset@~0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/stringset/-/stringset-0.2.1.tgz#ef259c4e349344377fcd1c913dd2e848c9c042b5"
-
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -8047,7 +7341,7 @@ symbol-observable@^1.0.2, symbol-observable@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
-"symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.1:
+"symbol-tree@>= 3.1.0 < 4.0.0":
version "3.2.2"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
@@ -8079,15 +7373,6 @@ tar-pack@~3.3.0:
tar "~2.2.1"
uid-number "~0.0.6"
-tar-stream@1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf"
- dependencies:
- bl "^1.0.0"
- end-of-stream "^1.0.0"
- readable-stream "^2.0.0"
- xtend "^4.0.0"
-
tar@~2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@@ -8100,21 +7385,15 @@ tcomb@^2.5.1:
version "2.7.0"
resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0"
-test-exclude@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.0.3.tgz#86a13ce3effcc60e6c90403cf31a27a60ac6c4e7"
- dependencies:
- arrify "^1.0.1"
- micromatch "^2.3.11"
- object-assign "^4.1.0"
- read-pkg-up "^1.0.1"
- require-main-filename "^1.0.1"
+text-encoding@0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19"
text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-through@2, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.8:
+through@2, through@^2.3.6, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -8124,10 +7403,6 @@ throwback@^1.1.0:
dependencies:
any-promise "^1.3.0"
-thunkify@~2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
-
timeago.js@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/timeago.js/-/timeago.js-2.0.5.tgz#730c74fbdb0b0917a553675a4460e3a7f80db86c"
@@ -8225,13 +7500,13 @@ touch@1.0.0:
dependencies:
nopt "~1.0.10"
-tough-cookie@^2.0.0, tough-cookie@^2.2.0, tough-cookie@^2.3.2, tough-cookie@~2.3.0:
+tough-cookie@^2.0.0, tough-cookie@^2.2.0, tough-cookie@~2.3.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
dependencies:
punycode "^1.4.1"
-tr46@~0.0.1, tr46@~0.0.3:
+tr46@~0.0.1:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -8243,14 +7518,6 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
-tryor@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/tryor/-/tryor-0.1.2.tgz#8145e4ca7caff40acde3ccf946e8b8bb75b4172b"
-
-tsscmp@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97"
-
tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
@@ -8261,10 +7528,6 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
-tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
-
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
@@ -8283,7 +7546,11 @@ type-detect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
-type-is@~1.6.14:
+type-detect@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea"
+
+type-is@~1.6.14, type-is@~1.6.15:
version "1.6.15"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
dependencies:
@@ -8323,12 +7590,6 @@ uid-number@~0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
-uid-safe@2.1.4, uid-safe@~2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.4.tgz#3ad6f38368c6d4c8c75ec17623fb79aa1d071d81"
- dependencies:
- random-bytes "~1.0.0"
-
ultron@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864"
@@ -8379,10 +7640,6 @@ update-notifier@0.5.0:
semver-diff "^2.0.0"
string-length "^1.0.0"
-urijs@1.16.1:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.16.1.tgz#859ad31890f5f9528727be89f1932c94fb4731e2"
-
url-loader@^0.5.9:
version "0.5.9"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295"
@@ -8425,13 +7682,13 @@ utils-merge@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
-uuid@^2.0.1, uuid@^2.0.2, uuid@^2.0.3:
+uuid@^2.0.1, uuid@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
-uuid@^3.0.0, uuid@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
+uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
v8flags@^2.0.10:
version "2.1.1"
@@ -8454,7 +7711,7 @@ validate-npm-package-license@^3.0.1:
spdx-correct "~1.0.0"
spdx-expression-parse "~1.0.0"
-vary@~1.1.0:
+vary@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37"
@@ -8500,14 +7757,6 @@ webidl-conversions@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-2.0.1.tgz#3bf8258f7d318c7443c36f2e169402a1a6703506"
-webidl-conversions@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
-
-webidl-conversions@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0"
-
webpack-sources@^0.1.0:
version "0.1.5"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750"
@@ -8522,6 +7771,13 @@ webpack-sources@^0.2.3:
source-list-map "^1.1.1"
source-map "~0.5.3"
+webpack-sources@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf"
+ dependencies:
+ source-list-map "^2.0.0"
+ source-map "~0.5.3"
+
webpack@^2.3.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.4.1.tgz#15a91dbe34966d8a4b99c7d656efd92a2e5a6f6a"
@@ -8555,12 +7811,6 @@ webworker-threads@>=0.6.2:
bindings "^1.2.1"
nan "^2.4.0"
-whatwg-encoding@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4"
- dependencies:
- iconv-lite "0.4.13"
-
whatwg-fetch@>=0.10.0, whatwg-fetch@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
@@ -8571,13 +7821,6 @@ whatwg-url-compat@~0.6.5:
dependencies:
tr46 "~0.0.1"
-whatwg-url@^4.3.0:
- version "4.7.1"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.7.1.tgz#df4dc2e3f25a63b1fa5b32ed6d6c139577d690de"
- dependencies:
- tr46 "~0.0.3"
- webidl-conversions "^3.0.0"
-
whet.extend@~0.9.9:
version "0.9.9"
resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
@@ -8586,12 +7829,6 @@ which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
-which@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.1.1.tgz#9ce512459946166e12c083f08ec073380fc8cbbb"
- dependencies:
- is-absolute "^0.1.7"
-
which@^1.1.1, which@^1.2.9:
version "1.2.14"
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
@@ -8608,10 +7845,6 @@ window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-window-size@^0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
-
window-size@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
@@ -8681,7 +7914,7 @@ xdg-basedir@^2.0.0:
dependencies:
os-homedir "^1.0.0"
-"xml-name-validator@>= 2.0.1 < 3.0.0", xml-name-validator@^2.0.1:
+"xml-name-validator@>= 2.0.1 < 3.0.0":
version "2.0.1"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
@@ -8689,15 +7922,11 @@ xml@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
-xregexp@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
-
xtend@^4.0.0, xtend@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-y18n@^3.2.0, y18n@^3.2.1:
+y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
@@ -8803,24 +8032,6 @@ yargs@~3.10.0:
decamelize "^1.0.0"
window-size "0.1.0"
-yargs@~3.27.0:
- version "3.27.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.27.0.tgz#21205469316e939131d59f2da0c6d7f98221ea40"
- dependencies:
- camelcase "^1.2.1"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- os-locale "^1.4.0"
- window-size "^0.1.2"
- y18n "^3.2.0"
-
-yauzl@^2.5.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2"
- dependencies:
- buffer-crc32 "~0.2.3"
- fd-slicer "~1.0.1"
-
zen-observable-ts@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.4.0.tgz#a74bc9fe59747948a577bd513d438e70fcfae7e2"