From 2d5a3203db30250cff756cb14011c221ef480fe4 Mon Sep 17 00:00:00 2001 From: NGPixel Date: Sun, 24 Dec 2017 00:34:47 -0500 Subject: [PATCH] feat: modular logging + setup wizard --- .gitignore | 5 +- assets/svg/login-bg-motif.svg | 3 + client/js/app.js | 8 +- ...anager.component.js => setup.component.js} | 0 client/scss/app.scss | 2 +- .../{config-manager.scss => setup.scss} | 2 +- client/scss/pages/_login.scss | 5 +- config.sample.yml | 8 +- dev/fuse/index.js | 10 - dev/fuse/tasks.js | 25 +- package.json | 51 +- server/app/data.yml | 22 +- .../{ => extensions}/authentication/azure.js | 0 .../authentication/facebook.js | 0 .../{ => extensions}/authentication/github.js | 0 .../{ => extensions}/authentication/google.js | 0 .../{ => extensions}/authentication/ldap.js | 0 .../{ => extensions}/authentication/local.js | 2 - .../authentication/microsoft.js | 0 .../{ => extensions}/authentication/slack.js | 0 server/extensions/logging/bugsnag.js | 32 + server/extensions/logging/console.js | 22 + server/extensions/logging/loggly.js | 21 + server/extensions/logging/papertrail.js | 20 + server/extensions/logging/rollbar.js | 32 + server/extensions/logging/sentry.js | 32 + server/master.js | 20 +- server/middlewares/auth.js | 21 +- server/modules/auth.js | 8 +- server/modules/db.js | 2 +- server/modules/disk.js | 2 +- server/modules/git.js | 6 +- server/modules/kernel.js | 18 +- server/modules/logger.js | 78 +- server/modules/queue.js | 2 +- server/modules/redis.js | 2 +- server/modules/winston-transports/bugsnag.js | 20 - server/modules/winston-transports/rollbar.js | 20 - server/modules/winston-transports/sentry.js | 20 - server/{configure.js => setup.js} | 4 +- server/views/master.pug | 14 +- .../views/{configure/index.pug => setup.pug} | 8 +- yarn.lock | 1009 +++++++++++------ 43 files changed, 998 insertions(+), 558 deletions(-) create mode 100644 assets/svg/login-bg-motif.svg rename client/js/components/{config-manager.component.js => setup.component.js} (100%) rename client/scss/components/{config-manager.scss => setup.scss} (98%) rename server/{ => extensions}/authentication/azure.js (100%) rename server/{ => extensions}/authentication/facebook.js (100%) rename server/{ => extensions}/authentication/github.js (100%) rename server/{ => extensions}/authentication/google.js (100%) rename server/{ => extensions}/authentication/ldap.js (100%) rename server/{ => extensions}/authentication/local.js (98%) rename server/{ => extensions}/authentication/microsoft.js (100%) rename server/{ => extensions}/authentication/slack.js (100%) create mode 100644 server/extensions/logging/bugsnag.js create mode 100644 server/extensions/logging/console.js create mode 100644 server/extensions/logging/loggly.js create mode 100644 server/extensions/logging/papertrail.js create mode 100644 server/extensions/logging/rollbar.js create mode 100644 server/extensions/logging/sentry.js delete mode 100644 server/modules/winston-transports/bugsnag.js delete mode 100644 server/modules/winston-transports/rollbar.js delete mode 100644 server/modules/winston-transports/sentry.js rename server/{configure.js => setup.js} (99%) rename server/views/{configure/index.pug => setup.pug} (99%) diff --git a/.gitignore b/.gitignore index 9aa8c6a8..60f8cc05 100644 --- a/.gitignore +++ b/.gitignore @@ -15,9 +15,6 @@ npm/node_modules .node_repl_history npm-debug.log* -# NewRelic APM -newrelic.js - # Generated assets /assets/js /assets/css @@ -41,4 +38,4 @@ newrelic.js test-results/ # Localization Resources -/server/locales/*.yml \ No newline at end of file +/server/locales/**/*.yml \ No newline at end of file diff --git a/assets/svg/login-bg-motif.svg b/assets/svg/login-bg-motif.svg new file mode 100644 index 00000000..8807e468 --- /dev/null +++ b/assets/svg/login-bg-motif.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/client/js/app.js b/client/js/app.js index e5aa00e2..48b32f07 100644 --- a/client/js/app.js +++ b/client/js/app.js @@ -1,7 +1,6 @@ 'use strict' /* global siteConfig */ -/* eslint-disable no-new */ import CONSTANTS from './constants' @@ -14,6 +13,7 @@ import { HttpLink } from 'apollo-link-http' import { InMemoryCache } from 'apollo-cache-inmemory' import store from './store' import icons from '../svg/nc-icons.svg' + // ==================================== // Load Modules // ==================================== @@ -56,7 +56,7 @@ import adminEditUserComponent from './pages/admin-edit-user.component.js' import adminProfileComponent from './pages/admin-profile.component.js' import adminSettingsComponent from './pages/admin-settings.component.js' import adminThemeComponent from './pages/admin-theme.component.js' -import configManagerComponent from './components/config-manager.component.js' +import setupComponent from './components/setup.component.js' import contentViewComponent from './pages/content-view.component.js' import editorComponent from './components/editor.component.js' import sourceViewComponent from './pages/source-view.component.js' @@ -74,7 +74,7 @@ window.CONSTANTS = CONSTANTS window.graphQL = new ApolloClient({ link: new HttpLink({ - uri: window.location.protocol + '//' + window.location.host + siteConfig.path + '/graphql' + uri: window.location.protocol + '//' + window.location.host + siteConfig.path + 'graphql' }), cache: new InMemoryCache(), connectToDevTools: (process.env.node_env === 'development') @@ -111,7 +111,6 @@ Vue.component('adminSettings', adminSettingsComponent) Vue.component('adminTheme', adminThemeComponent) Vue.component('anchor', anchorComponent) Vue.component('colorPicker', colorPickerComponent) -Vue.component('configManager', configManagerComponent) Vue.component('contentView', contentViewComponent) Vue.component('editor', editorComponent) Vue.component('editorCodeblock', editorCodeblockComponent) @@ -130,6 +129,7 @@ Vue.component('modalProfile2fa', modalProfile2faComponent) Vue.component('modalUpgradeSystem', modalUpgradeSystemComponent) Vue.component('pageLoader', pageLoaderComponent) Vue.component('search', searchComponent) +Vue.component('setup', setupComponent) Vue.component('sourceView', sourceViewComponent) Vue.component('toggle', toggleComponent) Vue.component('tree', treeComponent) diff --git a/client/js/components/config-manager.component.js b/client/js/components/setup.component.js similarity index 100% rename from client/js/components/config-manager.component.js rename to client/js/components/setup.component.js diff --git a/client/scss/app.scss b/client/scss/app.scss index 19e92481..2f28bcf9 100644 --- a/client/scss/app.scss +++ b/client/scss/app.scss @@ -16,7 +16,6 @@ $primary: 'indigo'; @import 'components/button'; @import 'components/collapsable-nav'; @import 'components/color-picker'; -@import 'components/config-manager'; @import 'components/footer'; @import 'components/form'; @import 'components/grid'; @@ -27,6 +26,7 @@ $primary: 'indigo'; @import 'components/nav'; @import 'components/panel'; @import 'components/search'; +@import 'components/setup'; @import 'components/sidebar'; @import 'components/table'; @import 'components/toggle'; diff --git a/client/scss/components/config-manager.scss b/client/scss/components/setup.scss similarity index 98% rename from client/scss/components/config-manager.scss rename to client/scss/components/setup.scss index a89e62f5..75116237 100644 --- a/client/scss/components/config-manager.scss +++ b/client/scss/components/setup.scss @@ -1,4 +1,4 @@ -.config-manager { +.setup { background-color: #1565c0; background-image: url('../svg/config-bg.svg'); width: 100%; diff --git a/client/scss/pages/_login.scss b/client/scss/pages/_login.scss index be90d44f..8e8ad17b 100644 --- a/client/scss/pages/_login.scss +++ b/client/scss/pages/_login.scss @@ -1,5 +1,8 @@ .login { - background-image: linear-gradient(to right, mc('blue', '400'), mc('blue', '600')); + background-color: #0288d1; + background-image: url('../svg/login-bg-motif.svg'); + background-repeat: repeat; + background-size: 30%; width: 100%; height: 100%; display: flex; diff --git a/config.sample.yml b/config.sample.yml index d4ba3e2a..86819668 100644 --- a/config.sample.yml +++ b/config.sample.yml @@ -21,6 +21,7 @@ paths: # --------------------------------------------------------------------- # Database # --------------------------------------------------------------------- +# PostgreSQL 9.5 or later required db: host: localhost @@ -32,6 +33,7 @@ db: # --------------------------------------------------------------------- # Redis # --------------------------------------------------------------------- +# Redis 3.2 or later required redis: host: localhost @@ -49,11 +51,9 @@ logLevel: info # --------------------------------------------------------------------- # Configuration Mode # --------------------------------------------------------------------- -# Possible values: -# - interactive (recommended) -# - file +# Possible values: auto (default), file, setup -configMode: interactive +configMode: auto # --------------------------------------------------------------------- # Background Workers diff --git a/dev/fuse/index.js b/dev/fuse/index.js index 806545fa..644269fa 100644 --- a/dev/fuse/index.js +++ b/dev/fuse/index.js @@ -171,16 +171,6 @@ Promise.mapSeries(tasksToRun, fn => fn()).then(() => { fuse.run().then(() => { console.info(colors.green.bold('\nAssets compilation + bundling completed.')) - - if (opts.dev) { - nodemon({ - exec: 'node server', - ignore: ['assets/', 'client/', 'data/', 'dev/', 'node_modules/', 'repo/', 'test/', 'test-results/'], - ext: 'js json graphql', - watch: ['server'], - env: { 'NODE_ENV': 'development' } - }) - } return true }).catch(err => { console.error(colors.red(' X Bundle compilation failed! ' + err.message)) diff --git a/dev/fuse/tasks.js b/dev/fuse/tasks.js index 328e3c83..60a2663d 100644 --- a/dev/fuse/tasks.js +++ b/dev/fuse/tasks.js @@ -10,6 +10,9 @@ const yaml = require('js-yaml') const _ = require('lodash') module.exports = { + /** + * Fetch Localization Resources from Lokalise + */ async fetchLocalizationResources () { console.info(colors.white(' └── ') + colors.green('Fetching latest localization resources...')) let langs = await request({ @@ -26,18 +29,22 @@ module.exports = { let lang = {} let langTotal = 0 langData.forEach(item => { - if (item.is_archived === '1') { return } - item.key = _.replace(item.key, '::', '.') - _.set(lang, item.key, item.translation) + if (item.is_archived === '1' || _.includes(item.key, '::')) { return } + let keyParts = item.key.split(':') + let keyNamespace = (keyParts.length > 1) ? _.head(keyParts) : 'common' + let keyString = _.last(keyParts) + _.set(lang, `${keyNamespace}.${keyString}`, item.translation) langTotal++ }) - let langYaml = yaml.safeDump(lang, { - indent: 2, - sortKeys: true, - lineWidth: 2048 + _.forOwn(lang, (langObject, langNamespace) => { + let langYaml = yaml.safeDump(langObject, { + indent: 2, + sortKeys: true, + lineWidth: 2048 + }) + fs.outputFileSync(path.join(process.cwd(), `server/locales/${langKey}/${langNamespace}.yml`), langYaml, 'utf8') }) - fs.writeFileSync(path.join(process.cwd(), `server/locales/${langKey}.yml`), langYaml, 'utf8') - console.info(colors.white(` ${langKey}.yml - ${langTotal} keys written`)) + console.info(colors.white(` ${langKey} - ${langTotal} keys written`)) }) } else { throw new Error('Failed to fetch language list from Lokalise API.') diff --git a/package.json b/package.json index f0a5f81a..62145389 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,9 @@ "stop": "node wiki stop", "restart": "node wiki restart", "build": "node dev/fuse --build", - "dev": "node dev/fuse --dev", + "dev:client": "node dev/fuse --dev", + "dev:server": "nodemon", + "dev:server:alt": "node-dev server --no-deps --respawn --no-notify", "test": "eslint --ext .js,.vue . && jest" }, "bin": { @@ -36,7 +38,7 @@ "node": ">=8.9.3" }, "dependencies": { - "apollo-server-express": "1.3.0", + "apollo-server-express": "1.3.2", "auto-load": "3.0.0", "axios": "0.17.1", "bcryptjs-then": "1.0.1", @@ -64,8 +66,8 @@ "follow-redirects": "1.2.6", "fs-extra": "5.0.0", "git-wrapper2-promise": "0.2.9", - "graphql": "0.12.1", - "graphql-tools": "2.13.0", + "graphql": "0.12.3", + "graphql-tools": "2.14.1", "highlight.js": "9.12.0", "i18next": "10.2.1", "i18next-express-middleware": "1.0.9", @@ -90,7 +92,7 @@ "markdown-it-task-lists": "2.1.0", "mathjax-node": "1.2.1", "mime-types": "2.1.17", - "moment": "2.20.0", + "moment": "2.20.1", "moment-timezone": "0.5.14", "mongodb": "3.0.0-rc0", "multer": "1.3.0", @@ -117,11 +119,11 @@ "request": "2.83.0", "request-promise": "4.2.2", "semver": "5.4.1", - "sequelize": "4.28.5", + "sequelize": "4.28.6", "serve-favicon": "2.4.5", "simplemde": "1.11.2", "stream-to-promise": "2.2.0", - "tar": "4.1.1", + "tar": "4.2.0", "through2": "2.0.3", "uuid": "3.1.0", "validator": "9.2.0", @@ -136,7 +138,7 @@ "autoprefixer": "7.2.3", "babel-cli": "6.26.0", "babel-core": "6.26.0", - "babel-jest": "21.2.0", + "babel-jest": "22.0.4", "babel-preset-env": "1.6.1", "babel-preset-es2015": "6.24.1", "babel-preset-stage-2": "6.24.1", @@ -152,27 +154,28 @@ "eslint-plugin-standard": "3.0.1", "eslint-plugin-vue": "3.13.1", "fuse-box": "2.5.0-beta.1", - "graphql-tag": "^2.6.0", + "graphql-tag": "^2.6.1", "i18next-xhr-backend": "1.5.0", - "jest": "21.2.1", - "jest-junit": "3.4.0", + "jest": "22.0.4", + "jest-junit": "3.4.1", "js-cookie": "2.2.0", + "node-dev": "3.1.3", "node-sass": "4.7.2", - "nodemon": "1.13.3", + "nodemon": "1.14.3", "postcss-selector-parser": "3.1.1", "pug-lint": "2.5.0", "twemoji-awesome": "1.0.6", "typescript": "2.6.2", "uglify-es": "3.2.2", "vee-validate": "2.0.0-rc.27", - "vue": "2.5.11", + "vue": "2.5.13", "vue-clipboards": "1.2.0", "vue-hot-reload-api": "2.2.4", "vue-lodash": "1.0.4", "vue-material": "^0.8.1", - "vue-resource": "1.3.4", + "vue-resource": "1.3.5", "vue-simple-breakpoints": "1.0.3", - "vue-template-compiler": "2.5.11", + "vue-template-compiler": "2.5.13", "vue-template-es2015-compiler": "1.6.0", "vuex": "3.0.1", "vuex-persistedstate": "2.4.2" @@ -192,6 +195,24 @@ "classNameTemplate": "{classname}-{title}", "titleTemplate": "{classname}-{title}" }, + "nodemonConfig": { + "exec": "node server --dev", + "ignore": [ + "assets/", + "client/", + "data/", + "dev/", + "test/", + "test-results/" + ], + "ext": "js json graphql", + "watch": [ + "server" + ], + "env": { + "NODE_ENV": "development" + } + }, "collective": { "type": "opencollective", "url": "https://opencollective.com/wikijs", diff --git a/server/app/data.yml b/server/app/data.yml index 2aee5b37..4f6ef3f1 100644 --- a/server/app/data.yml +++ b/server/app/data.yml @@ -5,6 +5,7 @@ name: Wiki.js defaults: config: + # File defaults port: 80 paths: repo: ./repo @@ -20,15 +21,30 @@ defaults: port: 6379 db: 0 password: null - configMode: interactive + configMode: auto workers: 0 ha: node: primary readonly: false + # DB defaults + auth: + public: false + strategies: + local: + enabled: true + allowSelfRegister: false + git: + enabled: false + logging: + telemetry: false + loggers: + console: + enabled: true site: - path: '' lang: en - title: Wiki.js + path: '' + rtl: false + title: Wiki.js configNamespaces: - auth - features diff --git a/server/authentication/azure.js b/server/extensions/authentication/azure.js similarity index 100% rename from server/authentication/azure.js rename to server/extensions/authentication/azure.js diff --git a/server/authentication/facebook.js b/server/extensions/authentication/facebook.js similarity index 100% rename from server/authentication/facebook.js rename to server/extensions/authentication/facebook.js diff --git a/server/authentication/github.js b/server/extensions/authentication/github.js similarity index 100% rename from server/authentication/github.js rename to server/extensions/authentication/github.js diff --git a/server/authentication/google.js b/server/extensions/authentication/google.js similarity index 100% rename from server/authentication/google.js rename to server/extensions/authentication/google.js diff --git a/server/authentication/ldap.js b/server/extensions/authentication/ldap.js similarity index 100% rename from server/authentication/ldap.js rename to server/extensions/authentication/ldap.js diff --git a/server/authentication/local.js b/server/extensions/authentication/local.js similarity index 98% rename from server/authentication/local.js rename to server/extensions/authentication/local.js index e2ca7faa..8e3382dd 100644 --- a/server/authentication/local.js +++ b/server/extensions/authentication/local.js @@ -1,5 +1,3 @@ -'use strict' - /* global wiki */ // ------------------------------------ diff --git a/server/authentication/microsoft.js b/server/extensions/authentication/microsoft.js similarity index 100% rename from server/authentication/microsoft.js rename to server/extensions/authentication/microsoft.js diff --git a/server/authentication/slack.js b/server/extensions/authentication/slack.js similarity index 100% rename from server/authentication/slack.js rename to server/extensions/authentication/slack.js diff --git a/server/extensions/logging/bugsnag.js b/server/extensions/logging/bugsnag.js new file mode 100644 index 00000000..990186e0 --- /dev/null +++ b/server/extensions/logging/bugsnag.js @@ -0,0 +1,32 @@ +const util = require('util') +const winston = require('winston') +const _ = require('lodash') + +// ------------------------------------ +// Bugsnag +// ------------------------------------ + +module.exports = { + key: 'bugsnag', + title: 'Bugsnag', + props: ['key'], + init (logger, conf) { + let BugsnagLogger = winston.transports.BugsnagLogger = function (options) { + this.name = 'bugsnagLogger' + this.level = options.level || 'warn' + this.bugsnag = require('bugsnag') + this.bugsnag.register(options.key) + } + util.inherits(BugsnagLogger, winston.Transport) + + BugsnagLogger.prototype.log = function (level, msg, meta, callback) { + this.bugsnag.notify(new Error(msg), _.assignIn(meta, { severity: level })) + callback(null, true) + } + + logger.add(BugsnagLogger, { + level: 'warn', + key: conf.key + }) + } +} diff --git a/server/extensions/logging/console.js b/server/extensions/logging/console.js new file mode 100644 index 00000000..13c2b3c5 --- /dev/null +++ b/server/extensions/logging/console.js @@ -0,0 +1,22 @@ +const winston = require('winston') + +/* global wiki */ + +// ------------------------------------ +// Console +// ------------------------------------ + +module.exports = { + key: 'console', + title: 'Console', + props: [], + init (logger, conf) { + logger.add(winston.transports.Console, { + level: wiki.config.logLevel, + prettyPrint: true, + colorize: true, + silent: false, + timestamp: true + }) + } +} diff --git a/server/extensions/logging/loggly.js b/server/extensions/logging/loggly.js new file mode 100644 index 00000000..d4156b72 --- /dev/null +++ b/server/extensions/logging/loggly.js @@ -0,0 +1,21 @@ +const winston = require('winston') + +// ------------------------------------ +// Loggly +// ------------------------------------ + +module.exports = { + key: 'loggly', + title: 'Loggly', + props: ['token', 'subdomain'], + init (logger, conf) { + require('winston-loggly-bulk') + logger.add(winston.transports.Loggly, { + token: conf.token, + subdomain: conf.subdomain, + tags: ['wiki-js'], + level: 'warn', + json: true + }) + } +} diff --git a/server/extensions/logging/papertrail.js b/server/extensions/logging/papertrail.js new file mode 100644 index 00000000..7869a762 --- /dev/null +++ b/server/extensions/logging/papertrail.js @@ -0,0 +1,20 @@ +const winston = require('winston') + +// ------------------------------------ +// Papertrail +// ------------------------------------ + +module.exports = { + key: 'papertrail', + title: 'Papertrail', + props: ['host', 'port'], + init (logger, conf) { + require('winston-papertrail').Papertrail // eslint-disable-line no-unused-expressions + logger.add(winston.transports.Papertrail, { + host: conf.host, + port: conf.port, + level: 'warn', + program: 'wiki.js' + }) + } +} diff --git a/server/extensions/logging/rollbar.js b/server/extensions/logging/rollbar.js new file mode 100644 index 00000000..57d52a37 --- /dev/null +++ b/server/extensions/logging/rollbar.js @@ -0,0 +1,32 @@ +const util = require('util') +const winston = require('winston') +const _ = require('lodash') + +// ------------------------------------ +// Rollbar +// ------------------------------------ + +module.exports = { + key: 'rollbar', + title: 'Rollbar', + props: ['key'], + init (logger, conf) { + let RollbarLogger = winston.transports.RollbarLogger = function (options) { + this.name = 'rollbarLogger' + this.level = options.level || 'warn' + this.rollbar = require('rollbar') + this.rollbar.init(options.key) + } + util.inherits(RollbarLogger, winston.Transport) + + RollbarLogger.prototype.log = function (level, msg, meta, callback) { + this.rollbar.handleErrorWithPayloadData(new Error(msg), _.assignIn(meta, { level })) + callback(null, true) + } + + logger.add(RollbarLogger, { + level: 'warn', + key: conf.key + }) + } +} diff --git a/server/extensions/logging/sentry.js b/server/extensions/logging/sentry.js new file mode 100644 index 00000000..b427b496 --- /dev/null +++ b/server/extensions/logging/sentry.js @@ -0,0 +1,32 @@ +const util = require('util') +const winston = require('winston') + +// ------------------------------------ +// Sentry +// ------------------------------------ + +module.exports = { + key: 'sentry', + title: 'Sentry', + props: ['key'], + init (logger, conf) { + let SentryLogger = winston.transports.RollbarLogger = function (options) { + this.name = 'sentryLogger' + this.level = options.level || 'warn' + this.raven = require('raven') + this.raven.config(options.key).install() + } + util.inherits(SentryLogger, winston.Transport) + + SentryLogger.prototype.log = function (level, msg, meta, callback) { + level = (level === 'warn') ? 'warning' : level + this.raven.captureMessage(msg, { level, extra: meta }) + callback(null, true) + } + + logger.add(SentryLogger, { + level: 'warn', + key: conf.key + }) + } +} diff --git a/server/master.js b/server/master.js index 79d60b8b..b2d188e3 100644 --- a/server/master.js +++ b/server/master.js @@ -29,7 +29,7 @@ module.exports = async () => { const path = require('path') const session = require('express-session') const SessionRedisStore = require('connect-redis')(session) - const graceful = require('node-graceful') + // const graceful = require('node-graceful') const graphqlApollo = require('apollo-server-express') const graphqlSchema = require('./modules/graphql') @@ -142,7 +142,7 @@ module.exports = async () => { // Start HTTP server // ---------------------------------------- - wiki.logger.info(`HTTP Server on port: ${wiki.config.port}`) + wiki.logger.info(`HTTP Server on port: [ ${wiki.config.port} ]`) app.set('port', wiki.config.port) let server = http.createServer(app) @@ -167,20 +167,20 @@ module.exports = async () => { }) server.on('listening', () => { - wiki.logger.info('HTTP Server: RUNNING') + wiki.logger.info('HTTP Server: [ RUNNING ]') }) // ---------------------------------------- // Graceful shutdown // ---------------------------------------- - graceful.on('exit', () => { - wiki.logger.info('- SHUTTING DOWN - Performing git sync...') - return global.git.resync().then(() => { - wiki.logger.info('- SHUTTING DOWN - Git sync successful. Now safe to exit.') - process.exit() - }) - }) + // graceful.on('exit', () => { + // wiki.logger.info('- SHUTTING DOWN - Performing git sync...') + // return global.git.resync().then(() => { + // wiki.logger.info('- SHUTTING DOWN - Git sync successful. Now safe to exit.') + // process.exit() + // }) + // }) return true } diff --git a/server/middlewares/auth.js b/server/middlewares/auth.js index 59c2babc..0e71911f 100644 --- a/server/middlewares/auth.js +++ b/server/middlewares/auth.js @@ -1,23 +1,16 @@ -'use strict' - -/* global rights */ +/* global wiki */ /** * Authentication middleware - * - * @param {Express Request} req Express Request object - * @param {Express Response} res Express Response object - * @param {Function} next Next callback function - * @return {any} void */ module.exports = (req, res, next) => { // Is user authenticated ? if (!req.isAuthenticated()) { - if (req.app.locals.appconfig.public !== true) { + if (wiki.config.auth.public !== true) { return res.redirect('/login') } else { - req.user = rights.guest + // req.user = rights.guest res.locals.isGuest = true } } else { @@ -26,11 +19,11 @@ module.exports = (req, res, next) => { // Check permissions - res.locals.rights = rights.check(req) + // res.locals.rights = rights.check(req) - if (!res.locals.rights.read) { - return res.render('error-forbidden') - } + // if (!res.locals.rights.read) { + // return res.render('error-forbidden') + // } // Expose user data diff --git a/server/modules/auth.js b/server/modules/auth.js index 690d0971..44e9d7c1 100644 --- a/server/modules/auth.js +++ b/server/modules/auth.js @@ -31,11 +31,9 @@ module.exports = { // Load authentication strategies - wiki.config.auth.strategies.local = {} - - _.forOwn(wiki.config.auth.strategies, (strategyConfig, strategyKey) => { + _.forOwn(_.omitBy(wiki.config.auth.strategies, s => s.enabled === false), (strategyConfig, strategyKey) => { strategyConfig.callbackURL = `${wiki.config.site.host}${wiki.config.site.path}/login/${strategyKey}/callback` - let strategy = require(`../authentication/${strategyKey}`) + let strategy = require(`../extensions/authentication/${strategyKey}`) strategy.init(passport, strategyConfig) fs.readFile(path.join(wiki.ROOTPATH, `assets/svg/auth-icon-${strategyKey}.svg`), 'utf8').then(iconData => { strategy.icon = iconData @@ -47,7 +45,7 @@ module.exports = { } }) this.strategies[strategy.key] = strategy - wiki.logger.info(`Authentication Provider ${strategyKey}: OK`) + wiki.logger.info(`Authentication Provider ${strategyKey}: [ OK ]`) }) // Create Guest account for first-time diff --git a/server/modules/db.js b/server/modules/db.js index 9832f4c6..ccc0fed2 100644 --- a/server/modules/db.js +++ b/server/modules/db.js @@ -80,7 +80,7 @@ module.exports = { // Attempt to connect and authenticate to DB self.inst.authenticate().then(() => { - wiki.logger.info('Database (PostgreSQL) connection: OK') + wiki.logger.info('Database (PostgreSQL) connection: [ OK ]') }).catch(err => { wiki.logger.error('Failed to connect to PostgreSQL instance.') wiki.logger.error(err) diff --git a/server/modules/disk.js b/server/modules/disk.js index 0fafcd68..83f8b69b 100644 --- a/server/modules/disk.js +++ b/server/modules/disk.js @@ -115,7 +115,7 @@ module.exports = { wiki.logger.error(err) } - wiki.logger.info('Disk Data Paths: OK') + wiki.logger.info('Disk Data Paths: [ OK ]') }, /** diff --git a/server/modules/git.js b/server/modules/git.js index 68f78e1f..07d8d2a9 100644 --- a/server/modules/git.js +++ b/server/modules/git.js @@ -88,8 +88,8 @@ module.exports = { self._repo.exists = false }) }).then(() => { - if (wiki.config.git === false) { - wiki.logger.warn('Remote Git syncing is disabled. Not recommended!') + if (wiki.config.git.enabled === false) { + wiki.logger.warn('Git Remote Sync: [ DISABLED ]') return Promise.resolve(true) } @@ -129,7 +129,7 @@ module.exports = { wiki.logger.error('Git remote error!') throw err }).then(() => { - wiki.logger.info('Git Repository: OK') + wiki.logger.info('Git Repository: [ OK ]') return true }) }, diff --git a/server/modules/kernel.js b/server/modules/kernel.js index 48e1659f..e8bbf7f1 100644 --- a/server/modules/kernel.js +++ b/server/modules/kernel.js @@ -37,11 +37,11 @@ module.exports = { */ bootMaster() { this.preBootMaster().then(sequenceResults => { - if (_.every(sequenceResults, rs => rs === true)) { + if (_.every(sequenceResults, rs => rs === true) && wiki.config.configMode !== 'setup') { this.postBootMaster() } else { wiki.logger.info('Starting configuration manager...') - require('../configure')() + require('../setup')() } return true }).catch(err => { @@ -52,13 +52,15 @@ module.exports = { /** * Post-Master Boot Sequence */ - postBootMaster() { - require('../master')().then(() => { - _.times(this.numWorker, this.spawnWorker) + async postBootMaster() { + await require('../master')() - wiki.queue.uplClearTemp.add({}, { - repeat: { cron: '*/15 * * * *' } - }) + _.times(this.numWorkers, () => { + this.spawnWorker() + }) + + wiki.queue.uplClearTemp.add({}, { + repeat: { cron: '*/15 * * * *' } }) cluster.on('exit', (worker, code, signal) => { diff --git a/server/modules/logger.js b/server/modules/logger.js index 53de5d73..6b5ce4f1 100644 --- a/server/modules/logger.js +++ b/server/modules/logger.js @@ -1,26 +1,18 @@ -'use strict' - /* global wiki */ const cluster = require('cluster') +const _ = require('lodash') +const fs = require('fs-extra') +const path = require('path') module.exports = { + loggers: {}, init() { let winston = require('winston') - // Console - let logger = new (winston.Logger)({ level: wiki.config.logLevel, - transports: [ - new (winston.transports.Console)({ - level: wiki.config.logLevel, - prettyPrint: true, - colorize: true, - silent: false, - timestamp: true - }) - ] + transports: [] }) logger.filters.push((level, msg) => { @@ -28,52 +20,20 @@ module.exports = { return '[' + processName + '] ' + msg }) - // External services - - // if (wiki.config.externalLogging.bugsnag) { - // const bugsnagTransport = require('./winston-transports/bugsnag') - // logger.add(bugsnagTransport, { - // level: 'warn', - // key: wiki.config.externalLogging.bugsnag - // }) - // } - - // if (wiki.config.externalLogging.loggly) { - // require('winston-loggly-bulk') - // logger.add(winston.transports.Loggly, { - // token: wiki.config.externalLogging.loggly.token, - // subdomain: wiki.config.externalLogging.loggly.subdomain, - // tags: ['wiki-js'], - // level: 'warn', - // json: true - // }) - // } - - // if (wiki.config.externalLogging.papertrail) { - // require('winston-papertrail').Papertrail // eslint-disable-line no-unused-expressions - // logger.add(winston.transports.Papertrail, { - // host: wiki.config.externalLogging.papertrail.host, - // port: wiki.config.externalLogging.papertrail.port, - // level: 'warn', - // program: 'wiki.js' - // }) - // } - - // if (wiki.config.externalLogging.rollbar) { - // const rollbarTransport = require('./winston-transports/rollbar') - // logger.add(rollbarTransport, { - // level: 'warn', - // key: wiki.config.externalLogging.rollbar - // }) - // } - - // if (wiki.config.externalLogging.sentry) { - // const sentryTransport = require('./winston-transports/sentry') - // logger.add(sentryTransport, { - // level: 'warn', - // key: wiki.config.externalLogging.sentry - // }) - // } + _.forOwn(_.omitBy(wiki.config.logging.loggers, s => s.enabled === false), (loggerConfig, loggerKey) => { + let loggerModule = require(`../extensions/logging/${loggerKey}`) + loggerModule.init(logger, loggerConfig) + fs.readFile(path.join(wiki.ROOTPATH, `assets/svg/auth-icon-${loggerKey}.svg`), 'utf8').then(iconData => { + logger.icon = iconData + }).catch(err => { + if (err.code === 'ENOENT') { + logger.icon = '[missing icon]' + } else { + logger.error(err) + } + }) + this.loggers[logger.key] = loggerModule + }) return logger } diff --git a/server/modules/queue.js b/server/modules/queue.js index 4bbb6dc0..d7de0400 100644 --- a/server/modules/queue.js +++ b/server/modules/queue.js @@ -29,7 +29,7 @@ module.exports = { keyStream.on('end', resolve) }) }).then(() => { - wiki.logger.info('Purging old queue jobs: OK') + wiki.logger.info('Purging old queue jobs: [ OK ]') }).return(true).catch(err => { wiki.logger.error(err) }) diff --git a/server/modules/redis.js b/server/modules/redis.js index e725b665..a4610aed 100644 --- a/server/modules/redis.js +++ b/server/modules/redis.js @@ -21,7 +21,7 @@ module.exports = { if (isPlainObject(wiki.config.redis)) { let red = new Redis(wiki.config.redis) red.on('ready', () => { - wiki.logger.info('Redis connection: OK') + wiki.logger.info('Redis connection: [ OK ]') }) red.on('error', () => { wiki.logger.error('Failed to connect to Redis instance!') diff --git a/server/modules/winston-transports/bugsnag.js b/server/modules/winston-transports/bugsnag.js deleted file mode 100644 index 207e0ae8..00000000 --- a/server/modules/winston-transports/bugsnag.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict' - -const util = require('util') -const winston = require('winston') -const _ = require('lodash') - -let BugsnagLogger = winston.transports.BugsnagLogger = function (options) { - this.name = 'bugsnagLogger' - this.level = options.level || 'warn' - this.bugsnag = require('bugsnag') - this.bugsnag.register(options.key) -} -util.inherits(BugsnagLogger, winston.Transport) - -BugsnagLogger.prototype.log = function (level, msg, meta, callback) { - this.bugsnag.notify(new Error(msg), _.assignIn(meta, { severity: level })) - callback(null, true) -} - -module.exports = BugsnagLogger diff --git a/server/modules/winston-transports/rollbar.js b/server/modules/winston-transports/rollbar.js deleted file mode 100644 index 0087305f..00000000 --- a/server/modules/winston-transports/rollbar.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict' - -const util = require('util') -const winston = require('winston') -const _ = require('lodash') - -let RollbarLogger = winston.transports.RollbarLogger = function (options) { - this.name = 'rollbarLogger' - this.level = options.level || 'warn' - this.rollbar = require('rollbar') - this.rollbar.init(options.key) -} -util.inherits(RollbarLogger, winston.Transport) - -RollbarLogger.prototype.log = function (level, msg, meta, callback) { - this.rollbar.handleErrorWithPayloadData(new Error(msg), _.assignIn(meta, { level })) - callback(null, true) -} - -module.exports = RollbarLogger diff --git a/server/modules/winston-transports/sentry.js b/server/modules/winston-transports/sentry.js deleted file mode 100644 index 508132ef..00000000 --- a/server/modules/winston-transports/sentry.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict' - -const util = require('util') -const winston = require('winston') - -let SentryLogger = winston.transports.RollbarLogger = function (options) { - this.name = 'sentryLogger' - this.level = options.level || 'warn' - this.raven = require('raven') - this.raven.config(options.key).install() -} -util.inherits(SentryLogger, winston.Transport) - -SentryLogger.prototype.log = function (level, msg, meta, callback) { - level = (level === 'warn') ? 'warning' : level - this.raven.captureMessage(msg, { level, extra: meta }) - callback(null, true) -} - -module.exports = SentryLogger diff --git a/server/configure.js b/server/setup.js similarity index 99% rename from server/configure.js rename to server/setup.js index ed7d9711..1ced310f 100644 --- a/server/configure.js +++ b/server/setup.js @@ -63,7 +63,7 @@ module.exports = () => { app.get('*', async (req, res) => { let packageObj = await fs.readJson(path.join(wiki.ROOTPATH, 'package.json')) - res.render('configure/index', { + res.render('setup', { packageObj, telemetryClientID: wiki.telemetry.cid }) @@ -265,6 +265,7 @@ module.exports = () => { // Auth namespace _.set(wiki.config.auth, 'public', req.body.public === 'true') + _.set(wiki.config.auth, 'strategies.local.enabled', true) _.set(wiki.config.auth, 'strategies.local.allowSelfRegister', req.body.selfRegister === 'true') // Git namespace @@ -311,6 +312,7 @@ module.exports = () => { tfaIsActive: false }) + wiki.logger.info('Setup is complete!') res.json({ ok: true }) } catch (err) { res.json({ ok: false, error: err.message }) diff --git a/server/views/master.pug b/server/views/master.pug index dc45732a..8e8e38a3 100644 --- a/server/views/master.pug +++ b/server/views/master.pug @@ -6,24 +6,24 @@ html meta(name='viewport', content='width=device-width, initial-scale=1') meta(name='theme-color', content='#009688') meta(name='msapplication-TileColor', content='#009688') - meta(name='msapplication-TileImage', content=config.site.path + '/favicons/ms-icon-144x144.png') + meta(name='msapplication-TileImage', content=config.site.path + 'favicons/ms-icon-144x144.png') title= config.site.title //- Favicon each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180] - link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href=config.site.path + '/favicons/apple-icon-' + favsize + 'x' + favsize + '.png') - link(rel='icon', type='image/png', sizes='192x192', href=config.site.path + '/favicons/android-icon-192x192.png') + link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href=config.site.path + 'favicons/apple-icon-' + favsize + 'x' + favsize + '.png') + link(rel='icon', type='image/png', sizes='192x192', href=config.site.path + 'favicons/android-icon-192x192.png') each favsize in [32, 96, 16] - link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href=config.site.path + '/favicons/favicon-' + favsize + 'x' + favsize + '.png') - link(rel='manifest', href=config.site.path + '/manifest.json') + link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href=config.site.path + 'favicons/favicon-' + favsize + 'x' + favsize + '.png') + link(rel='manifest', href=config.site.path + 'manifest.json') //- Site Lang script. var siteConfig = !{JSON.stringify(config.site)} //- JS / CSS - script(type='text/javascript', src=config.site.path + '/js/libs.js') - script(type='text/javascript', src=config.site.path + '/js/app.js') + script(type='text/javascript', src=config.site.path + 'js/libs.js') + script(type='text/javascript', src=config.site.path + 'js/app.js') block head diff --git a/server/views/configure/index.pug b/server/views/setup.pug similarity index 99% rename from server/views/configure/index.pug rename to server/views/setup.pug index b736d4ad..17fc9dc6 100644 --- a/server/views/configure/index.pug +++ b/server/views/setup.pug @@ -1,9 +1,9 @@ -extends ../master.pug +extends master.pug block body body - #app.config-manager - config-manager(inline-template) + #app.setup + setup(inline-template) div .container .content(v-cloak) @@ -342,7 +342,7 @@ block body h4 All done! p(v-if='!loading && final.ok'): strong Wiki.js was configured successfully and is now ready for use. p(v-if='!loading && final.ok') - | Click the Start button below to start the Wiki.js server. + | Click the Start button below to launch your newly configured wiki. p(v-if='!loading && !final.ok') #[svg.icons.is-18.is-text: use(xlink:href='#nc-square-remove-12')] Error: {{ final.error }} .panel-footer .progress-bar: div(v-bind:style='{width: currentProgress}') diff --git a/yarn.lock b/yarn.lock index 6348d66b..4afd69f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,14 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0-beta.35": + version "7.0.0-beta.35" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.35.tgz#04eeb6dca7efef8f65776a4c214157303b85ad51" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + "@glimpse/glimpse-agent-node@0.22.15": version "0.22.15" resolved "https://registry.yarnpkg.com/@glimpse/glimpse-agent-node/-/glimpse-agent-node-0.22.15.tgz#93075fc56a234f716ed37dc8743be3f58121cfb2" @@ -64,12 +72,6 @@ dependencies: deepmerge "^2.0.0" -"@remy/pstree@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@remy/pstree/-/pstree-1.1.0.tgz#414045d4fec60946604f3718023052aaf49bd8d3" - dependencies: - ps-tree "^1.1.0" - "@types/async@2.0.45": version "2.0.45" resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.45.tgz#0cfe971d7ed5542695740338e0455c91078a0e83" @@ -165,6 +167,12 @@ acorn-globals@^3.0.0, acorn-globals@^3.1.0: dependencies: acorn "^4.0.4" +acorn-globals@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" + dependencies: + acorn "^5.0.0" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -185,6 +193,10 @@ acorn@^4.0.1, acorn@^4.0.4, acorn@~4.0.2: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" +acorn@^5.0.0, acorn@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" + acorn@^5.0.3, acorn@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" @@ -193,10 +205,6 @@ acorn@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" -acorn@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" - ajax-request@^1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/ajax-request/-/ajax-request-1.2.3.tgz#99fcbec1d6d2792f85fa949535332bd14f5f3790" @@ -307,6 +315,10 @@ ansi@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" +ansicolors@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" + any-promise@^1.1.0, any-promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -382,19 +394,19 @@ apollo-link@^1.0.0, apollo-link@^1.0.6: apollo-utilities "^1.0.0" zen-observable "^0.6.0" -apollo-server-core@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.0.tgz#a79d29a70e8150aa8a0143234e11594ba41ccc8d" +apollo-server-core@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.2.tgz#f36855a3ebdc2d77b8b9c454380bf1d706105ffc" dependencies: apollo-cache-control "^0.0.x" apollo-tracing "^0.1.0" graphql-extensions "^0.0.x" -apollo-server-express@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.0.tgz#c5249e941ec2d5c6e018e7ffd47efa8c53850f74" +apollo-server-express@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.2.tgz#0ff8201c0bf362804a151e1399767dae6ab7e309" dependencies: - apollo-server-core "^1.3.0" + apollo-server-core "^1.3.2" apollo-server-module-graphiql "^1.3.0" apollo-server-module-graphiql@^1.3.0: @@ -822,12 +834,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@21.2.0, babel-jest@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e" +babel-jest@22.0.4, babel-jest@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.0.4.tgz#533c46de37d7c9d7612f408c76314be9277e0c26" dependencies: - babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^21.2.0" + babel-plugin-istanbul "^4.1.5" + babel-preset-jest "^22.0.3" babel-messages@^6.23.0: version "6.23.0" @@ -841,17 +853,17 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-istanbul@^4.0.0: - version "4.1.4" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz#18dde84bf3ce329fddf3f4103fae921456d8e587" +babel-plugin-istanbul@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" dependencies: find-up "^2.1.0" - istanbul-lib-instrument "^1.7.2" + istanbul-lib-instrument "^1.7.5" test-exclude "^4.1.1" -babel-plugin-jest-hoist@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006" +babel-plugin-jest-hoist@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.0.3.tgz#62cde5fe962fd41ae89c119f481ca5cd7dd48bb4" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" @@ -1221,11 +1233,11 @@ babel-preset-es2015@6.24.1: babel-plugin-transform-es2015-unicode-regex "^6.24.1" babel-plugin-transform-regenerator "^6.24.1" -babel-preset-jest@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638" +babel-preset-jest@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.0.3.tgz#e2bb6f6b4a509d3ea0931f013db78c5a84856693" dependencies: - babel-plugin-jest-hoist "^21.2.0" + babel-plugin-jest-hoist "^22.0.3" babel-plugin-syntax-object-rest-spread "^6.13.0" babel-preset-stage-2@6.24.1: @@ -1351,7 +1363,7 @@ babel-types@^6.26.0: lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.17.2, babylon@^6.17.4: +babylon@^6.17.2: version "6.17.4" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" @@ -1409,6 +1421,10 @@ binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" +bindings@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" + bisection@: version "0.0.3" resolved "https://registry.yarnpkg.com/bisection/-/bisection-0.0.3.tgz#9891d506d86ec7d50910c5157bb592dbb03f33db" @@ -1518,6 +1534,10 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +browser-process-hrtime@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + browser-resolve@^1.11.2: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" @@ -1667,6 +1687,13 @@ capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" +cardinal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" + dependencies: + ansicolors "~0.2.1" + redeyed "~1.0.0" + caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" @@ -1813,6 +1840,19 @@ cli-table-redemption@^1.0.0: dependencies: chalk "^1.1.3" +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + +cli-usage@^0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/cli-usage/-/cli-usage-0.1.4.tgz#7c01e0dc706c234b39c933838c8e20b2175776e2" + dependencies: + marked "^0.3.6" + marked-terminal "^1.6.2" + cli-width@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" @@ -1880,7 +1920,7 @@ color-name@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -colors@1.0.x: +colors@1.0.3, colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -2199,10 +2239,21 @@ dashdash@^1.12.0, dashdash@^1.14.0: dependencies: assert-plus "^1.0.0" +dateformat@~1.0.4-1.2.3: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" +debounce@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.1.0.tgz#6a1a4ee2a9dc4b7c24bb012558dbcdb05b37f408" + debug@2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" @@ -2275,7 +2326,7 @@ default-require-extensions@^1.0.0: dependencies: strip-bom "^2.0.0" -define-properties@^1.1.1: +define-properties@^1.1.1, define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" dependencies: @@ -2332,6 +2383,10 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + dicer@0.2.5, dicer@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" @@ -2392,6 +2447,10 @@ domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" +domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.0.tgz#81fe5df81b3f057052cde3a9fa9bf536a85b9ab0" + domhandler@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" @@ -2450,6 +2509,12 @@ duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +dynamic-dedupe@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.2.0.tgz#50f7c28684831ecf1c170aab67a1d5311cdd76ce" + dependencies: + xtend "~2.0.6" + eachr@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/eachr/-/eachr-3.2.0.tgz#2c35e43ea086516f7997cf80b7aa64d55a4a4484" @@ -2512,19 +2577,31 @@ entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - error-ex@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" -es6-promise@^3.0.2, es6-promise@^3.3.1: +es-abstract@^1.5.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es6-promise@^3.0.2: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" @@ -2551,6 +2628,17 @@ escodegen@^1.6.1, escodegen@^1.8.1: optionalDependencies: source-map "~0.2.0" +escodegen@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.5.6" + eslint-config-requarks@1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/eslint-config-requarks/-/eslint-config-requarks-1.0.7.tgz#d2f1495ace70d5c88961c8bec4741efddd03458a" @@ -2679,10 +2767,18 @@ 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.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esprima@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" +esprima@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" + esquery@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" @@ -2798,16 +2894,16 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expect@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b" +expect@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-22.0.3.tgz#bb486de7d41bf3eb60d3b16dfd1c158a4d91ddfa" dependencies: ansi-styles "^3.2.0" - jest-diff "^21.2.1" - jest-get-type "^21.2.0" - jest-matcher-utils "^21.2.1" - jest-message-util "^21.2.1" - jest-regex-util "^21.2.0" + jest-diff "^22.0.3" + jest-get-type "^22.0.3" + jest-matcher-utils "^22.0.3" + jest-message-util "^22.0.3" + jest-regex-util "^22.0.3" express-brute-redis@0.0.1: version "0.0.1" @@ -3062,6 +3158,12 @@ filesize.js@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/filesize.js/-/filesize.js-1.0.2.tgz#934c013395a71804875cf11e6f1ffe211c3f2192" +filewatcher@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/filewatcher/-/filewatcher-3.0.1.tgz#f4a1957355ddaf443ccd78a895f3d55e23c8a034" + dependencies: + debounce "^1.0.0" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -3176,7 +3278,7 @@ for-own@^0.1.4: dependencies: for-in "^1.0.1" -foreach@^2.0.5: +foreach@^2.0.5, foreach@~2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -3281,6 +3383,10 @@ function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -3496,7 +3602,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^7.0.0: +got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" dependencies: @@ -3540,25 +3646,25 @@ graphql-tag@^2.4.2: version "2.5.0" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.5.0.tgz#b43bfd8b5babcd2c205ad680c03e98b238934e0f" -graphql-tag@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.6.0.tgz#0fb1b9f6d6651263c47a3420e827910e6fed3952" +graphql-tag@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.6.1.tgz#4788d509f6e29607d947fc47a40c4e18f736d34a" -graphql-tools@2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.13.0.tgz#3c7aad3bb1284a651dd80b385e06b3d13ac2a6f2" +graphql-tools@2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.14.1.tgz#15f96683d7f178042baddcfc17d73dcfeee67356" dependencies: apollo-utilities "^1.0.1" deprecated-decorator "^0.1.6" uuid "^3.1.0" -graphql@0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.12.1.tgz#b9470344b0e5fa42ae1035623c4824368f7a98ae" +graphql@0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.12.3.tgz#11668458bbe28261c0dcb6e265f515ba79f6ce07" dependencies: iterall "1.1.3" -growly@^1.3.0: +growly@^1.2.0, growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -3837,6 +3943,10 @@ indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" +indexof@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + inflection@1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" @@ -4007,12 +4117,20 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +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" + is-ci@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" dependencies: ci-info "^1.0.0" +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -4117,6 +4235,10 @@ is-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" +is-object@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-0.1.2.tgz#00efbc08816c33cfc4ac8251d132e10dc65098d7" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -4157,7 +4279,7 @@ 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: @@ -4177,6 +4299,10 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -4189,6 +4315,10 @@ is@^3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" +is@~0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -4211,54 +4341,54 @@ isstream@0.1.x, isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.1: - version "1.1.11" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.11.tgz#fcc0b461e2b3bda71e305155138238768257d9de" +istanbul-api@^1.1.14: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" dependencies: async "^2.1.4" fileset "^2.0.2" istanbul-lib-coverage "^1.1.1" - istanbul-lib-hook "^1.0.7" - istanbul-lib-instrument "^1.7.4" - istanbul-lib-report "^1.1.1" - istanbul-lib-source-maps "^1.2.1" - istanbul-reports "^1.1.1" + istanbul-lib-hook "^1.1.0" + istanbul-lib-instrument "^1.9.1" + istanbul-lib-report "^1.1.2" + istanbul-lib-source-maps "^1.2.2" + istanbul-reports "^1.1.3" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: +istanbul-lib-coverage@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" -istanbul-lib-hook@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" +istanbul-lib-hook@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz#e9fd920e4767f3d19edc765e2d6b3f5ccbd0eea8" +istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" - babylon "^6.17.4" + babylon "^6.18.0" istanbul-lib-coverage "^1.1.1" semver "^5.3.0" -istanbul-lib-report@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" +istanbul-lib-report@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425" dependencies: istanbul-lib-coverage "^1.1.1" mkdirp "^0.5.1" path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.1: +istanbul-lib-source-maps@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" dependencies: @@ -4268,9 +4398,19 @@ istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.1: rimraf "^2.6.1" source-map "^0.5.3" -istanbul-reports@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e" +istanbul-lib-source-maps@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10" dependencies: handlebars "^4.0.3" @@ -4291,238 +4431,259 @@ jackpot@>=0.0.6: dependencies: retry "0.6.0" -jest-changed-files@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29" +jest-changed-files@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.0.3.tgz#3771315acfa24a0ed7e6c545de620db6f1b2d164" dependencies: throat "^4.0.0" -jest-cli@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.2.1.tgz#9c528b6629d651911138d228bdb033c157ec8c00" +jest-cli@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.0.4.tgz#0052abaad45c57861c05da8ab5d27bad13ad224d" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" glob "^7.1.2" graceful-fs "^4.1.11" is-ci "^1.0.10" - istanbul-api "^1.1.1" - istanbul-lib-coverage "^1.0.1" - istanbul-lib-instrument "^1.4.2" - istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^21.2.0" - jest-config "^21.2.1" - jest-environment-jsdom "^21.2.1" - jest-haste-map "^21.2.0" - jest-message-util "^21.2.1" - jest-regex-util "^21.2.0" - jest-resolve-dependencies "^21.2.0" - jest-runner "^21.2.1" - jest-runtime "^21.2.1" - jest-snapshot "^21.2.1" - jest-util "^21.2.1" + istanbul-api "^1.1.14" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-source-maps "^1.2.1" + jest-changed-files "^22.0.3" + jest-config "^22.0.4" + jest-environment-jsdom "^22.0.4" + jest-get-type "^22.0.3" + jest-haste-map "^22.0.3" + jest-message-util "^22.0.3" + jest-regex-util "^22.0.3" + jest-resolve-dependencies "^22.0.3" + jest-runner "^22.0.4" + jest-runtime "^22.0.4" + jest-snapshot "^22.0.3" + jest-util "^22.0.4" + jest-worker "^22.0.3" micromatch "^2.3.11" - node-notifier "^5.0.2" - pify "^3.0.0" + node-notifier "^5.1.2" + realpath-native "^1.0.0" + rimraf "^2.5.4" slash "^1.0.0" string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" - worker-farm "^1.3.1" - yargs "^9.0.0" + yargs "^10.0.3" -jest-config@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480" +jest-config@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.0.4.tgz#9c2a46c0907b1a1af54d9cdbf18e99b447034e11" dependencies: chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^21.2.1" - jest-environment-node "^21.2.1" - jest-get-type "^21.2.0" - jest-jasmine2 "^21.2.1" - jest-regex-util "^21.2.0" - jest-resolve "^21.2.0" - jest-util "^21.2.1" - jest-validate "^21.2.1" - pretty-format "^21.2.1" - -jest-diff@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f" + jest-environment-jsdom "^22.0.4" + jest-environment-node "^22.0.4" + jest-get-type "^22.0.3" + jest-jasmine2 "^22.0.4" + jest-regex-util "^22.0.3" + jest-resolve "^22.0.4" + jest-util "^22.0.4" + jest-validate "^22.0.3" + pretty-format "^22.0.3" + +jest-diff@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.0.3.tgz#ffed5aba6beaf63bb77819ba44dd520168986321" dependencies: chalk "^2.0.1" diff "^3.2.0" - jest-get-type "^21.2.0" - pretty-format "^21.2.1" + jest-get-type "^22.0.3" + pretty-format "^22.0.3" -jest-docblock@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" +jest-docblock@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.0.3.tgz#c33aa22682b9fc68a5373f5f82994428a2ded601" + dependencies: + detect-newline "^2.1.0" -jest-environment-jsdom@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4" +jest-environment-jsdom@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.0.4.tgz#5723d4e724775ed38948de792e62f2d6a7f452df" dependencies: - jest-mock "^21.2.0" - jest-util "^21.2.1" - jsdom "^9.12.0" + jest-mock "^22.0.3" + jest-util "^22.0.4" + jsdom "^11.5.1" -jest-environment-node@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8" +jest-environment-node@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.0.4.tgz#068671f85a545f96a5469be3a3dd228fca79c709" dependencies: - jest-mock "^21.2.0" - jest-util "^21.2.1" + jest-mock "^22.0.3" + jest-util "^22.0.4" -jest-get-type@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" +jest-get-type@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.0.3.tgz#fa894b677c0fcd55eff3fd8ee28c7be942e32d36" -jest-haste-map@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.2.0.tgz#1363f0a8bb4338f24f001806571eff7a4b2ff3d8" +jest-haste-map@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.0.3.tgz#c9ecb5c871c5465d4bde4139e527fa0dc784aa2d" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^21.2.0" + jest-docblock "^22.0.3" + jest-worker "^22.0.3" micromatch "^2.3.11" sane "^2.0.0" - worker-farm "^1.3.1" -jest-jasmine2@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592" +jest-jasmine2@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.0.4.tgz#f7c0965116efe831ec674dc954b0134639b3dcee" dependencies: + callsites "^2.0.0" chalk "^2.0.1" - expect "^21.2.1" + expect "^22.0.3" graceful-fs "^4.1.11" - jest-diff "^21.2.1" - jest-matcher-utils "^21.2.1" - jest-message-util "^21.2.1" - jest-snapshot "^21.2.1" - p-cancelable "^0.3.0" + jest-diff "^22.0.3" + jest-matcher-utils "^22.0.3" + jest-message-util "^22.0.3" + jest-snapshot "^22.0.3" + source-map-support "^0.5.0" -jest-junit@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-3.4.0.tgz#a12d0a61c1fa401376ccf95ec907c50c96d497dc" +jest-junit@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-3.4.1.tgz#0f0aea65551290cabdf9a29a1681edb4eba418c5" dependencies: mkdirp "^0.5.1" strip-ansi "^4.0.0" xml "^1.0.1" -jest-matcher-utils@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64" +jest-leak-detector@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.0.3.tgz#b64904f0e8954a11edb79b0809ff4717fa762d99" + dependencies: + pretty-format "^22.0.3" + optionalDependencies: + weak "^1.0.1" + +jest-matcher-utils@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.0.3.tgz#2ec15ca1af7dcabf4daddc894ccce224b948674e" dependencies: chalk "^2.0.1" - jest-get-type "^21.2.0" - pretty-format "^21.2.1" + jest-get-type "^22.0.3" + pretty-format "^22.0.3" -jest-message-util@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe" +jest-message-util@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.0.3.tgz#bf674b2762ef2dd53facf2136423fcca264976df" dependencies: + "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" micromatch "^2.3.11" slash "^1.0.0" + stack-utils "^1.0.1" -jest-mock@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f" +jest-mock@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.0.3.tgz#c875e47b5b729c6c020a2fab317b275c0cf88961" -jest-regex-util@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530" +jest-regex-util@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.0.3.tgz#c5c10229de5ce2b27bf4347916d95b802ae9aa4d" -jest-resolve-dependencies@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz#9e231e371e1a736a1ad4e4b9a843bc72bfe03d09" +jest-resolve-dependencies@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.0.3.tgz#202ddf370069702cd1865a1952fcc7e52c92720e" dependencies: - jest-regex-util "^21.2.0" + jest-regex-util "^22.0.3" -jest-resolve@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6" +jest-resolve@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.0.4.tgz#a6e47f55e9388c7341b5e9732aedc6fe30906121" dependencies: browser-resolve "^1.11.2" chalk "^2.0.1" - is-builtin-module "^1.0.0" -jest-runner@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.2.1.tgz#194732e3e518bfb3d7cbfc0fd5871246c7e1a467" - dependencies: - jest-config "^21.2.1" - jest-docblock "^21.2.0" - jest-haste-map "^21.2.0" - jest-jasmine2 "^21.2.1" - jest-message-util "^21.2.1" - jest-runtime "^21.2.1" - jest-util "^21.2.1" - pify "^3.0.0" +jest-runner@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.0.4.tgz#3aa43a31b05ce8271539df580c2eb916023d3367" + dependencies: + jest-config "^22.0.4" + jest-docblock "^22.0.3" + jest-haste-map "^22.0.3" + jest-jasmine2 "^22.0.4" + jest-leak-detector "^22.0.3" + jest-message-util "^22.0.3" + jest-runtime "^22.0.4" + jest-util "^22.0.4" + jest-worker "^22.0.3" throat "^4.0.0" - worker-farm "^1.3.1" -jest-runtime@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.2.1.tgz#99dce15309c670442eee2ebe1ff53a3cbdbbb73e" +jest-runtime@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.0.4.tgz#8f69aa7b5fbb3acd35dc262cbf654e563f69b7b4" dependencies: babel-core "^6.0.0" - babel-jest "^21.2.0" - babel-plugin-istanbul "^4.0.0" + babel-jest "^22.0.4" + babel-plugin-istanbul "^4.1.5" chalk "^2.0.1" convert-source-map "^1.4.0" graceful-fs "^4.1.11" - jest-config "^21.2.1" - jest-haste-map "^21.2.0" - jest-regex-util "^21.2.0" - jest-resolve "^21.2.0" - jest-util "^21.2.1" + jest-config "^22.0.4" + jest-haste-map "^22.0.3" + jest-regex-util "^22.0.3" + jest-resolve "^22.0.4" + jest-util "^22.0.4" json-stable-stringify "^1.0.1" micromatch "^2.3.11" + realpath-native "^1.0.0" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" - yargs "^9.0.0" + yargs "^10.0.3" -jest-snapshot@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0" +jest-snapshot@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.0.3.tgz#a949b393781d2fdb4773f6ea765dd67ad1da291e" dependencies: chalk "^2.0.1" - jest-diff "^21.2.1" - jest-matcher-utils "^21.2.1" + jest-diff "^22.0.3" + jest-matcher-utils "^22.0.3" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^21.2.1" + pretty-format "^22.0.3" -jest-util@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78" +jest-util@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.0.4.tgz#d920a513e0645aaab030cee38e4fe7d5bed8bb6d" dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" - jest-message-util "^21.2.1" - jest-mock "^21.2.0" - jest-validate "^21.2.1" + is-ci "^1.0.10" + jest-message-util "^22.0.3" + jest-validate "^22.0.3" mkdirp "^0.5.1" -jest-validate@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7" +jest-validate@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.0.3.tgz#2850d949a36c48b1a40f7eebae1d8539126f7829" dependencies: chalk "^2.0.1" - jest-get-type "^21.2.0" + jest-get-type "^22.0.3" leven "^2.1.0" - pretty-format "^21.2.1" + pretty-format "^22.0.3" -jest@21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1" +jest-worker@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.0.3.tgz#30433faca67814a8f80559f75ab2ceaa61332fd2" dependencies: - jest-cli "^21.2.1" + merge-stream "^1.0.1" + +jest@22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-22.0.4.tgz#d3cf560ece6b825b115dce80b9826ceb40f87961" + dependencies: + jest-cli "^22.0.4" jimp@0.2.28: version "0.2.28" @@ -4605,7 +4766,7 @@ jschardet@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.0.tgz#a61f310306a5a71188e1b1acd08add3cfbb08b1e" -"jsdom@7.0 - 9.12", jsdom@^9.12.0: +"jsdom@7.0 - 9.12": version "9.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" dependencies: @@ -4629,6 +4790,35 @@ jschardet@^1.4.2: whatwg-url "^4.3.0" xml-name-validator "^2.0.1" +jsdom@^11.5.1: + version "11.5.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.5.1.tgz#5df753b8d0bca20142ce21f4f6c039f99a992929" + dependencies: + abab "^1.0.3" + acorn "^5.1.2" + acorn-globals "^4.0.0" + array-equal "^1.0.0" + browser-process-hrtime "^0.1.2" + content-type-parser "^1.0.1" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.2.37 < 0.3.0" + domexception "^1.0.0" + escodegen "^1.9.0" + html-encoding-sniffer "^1.0.1" + left-pad "^1.2.0" + nwmatcher "^1.4.3" + parse5 "^3.0.2" + pn "^1.0.0" + request "^2.83.0" + request-promise-native "^1.0.3" + sax "^1.2.1" + symbol-tree "^3.2.1" + tough-cookie "^2.3.3" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.1" + whatwg-url "^6.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" @@ -4809,6 +4999,10 @@ ldapjs@^1.0.1: optionalDependencies: dtrace-provider "^0.7.0" +left-pad@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" + lego-api@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/lego-api/-/lego-api-1.0.8.tgz#5e26be726c5e11d540f89e7c6b1abf8c5834bd01" @@ -4870,6 +5064,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +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" @@ -4877,38 +5079,33 @@ 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._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" +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" -lodash._createassigner@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" - dependencies: - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.restparam "^3.0.0" - lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash.assign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" - dependencies: - lodash._baseassign "^3.0.0" - lodash._createassigner "^3.0.0" - lodash.keys "^3.0.0" - lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -4921,6 +5118,13 @@ lodash.clone@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" +lodash.clonedeep@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db" + dependencies: + lodash._baseclone "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -4929,13 +5133,6 @@ lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" -lodash.defaults@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" - dependencies: - lodash.assign "^3.0.0" - lodash.restparam "^3.0.0" - lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -5040,10 +5237,6 @@ lodash.repeat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" -lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - lodash.sample@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz#5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d" @@ -5052,6 +5245,14 @@ lodash.shuffle@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b" +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + lodash.values@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" @@ -5176,10 +5377,24 @@ markdown-it@8.4.0: mdurl "^1.0.1" uc.micro "^1.0.3" +marked-terminal@^1.6.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-1.7.0.tgz#c8c460881c772c7604b64367007ee5f77f125904" + dependencies: + cardinal "^1.0.0" + chalk "^1.1.3" + cli-table "^0.3.1" + lodash.assign "^4.2.0" + node-emoji "^1.4.1" + marked@*: version "0.3.6" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" +marked@^0.3.6: + version "0.3.7" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.7.tgz#80ef3bbf1bd00d1c9cfebe42ba1b8c85da258d0d" + mathjax-node@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/mathjax-node/-/mathjax-node-1.2.1.tgz#f4a0e272149104f2e00a3d268c81e42bee1324fd" @@ -5212,7 +5427,7 @@ memcached@~0.2.4: hashring "0.0.x" jackpot ">=0.0.6" -meow@^3.7.0: +meow@^3.3.0, meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -5231,6 +5446,12 @@ merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" @@ -5337,9 +5558,9 @@ minipass@^2.2.1: dependencies: yallist "^3.0.0" -minizlib@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.0.4.tgz#8ebb51dd8bbe40b0126b5633dbb36b284a2f523c" +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" dependencies: minipass "^2.2.1" @@ -5365,14 +5586,18 @@ moment-timezone@^0.5.0, moment-timezone@^0.5.4, moment-timezone@^0.5.x: dependencies: moment ">= 2.9.0" -moment@2.20.0, moment@^2.19: - version "2.20.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.0.tgz#53396358994dd3a551e966a66af715ecb6c30ad0" +moment@2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" "moment@>= 2.9.0", moment@^2.10.6, moment@^2.13.0, moment@^2.16.1: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" +moment@^2.19: + version "2.20.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.0.tgz#53396358994dd3a551e966a66af715ecb6c30ad0" + mongodb-core@3.0.0-rc0: version "3.0.0-rc0" resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-3.0.0-rc0.tgz#d31a94fb056b90df2c81a24f3176160eaf767f07" @@ -5423,6 +5648,10 @@ mv@~2: ncp "~2.0.0" rimraf "~2.4.0" +nan@^2.0.5: + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + nan@^2.3.0, nan@^2.3.2, nan@^2.3.3: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" @@ -5461,6 +5690,23 @@ node-2fa@1.1.2: notp "^2.0.3" thirty-two "0.0.2" +node-dev@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/node-dev/-/node-dev-3.1.3.tgz#582719223ebdef5d63059e6a7fbcd2399fc0f84d" + dependencies: + dateformat "~1.0.4-1.2.3" + dynamic-dedupe "^0.2.0" + filewatcher "~3.0.0" + minimist "^1.1.3" + node-notifier "^4.0.2" + resolve "^1.0.0" + +node-emoji@^1.4.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" + dependencies: + lodash.toarray "^4.4.0" + node-fetch@1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" @@ -5494,7 +5740,19 @@ node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" -node-notifier@^5.0.2: +node-notifier@^4.0.2: + version "4.6.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-4.6.1.tgz#056d14244f3dcc1ceadfe68af9cff0c5473a33f3" + dependencies: + cli-usage "^0.1.1" + growly "^1.2.0" + lodash.clonedeep "^3.0.0" + minimist "^1.1.1" + semver "^5.1.0" + shellwords "^0.1.0" + which "^1.0.5" + +node-notifier@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" dependencies: @@ -5545,17 +5803,15 @@ node-version@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.0.0.tgz#1b9b9584a9a7f7a6123f215cd14a652bf21ab19e" -nodemon@1.13.3: - version "1.13.3" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.13.3.tgz#92d23e6b91dca351215a4b8a50d2bd838cd0f9e3" +nodemon@1.14.3: + version "1.14.3" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.14.3.tgz#f08d66726fb9876d76956b57cc91624793de4dbb" dependencies: - "@remy/pstree" "^1.1.0" chokidar "^1.7.0" debug "^2.6.8" - es6-promise "^3.3.1" ignore-by-default "^1.0.1" - lodash.defaults "^3.1.2" minimatch "^3.0.4" + pstree.remy "^1.1.0" touch "^3.1.0" undefsafe "0.0.3" update-notifier "^2.3.0" @@ -5642,6 +5898,10 @@ number-is-nan@^1.0.0: version "1.4.1" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.1.tgz#7ae9b07b0ea804db7e25f05cb5fe4097d4e4949f" +nwmatcher@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" + oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" @@ -5666,6 +5926,21 @@ object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-keys@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.2.0.tgz#cddec02998b091be42bf1035ae32e49f1cb6ea67" + dependencies: + foreach "~2.0.1" + indexof "~0.0.1" + is "~0.2.6" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -5871,6 +6146,12 @@ parse5@^3.0.1: dependencies: "@types/node" "^6.0.46" +parse5@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + dependencies: + "@types/node" "*" + parseurl@^1.3.0, parseurl@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" @@ -6245,6 +6526,10 @@ pmx@^1.5: json-stringify-safe "^5.0" vxx "^1.2.0" +pn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9" + pngjs@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.2.0.tgz#fc9fcea1a8a375da54a51148019d5abd41dbabde" @@ -6311,9 +6596,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -pretty-format@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" +pretty-format@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.0.3.tgz#a2bfa59fc33ad24aa4429981bb52524b41ba5dd7" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -6386,10 +6671,6 @@ proxy-addr@~2.0.2: forwarded "~0.1.2" ipaddr.js "1.5.2" -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - ps-tree@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" @@ -6400,6 +6681,12 @@ pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +pstree.remy@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.0.tgz#f2af27265bd3e5b32bbfcc10e80bac55ba78688b" + dependencies: + ps-tree "^1.1.0" + pug-attrs@^2.0.1, pug-attrs@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.2.tgz#8be2b2225568ffa75d1b866982bff9f4111affcb" @@ -6523,6 +6810,10 @@ punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + q@^1.1.2: version "1.5.0" resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" @@ -6676,6 +6967,12 @@ realm-utils@^1.0.8: app-root-path "^1.3.0" mkdirp "^0.5.1" +realpath-native@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" + dependencies: + util.promisify "^1.0.0" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -6689,6 +6986,12 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" +redeyed@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" + dependencies: + esprima "~3.0.0" + redis-commands@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b" @@ -6807,6 +7110,14 @@ request-promise-core@1.1.1: dependencies: lodash "^4.13.1" +request-promise-native@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + request-promise@4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.2.tgz#d1ea46d654a6ee4f8ee6a4fea1018c22911904b4" @@ -6843,7 +7154,7 @@ request@2, request@^2.65.0, request@^2.67.0, request@^2.79.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@2.83.0: +request@2.83.0, request@^2.83.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -6933,6 +7244,12 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" +resolve@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" @@ -6969,6 +7286,12 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: dependencies: glob "^7.0.5" +rimraf@^2.5.4: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + rimraf@~2.4.0: version "2.4.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" @@ -7129,9 +7452,9 @@ send@0.16.1: range-parser "~1.2.0" statuses "~1.3.1" -sequelize@4.28.5: - version "4.28.5" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.28.5.tgz#4a7927eacca926f56847cb8c270afba9be98c080" +sequelize@4.28.6: + version "4.28.6" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.28.6.tgz#44b4b69f550bc53f41135bf8db73c5d492cb7e64" dependencies: bluebird "^3.4.6" cls-bluebird "^2.0.1" @@ -7313,6 +7636,10 @@ source-map@~0.2.0: dependencies: amdefine ">=0.0.4" +source-map@~0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -7369,6 +7696,10 @@ stack-trace@0.0.x, stack-trace@~0.0.9: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" +stack-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + statuses@1, "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" @@ -7561,14 +7892,14 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.1.1.tgz#82fab90e34ac7575f925084de66cc0d2b4a4e040" +tar@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.2.0.tgz#7e2bdadf55a4a04bf64a9d2680b4455e7c61d45e" dependencies: chownr "^1.0.1" fs-minipass "^1.2.3" minipass "^2.2.1" - minizlib "^1.0.4" + minizlib "^1.1.0" mkdirp "^0.5.0" yallist "^3.0.2" @@ -7678,7 +8009,7 @@ touch@^3.1.0: dependencies: nopt "~1.0.10" -tough-cookie@>=2.3.3, tough-cookie@~2.3.3: +tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: @@ -7690,6 +8021,12 @@ tough-cookie@^2.3.2, tough-cookie@~2.3.0: dependencies: punycode "^1.4.1" +tr46@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + dependencies: + punycode "^2.1.0" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -7894,6 +8231,13 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@~0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -8035,11 +8379,11 @@ vue-material@^0.8.1: dependencies: vue "^2.4.4" -vue-resource@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.3.4.tgz#9fc0bdf6a2f5cab430129fc99d347b3deae7b099" +vue-resource@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.3.5.tgz#021d8713e9d86a77e83169dfdd8eab6047369a71" dependencies: - got "^7.0.0" + got "^7.1.0" vue-simple-breakpoints@1.0.3: version "1.0.3" @@ -8047,9 +8391,9 @@ vue-simple-breakpoints@1.0.3: dependencies: simple-breakpoints "^1.1.1" -vue-template-compiler@2.5.11: - version "2.5.11" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.11.tgz#7dda6905e464ff173c8e70e1dfd1769a7888b7e8" +vue-template-compiler@2.5.13: + version "2.5.13" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.13.tgz#12a2aa0ecd6158ac5e5f14d294b0993f399c3d38" dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -8058,9 +8402,9 @@ vue-template-es2015-compiler@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18" -vue@2.5.11: - version "2.5.11" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.11.tgz#80ca2657aa81f03545cd8dd5a2f55454641e6405" +vue@2.5.13: + version "2.5.13" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.13.tgz#95bd31e20efcf7a7f39239c9aa6787ce8cf578e1" vue@^2.4.4: version "2.5.2" @@ -8110,6 +8454,13 @@ watch@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" +weak@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/weak/-/weak-1.0.1.tgz#ab99aab30706959aa0200cb8cf545bb9cb33b99e" + dependencies: + bindings "^1.2.1" + nan "^2.0.5" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -8118,6 +8469,10 @@ webidl-conversions@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0" +webidl-conversions@^4.0.1, webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + whatwg-encoding@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" @@ -8135,6 +8490,14 @@ whatwg-url@^4.3.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.0" + webidl-conversions "^4.0.1" + which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -8149,6 +8512,12 @@ which@1, which@^1.2.12, which@^1.2.9: dependencies: isexe "^2.0.0" +which@^1.0.5: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" @@ -8210,13 +8579,6 @@ wordwrapjs@^2.0.0: reduce-flatten "^1.0.1" typical "^2.6.0" -worker-farm@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.4.1.tgz#a438bc993a7a7d133bcb6547c95eca7cff4897d8" - dependencies: - errno "^0.1.4" - xtend "^4.0.1" - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -8291,6 +8653,13 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +xtend@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.0.6.tgz#5ea657a6dba447069c2e59c58a1138cb0c5e6cee" + dependencies: + is-object "~0.1.2" + object-keys "~0.2.0" + y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" @@ -8328,7 +8697,7 @@ yargs-parser@^8.0.0: dependencies: camelcase "^4.1.0" -yargs@10.0.3: +yargs@10.0.3, yargs@^10.0.3: version "10.0.3" resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae" dependencies: @@ -8363,24 +8732,6 @@ yargs@^7.0.0: y18n "^3.2.1" yargs-parser "^5.0.0" -yargs@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.0.tgz#efe5b1ad3f94bdc20423411b90628eeec0b25f3c" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - yargs@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"