diff --git a/.eslintrc.js b/.eslintrc.js
index 67c085d6..b3a0b5d8 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -7,20 +7,20 @@ module.exports = {
sourceType: 'module'
},
env: {
- browser: true,
+ browser: true
},
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
extends: 'standard',
// required to lint *.vue files
- plugins: [
- 'html'
- ],
+ plugins: ['html'],
// add your custom rules here
- 'rules': {
+ rules: {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
+ // disable space before func paren
+ 'space-before-function-paren': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
}
diff --git a/.gitignore b/.gitignore
index eb4b0483..0c97e27c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@ test/unit/coverage
test/e2e/reports
selenium-debug.log
.netlify
-.*.dockerfile
\ No newline at end of file
+.*.dockerfile
+.vs
\ No newline at end of file
diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js
index 8acac82d..cd79c65d 100644
--- a/build/webpack.base.conf.js
+++ b/build/webpack.base.conf.js
@@ -23,6 +23,7 @@ module.exports = {
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
+ 'utils': resolve('src/utils')
}
},
module: {
diff --git a/build/webpack.test.conf.js b/build/webpack.test.conf.js
index 8e4385cf..37f98061 100644
--- a/build/webpack.test.conf.js
+++ b/build/webpack.test.conf.js
@@ -14,6 +14,10 @@ var webpackConfig = merge(baseConfig, {
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/test.env')
+ }),
+ new webpack.ProvidePlugin({
+ $: 'jquery',
+ jQuery: 'jquery',
})
]
})
diff --git a/index.html b/index.html
index 4d76b93f..d452776c 100644
--- a/index.html
+++ b/index.html
@@ -22,7 +22,7 @@
-
+
@@ -30,6 +30,8 @@
+
+
diff --git a/src/components/Dash.vue b/src/components/Dash.vue
index 49e15d72..aa775e1c 100644
--- a/src/components/Dash.vue
+++ b/src/components/Dash.vue
@@ -1,131 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
-
+
@@ -143,103 +23,83 @@
{{$route.name.toUpperCase()}}
-
+
-
-
+
+
-
-
diff --git a/src/components/SidebarMenu.vue b/src/components/SidebarMenu.vue
deleted file mode 100644
index 5ce798b8..00000000
--- a/src/components/SidebarMenu.vue
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
diff --git a/src/components/layout/DashFooter.vue b/src/components/layout/DashFooter.vue
new file mode 100644
index 00000000..cb45f9a1
--- /dev/null
+++ b/src/components/layout/DashFooter.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/src/components/layout/DashHeader.vue b/src/components/layout/DashHeader.vue
new file mode 100644
index 00000000..8915bb94
--- /dev/null
+++ b/src/components/layout/DashHeader.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/layout/MessageItem.vue b/src/components/layout/MessageItem.vue
new file mode 100644
index 00000000..790c7c00
--- /dev/null
+++ b/src/components/layout/MessageItem.vue
@@ -0,0 +1,28 @@
+
+
+
+
+ {{message.title}}
+
+
+ {{message.createdAt}}
+
+
+ {{message.body}}
+
+
+
+
+
+
+
diff --git a/src/components/layout/MessagesMenu.vue b/src/components/layout/MessagesMenu.vue
new file mode 100644
index 00000000..b41c9d6a
--- /dev/null
+++ b/src/components/layout/MessagesMenu.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
diff --git a/src/components/layout/NotificationItem.vue b/src/components/layout/NotificationItem.vue
new file mode 100644
index 00000000..4546bdd4
--- /dev/null
+++ b/src/components/layout/NotificationItem.vue
@@ -0,0 +1,48 @@
+
+
+
+
+ {{ notification.title }}
+
+
+ {{ notification.createdAt }}
+
+
+ {{ notification.body }}
+
+
+
+
+
+
+
diff --git a/src/components/layout/NotificationsMenu.vue b/src/components/layout/NotificationsMenu.vue
new file mode 100644
index 00000000..0f7e80d6
--- /dev/null
+++ b/src/components/layout/NotificationsMenu.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
diff --git a/src/components/Sidebar.vue b/src/components/layout/Sidebar.vue
similarity index 64%
rename from src/components/Sidebar.vue
rename to src/components/layout/Sidebar.vue
index 5347c8c2..d6829475 100644
--- a/src/components/Sidebar.vue
+++ b/src/components/layout/Sidebar.vue
@@ -7,11 +7,11 @@
-
![]()
+
-
@@ -95,77 +81,41 @@
-
-
-
-
-
Inventory
-
5,200
-
-
-
- 50% Increase
-
-
-
-
+
+
-
-
-
-
-
Mentions
-
92,050
-
-
-
- 20% Increase
-
-
-
-
+
+
-
-
-
-
-
Downloads
-
114,381
-
-
-
- 70% Increase
-
-
-
-
+
+
-
-
-
-
-
Direct Messages
-
163,921
-
-
-
- 40% Increase
-
-
-
-
+
+
@@ -174,8 +124,17 @@
diff --git a/src/components/widgets/InfoBox.vue b/src/components/widgets/InfoBox.vue
new file mode 100644
index 00000000..0c8c7f29
--- /dev/null
+++ b/src/components/widgets/InfoBox.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ {{text}}
+ {{number}}
+
+
+
+
+
diff --git a/src/components/widgets/ProcessInfoBox.vue b/src/components/widgets/ProcessInfoBox.vue
new file mode 100644
index 00000000..342ecf2f
--- /dev/null
+++ b/src/components/widgets/ProcessInfoBox.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
{{text}}
+
{{number}}
+
+
{{description}}
+
+
+
+
+
diff --git a/src/demo.js b/src/demo.js
index b561d9b2..a47ec15d 100644
--- a/src/demo.js
+++ b/src/demo.js
@@ -51,7 +51,9 @@ export const timeline = [{
body: 'Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem plugg dopplr jibjab, movity jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle quora plaxo ideeli hulu weebly balihoo...',
buttons: [{
type: 'primary',
- message: 'Read more'
+ message: 'Read more',
+ href: 'https://github.com/misterGF/CoPilot',
+ target: '_blank'
}]
},
{
diff --git a/src/main.js b/src/main.js
index 07b3a14e..793ff718 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,3 +1,6 @@
+// Import ES6 Promise
+import 'es6-promise/auto'
+
// Import System requirements
import Vue from 'vue'
import VueRouter from 'vue-router'
@@ -24,15 +27,20 @@ Vue.use(VueRouter)
var router = new VueRouter({
routes: routes,
mode: 'history',
- scrollBehavior: function (to, from, savedPosition) {
+ linkExactActiveClass: 'active',
+ scrollBehavior: function(to, from, savedPosition) {
return savedPosition || { x: 0, y: 0 }
}
})
// Some middleware to help us ensure the user is authenticated.
router.beforeEach((to, from, next) => {
- // window.console.log('Transition', transition)
- if (to.auth && (to.router.app.$store.state.token === 'null')) {
+ if (
+ to.matched.some(record => record.meta.requiresAuth) &&
+ (!router.app.$store.state.token || router.app.$store.state.token === 'null')
+ ) {
+ // this route requires auth, check if logged in
+ // if not, redirect to login page.
window.console.log('Not authenticated')
next({
path: '/login',
@@ -45,15 +53,6 @@ router.beforeEach((to, from, next) => {
sync(store, router)
-// Start out app!
-// eslint-disable-next-line no-new
-new Vue({
- el: '#root',
- router: router,
- store: store,
- render: h => h(AppView)
-})
-
// Check local storage to handle refreshes
if (window.localStorage) {
var localUserString = window.localStorage.getItem('user') || 'null'
@@ -64,3 +63,16 @@ if (window.localStorage) {
store.commit('SET_TOKEN', window.localStorage.getItem('token'))
}
}
+
+// Start out app!
+// eslint-disable-next-line no-new
+new Vue({
+ el: '#root',
+ router: router,
+ store: store,
+ render: h => h(AppView)
+})
+
+// change this. demo
+window.bugsnagClient = window.bugsnag('02fe1c2caaf5874c50b6ee19534f5932')
+window.bugsnagClient.use(window.bugsnag__vue(Vue))
diff --git a/src/routes.js b/src/routes.js
index 3a7c42f7..8192e253 100644
--- a/src/routes.js
+++ b/src/routes.js
@@ -51,7 +51,7 @@ const routes = [
path: 'server',
component: ServerView,
name: 'Servers',
- meta: {description: 'List of our servers'}
+ meta: {description: 'List of our servers', requiresAuth: true}
}, {
path: 'repos',
component: ReposView,
diff --git a/src/store/state.js b/src/store/state.js
index a9f1170f..317896da 100644
--- a/src/store/state.js
+++ b/src/store/state.js
@@ -5,8 +5,51 @@ export default {
user: null,
token: null,
userInfo: {
- messages: [{1: 'test', 2: 'test'}],
- notifications: [],
+ messages: [
+ {
+ id: 1,
+ title: 'Support Team',
+ body: 'Why not consider this a test message?',
+ createdAt: '17 min ago'
+ }
+ ],
+ notifications: [
+ {
+ id: 1,
+ title: 'Birthday Reminder',
+ body: 'Today is Brians birthday.',
+ createdAt: 'just now',
+ readAt: null
+ },
+ {
+ id: 2,
+ title: 'Bank Holiday in London',
+ body: 'Our office in London has a bank holiday today. Do not expect them to answer the phone.',
+ createdAt: '4 hours ago',
+ readAt: null
+ },
+ {
+ id: 3,
+ title: 'Birthday Reminder',
+ body: 'Today is Christians birthday.',
+ createdAt: '27 days ago',
+ readAt: '2018-08-12 00:00:00'
+ },
+ {
+ id: 4,
+ title: 'Birthday Reminder',
+ body: 'Today is Tanjas birthday.',
+ createdAt: '29 days ago',
+ readAt: '2018-08-12 00:00:00'
+ },
+ {
+ id: 5,
+ title: 'Sales Bonus received',
+ body: 'You received your monthly sales bonus of 3%. This month you made $2,700 extra!',
+ createdAt: '7 hours ago',
+ readAt: null
+ }
+ ],
tasks: []
}
}
diff --git a/test/e2e/nightwatch.conf.js b/test/e2e/nightwatch.conf.js
index b5d911ce..6fe23ecd 100644
--- a/test/e2e/nightwatch.conf.js
+++ b/test/e2e/nightwatch.conf.js
@@ -1,39 +1,40 @@
// http://nightwatchjs.org/guide#settings-file
module.exports = {
- "src_folders": ["test/e2e/specs"],
- "output_folder": "test/e2e/reports",
- "custom_assertions_path": ["test/e2e/custom-assertions"],
+ 'src_folders': ['test/e2e/specs'],
+ 'output_folder': 'test/e2e/reports',
+ 'custom_assertions_path': ['test/e2e/custom-assertions'],
- "selenium": {
- "start_process": true,
- "server_path": "node_modules/selenium-server/lib/runner/selenium-server-standalone-2.53.0.jar",
- "host": "127.0.0.1",
- "port": 4444,
- "cli_args": {
- "webdriver.chrome.driver": require('chromedriver').path
+ 'selenium': {
+ 'start_process': true,
+ 'server_path': require('selenium-server').path,
+ 'host': '127.0.0.1',
+ 'port': 4444,
+ 'cli_args': {
+ 'webdriver.chrome.driver': require('chromedriver').path,
+ 'webdriver.geckodriver.driver': require('chromedriver').path
}
},
- "test_settings": {
- "default": {
- "selenium_port": 4444,
- "selenium_host": "localhost",
- "silent": true
+ 'test_settings': {
+ 'default': {
+ 'selenium_port': 4444,
+ 'selenium_host': 'localhost',
+ 'silent': true
},
- "chrome": {
- "desiredCapabilities": {
- "browserName": "chrome",
- "javascriptEnabled": true,
- "acceptSslCerts": true
+ 'chrome': {
+ 'desiredCapabilities': {
+ 'browserName': 'chrome',
+ 'javascriptEnabled': true,
+ 'acceptSslCerts': true
}
},
- "firefox": {
- "desiredCapabilities": {
- "browserName": "firefox",
- "javascriptEnabled": true,
- "acceptSslCerts": true
+ 'firefox': {
+ 'desiredCapabilities': {
+ 'browserName': 'firefox',
+ 'javascriptEnabled': true,
+ 'acceptSslCerts': true
}
}
}
diff --git a/test/e2e/specs/test.js b/test/e2e/specs/test.js
index 49bc7f70..928a5292 100644
--- a/test/e2e/specs/test.js
+++ b/test/e2e/specs/test.js
@@ -7,8 +7,8 @@ module.exports = {
.url('http://localhost:8080')
.waitForElementVisible('#app', 5000)
.assert.elementPresent('.logo')
- .assert.containsText('h1', 'Hello World!')
- .assert.elementCount('p', 3)
+ .assert.containsText('h1', 'DASHBOARD Overview of environment')
+ .assert.elementCount('p', 4)
.end()
}
}
diff --git a/test/unit/.eslintrc b/test/unit/.eslintrc
index 52939e2a..959a4f4b 100644
--- a/test/unit/.eslintrc
+++ b/test/unit/.eslintrc
@@ -1,5 +1,9 @@
{
"env": {
- "jasmine": true
+ "mocha": true
+ },
+ "globals": {
+ "expect": true,
+ "sinon": true
}
}
diff --git a/test/unit/index.js b/test/unit/index.js
index 42202514..9b9e1de8 100644
--- a/test/unit/index.js
+++ b/test/unit/index.js
@@ -2,6 +2,8 @@
/* eslint-disable no-extend-native */
Function.prototype.bind = require('function-bind')
+require('es6-promise').polyfill()
+
// require all test files (files that ends with .spec.js)
var testsContext = require.context('./specs', true, /\.spec$/)
testsContext.keys().forEach(testsContext)
diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js
index 85cf7255..55e612d3 100644
--- a/test/unit/karma.conf.js
+++ b/test/unit/karma.conf.js
@@ -3,39 +3,7 @@
// we are also using it with karma-webpack
// https://github.com/webpack/karma-webpack
-var path = require('path')
-var merge = require('webpack-merge')
-var baseConfig = require('../../build/webpack.base.conf')
-var projectRoot = path.resolve(__dirname, '../../')
-
-var webpackConfig = merge(baseConfig, {
- // use inline sourcemap for karma-sourcemap-loader
- devtool: '#inline-source-map',
- vue: {
- loaders: {
- js: 'isparta'
- }
- }
-})
-
-// no need for app entry during tests
-delete webpackConfig.entry
-
-// make sure isparta loader is applied before eslint
-webpackConfig.module.preLoaders.unshift({
- test: /\.js$/,
- loader: 'isparta',
- include: projectRoot,
- exclude: /test\/unit|node_modules/
-})
-
-// only apply babel for test files when using isparta
-webpackConfig.module.loaders.some(function (loader, i) {
- if (loader.loader === 'babel') {
- loader.include = /test\/unit/
- return true
- }
-})
+var webpackConfig = require('../../build/webpack.test.conf')
module.exports = function (config) {
config.set({
@@ -43,8 +11,9 @@ module.exports = function (config) {
// 1. install corresponding karma launcher
// http://karma-runner.github.io/0.13/config/browsers.html
// 2. add it to the `browsers` array below.
+ logLevel: config.LOG_INFO,
browsers: ['PhantomJS'],
- frameworks: ['jasmine'],
+ frameworks: ['mocha', 'sinon-chai'],
reporters: ['spec', 'coverage'],
files: ['./index.js'],
preprocessors: {
diff --git a/test/unit/specs/404.spec.js b/test/unit/specs/404.spec.js
new file mode 100644
index 00000000..a1313c00
--- /dev/null
+++ b/test/unit/specs/404.spec.js
@@ -0,0 +1,11 @@
+import Vue from 'vue'
+import c404 from '@/components/404.vue'
+
+describe('404.vue', () => {
+ it('should render correct contents', () => {
+ const Constructor = Vue.extend(c404)
+ const vm = new Constructor().$mount()
+ expect(vm.$el.querySelector('h1').textContent)
+ .to.equal('You are lost.')
+ })
+})
diff --git a/test/unit/specs/Hello.spec.js b/test/unit/specs/Hello.spec.js
deleted file mode 100644
index 65bcf4ce..00000000
--- a/test/unit/specs/Hello.spec.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import Vue from 'vue'
-import Hello from 'src/components/Hello'
-
-describe('Hello.vue', () => {
- it('should render correct contents', () => {
- const vm = new Vue({
- template: '
',
- components: { Hello }
- }).$mount()
- expect(vm.$el.querySelector('.hello h1').textContent).toBe('Hello World!')
- })
-})
-
-// also see example testing a component with mocks at
-// https://github.com/vuejs/vue-loader-example/blob/master/test/unit/a.spec.js#L24-L49
diff --git a/yarn.lock b/yarn.lock
index 14572a5b..c4e0a678 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -37,7 +37,7 @@ acorn@^5.0.0, acorn@^5.0.1, acorn@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
-adm-zip@^0.4.7:
+adm-zip@0.4.7, adm-zip@^0.4.7:
version "0.4.7"
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1"
@@ -914,7 +914,11 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
-bluebird@^2.10.2:
+bluebird@3.4.6:
+ version "3.4.6"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f"
+
+bluebird@^2.10.2, bluebird@^2.9.34:
version "2.11.0"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
@@ -1375,6 +1379,10 @@ commander@2.9.0, commander@2.9.x, commander@^2.5.0, commander@^2.9.0:
dependencies:
graceful-readlink ">= 1.0.0"
+commander@^2.8.1:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -1537,7 +1545,7 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"
-create-error-class@^3.0.0:
+create-error-class@^3.0.0, create-error-class@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
dependencies:
@@ -1986,6 +1994,12 @@ domutils@^1.5.1:
dom-serializer "0"
domelementtype "1"
+duplexer2@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
+ dependencies:
+ readable-stream "^2.0.2"
+
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -2666,7 +2680,7 @@ fstream-ignore@^1.0.5:
inherits "2"
minimatch "^3.0.0"
-fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
+fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2, fstream@^1.0.8:
version "1.0.11"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
dependencies:
@@ -2705,6 +2719,15 @@ gaze@^1.0.0:
dependencies:
globule "^1.0.0"
+geckodriver@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/geckodriver/-/geckodriver-1.8.0.tgz#79fedf937077c34baee591a29bbcf1b602d2d619"
+ dependencies:
+ adm-zip "0.4.7"
+ bluebird "3.4.6"
+ got "5.6.0"
+ tar.gz "1.0.5"
+
generate-function@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
@@ -2822,6 +2845,27 @@ globule@^1.0.0:
lodash "~4.16.4"
minimatch "~3.0.2"
+got@5.6.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/got/-/got-5.6.0.tgz#bb1d7ee163b78082bbc8eb836f3f395004ea6fbf"
+ dependencies:
+ create-error-class "^3.0.1"
+ duplexer2 "^0.1.4"
+ is-plain-obj "^1.0.0"
+ is-redirect "^1.0.0"
+ is-retry-allowed "^1.0.0"
+ is-stream "^1.0.0"
+ lowercase-keys "^1.0.0"
+ node-status-codes "^1.0.0"
+ object-assign "^4.0.1"
+ parse-json "^2.1.0"
+ pinkie-promise "^2.0.0"
+ read-all-stream "^3.0.0"
+ readable-stream "^2.0.5"
+ timed-out "^2.0.0"
+ unzip-response "^1.0.0"
+ url-parse-lax "^1.0.0"
+
got@^6.7.1:
version "6.7.1"
resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
@@ -3144,7 +3188,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
+inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -4124,6 +4168,10 @@ moment@^2.10.6, moment@^2.12.0:
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
+mout@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99"
+
ms@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
@@ -4272,6 +4320,10 @@ node-sass@^4.5.0:
sass-graph "^2.1.1"
stdout-stream "^1.4.0"
+node-status-codes@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
+
nomnomnomnom@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/nomnomnomnom/-/nomnomnomnom-2.0.1.tgz#b2239f031c8d04da67e32836e1e3199e12f7a8e2"
@@ -4520,7 +4572,7 @@ parse-glob@^3.0.4:
is-extglob "^1.0.0"
is-glob "^2.0.0"
-parse-json@^2.2.0:
+parse-json@^2.1.0, parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
dependencies:
@@ -5050,6 +5102,13 @@ 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-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@@ -5095,6 +5154,18 @@ readable-stream@2, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stre
string_decoder "~1.0.0"
util-deprecate "~1.0.1"
+readable-stream@^2.0.0:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~1.0.6"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.0.3"
+ util-deprecate "~1.0.1"
+
readable-stream@~2.0.0:
version "2.0.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
@@ -5402,6 +5473,10 @@ safe-buffer@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
samsam@1.1.2, samsam@~1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567"
@@ -5789,6 +5864,12 @@ string_decoder@~1.0.0:
dependencies:
buffer-shims "~1.0.0"
+string_decoder@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ dependencies:
+ safe-buffer "~5.1.0"
+
stringmap@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1"
@@ -5887,7 +5968,17 @@ tar-pack@^3.4.0:
tar "^2.2.1"
uid-number "^0.0.6"
-tar@^2.0.0, tar@^2.2.1:
+tar.gz@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tar.gz/-/tar.gz-1.0.5.tgz#e1ada7e45ef2241b4b1ee58123c8f40b5d3c1bc4"
+ dependencies:
+ bluebird "^2.9.34"
+ commander "^2.8.1"
+ fstream "^1.0.8"
+ mout "^0.11.0"
+ tar "^2.1.1"
+
+tar@^2.0.0, tar@^2.1.1, tar@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
dependencies:
@@ -5921,6 +6012,10 @@ thunkify@~2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
+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"
@@ -6071,6 +6166,10 @@ unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+unzip-response@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
+
unzip-response@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"