diff --git a/assets/images/bg.jpg b/assets/images/bg.jpg new file mode 100644 index 00000000..d601fcfe Binary files /dev/null and b/assets/images/bg.jpg differ diff --git a/assets/images/bg_1.jpg b/assets/images/bg_1.jpg deleted file mode 100644 index 1b85b7f0..00000000 Binary files a/assets/images/bg_1.jpg and /dev/null differ diff --git a/assets/images/bg_2.jpg b/assets/images/bg_2.jpg deleted file mode 100644 index df2c53be..00000000 Binary files a/assets/images/bg_2.jpg and /dev/null differ diff --git a/assets/images/bg_3.jpg b/assets/images/bg_3.jpg deleted file mode 100644 index 04be9fe7..00000000 Binary files a/assets/images/bg_3.jpg and /dev/null differ diff --git a/client/index.js b/client/index.js index 48f04872..7f5c2c19 100644 --- a/client/index.js +++ b/client/index.js @@ -1,17 +1,4 @@ 'use strict' -let logic = document.documentElement.dataset.logic - -switch (logic) { - case 'error': - require('./scss/error.scss') - break - case 'login': - require('./scss/login.scss') - require('./js/login.js') - break - default: - require('./scss/app.scss') - require('./js/app.js') - break -} +require('./scss/app.scss') +require('./js/app.js') diff --git a/client/js/app.js b/client/js/app.js index 7c4b5899..00991909 100644 --- a/client/js/app.js +++ b/client/js/app.js @@ -1,28 +1,21 @@ 'use strict' -/* global $, siteRoot */ +/* global siteConfig */ /* eslint-disable no-new */ import Vue from 'vue' import VueResource from 'vue-resource' import VueClipboards from 'vue-clipboards' -import VueLodash from 'vue-lodash' import store from './store' -import io from 'socket-io-client' import i18next from 'i18next' import i18nextXHR from 'i18next-xhr-backend' import VueI18Next from '@panter/vue-i18next' -import 'jquery-contextmenu' -import 'jquery-simple-upload' -import 'jquery-smooth-scroll' -import 'jquery-sticky' // ==================================== // Load Helpers // ==================================== import helpers from './helpers' -import _ from './helpers/lodash' // ==================================== // Load Vue Components @@ -63,7 +56,6 @@ import sourceViewComponent from './pages/source-view.component.js' Vue.use(VueResource) Vue.use(VueClipboards) Vue.use(VueI18Next) -Vue.use(VueLodash, _) Vue.use(helpers) // ==================================== @@ -105,39 +97,27 @@ i18next .use(i18nextXHR) .init({ backend: { - loadPath: siteRoot + '/js/i18n/{{lng}}.json' + loadPath: siteConfig.path + '/js/i18n/{{lng}}.json' }, - lng: siteLang, - fallbackLng: siteLang + lng: siteConfig.lang, + fallbackLng: siteConfig.lang }) -$(() => { +document.addEventListener('DOMContentLoaded', ev => { // ==================================== // Notifications // ==================================== - $(window).bind('beforeunload', () => { + window.addEventListener('beforeunload', () => { store.dispatch('startLoading') }) - $(document).ajaxSend(() => { - store.dispatch('startLoading') - }).ajaxComplete(() => { - store.dispatch('stopLoading') - }) - - // ==================================== - // Establish WebSocket connection - // ==================================== - - let socket = io(window.location.origin) - window.socket = socket // ==================================== // Bootstrap Vue // ==================================== const i18n = new VueI18Next(i18next) - window.wikijs = new Vue({ + window.wiki = new Vue({ mixins: [helpers], components: {}, store, @@ -151,9 +131,7 @@ $(() => { } }, mounted() { - $('a:not(.toc-anchor)').smoothScroll({ speed: 500, offset: -50 }) - $('#header').sticky({ topSpacing: 0 }) - $('.sidebar-pagecontents').sticky({ topSpacing: 15, bottomSpacing: 75 }) + } }) }) diff --git a/client/js/app.old.js b/client/js/app.old.js new file mode 100644 index 00000000..fc69cfc3 --- /dev/null +++ b/client/js/app.old.js @@ -0,0 +1,153 @@ +'use strict' + +/* global $, siteConfig */ +/* eslint-disable no-new */ + +import Vue from 'vue' +import VueResource from 'vue-resource' +import VueClipboards from 'vue-clipboards' +import VueLodash from 'vue-lodash' +import store from './store' +import i18next from 'i18next' +import i18nextXHR from 'i18next-xhr-backend' +import VueI18Next from '@panter/vue-i18next' +import 'jquery-contextmenu' +import 'jquery-simple-upload' +import 'jquery-smooth-scroll' +import 'jquery-sticky' + +// ==================================== +// Load Helpers +// ==================================== + +import helpers from './helpers' +import _ from './helpers/lodash' + +// ==================================== +// Load Vue Components +// ==================================== + +import alertComponent from './components/alert.vue' +import anchorComponent from './components/anchor.vue' +import colorPickerComponent from './components/color-picker.vue' +import editorCodeblockComponent from './components/editor-codeblock.vue' +import editorFileComponent from './components/editor-file.vue' +import editorVideoComponent from './components/editor-video.vue' +import historyComponent from './components/history.vue' +import loadingSpinnerComponent from './components/loading-spinner.vue' +import modalCreatePageComponent from './components/modal-create-page.vue' +import modalCreateUserComponent from './components/modal-create-user.vue' +import modalDeleteUserComponent from './components/modal-delete-user.vue' +import modalDiscardPageComponent from './components/modal-discard-page.vue' +import modalMovePageComponent from './components/modal-move-page.vue' +import modalProfile2faComponent from './components/modal-profile-2fa.vue' +import modalUpgradeSystemComponent from './components/modal-upgrade-system.vue' +import pageLoaderComponent from './components/page-loader.vue' +import searchComponent from './components/search.vue' +import toggleComponent from './components/toggle.vue' +import treeComponent from './components/tree.vue' + +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 contentViewComponent from './pages/content-view.component.js' +import editorComponent from './components/editor.component.js' +import sourceViewComponent from './pages/source-view.component.js' + +// ==================================== +// Initialize Vue Modules +// ==================================== + +Vue.use(VueResource) +Vue.use(VueClipboards) +Vue.use(VueI18Next) +Vue.use(VueLodash, _) +Vue.use(helpers) + +// ==================================== +// Register Vue Components +// ==================================== + +Vue.component('alert', alertComponent) +Vue.component('adminEditUser', adminEditUserComponent) +Vue.component('adminProfile', adminProfileComponent) +Vue.component('adminSettings', adminSettingsComponent) +Vue.component('adminTheme', adminThemeComponent) +Vue.component('anchor', anchorComponent) +Vue.component('colorPicker', colorPickerComponent) +Vue.component('contentView', contentViewComponent) +Vue.component('editor', editorComponent) +Vue.component('editorCodeblock', editorCodeblockComponent) +Vue.component('editorFile', editorFileComponent) +Vue.component('editorVideo', editorVideoComponent) +Vue.component('history', historyComponent) +Vue.component('loadingSpinner', loadingSpinnerComponent) +Vue.component('modalCreatePage', modalCreatePageComponent) +Vue.component('modalCreateUser', modalCreateUserComponent) +Vue.component('modalDeleteUser', modalDeleteUserComponent) +Vue.component('modalDiscardPage', modalDiscardPageComponent) +Vue.component('modalMovePage', modalMovePageComponent) +Vue.component('modalProfile2fa', modalProfile2faComponent) +Vue.component('modalUpgradeSystem', modalUpgradeSystemComponent) +Vue.component('pageLoader', pageLoaderComponent) +Vue.component('search', searchComponent) +Vue.component('sourceView', sourceViewComponent) +Vue.component('toggle', toggleComponent) +Vue.component('tree', treeComponent) + +// ==================================== +// Load Localization strings +// ==================================== + +i18next + .use(i18nextXHR) + .init({ + backend: { + loadPath: siteConfig.path + '/js/i18n/{{lng}}.json' + }, + lng: siteConfig.lang, + fallbackLng: siteConfig.lang + }) + +$(() => { + // ==================================== + // Notifications + // ==================================== + + $(window).bind('beforeunload', () => { + store.dispatch('startLoading') + }) + $(document).ajaxSend(() => { + store.dispatch('startLoading') + }).ajaxComplete(() => { + store.dispatch('stopLoading') + }) + + // ==================================== + // Bootstrap Vue + // ==================================== + + const i18n = new VueI18Next(i18next) + if (document.querySelector('#root')) { + window.wikijs = new Vue({ + mixins: [helpers], + components: {}, + store, + i18n, + el: '#root', + methods: { + changeTheme(opts) { + this.$el.className = `has-stickynav is-primary-${opts.primary} is-alternate-${opts.alt}` + this.$refs.header.className = `nav is-${opts.primary}` + this.$refs.footer.className = `footer is-${opts.footer}` + } + }, + mounted() { + $('a:not(.toc-anchor)').smoothScroll({ speed: 500, offset: -50 }) + $('#header').sticky({ topSpacing: 0 }) + $('.sidebar-pagecontents').sticky({ topSpacing: 15, bottomSpacing: 75 }) + } + }) + } +}) diff --git a/client/js/helpers/index.js b/client/js/helpers/index.js index 6f802e8b..6335809b 100644 --- a/client/js/helpers/index.js +++ b/client/js/helpers/index.js @@ -1,6 +1,7 @@ 'use strict' const helpers = { + _: require('./lodash'), common: require('./common'), form: require('./form'), pages: require('./pages') diff --git a/client/js/login.js b/client/js/login.js deleted file mode 100644 index 892e3306..00000000 --- a/client/js/login.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -/* global $ */ - -$(() => { - $('#login-user').focus() -}) diff --git a/client/scss/app.scss b/client/scss/app.scss index 8bf44dd7..fc68ef23 100644 --- a/client/scss/app.scss +++ b/client/scss/app.scss @@ -42,6 +42,7 @@ $primary: 'indigo'; @import 'layout/_header'; @import 'layout/_loader'; -@import 'pages/_welcome'; +@import 'pages/login'; +@import 'pages/welcome'; @import 'base/print'; diff --git a/client/scss/components/button.scss b/client/scss/components/button.scss index 97338a0e..c53754a3 100644 --- a/client/scss/components/button.scss +++ b/client/scss/components/button.scss @@ -4,7 +4,7 @@ border: 1px solid mc('orange','700'); border-radius: 3px; display: inline-flex; - height: 30px; + height: 40px; align-items: center; padding: 0 15px; font-size: 13px; @@ -74,7 +74,13 @@ &.is-featured { animation: btnInvertedPulse .6s ease alternate infinite; - } + } + + &.is-fullwidth { + width: 100%; + text-align: center; + justify-content: center; + } &.is-disabled, &:disabled { background-color: mc('grey', '300'); diff --git a/client/scss/pages/_login.scss b/client/scss/pages/_login.scss index abfd9c93..284bf7f6 100644 --- a/client/scss/pages/_login.scss +++ b/client/scss/pages/_login.scss @@ -1,306 +1,161 @@ +.login { + background-size: cover; + background-position: center center; + background-image: url('../images/bg.jpg'); + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; -body { - padding: 0; - margin: 0; - font-family: $core-font-standard; - font-size: 14px; -} - -a { - color: #FFF; - transition: color 0.4s ease; - text-decoration: none; - - &:hover { - color: mc('orange','600'); - text-decoration: underline; - } - -} - -#bg { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1; - background-color: #000; - - > div { - background-size: cover; - background-position: center center; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - opacity: 0; - visibility: hidden; - transition: opacity 3s ease, visibility 3s; - animation: bg 30s linear infinite; - - &:nth-child(1) { - animation-delay: 10s; - } - - &:nth-child(2) { - animation-delay: 20s; - } - - } - -} - -#root { - position: fixed; - top: 15vh; - left: 10vw; - z-index: 2; - color: #FFF; - display: flex; - flex-direction: column; - - h1 { - font-size: 4rem; - font-weight: bold; - color: #FFF; - padding: 0; - margin: 0; - animation: headerIntro 3s ease; - } - - h2 { - font-size: 1.5rem; - font-weight: normal; - color: rgba(255,255,255,0.7); - padding: 0; - margin: 0 0 25px 0; - animation: headerIntro 3s ease; - } - - h3 { - font-size: 1.25rem; - font-weight: normal; - color: #FB8C00; - padding: 0; - margin: 0; - animation: shake 1s ease; - - > .fa { - margin-right: 7px; - } - - } - - h4 { - font-size: 0.8rem; - font-weight: normal; - color: rgba(255,255,255,0.7); - padding: 0; - margin: 0 0 15px 0; - animation: fadeIn 3s ease; - } - - form { - display: flex; - flex-direction: column; - } - - input[type=text], input[type=password] { - width: 350px; - max-width: 80vw; - border: 1px solid rgba(255,255,255,0.3); - border-radius: 3px; - background-color: rgba(0,0,0,0.2); - padding: 0 15px; - height: 40px; - margin: 0 0 10px 0; - color: #FFF; - font-weight: bold; - font-size: 14px; - transition: all 0.4s ease; - - &:focus { - outline: none; - border-color: mc('orange','600'); - } - - } - - button { - background-color: mc('orange','600'); - color: #FFF; - border: 1px solid lighten(mc('orange','600'), 10%); - border-radius: 3px; - height: 40px; - width: 125px; - padding: 0; - font-weight: bold; - margin: 15px 0 0 0; - transition: all 0.4s ease; - cursor: pointer; - - span { - font-weight: bold; - } - - &:focus { - outline: none; - border-color: #FFF; - } - - &:hover { - background-color: darken(mc('orange','600'), 10%); - } - - } - - #social { - margin-top: 25px; - - > span { - display: block; - font-weight: bold; - color: rgba(255,255,255,0.7); - } - - button { - margin-right: 5px; - width: auto; - padding: 0 15px; - - > i { - margin-right: 10px; - font-size: 16px; - } - - &.ms { - background-color: mc('blue','600'); - border-color: lighten(mc('blue','600'), 10%); - - &:focus { - border-color: #FFF; - } - - &:hover { - background-color: darken(mc('blue','600'), 10%); - } - - } - - &.google { - background-color: mc('light-blue','600'); - border-color: lighten(mc('light-blue','600'), 10%); - - &:focus { - border-color: #FFF; - } - - &:hover { - background-color: darken(mc('light-blue','600'), 10%); - } - - } - - &.facebook { - background-color: mc('indigo','600'); - border-color: lighten(mc('indigo','600'), 10%); - - &:focus { - border-color: #FFF; - } - - &:hover { - background-color: darken(mc('indigo','600'), 10%); - } - - } - - &.github { - background-color: mc('blue-grey','700'); - border-color: lighten(mc('blue-grey','700'), 10%); - - &:focus { - border-color: #FFF; - } - - &:hover { - background-color: darken(mc('blue-grey','700'), 10%); - } - } - - &.slack { - background-color: mc('purple','700'); - border-color: lighten(mc('purple','700'), 10%); - - &:focus { - border-color: #FFF; - } - - &:hover { - background-color: darken(mc('purple','700'), 10%); - } - } - - } - - } - -} - -#copyright { - display: flex; - align-items: center; - justify-content: flex-start; - position: absolute; - left: 10vw; - bottom: 10vh; - z-index: 2; - color: rgba(255,255,255,0.5); - font-weight: bold; - - .icon { - font-size: 1.2rem; - margin: 0 8px; - } - - a { - opacity: 0.75; - } - -} - -@include keyframes(bg) { - 0% { - @include prefix(transform, scale(1,1)); - visibility: visible; - opacity: 0; - }, - 5% { - opacity: 0.5; - }, - 33% { - opacity: 0.5; - }, - 38% { - @include prefix(transform, scale(1.2, 1.2)); - opacity: 0; - }, - 39% { - visibility: hidden; - } - 100% { - visibility: hidden; - opacity: 0; - } -} - -@include keyframes(headerIntro) { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } + &-container { + display: flex; + width: 650px; + align-items: stretch; + box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); + } + + &-providers { + display: flex; + flex-direction: column; + width: 200px; + border: 1px solid #FFF; + background-color: mc('grey', '900'); + z-index: 1; + + button { + flex: 1 1; + padding: 0 15px; + border: none; + color: #FFF; + background-color: mc('grey', '800'); + border-top: 1px solid mc('grey', '900'); + font-family: $core-font-standard; + font-weight: 600; + text-align: left; + min-height: 40px; + + &:first-child { + border-top: none; + } + + &.is-active { + background-color: mc('grey', '100'); + background-image: radial-gradient(circle at top left, rgba(mc('grey', '200'),1) 0%,rgba(255,255,255,1) 100%); + color: mc('grey', '700'); + } + + i { + margin-right: 10px; + font-size: 16px; + } + + span { + font-weight: 600; + } + } + } + + &-frame { + background-image: radial-gradient(circle at top left, rgba(255,255,255,1) 0%,rgba(240,240,240,.6) 100%); + border: 1px solid #FFF; + width: 450px; + padding: 1rem; + color: mc('grey', '700'); + display: flex; + justify-content: center; + flex-direction: column; + text-align: center; + + h1 { + font-size: 2rem; + font-weight: 600; + color: mc('grey', '700'); + padding: 0; + margin: 0; + } + + h2 { + font-size: 1.5rem; + font-weight: 300; + color: mc('grey', '700'); + padding: 0; + margin: 0 0 25px 0; + } + + h3 { + font-size: 1.25rem; + font-weight: normal; + color: #FB8C00; + padding: 0; + margin: 0; + animation: shake 1s ease; + + > .fa { + margin-right: 7px; + } + + } + + h4 { + font-size: .8rem; + font-weight: normal; + color: rgba(255,255,255,0.7); + padding: 0; + margin: 0 0 15px 0; + animation: fadeIn 3s ease; + } + + form { + display: flex; + flex-direction: column; + } + + input[type=text], input[type=password] { + width: 100%; + border: 1px solid #FFF; + border-radius: 3px; + background-color: rgba(255,255,255,.7); + padding: 0 15px; + height: 40px; + margin: 0 0 10px 0; + color: mc('grey', '700'); + font-weight: 600; + font-size: .8rem; + transition: all 0.4s ease; + text-align: center; + + &:focus { + outline: none; + border-color: mc('grey','400'); + } + + } + + } + + &-copyright { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + bottom: 10vh; + width: 100%; + z-index: 2; + color: #FFF; + font-weight: 400; + text-shadow: 1px 1px 0 #000; + + .icon { + font-size: 1.2rem; + margin: 0 8px; + } + + a { + font-weight: 600; + color: #FFF; + } + + } } diff --git a/package.json b/package.json index 7545f72b..7e27ce96 100644 --- a/package.json +++ b/package.json @@ -42,8 +42,8 @@ "axios": "0.16.2", "bcryptjs-then": "1.0.1", "bluebird": "3.5.0", - "body-parser": "1.17.2", - "bull": "3.0.0", + "body-parser": "1.18.0", + "bull": "3.1.0", "bunyan": "1.8.12", "cheerio": "1.0.0-rc.2", "child-process-promise": "2.2.1", @@ -63,7 +63,7 @@ "follow-redirects": "1.2.4", "fs-extra": "4.0.1", "git-wrapper2-promise": "0.2.9", - "graphql": "0.11.2", + "graphql": "0.11.3", "graphql-tools": "1.2.2", "highlight.js": "9.12.0", "i18next": "9.0.0", @@ -73,7 +73,7 @@ "ioredis": "3.1.4", "jimp": "0.2.28", "js-yaml": "3.9.1", - "jsonwebtoken": "7.4.3", + "jsonwebtoken": "8.0.0", "klaw": "2.1.0", "levelup": "1.3.9", "lodash": "4.17.4", @@ -88,7 +88,7 @@ "markdown-it-mathjax": "2.0.0", "markdown-it-task-lists": "2.0.1", "mathjax-node": "1.2.0", - "memdown": "1.2.4", + "memdown": "1.2.7", "mime-types": "2.1.17", "moment": "2.18.1", "moment-timezone": "0.5.13", @@ -108,24 +108,24 @@ "passport.socketio": "3.7.0", "pg": "7.3.0", "pg-hstore": "2.3.2", - "pg-promise": "6.5.1", + "pg-promise": "6.5.2", "pm2": "2.6.1", - "pug": "2.0.0-rc.3", + "pug": "2.0.0-rc.4", "read-chunk": "2.1.0", "remove-markdown": "0.2.2", "request": "2.81.0", "search-index-adder": "0.3.9", "search-index-searcher": "0.2.10", "semver": "5.4.1", - "sequelize": "4.8.0", + "sequelize": "4.8.2", "serve-favicon": "2.4.3", "simplemde": "1.11.2", "socket.io": "2.0.3", - "stopword": "0.1.6", + "stopword": "0.1.7", "stream-to-promise": "2.2.0", "tar": "4.0.1", "through2": "2.0.3", - "validator": "8.1.0", + "validator": "8.2.0", "validator-as-promised": "1.0.2", "winston": "2.3.1", "yargs": "8.0.2" @@ -134,7 +134,7 @@ "@glimpse/glimpse": "0.22.15", "@panter/vue-i18next": "0.5.1", "babel-cli": "6.26.0", - "babel-jest": "21.0.0", + "babel-jest": "21.0.2", "babel-plugin-transform-object-assign": "6.22.0", "babel-preset-es2015": "6.24.1", "brace": "0.10.0", @@ -146,18 +146,18 @@ "eslint-plugin-node": "5.1.1", "eslint-plugin-promise": "3.5.0", "eslint-plugin-standard": "3.0.1", - "fuse-box": "2.2.3", + "fuse-box": "^2.2.31", "i18next-xhr-backend": "1.4.2", - "jest": "21.0.0", + "jest": "21.0.2", "jquery": "3.2.1", - "jquery-contextmenu": "2.5.0", + "jquery-contextmenu": "2.6.2", "jquery-simple-upload": "1.0.0", "jquery-smooth-scroll": "2.2.0", "jquery-sticky": "1.0.4", "lodash-cli": "4.17.4", "lodash-es": "4.17.4", "node-sass": "4.5.3", - "nodemon": "1.11.0", + "nodemon": "1.12.0", "pug-lint": "2.5.0", "twemoji-awesome": "1.0.6", "typescript": "2.5.2", diff --git a/server/master.js b/server/master.js index 85754011..844eee05 100644 --- a/server/master.js +++ b/server/master.js @@ -136,10 +136,10 @@ module.exports = Promise.join( // ---------------------------------------- app.locals._ = require('lodash') - app.locals.t = wiki.lang.t.bind(wiki.config.site.lang) + app.locals.t = wiki.lang.t.bind(wiki.lang) app.locals.moment = require('moment') app.locals.moment.locale(wiki.config.site.lang) - app.locals.appconfig = wiki.config + app.locals.config = wiki.config app.use(mw.flash) // ---------------------------------------- diff --git a/server/modules/config.js b/server/modules/config.js index 334fba3c..5884b8cf 100644 --- a/server/modules/config.js +++ b/server/modules/config.js @@ -47,11 +47,11 @@ module.exports = { appconfig.port = process.env.PORT || 80 } - // Convert booleans + // Convert booleans - appconfig.public = (appconfig.public === true || _.toLower(appconfig.public) === 'true') + appconfig.public = (appconfig.public === true || _.toLower(appconfig.public) === 'true') - // List authentication strategies + // List authentication strategies wiki.config = appconfig wiki.data = appdata }, diff --git a/server/views/auth/login.pug b/server/views/auth/login.pug index ad860349..14105179 100644 --- a/server/views/auth/login.pug +++ b/server/views/auth/login.pug @@ -1,75 +1,54 @@ -doctype html -html(data-logic='login') - head - meta(http-equiv='X-UA-Compatible', content='IE=edge') - meta(charset='UTF-8') - 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='/favicons/ms-icon-144x144.png') - title= appconfig.title - - // Favicon - each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180] - link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png') - link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png') - each favsize in [32, 96, 16] - link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png') - link(rel='manifest', href='/manifest.json') - - // JS / CSS - script(type='text/javascript', src=appconfig.host + '/js/vendor.js') - script(type='text/javascript', src=appconfig.host + '/js/app.js') +extends ../master.pug +block body body - #bg - each bg in _.sampleSize([1, 2, 3],3) - div(style='background-image:url(/images/bg_' + bg + '.jpg);') - #root - h1= appconfig.title - h2= t('auth:loginrequired') - if appflash.length > 0 - h3 - i.icon-warning-outline - = appflash[0].title - h4= appflash[0].message - if appconfig.auth.local.enabled - form(method='post', action='/login') - input#login-user(type='text', name='email', placeholder=t('auth:fields.emailuser')) - input#login-pass(type='password', name='password', placeholder=t('auth:fields.password')) - button(type='submit')= t('auth:actions.login') - if appconfig.authStrategies.socialEnabled - #social - if appconfig.auth.local.enabled - span= t('auth:loginusingalt') - else - span= t('auth:loginusing') - if appconfig.auth.microsoft && appconfig.auth.microsoft.enabled - button.ms(onclick='window.location.assign("/login/ms")') - i.icon-windows2 - span= t('auth:providers.windowslive') - if appconfig.auth.azure && appconfig.auth.azure.enabled - button.ms(onclick='window.location.assign("/login/azure")') - i.icon-windows2 - span= t('auth:providers.azure') - if appconfig.auth.google && appconfig.auth.google.enabled - button.google(onclick='window.location.assign("/login/google")') - i.icon-google - span= t('auth:providers.google') - if appconfig.auth.facebook && appconfig.auth.facebook.enabled - button.facebook(onclick='window.location.assign("/login/facebook")') - i.icon-facebook - span= t('auth:providers.facebook') - if appconfig.auth.github && appconfig.auth.github.enabled - button.github(onclick='window.location.assign("/login/github")') - i.icon-github - span= t('auth:providers.github') - if appconfig.auth.slack && appconfig.auth.slack.enabled - button.slack(onclick='window.location.assign("/login/slack")') - i.icon-slack - span= t('auth:providers.slack') - #copyright - = t('footer.poweredby') + ' ' - a.icon(href='https://github.com/Requarks/wiki') - i.icon-github - a(href='https://wiki.requarks.io/') Wiki.js + .login#root + .login-container + if config.authStrategies.socialEnabled + .login-providers + button.is-active(onclick='window.location.assign("/login/ms")') + i.nc-icon-outline.ui-1_database + span= t('auth:providers.local') + if config.auth.microsoft && config.auth.microsoft.enabled + button(onclick='window.location.assign("/login/ms")') + i.icon-windows2 + span= t('auth:providers.windowslive') + if config.auth.azure && config.auth.azure.enabled + button(onclick='window.location.assign("/login/azure")') + i.icon-windows2 + span= t('auth:providers.azure') + if config.auth.google && config.auth.google.enabled + button(onclick='window.location.assign("/login/google")') + i.icon-google + span= t('auth:providers.google') + if config.auth.facebook && config.auth.facebook.enabled + button(onclick='window.location.assign("/login/facebook")') + i.icon-facebook + span= t('auth:providers.facebook') + if config.auth.github && config.auth.github.enabled + button(onclick='window.location.assign("/login/github")') + i.icon-github + span= t('auth:providers.github') + if config.auth.slack && config.auth.slack.enabled + button(onclick='window.location.assign("/login/slack")') + i.icon-slack + span= t('auth:providers.slack') + .login-frame + h1= config.site.title + h2= t('auth:loginrequired') + if appflash.length > 0 + h3 + i.icon-warning-outline + = appflash[0].title + h4= appflash[0].message + if config.auth.local.enabled + form(method='post', action='/login') + input#login-user(type='text', name='email', placeholder=t('auth:fields.emailuser')) + input#login-pass(type='password', name='password', placeholder=t('auth:fields.password')) + button.button.is-light-green.is-fullwidth(type='submit') + span= t('auth:actions.login') + .login-copyright + = t('footer.poweredby') + ' ' + a.icon(href='https://github.com/Requarks/wiki') + i.icon-github + a(href='https://wiki.requarks.io/') Wiki.js diff --git a/server/views/error.pug b/server/views/error.pug index 3ef6c43f..51b53efe 100644 --- a/server/views/error.pug +++ b/server/views/error.pug @@ -1,32 +1,12 @@ -doctype html -html(data-logic='error') - head - meta(http-equiv='X-UA-Compatible', content='IE=edge') - meta(charset='UTF-8') - 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=appconfig.host + '/favicons/ms-icon-144x144.png') - title= appconfig.title - - // Favicon - each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180] - link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href=appconfig.host + '/favicons/apple-icon-' + favsize + 'x' + favsize + '.png') - link(rel='icon', type='image/png', sizes='192x192', href=appconfig.host + '/favicons/android-icon-192x192.png') - each favsize in [32, 96, 16] - link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href=appconfig.host + '/favicons/favicon-' + favsize + 'x' + favsize + '.png') - link(rel='manifest', href=appconfig.host + '/manifest.json') - - // JS / CSS - script(type='text/javascript', src=appconfig.host + '/js/vendor.js') - script(type='text/javascript', src=appconfig.host + '/js/app.js') +extends ./master.pug +block body body(class='is-error') .container - a(href='/'): img(src=appconfig.host + '/images/logo.png') + a(href='/'): img(src=config.site.path + '/images/logo.png') h1= message h2= t('errors:generic') - a.button.is-amber.is-inverted.is-featured(href=appconfig.host + '/')= t('errors:actions.gohome') + a.button.is-amber.is-inverted.is-featured(href=config.site.path+ '/')= t('errors:actions.gohome') if error.stack h3= t('errors:debugmsg') diff --git a/server/views/layout.pug b/server/views/layout.pug index 4e0f0a9f..49d4747a 100644 --- a/server/views/layout.pug +++ b/server/views/layout.pug @@ -1,33 +1,6 @@ -doctype html -html - head - meta(http-equiv='X-UA-Compatible', content='IE=edge') - meta(charset='UTF-8') - 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=appconfig.host + '/favicons/ms-icon-144x144.png') - title= appconfig.title - - //- Favicon - each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180] - link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href=appconfig.host + '/favicons/apple-icon-' + favsize + 'x' + favsize + '.png') - link(rel='icon', type='image/png', sizes='192x192', href=appconfig.host + '/favicons/android-icon-192x192.png') - each favsize in [32, 96, 16] - link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href=appconfig.host + '/favicons/favicon-' + favsize + 'x' + favsize + '.png') - link(rel='manifest', href=appconfig.host + '/manifest.json') - - //- Site Lang - script. - var siteLang = '!{appconfig.lang}'; - var siteRoot = '!{appconfig.host}'; - - //- JS / CSS - script(type='text/javascript', src=appconfig.host + '/js/vendor.js') - script(type='text/javascript', src=appconfig.host + '/js/app.js') - - block head +extends ./master.pug +block body body #root.has-stickynav(class=['is-primary-' + appconfig.theme.primary, 'is-alternate-' + appconfig.theme.alt]) include ./common/header.pug diff --git a/server/views/master.pug b/server/views/master.pug new file mode 100644 index 00000000..e924fd32 --- /dev/null +++ b/server/views/master.pug @@ -0,0 +1,30 @@ +doctype html +html + head + meta(http-equiv='X-UA-Compatible', content='IE=edge') + meta(charset='UTF-8') + 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') + title= config.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') + 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') + + //- Site Lang + script. + var siteConfig = !{JSON.stringify(config.site)} + + //- JS / CSS + script(type='text/javascript', src=config.site.path + '/js/vendor.js') + script(type='text/javascript', src=config.site.path + '/js/app.js') + + block head + + block body diff --git a/tools/fuse.js b/tools/fuse.js index 9fc79274..ef404827 100644 --- a/tools/fuse.js +++ b/tools/fuse.js @@ -126,7 +126,8 @@ globalTasks.then(() => { switch (mode) { case 'dev': - bundleApp.watch() + bundleApp.hmr().watch() + fuse.dev({ httpServer: false }) break case 'dev-configure': bundleSetup.watch() diff --git a/yarn.lock b/yarn.lock index 5d936277..0a625c96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -133,7 +133,13 @@ abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" -abstract-leveldown@2.4.1, abstract-leveldown@~2.4.0: +abstract-leveldown@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" + dependencies: + xtend "~4.0.0" + +abstract-leveldown@~2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz#b3bfedb884eb693a12775f0c55e9f0a420ccee64" dependencies: @@ -256,6 +262,12 @@ amp@0.3.1, amp@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/amp/-/amp-0.3.1.tgz#6adf8d58a74f361e82c1fa8d389c079e139fc47d" +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + ansi-escape-sequences@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-3.0.0.tgz#1c18394b6af9b76ff9a63509fa497669fd2ce53e" @@ -270,6 +282,10 @@ ansi-escapes@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -447,6 +463,10 @@ assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -689,12 +709,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@21.0.0, babel-jest@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.0.0.tgz#4f636a7dce105aa5753d5f3dde4422ff50c1d6c5" +babel-jest@21.0.2, babel-jest@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.0.2.tgz#817ea52c23f1c6c4b684d6960968416b6a9e9c6c" dependencies: babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^21.0.0" + babel-preset-jest "^21.0.2" babel-messages@^6.23.0: version "6.23.0" @@ -716,9 +736,9 @@ babel-plugin-istanbul@^4.0.0: istanbul-lib-instrument "^1.7.2" test-exclude "^4.1.1" -babel-plugin-jest-hoist@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.0.0.tgz#aa2dbab7b0d58fa635640efd53aab730be7b3273" +babel-plugin-jest-hoist@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.0.2.tgz#cfdce5bca40d772a056cb8528ad159c7bb4bb03d" babel-plugin-transform-es2015-arrow-functions@^6.22.0: version "6.22.0" @@ -952,11 +972,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.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.0.0.tgz#13a8d82e999aa49f8b2dc14d0023d362f2e4ba23" +babel-preset-jest@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.0.2.tgz#9db25def2329f49eace3f5ea0de42a0b898d12cc" dependencies: - babel-plugin-jest-hoist "^21.0.0" + babel-plugin-jest-hoist "^21.0.2" babel-register@^6.24.1: version "6.24.1" @@ -1174,7 +1194,22 @@ bmp-js@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a" -body-parser@1.17.2, body-parser@^1.14.2: +body-parser@1.18.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.0.tgz#d3b224d467fa2ce8d43589c0245043267c093634" + dependencies: + bytes "3.0.0" + content-type "~1.0.2" + debug "2.6.8" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.18" + on-finished "~2.3.0" + qs "6.5.0" + raw-body "2.3.1" + type-is "~1.6.15" + +body-parser@^1.14.2: version "1.17.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" dependencies: @@ -1199,6 +1234,18 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boxen@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.1.tgz#0f11e7fe344edb9397977fc13ede7f64d956481d" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^1.0.0" + brace-expansion@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" @@ -1248,9 +1295,9 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" -bull@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bull/-/bull-3.0.0.tgz#39e76f9b3942dfe5d4209ab49e141ecd837d9430" +bull@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bull/-/bull-3.1.0.tgz#5cdf4ee8b9b72c17c5b257d745f62479c40ca016" dependencies: bluebird "^3.5.0" cron-parser "^2.4.1" @@ -1293,6 +1340,10 @@ bytes@2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1330,10 +1381,14 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camelcase@^4.1.0: +camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" +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" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -1414,7 +1469,7 @@ child-process-promise@^1.1.0: dependencies: q "^1.1.2" -chokidar@1.7.0, chokidar@^1.4.3, chokidar@^1.6.1, chokidar@^1.7: +chokidar@1.7.0, chokidar@^1.6.1, chokidar@^1.7, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -1448,6 +1503,10 @@ clean-css@^3.3.0: commander "2.8.x" source-map "0.4.x" +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -1633,18 +1692,16 @@ config-chain@^1.1.10: ini "^1.3.4" proto-list "~1.2.1" -configstore@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" +configstore@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" dependencies: + dot-prop "^4.1.0" graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" connect-flash@0.1.1: version "0.1.1" @@ -1758,6 +1815,12 @@ crc@3.4.4, crc@^3.4.0: version "3.4.4" resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b" +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + cron-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.4.1.tgz#022befce1af293e4d3144ff04c2cbd2edb491271" @@ -1806,6 +1869,10 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -2058,6 +2125,12 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + dottie@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.0.tgz#da191981c8b8d713ca0115d5898cf397c2f0ddd0" @@ -2086,7 +2159,7 @@ duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.1.2, duplexify@^3.2.0: +duplexify@^3.1.2: version "3.5.0" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" dependencies: @@ -2213,7 +2286,7 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es6-promise@^3.0.2: +es6-promise@^3.0.2, es6-promise@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" @@ -2437,6 +2510,18 @@ execa@^0.5.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exif-parser@^0.1.9: version "0.1.12" resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" @@ -2457,16 +2542,16 @@ expand-template@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.0.3.tgz#6c303323177a62b1b22c070279f7861287b69b1a" -expect@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-21.0.0.tgz#55fbb07e989479863663975ae8e9ec51753c99ca" +expect@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-21.0.2.tgz#b34abf0635ec9d6aea1ce7edb4722afe86c4a38f" dependencies: ansi-styles "^3.2.0" - jest-diff "^21.0.0" - jest-get-type "^21.0.0" - jest-matcher-utils "^21.0.0" - jest-message-util "^21.0.0" - jest-regex-util "^21.0.0" + jest-diff "^21.0.2" + jest-get-type "^21.0.2" + jest-matcher-utils "^21.0.2" + jest-message-util "^21.0.2" + jest-regex-util "^21.0.2" express-brute-redis@0.0.1: version "0.0.1" @@ -2918,9 +3003,9 @@ 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" -fuse-box@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fuse-box/-/fuse-box-2.2.3.tgz#411cc10f55329a462a5e1641d6864953e89ec79a" +fuse-box@^2.2.31: + version "2.2.31" + resolved "https://registry.yarnpkg.com/fuse-box/-/fuse-box-2.2.31.tgz#36d267a6c6a79952a9c1fb7d1643c1949a6d42f5" dependencies: acorn "^5.0.3" acorn-es7 "^0.1.0" @@ -3113,20 +3198,21 @@ google-closure-compiler@20150901.x: version "20150901.0.0" resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20150901.0.0.tgz#3d01c6cade65790a9bfb4e30b2158b7635acbade" -got@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" dependencies: - duplexify "^3.2.0" - infinity-agent "^2.0.0" + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" is-stream "^1.0.0" lowercase-keys "^1.0.0" - nested-error-stacks "^1.0.0" - object-assign "^3.0.0" - prepend-http "^1.0.0" - read-all-stream "^3.0.0" - timed-out "^2.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" got@^7.0.0: version "7.1.0" @@ -3173,9 +3259,9 @@ graphql-tools@^1.1.0: optionalDependencies: "@types/graphql" "^0.9.0" -graphql@0.11.2: - version "0.11.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.11.2.tgz#13edb9f982f3571dd68ec4e9f3d6aca7e1ba57ef" +graphql@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.11.3.tgz#9934e2df28f17d397a85f83cb39d1d179bffef47" dependencies: iterall "^1.1.0" @@ -3311,6 +3397,15 @@ htmlparser2@^3.9.1: inherits "^2.0.1" readable-stream "^2.0.2" +http-errors@1.6.2, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + http-errors@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" @@ -3327,15 +3422,6 @@ http-errors@~1.6.1: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" -http-errors@~1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -3373,7 +3459,7 @@ iconv-lite@0.4.15: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" -iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.18, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.18" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" @@ -3381,7 +3467,7 @@ ieee754@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore-by-default@^1.0.0: +ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -3397,6 +3483,10 @@ immediate@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3415,10 +3505,6 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" -infinity-agent@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" - inflection@1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" @@ -3651,6 +3737,10 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + is-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" @@ -3739,10 +3829,6 @@ isarray@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" -isemail@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3837,17 +3923,17 @@ jackpot@>=0.0.6: dependencies: retry "0.6.0" -jest-changed-files@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.0.0.tgz#fa7cfc353187e2fb852dd5830e8d09068dde78d1" +jest-changed-files@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.0.2.tgz#0a74f35cf2d3b7c8ef9ab4fac0a75409f81ec1b0" dependencies: throat "^4.0.0" -jest-cli@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.0.0.tgz#25fc36badb6a78dc180a67f02c037c0209d12a98" +jest-cli@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.0.2.tgz#2e08af63d44fc21284ebf496cf71e381f3cc9786" dependencies: - ansi-escapes "^2.0.0" + ansi-escapes "^3.0.0" chalk "^2.0.1" glob "^7.1.2" graceful-fs "^4.1.11" @@ -3856,211 +3942,211 @@ jest-cli@^21.0.0: istanbul-lib-coverage "^1.0.1" istanbul-lib-instrument "^1.4.2" istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^21.0.0" - jest-config "^21.0.0" - jest-environment-jsdom "^21.0.0" - jest-haste-map "^21.0.0" - jest-message-util "^21.0.0" - jest-regex-util "^21.0.0" - jest-resolve-dependencies "^21.0.0" - jest-runner "^21.0.0" - jest-runtime "^21.0.0" - jest-snapshot "^21.0.0" - jest-util "^21.0.0" + jest-changed-files "^21.0.2" + jest-config "^21.0.2" + jest-environment-jsdom "^21.0.2" + jest-haste-map "^21.0.2" + jest-message-util "^21.0.2" + jest-regex-util "^21.0.2" + jest-resolve-dependencies "^21.0.2" + jest-runner "^21.0.2" + jest-runtime "^21.0.2" + jest-snapshot "^21.0.2" + jest-util "^21.0.2" micromatch "^2.3.11" node-notifier "^5.0.2" - pify "^2.3.0" + pify "^3.0.0" slash "^1.0.0" - string-length "^1.0.1" + string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" worker-farm "^1.3.1" - yargs "^7.0.2" + yargs "^9.0.0" -jest-config@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.0.0.tgz#81dcb20d15971f31bf44a82c6fe85b4423d98d95" +jest-config@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.0.2.tgz#ea42b94f3c22ae4e4aa11c69f5b45e34e342199d" dependencies: chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^21.0.0" - jest-environment-node "^21.0.0" - jest-get-type "^21.0.0" - jest-jasmine2 "^21.0.0" - jest-regex-util "^21.0.0" - jest-resolve "^21.0.0" - jest-util "^21.0.0" - jest-validate "^21.0.0" - pretty-format "^21.0.0" + jest-environment-jsdom "^21.0.2" + jest-environment-node "^21.0.2" + jest-get-type "^21.0.2" + jest-jasmine2 "^21.0.2" + jest-regex-util "^21.0.2" + jest-resolve "^21.0.2" + jest-util "^21.0.2" + jest-validate "^21.0.2" + pretty-format "^21.0.2" -jest-diff@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.0.0.tgz#b996ba2963a783125e6bc59fd5623bce67df7f17" +jest-diff@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.0.2.tgz#751014f36ad5d505f6affce5542fde0e444ee50a" dependencies: chalk "^2.0.1" diff "^3.2.0" - jest-get-type "^21.0.0" - pretty-format "^21.0.0" + jest-get-type "^21.0.2" + pretty-format "^21.0.2" -jest-docblock@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.0.0.tgz#7dd57568543aec98910f749540afc15fab53a27f" +jest-docblock@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.0.2.tgz#66f69ddb440799fc32f91d0ac3d8d35e99e2032f" -jest-environment-jsdom@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.0.0.tgz#1d53e34b1656254b8c539700e35360d8f8ebb579" +jest-environment-jsdom@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.0.2.tgz#6f6ab5bd71970d1900fbd47a46701c0a07fa3be5" dependencies: - jest-mock "^21.0.0" - jest-util "^21.0.0" + jest-mock "^21.0.2" + jest-util "^21.0.2" jsdom "^9.12.0" -jest-environment-node@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.0.0.tgz#ffc781b82569f3f4bc2d8fb8f1ea7373cb11f043" +jest-environment-node@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.0.2.tgz#4267ceb39551f8ecaed182ab882a93ef4d5de240" dependencies: - jest-mock "^21.0.0" - jest-util "^21.0.0" + jest-mock "^21.0.2" + jest-util "^21.0.2" -jest-get-type@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.0.0.tgz#ed8667533c0a24a4feebbf492661f23abac3620b" +jest-get-type@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.0.2.tgz#304e6b816dd33cd1f47aba0597bcad258a509fc6" -jest-haste-map@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.0.0.tgz#1f099ff6aedb52ec55fa9773ce26e4bbb00b0580" +jest-haste-map@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.0.2.tgz#bd98bc6cd6f207eb029b2f5918da1a9347eb11b7" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^21.0.0" + jest-docblock "^21.0.2" micromatch "^2.3.11" sane "^2.0.0" worker-farm "^1.3.1" -jest-jasmine2@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.0.0.tgz#539725989e45ab0b00029fcf37bc679aa39c2941" +jest-jasmine2@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.0.2.tgz#a368abb3a686def4d6e763509a265104943cd469" dependencies: chalk "^2.0.1" - expect "^21.0.0" + expect "^21.0.2" graceful-fs "^4.1.11" - jest-diff "^21.0.0" - jest-matcher-utils "^21.0.0" - jest-message-util "^21.0.0" - jest-snapshot "^21.0.0" + jest-diff "^21.0.2" + jest-matcher-utils "^21.0.2" + jest-message-util "^21.0.2" + jest-snapshot "^21.0.2" p-cancelable "^0.3.0" -jest-matcher-utils@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.0.0.tgz#493dc25b9ed6a23a61802ca20656f0f1c16f15b1" +jest-matcher-utils@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.0.2.tgz#eb6736a45b698546d71f7e1ffbbd36587eeb27bc" dependencies: chalk "^2.0.1" - jest-get-type "^21.0.0" - pretty-format "^21.0.0" + jest-get-type "^21.0.2" + pretty-format "^21.0.2" -jest-message-util@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.0.0.tgz#cd49c2e91d7a227e622884c418185a1a7cbe1fd6" +jest-message-util@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.0.2.tgz#81242e07d426ad54c15f3d7c55b072e9db7b39a9" dependencies: chalk "^2.0.1" micromatch "^2.3.11" slash "^1.0.0" -jest-mock@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.0.0.tgz#948fdbb44ef702ca998e078ca62b4968780e102e" +jest-mock@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.0.2.tgz#5e92902450e1ce78be3864cc4d50dbd5d1582fbd" -jest-regex-util@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.0.0.tgz#f13c382a1c55515c20471390ab38e5d71cbd320e" +jest-regex-util@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.0.2.tgz#06248c07b53ff444223ebe8e33a25bc051ac976f" -jest-resolve-dependencies@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.0.0.tgz#09dfd9654a8af92880a2f66076871d48810bd48d" +jest-resolve-dependencies@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.0.2.tgz#c42cc371034023ac1a226a7a52f86233c8871938" dependencies: - jest-regex-util "^21.0.0" + jest-regex-util "^21.0.2" -jest-resolve@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.0.0.tgz#04d3939203633cc57ae8219b34ad42687dd8d111" +jest-resolve@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.0.2.tgz#57b2c20cbeca2357eb5e638d5c28beca7f38c3f8" dependencies: browser-resolve "^1.11.2" chalk "^2.0.1" is-builtin-module "^1.0.0" -jest-runner@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.0.0.tgz#8969dd22ff73911c84043cf16b6cfadf609f3d1f" +jest-runner@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.0.2.tgz#1462d431d25f7744e8b5e03837bbf9e268dc8b15" dependencies: - jest-config "^21.0.0" - jest-docblock "^21.0.0" - jest-haste-map "^21.0.0" - jest-jasmine2 "^21.0.0" - jest-message-util "^21.0.0" - jest-runtime "^21.0.0" - jest-util "^21.0.0" - pify "^2.3.0" - throat "^3.0.0" + jest-config "^21.0.2" + jest-docblock "^21.0.2" + jest-haste-map "^21.0.2" + jest-jasmine2 "^21.0.2" + jest-message-util "^21.0.2" + jest-runtime "^21.0.2" + jest-util "^21.0.2" + pify "^3.0.0" + throat "^4.0.0" worker-farm "^1.3.1" -jest-runtime@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.0.0.tgz#54af290dc664a49ddc251c7d7ce1a5661afc1ead" +jest-runtime@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.0.2.tgz#ce26ba06bcd5501991bd994b1eacc0c7c7913895" dependencies: babel-core "^6.0.0" - babel-jest "^21.0.0" + babel-jest "^21.0.2" babel-plugin-istanbul "^4.0.0" chalk "^2.0.1" convert-source-map "^1.4.0" graceful-fs "^4.1.11" - jest-config "^21.0.0" - jest-haste-map "^21.0.0" - jest-regex-util "^21.0.0" - jest-resolve "^21.0.0" - jest-util "^21.0.0" + jest-config "^21.0.2" + jest-haste-map "^21.0.2" + jest-regex-util "^21.0.2" + jest-resolve "^21.0.2" + jest-util "^21.0.2" json-stable-stringify "^1.0.1" micromatch "^2.3.11" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" - yargs "^7.0.2" + yargs "^9.0.0" -jest-snapshot@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.0.0.tgz#00b582b13ef42112bd431b498e37f7829b30cd66" +jest-snapshot@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.0.2.tgz#5b8f4dd05c1759381db835451fba4bcd85a55611" dependencies: chalk "^2.0.1" - jest-diff "^21.0.0" - jest-matcher-utils "^21.0.0" + jest-diff "^21.0.2" + jest-matcher-utils "^21.0.2" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^21.0.0" + pretty-format "^21.0.2" -jest-util@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.0.0.tgz#62b3a3ec3ff91022ef7e1ffbcf3293424715919f" +jest-util@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.0.2.tgz#3ee2380af25c414a39f07b23c84da6f2d5f1f76a" dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" - jest-message-util "^21.0.0" - jest-mock "^21.0.0" - jest-validate "^21.0.0" + jest-message-util "^21.0.2" + jest-mock "^21.0.2" + jest-validate "^21.0.2" mkdirp "^0.5.1" -jest-validate@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.0.0.tgz#f906d54eca2a485ffbfb2d8a7d58831c026e6dd5" +jest-validate@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.0.2.tgz#dd066b257bd102759c214747d73bed6bcfa4349d" dependencies: chalk "^2.0.1" - jest-get-type "^21.0.0" + jest-get-type "^21.0.2" leven "^2.1.0" - pretty-format "^21.0.0" + pretty-format "^21.0.2" -jest@21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-21.0.0.tgz#6b1536b73ea1a4fa2f0904d26f32949c39cf4690" +jest@21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-21.0.2.tgz#a5c9bdc9d4322ae672fe8cb3eaf25c268c5f04b2" dependencies: - jest-cli "^21.0.0" + jest-cli "^21.0.2" jimp@0.2.28: version "0.2.28" @@ -4083,22 +4169,13 @@ jimp@0.2.28: tinycolor2 "^1.1.2" url-regex "^3.0.0" -joi@^6.10.1: - version "6.10.1" - resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" - dependencies: - hoek "2.x.x" - isemail "1.x.x" - moment "2.x.x" - topo "1.x.x" - jpeg-js@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482" -jquery-contextmenu@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/jquery-contextmenu/-/jquery-contextmenu-2.5.0.tgz#940dbadbd0f2d7e0a0a8f1bbc5e71667d8257405" +jquery-contextmenu@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/jquery-contextmenu/-/jquery-contextmenu-2.6.2.tgz#83c7ba45c67c814cc4095b19551fd12e5d71da7e" jquery-simple-upload@1.0.0: version "1.0.0" @@ -4245,12 +4322,18 @@ jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" -jsonwebtoken@7.4.3: - version "7.4.3" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638" +jsonwebtoken@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.0.0.tgz#7b241aa67c61b3d0b3e641254a9a6f5b66f550e8" dependencies: - joi "^6.10.1" jws "^3.1.4" + lodash.includes "^4.3.0" + lodash.isarray "^4.0.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" lodash.once "^4.0.0" ms "^2.0.0" xtend "^4.0.1" @@ -4310,11 +4393,11 @@ klaw@2.1.0: dependencies: graceful-fs "^4.1.9" -latest-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" dependencies: - package-json "^1.0.0" + package-json "^4.0.0" lazy-cache@^1.0.3: version "1.0.4" @@ -4580,6 +4663,10 @@ lodash.foreach@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + lodash.intersection@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.intersection/-/lodash.intersection-4.4.0.tgz#0a11ba631d0e95c23c7f2f4cbb9a692ed178e705" @@ -4592,6 +4679,14 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isarray@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-4.0.0.tgz#2aca496b28c4ca6d726715313590c02e6ea34403" + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + lodash.isempty@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" @@ -4600,6 +4695,22 @@ lodash.isequal@^4.0.0, lodash.isequal@^4.1.3: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -4722,9 +4833,15 @@ lru-cache@^4.0.0, lru-cache@^4.0.1, lru-cache@^4.0.2: pseudomap "^1.0.2" yallist "^2.1.2" -ltgt@~2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" +ltgt@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.0.tgz#b65ba5fcb349a29924c8e333f7c6a5562f2e4842" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" makeerror@1.0.x: version "1.0.11" @@ -4830,15 +4947,15 @@ memcached@~0.2.4: hashring "0.0.x" jackpot ">=0.0.6" -memdown@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.2.4.tgz#cd9a34aaf074d53445a271108eb4b8dd4ec0f27f" +memdown@1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.2.7.tgz#64f2d6b511724c016f3cbd5a40b84349da247b0f" dependencies: - abstract-leveldown "2.4.1" + abstract-leveldown "2.6.3" functional-red-black-tree "^1.0.1" immediate "^3.2.3" inherits "~2.0.1" - ltgt "~2.1.3" + ltgt "~2.2.0" meow@^3.7.0: version "3.7.0" @@ -4977,7 +5094,7 @@ moment-timezone@0.5.13, moment-timezone@^0.5.0, moment-timezone@^0.5.4, moment-t dependencies: moment ">= 2.9.0" -moment@2.18.1, moment@2.x.x, "moment@>= 2.9.0", moment@^2.10.6, moment@^2.13.0, moment@^2.16.1, moment@^2.18: +moment@2.18.1, "moment@>= 2.9.0", moment@^2.10.6, moment@^2.13.0, moment@^2.16.1, moment@^2.18: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" @@ -5053,12 +5170,6 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -nested-error-stacks@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" - dependencies: - inherits "~2.0.1" - ngraminator@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/ngraminator/-/ngraminator-0.0.1.tgz#29cfd699df6970f42de9b2f0bdc7f4b60fad6f8e" @@ -5157,20 +5268,20 @@ 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.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" +nodemon@1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.12.0.tgz#e538548a777340a19f855c4f087b7e528aa3feda" dependencies: - chokidar "^1.4.3" - debug "^2.2.0" - es6-promise "^3.0.2" - ignore-by-default "^1.0.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.0" - ps-tree "^1.0.1" - touch "1.0.0" + minimatch "^3.0.4" + ps-tree "^1.1.0" + touch "^3.1.0" undefsafe "0.0.3" - update-notifier "0.5.0" + update-notifier "^2.2.0" noop-logger@^0.1.1: version "0.1.1" @@ -5384,7 +5495,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@0, osenv@^0.1.0, osenv@^0.1.4: +osenv@0, osenv@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" dependencies: @@ -5423,12 +5534,14 @@ p-timeout@^1.1.1: dependencies: p-finally "^1.0.0" -package-json@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" dependencies: - got "^3.2.0" - registry-url "^3.0.0" + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" packet-reader@0.3.1: version "0.3.1" @@ -5694,9 +5807,9 @@ pg-pool@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.3.tgz#c022032c8949f312a4f91fb6409ce04076be3257" -pg-promise@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/pg-promise/-/pg-promise-6.5.1.tgz#d71d262978ea5a8e9ea9be1325e25e4841201c30" +pg-promise@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/pg-promise/-/pg-promise-6.5.2.tgz#84d18d8f14bd5a60bf8415d96c3c634e0d1745a2" dependencies: manakin "~0.5.1" pg "~6.4.2" @@ -5924,7 +6037,7 @@ prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.0, prepend-http@^1.0.1: +prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -5932,9 +6045,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -pretty-format@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.0.0.tgz#bea1522c4c47e49b44db5b6fbf83e7737251f305" +pretty-format@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.0.2.tgz#76adcebd836c41ccd2e6b626e70f63050d2a3534" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -6015,7 +6128,7 @@ prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" -ps-tree@^1.0.1: +ps-tree@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" dependencies: @@ -6033,9 +6146,9 @@ pug-attrs@^2.0.1, pug-attrs@^2.0.2: js-stringify "^1.0.1" pug-runtime "^2.0.3" -pug-code-gen@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-1.1.1.tgz#1cf72744ef2a039eae6a3340caaa1105871258e8" +pug-code-gen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.0.tgz#96aea39a9e62f1ec5d2b6a5b42a29d528c70b43d" dependencies: constantinople "^3.0.1" doctypes "^1.1.0" @@ -6050,15 +6163,15 @@ pug-error@^1.3.0, pug-error@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.2.tgz#53ae7d9d29bb03cf564493a026109f54c47f5f26" -pug-filters@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-2.1.4.tgz#ab247c0f58765414b61be7b54fe979e9f6fc898f" +pug-filters@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-2.1.5.tgz#66bf6e80d97fbef829bab0aa35eddff33fc964f3" dependencies: clean-css "^3.3.0" constantinople "^3.0.1" jstransformer "1.0.0" pug-error "^1.3.2" - pug-walk "^1.1.4" + pug-walk "^1.1.5" resolve "^1.1.6" uglify-js "^2.6.1" @@ -6078,12 +6191,12 @@ pug-lexer@^3.1.0: is-expression "^3.0.0" pug-error "^1.3.2" -pug-linker@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.2.tgz#cc0780cf9f3f5522b270871785492b99588d3142" +pug-linker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.3.tgz#25f59eb750237f0368e59c3379764229c0189c41" dependencies: pug-error "^1.3.2" - pug-walk "^1.1.4" + pug-walk "^1.1.5" pug-lint@2.5.0: version "2.5.0" @@ -6103,16 +6216,16 @@ pug-lint@2.5.0: strip-json-comments "^2.0.1" void-elements "^2.0.1" -pug-load@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.8.tgz#1df1c1716f3e68c70d71699cff9458472dc38b9b" +pug-load@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.9.tgz#ee217c914cc1d9324d44b86c32d1df241d36de7a" dependencies: object-assign "^4.1.0" - pug-walk "^1.1.4" + pug-walk "^1.1.5" -pug-parser@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-3.0.1.tgz#dc0c5dd6c9c2d89da6105abbdf3d1b0fb4d39b5e" +pug-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-4.0.0.tgz#c9f52322e4eabe4bf5beeba64ed18373bb627801" dependencies: pug-error "^1.3.2" token-stream "0.0.1" @@ -6127,20 +6240,20 @@ pug-strip-comments@^1.0.2: dependencies: pug-error "^1.3.2" -pug-walk@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.4.tgz#29e5174af43b67e99c31b448632e1ff86ddd671c" +pug-walk@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.5.tgz#90e943acbcf7021e6454cf1b32245891cba6f851" -pug@2.0.0-rc.3: - version "2.0.0-rc.3" - resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.0-rc.3.tgz#553cb3c3a97bb54ec3cb1e08591dcae3b6f58891" +pug@2.0.0-rc.4: + version "2.0.0-rc.4" + resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.0-rc.4.tgz#b7b08f6599bd5302568042b7436984fb28c80a13" dependencies: - pug-code-gen "^1.1.1" - pug-filters "^2.1.4" + pug-code-gen "^2.0.0" + pug-filters "^2.1.5" pug-lexer "^3.1.0" - pug-linker "^3.0.2" - pug-load "^2.0.8" - pug-parser "^3.0.1" + pug-linker "^3.0.3" + pug-load "^2.0.9" + pug-parser "^4.0.0" pug-runtime "^2.0.3" pug-strip-comments "^1.0.2" @@ -6198,6 +6311,15 @@ range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +raw-body@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.1.tgz#30f95e2a67a14e2e4413d8d51fdd92c877e8f2ed" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.18" + unpipe "1.0.0" + raw-body@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" @@ -6215,13 +6337,6 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - read-chunk@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-2.1.0.tgz#6a04c0928005ed9d42e1a6ac5600e19cbc7ff655" @@ -6378,7 +6493,14 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -registry-url@^3.0.0: +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" dependencies: @@ -6410,12 +6532,6 @@ repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -repeating@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" - dependencies: - is-finite "^1.0.0" - repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" @@ -6707,9 +6823,9 @@ send@0.15.4: range-parser "~1.2.0" statuses "~1.3.1" -sequelize@4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.8.0.tgz#1987a97deceb749da7e25cd27059adb69dbf81c2" +sequelize@4.8.2: + version "4.8.2" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.8.2.tgz#d16a6e75e8b48303beab4787b946bf06f32f1a94" dependencies: bluebird "^3.4.6" cls-bluebird "^2.0.1" @@ -6843,10 +6959,6 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -6989,9 +7101,9 @@ stdout-stream@^1.4.0: dependencies: readable-stream "^2.0.1" -stopword@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/stopword/-/stopword-0.1.6.tgz#435cc3e9d4311aedca2876ed4cae79153cd3d0fb" +stopword@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/stopword/-/stopword-0.1.7.tgz#4bf4f6bbb157f5ca43e4800559854943828563d6" stream-combiner@~0.0.4: version "0.0.4" @@ -7031,11 +7143,12 @@ streamsearch@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" -string-length@^1.0.0, string-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" dependencies: - strip-ansi "^3.0.0" + astral-regex "^1.0.0" + strip-ansi "^4.0.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" @@ -7200,6 +7313,12 @@ term-frequency@^0.0.15: version "0.0.15" resolved "https://registry.yarnpkg.com/term-frequency/-/term-frequency-0.0.15.tgz#ff4aeaff2ac31ee1096b5c685852816a5da676e7" +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + term-vector@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/term-vector/-/term-vector-0.1.2.tgz#774e7e44aef2274b3b1d8a2441981f99d0f7e0aa" @@ -7243,10 +7362,6 @@ thirty-two@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-0.0.2.tgz#4253e29d8cb058f0480267c5698c0e4927e54b6a" -throat@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" - throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" @@ -7262,10 +7377,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -timed-out@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" - timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -7300,19 +7411,13 @@ token-stream@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" -topo@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" - dependencies: - hoek "2.x.x" - toposort-class@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" -touch@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" dependencies: nopt "~1.0.10" @@ -7462,6 +7567,12 @@ underscore@~1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.5.2.tgz#1335c5e4f5e6d33bbb4b006ba8c86a00f556de08" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" @@ -7474,17 +7585,22 @@ unzip-response@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" -update-notifier@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" dependencies: + boxen "^1.0.0" chalk "^1.0.0" - configstore "^1.0.0" + configstore "^3.0.0" + import-lazy "^2.1.0" is-npm "^1.0.0" - latest-version "^1.0.0" - repeating "^1.1.2" + latest-version "^3.0.0" semver-diff "^2.0.0" - string-length "^1.0.0" + xdg-basedir "^3.0.0" url-parse-lax@^1.0.0: version "1.0.0" @@ -7531,7 +7647,7 @@ utils-merge@1.0.0, utils-merge@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" -uuid@^2.0.1, uuid@^2.0.2: +uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" @@ -7564,14 +7680,18 @@ validator-as-promised@1.0.2: lodash "^4.14.0" validator "^5.5.0" -validator@8.1.0, validator@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-8.1.0.tgz#89cf6b512ff71eba886afd8d10d47f8dc800eac0" +validator@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-8.2.0.tgz#3c1237290e37092355344fef78c231249dab77b9" validator@^5.5.0: version "5.7.0" resolved "https://registry.yarnpkg.com/validator/-/validator-5.7.0.tgz#7a87a58146b695ac486071141c0c49d67da05e5c" +validator@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-8.1.0.tgz#89cf6b512ff71eba886afd8d10d47f8dc800eac0" + vary@^1, vary@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" @@ -7737,6 +7857,12 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -7804,15 +7930,7 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^1.1.2: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -write-file-atomic@^2.1.0: +write-file-atomic@^2.0.0, write-file-atomic@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" dependencies: @@ -7840,11 +7958,9 @@ ws@~2.3.1: safe-buffer "~5.0.1" ultron "~1.1.0" -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - dependencies: - os-homedir "^1.0.0" +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" xhr@^2.0.1: version "2.4.0" @@ -7933,7 +8049,7 @@ yargs@8.0.2: y18n "^3.2.1" yargs-parser "^7.0.0" -yargs@^7.0.0, yargs@^7.0.2: +yargs@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" dependencies: @@ -7951,6 +8067,24 @@ yargs@^7.0.0, yargs@^7.0.2: 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@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"