diff --git a/.babelrc b/.babelrc
index 1bf0786eb..7e23f6877 100644
--- a/.babelrc
+++ b/.babelrc
@@ -4,6 +4,11 @@
"env": {
"commonjs": {
"presets": [["env", { "modules": "commonjs", "loose": true }]]
+ },
+ "test": {
+ "presets": [
+ ["env", { "targets": { "node": 8 }}]
+ ]
}
}
}
diff --git a/build/bin/build-components.js b/build/bin/build-components.js
index 19bdebad8..d79b28c6b 100644
--- a/build/bin/build-components.js
+++ b/build/bin/build-components.js
@@ -13,6 +13,7 @@ const compilerOption = {
extends: path.join(__dirname, '../../.babelrc')
}
};
+const whiteList = ['vant-css', 'test'];
// clear dir
fs.emptyDirSync(esDir);
@@ -29,8 +30,8 @@ function compile(dir, jsOnly = false) {
files.forEach(file => {
const absolutePath = path.join(dir, file);
- // 移除 vant-css
- if (file.indexOf('vant-css') !== -1) {
+ // 移除不需要的文件
+ if (whiteList.indexOf(file) !== -1) {
fs.removeSync(absolutePath);
// 遍历文件夹
} else if (isDir(absolutePath)) {
diff --git a/docs/demos/views/coupon.vue b/docs/demos/views/coupon.vue
index d88d3a3da..842a3522c 100644
--- a/docs/demos/views/coupon.vue
+++ b/docs/demos/views/coupon.vue
@@ -95,6 +95,7 @@ export default {
disabledDiscountCoupon() {
return {
...this.discountCoupon,
+ discount: 10,
id: 4,
available: 0,
reason: this.$t('coupon.reason')
diff --git a/docs/demos/views/image-preview.vue b/docs/demos/views/image-preview.vue
index 7e8d8256f..49ba0ebb3 100644
--- a/docs/demos/views/image-preview.vue
+++ b/docs/demos/views/image-preview.vue
@@ -15,7 +15,7 @@
+
diff --git a/test/components/waterfall/waterfall.vue b/test/components/waterfall/waterfall.vue
deleted file mode 100644
index 068d9fa18..000000000
--- a/test/components/waterfall/waterfall.vue
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
diff --git a/test/demo-test.js b/test/demo-test.js
new file mode 100644
index 000000000..026ce116f
--- /dev/null
+++ b/test/demo-test.js
@@ -0,0 +1,34 @@
+import { renderToString } from '@vue/server-test-utils';
+import '../docs/demos/common';
+import { Locale } from '../packages';
+import { camelize } from '../packages/utils';
+import Vue from 'vue';
+
+const empty = {
+ template: '
',
+ inheritAttrs: false
+};
+Vue.component('demo-block', empty);
+Vue.component('demo-section', empty);
+
+export default function(component) {
+ const name = typeof component === 'string' ? component : component.name.replace('van-', '');
+
+ test(`renders ${name} correctly`, () => {
+ const demo = require(`../docs/demos/views/${name}.vue`).default;
+ const { i18n } = demo;
+ demo.name = 'demo-' + name;
+
+ if (i18n) {
+ const formattedI18n = {};
+ const camelizedName = camelize(demo.name);
+ Object.keys(i18n).forEach(key => {
+ formattedI18n[key] = { [camelizedName]: i18n[key] };
+ });
+ Locale.add(formattedI18n);
+ }
+
+ const wrapper = renderToString(demo);
+ expect(wrapper).toMatchSnapshot();
+ });
+}
diff --git a/test/get-webpack-conf.js b/test/get-webpack-conf.js
deleted file mode 100644
index 7738138de..000000000
--- a/test/get-webpack-conf.js
+++ /dev/null
@@ -1,72 +0,0 @@
-const path = require('path');
-const webpack = require('webpack');
-const ProgressBarPlugin = require('progress-bar-webpack-plugin');
-const { VueLoaderPlugin } = require('vue-loader');
-const webpackDevConfig = require('../build/webpack.dev');
-
-function getWebpackConfig(testFileName) {
- return {
- mode: 'development',
- output: {
- path: path.resolve(process.cwd(), 'dist'),
- publicPath: '/dist/',
- filename: '[name].js',
- chunkFilename: '[id].js',
- libraryTarget: 'umd'
- },
- resolve: webpackDevConfig.resolve,
- plugins: [
- new VueLoaderPlugin(),
- new ProgressBarPlugin(),
- new webpack.DefinePlugin({
- 'process.env': {
- TEST_FILE: `"${testFileName}"`
- }
- })
- ],
- module: {
- rules: [
- {
- test: /\.js$/,
- exclude: /node_modules|test|mock|swipe|locale|waterfall/,
- use: [
- {
- loader: 'istanbul-instrumenter-loader',
- options: { esModules: true }
- },
- 'babel-loader'
- ]
- },
- {
- test: /\.js$/,
- exclude: /node_modules/,
- use: [
- 'babel-loader'
- ]
- },
- {
- test: /\.(css|postcss)$/,
- use: ['style-loader', 'css-loader', {
- loader: 'postcss-loader',
- options: { sourceMap: true }
- }]
- },
- {
- test: /\.vue$/,
- use: [
- {
- loader: 'vue-loader',
- options: {
- compilerOptions: {
- preserveWhitespace: false
- }
- }
- }
- ]
- }
- ]
- }
- };
-}
-
-module.exports = getWebpackConfig;
diff --git a/test/index.js b/test/index.js
deleted file mode 100644
index 56fde85ed..000000000
--- a/test/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import Vue from 'vue';
-import Vant from 'packages';
-require('packages/vant-css/src/index.css');
-
-Vue.use(Vant);
-
-// hack for test touch event
-window.ontouchstart = {};
-
-// 读取配置文件,判断运行单个测试文件还是所有测试文件
-const testsReq = require.context('./specs', true, /\.spec$/);
-if (process.env.TEST_FILE) {
- testsReq.keys().forEach((file) => {
- if (file.indexOf(process.env.TEST_FILE) !== -1) {
- testsReq(file);
- }
- });
-} else {
- testsReq.keys().forEach(testsReq);
-}
diff --git a/test/karma.conf.js b/test/karma.conf.js
deleted file mode 100644
index aab423525..000000000
--- a/test/karma.conf.js
+++ /dev/null
@@ -1,27 +0,0 @@
-const getWebpackConfig = require('./get-webpack-conf');
-
-module.exports = function(config) {
- config.set({
- browsers: ['ChromeHeadless'],
- frameworks: ['mocha', 'sinon-chai'],
- reporters: ['spec', 'coverage'],
- files: ['./index.js'],
- preprocessors: {
- './index.js': ['webpack']
- },
- webpack: getWebpackConfig(getTestFileName()),
- coverageReporter: {
- dir: './coverage',
- reporters: [
- { type: 'lcov', subdir: '.' },
- { type: 'text-summary' }
- ]
- },
- singleRun: false
- });
-};
-
-function getTestFileName() {
- const flagIndex = process.argv.indexOf('--file');
- return flagIndex !== -1 ? process.argv[flagIndex + 1] : '';
-}
diff --git a/test/selector.js b/test/selector.js
deleted file mode 100644
index 64b5d6de3..000000000
--- a/test/selector.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 运行单个测试文件
- */
-
-const fs = require('fs');
-const inquirer = require('inquirer');
-const path = require('path');
-const shell = require('shelljs');
-const files = fs.readdirSync(path.resolve(__dirname, './specs'));
-
-inquirer.prompt([{
- type: 'list',
- name: 'select',
- message: '请选择要运行的测试文件:',
- choices: files
-}]).then(result => {
- const file = result.select.replace('.spec.js', '');
- shell.exec('karma start test/karma.conf.js --color alway --file ' + file);
-}).catch(error => {
- console.log(error);
-});
diff --git a/test/specs/actionsheet.spec.js b/test/specs/actionsheet.spec.js
deleted file mode 100644
index 2e5b23a44..000000000
--- a/test/specs/actionsheet.spec.js
+++ /dev/null
@@ -1,147 +0,0 @@
-import ActionSheet from 'packages/actionsheet';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-
-describe('ActionSheet', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a actionsheet', () => {
- wrapper = mount(ActionSheet, {
- propsData: {}
- });
-
- expect(wrapper.hasClass('van-actionsheet')).to.be.true;
- expect(wrapper.instance().actions.length).to.equal(0);
- expect(wrapper.instance().overlay).to.be.true;
- expect(wrapper.instance().closeOnClickOverlay).to.be.true;
- });
-
- it('create displayed actionsheet', () => {
- wrapper = mount(ActionSheet, {
- propsData: {
- value: true
- }
- });
-
- DOMChecker(wrapper, {
- noStyle: {
- '.van-actionsheet': {
- display: 'none'
- }
- }
- });
- });
-
- it('create title type actionsheet', () => {
- wrapper = mount(ActionSheet, {
- propsData: {
- title: 'test'
- }
- });
-
- expect(wrapper.hasClass('van-actionsheet--withtitle')).to.be.true;
- expect(wrapper.contains('.van-actionsheet__header')).to.be.true;
- expect(wrapper.contains('.van-actionsheet__content')).to.be.true;
- });
-
- it('create actions actionsheet', () => {
- wrapper = mount(ActionSheet, {
- propsData: {
- actions: [
- {
- name: '有赞E卡',
- subname: '(剩余260.50元)'
- },
- {
- name: '信用卡支付',
- loading: true
- }
- ]
- }
- });
-
- const actionItems = wrapper.find('.van-actionsheet__item');
-
- expect(actionItems.length).to.equal(2);
- expect(actionItems[0].contains('.van-actionsheet__name')).to.be.true;
- expect(actionItems[0].contains('.van-actionsheet__subname')).to.be.true;
- expect(actionItems[1].contains('.van-actionsheet__loading')).to.be.true;
- });
-
- it('handle actionsheet item click with callback', () => {
- let called = false;
- wrapper = mount(ActionSheet, {
- propsData: {
- actions: [
- {
- name: '有赞E卡',
- callback: () => {
- called = true;
- }
- },
- {
- name: '微信'
- }
- ]
- }
- });
-
- const actionItem = wrapper.find('.van-actionsheet__item')[0];
- actionItem.trigger('click');
- expect(called).to.be.true;
-
- const secondActionItem = wrapper.find('.van-actionsheet__item')[1];
- secondActionItem.trigger('click');
- });
-
- it('create actionsheet with cancel button', () => {
- wrapper = mount(ActionSheet, {
- propsData: {
- cancelText: 'cancel'
- }
- });
-
- const cancelButton = wrapper.find('.van-actionsheet__cancel')[0];
- expect(wrapper.contains('.van-actionsheet__cancel')).to.be.true;
- expect(cancelButton.text()).to.equal('cancel');
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- cancelButton.trigger('click');
-
- expect(eventStub.calledWith('cancel'));
- });
-
- it('toggle actionsheet value from v-model', (done) => {
- wrapper = mount(ActionSheet, {
- propsData: {
- value: false
- }
- });
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- DOMChecker(wrapper, {
- style: {
- '.van-actionsheet': {
- display: 'none'
- }
- }
- });
-
- wrapper.vm.value = true;
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- DOMChecker(wrapper, {
- noStyle: {
- '.van-actionsheet': {
- display: 'none'
- }
- }
- });
- expect(eventStub.calledWith('input'));
- done();
- });
- });
-});
diff --git a/test/specs/address-edit.spec.js b/test/specs/address-edit.spec.js
deleted file mode 100644
index 6851becab..000000000
--- a/test/specs/address-edit.spec.js
+++ /dev/null
@@ -1,423 +0,0 @@
-import { mount } from 'avoriaz';
-import AddressEdit from 'packages/address-edit';
-import AddressDetail from 'packages/address-edit/Detail';
-import areaList from '../../docs/demos/mock/area';
-
-describe('AddressEdit', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a AddressEdit', () => {
- wrapper = mount(AddressEdit);
- expect(wrapper.hasClass('van-address-edit')).to.be.true;
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal('');
- expect(wrapper.find('.van-field__control')[1].element.value).to.equal('');
- expect(wrapper.find('.van-field__control')[2].element.value).to.equal('');
- expect(
- wrapper.find('.van-address-edit__area .van-cell__value span')[0].text()
- ).to.equal('选择省份');
- expect(
- wrapper.find('.van-address-edit__area .van-cell__value span')[1].text()
- ).to.equal('选择城市');
- expect(
- wrapper.find('.van-address-edit__area .van-cell__value span')[2].text()
- ).to.equal('选择地区');
- });
-
- it('create a AddressEdit with props', () => {
- const addressInfo = {
- name: '测试',
- tel: '123123213',
- province: '浙江省',
- city: '杭州市',
- county: '西湖区',
- address_detail: '详细地址',
- postal_code: '10000',
- is_default: true
- };
-
- wrapper = mount(AddressEdit, {
- propsData: {
- areaList,
- addressInfo: addressInfo,
- showPostal: true,
- showSetDefault: true,
- showSearchResult: true,
- searchResult: []
- }
- });
-
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal(
- addressInfo.name
- );
- expect(wrapper.find('.van-field__control')[1].element.value).to.equal(
- addressInfo.tel
- );
- expect(wrapper.find('.van-field__control')[2].element.value).to.equal(
- addressInfo.address_detail
- );
- expect(wrapper.find('.van-field__control')[3].element.value).to.equal(
- addressInfo.postal_code
- );
- expect(
- wrapper.find('.van-address-edit__area .van-cell__value span')[0].text()
- ).to.equal(addressInfo.province);
- expect(
- wrapper.find('.van-address-edit__area .van-cell__value span')[1].text()
- ).to.equal(addressInfo.city);
- expect(
- wrapper.find('.van-address-edit__area .van-cell__value span')[2].text()
- ).to.equal(addressInfo.county);
- expect(wrapper.find('.van-switch-cell').length).to.equal(1);
- });
-
- it('save AddressInfo', () => {
- const addressInfo = {
- name: '',
- tel: '123123213',
- province: '浙江省',
- city: '杭州市',
- county: '西湖区',
- address_detail: '详细地址',
- postal_code: '10000',
- is_default: true
- };
-
- wrapper = mount(AddressEdit, {
- propsData: {
- areaList,
- addressInfo: addressInfo,
- showPostal: true,
- showSetDefault: true,
- showSearchResult: true,
- searchResult: []
- }
- });
-
- const saveButton = wrapper.find('.van-button')[0];
-
- // name empty
- wrapper.vm.data.name = '';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['name']).to.be.true;
- wrapper.find('.van-field__control')[0].trigger('focus');
- expect(wrapper.vm.errorInfo['name']).to.be.false;
-
- // name too long
- wrapper.vm.data.name = '111111111111111111111111111';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['name']).to.be.true;
- wrapper.find('.van-field__control')[0].trigger('focus');
- expect(wrapper.vm.errorInfo['name']).to.be.false;
-
- // tel empty
- wrapper.vm.data.name = '123';
- wrapper.vm.data.tel = '';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['tel']).to.be.true;
- wrapper.find('.van-field__control')[1].trigger('focus');
- expect(wrapper.vm.errorInfo['tel']).to.be.false;
-
- // area_code empty
- wrapper.vm.data.tel = '13000000000';
- wrapper.vm.data.area_code = '';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['area_code']).to.be.true;
-
- // area_code invalid
- wrapper.vm.data.tel = '13000000000';
- wrapper.vm.data.area_code = '-1';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['area_code']).to.be.true;
-
- // address_detail empty
- wrapper.vm.data.area_code = '100000';
- wrapper.vm.data.address_detail = '';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['address_detail']).to.be.true;
- wrapper.find('.van-field__control')[2].trigger('focus');
- expect(wrapper.vm.errorInfo['address_detail']).to.be.false;
-
- // address_detail too long
- let longAddress = '1';
- for (let i = 0; i < 300; i++) {
- longAddress += '1';
- }
- wrapper.vm.data.address_detail = longAddress;
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['address_detail']).to.be.true;
- wrapper.find('.van-field__control')[2].trigger('focus');
- expect(wrapper.vm.errorInfo['address_detail']).to.be.false;
-
- // postal_code invalid
- wrapper.vm.data.address_detail = '123';
- wrapper.vm.data.postal_code = '123';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['postal_code']).to.be.true;
- wrapper.find('.van-field__control')[3].trigger('focus');
- expect(wrapper.vm.errorInfo['postal_code']).to.be.false;
-
- // valid result
- wrapper.vm.data.postal_code = '123456';
- saveButton.trigger('click');
-
- // not show postal_code
- wrapper.vm.data.postal_code = '156';
- wrapper.vm.showPostal = false;
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['postal_code']).to.be.false;
- });
-
- it('show search result', done => {
- wrapper = mount(AddressEdit, {
- propsData: {
- addressInfo: {},
- showSearchResult: true,
- searchResult: [
- {
- name: '黄龙万科中心',
- address: '杭州市西湖区'
- },
- {
- name: '黄龙万科中心H座'
- },
- {
- address: '杭州市西湖区'
- }
- ]
- }
- });
-
- wrapper.find('.van-field__control')[2].trigger('focus');
- wrapper.vm.$nextTick(() => {
- const items = wrapper.find('.van-icon-location');
- expect(items.length).to.equal(3);
-
- items[0].element.parentNode.click();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-field__control')[2].element.value).to.equal(
- '杭州市西湖区 黄龙万科中心'
- );
-
- items[1].element.parentNode.click();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-field__control')[2].element.value).to.equal(
- '黄龙万科中心H座'
- );
- items[2].element.parentNode.click();
-
- wrapper.vm.$nextTick(() => {
- expect(
- wrapper.find('.van-field__control')[2].element.value
- ).to.equal('杭州市西湖区');
-
- wrapper.find('.van-field__control')[2].trigger('blur');
- setTimeout(() => {
- done();
- }, 300);
- });
- });
- });
- });
- });
-
- it('select area', () => {
- wrapper = mount(AddressEdit, {
- propsData: {
- areaList,
- addressInfo: {}
- }
- });
-
- wrapper.vm.onAreaConfirm([]);
- wrapper.vm.onAreaConfirm([{ code: -1 }]);
- wrapper.vm.onAreaConfirm([{ code: 1 }, { code: -1 }]);
- wrapper.vm.onAreaConfirm([{ code: 1 }, { code: 1 }, { code: -1 }]);
- expect(wrapper.vm.data['area_code']).to.equal('');
-
- wrapper.vm.onAreaConfirm([
- { name: '浙江省' },
- { name: '杭州市' },
- { name: '西湖区', code: '123456' }
- ]);
- expect(wrapper.vm.data['province']).to.equal('浙江省');
- expect(wrapper.vm.data['city']).to.equal('杭州市');
- expect(wrapper.vm.data['county']).to.equal('西湖区');
- expect(wrapper.vm.data['area_code']).to.equal('123456');
- });
-
- it('delete address', done => {
- wrapper = mount(AddressEdit, {
- attachToDocument: true,
- propsData: {
- areaList,
- isDeleting: true,
- addressInfo: {
- id: '123'
- }
- }
- });
-
- const deleteButton = wrapper.find('.van-button')[1];
- deleteButton.trigger('click');
- wrapper.vm.onDelete();
-
- setTimeout(() => {
- wrapper.vm.isDeleting = false;
- wrapper.vm.$nextTick(() => {
- deleteButton.trigger('click');
- setTimeout(() => {
- expect(document.querySelectorAll('.van-dialog').length).to.equal(1);
-
- wrapper.vm.$on('delete', () => {
- done();
- });
- document.querySelector('.van-dialog__confirm').click();
- }, 300);
- });
- }, 300);
- });
-
- it('on change detail', done => {
- wrapper = mount(AddressEdit);
-
- wrapper.vm.$on('change-detail', val => {
- expect(val).to.equal('123');
- done();
- });
-
- const field = wrapper.find('.van-field__control')[2];
- field.element.value = '123';
- field.trigger('input');
- });
-
- it('clear address detail in ios', done => {
- wrapper = mount(AddressEdit, {
- propsData: {
- addressInfo: {
- address_detail: '123'
- }
- }
- });
-
- wrapper.vm.isAndroid = false;
- wrapper.find('.van-field__control')[2].trigger('focus');
-
- wrapper.vm.$nextTick(() => {
- wrapper.find('.van-field__icon')[0].trigger('touchstart');
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.data.address_detail).to.equal('');
- done();
- });
- });
- });
-
- it('finish edit address detail in android', done => {
- wrapper = mount(AddressDetail, {
- propsData: {
- value: '123'
- }
- });
-
- wrapper.vm.$on('input', val => {
- wrapper.vm.value = val;
- });
-
- wrapper.setData({
- isAndroid: true
- });
- wrapper.find('.van-field__control')[0].trigger('focus');
-
- wrapper.vm.$nextTick(() => {
- wrapper.find('.van-field__icon')[0].trigger('touchstart');
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.value).to.equal('123');
- done();
- });
- });
- });
-
- it('watch address info', done => {
- const addressInfo = {
- name: '123'
- };
-
- wrapper = mount(AddressEdit, {
- propsData: {
- addressInfo: {}
- }
- });
-
- wrapper.setProps({ addressInfo });
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.data.name).to.equal('123');
- done();
- });
- });
-
- it('set/get area code', done => {
- wrapper = mount(AddressEdit, {
- propsData: {
- areaList,
- addressInfo: {
- area_code: ''
- }
- }
- });
-
- expect(wrapper.vm.getArea()).to.eql([
- { code: '-1', name: '选择省份' },
- { code: '-1', name: '选择城市' },
- { code: '-1', name: '选择地区' }
- ]);
-
- wrapper.vm.setAreaCode('110101');
- setTimeout(() => {
- expect(wrapper.vm.data.area_code).to.eql('110101');
- expect(wrapper.vm.getArea()).to.eql([
- { code: '110000', name: '北京市' },
- { code: '110100', name: '北京市' },
- { code: '110101', name: '东城区' }
- ]);
-
- wrapper.vm.$refs = [];
- wrapper.vm.setAreaCode('110102');
- expect(wrapper.vm.getArea()).to.eql([]);
- done();
- }, 50);
- });
-
- it('watch area code', done => {
- wrapper = mount(AddressEdit, {
- propsData: {
- areaList: {},
- addressInfo: {
- area_code: '330304'
- }
- }
- });
-
- expect(wrapper.vm.data.city).to.equal('');
- wrapper.vm.areaList = areaList;
-
- setTimeout(() => {
- expect(wrapper.vm.data.city).to.equal('温州市');
-
- wrapper.vm.addressInfo = { area_code: '' };
- wrapper.vm.areaList = {};
-
- setTimeout(() => {
- expect(wrapper.vm.data.city).to.equal('');
- wrapper.vm.areaList = areaList;
- wrapper.vm.addressInfo = { area_code: '330304' };
-
- setTimeout(() => {
- expect(wrapper.vm.data.city).to.equal('温州市');
- done();
- }, 50);
- });
- }, 50);
- });
-});
diff --git a/test/specs/address-list.spec.js b/test/specs/address-list.spec.js
deleted file mode 100644
index 8d8edd976..000000000
--- a/test/specs/address-list.spec.js
+++ /dev/null
@@ -1,80 +0,0 @@
-import { mount } from 'avoriaz';
-import AddressList from 'packages/address-list';
-
-const list = [
- {
- id: '1',
- name: '张三',
- tel: '13000000000',
- address: '浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室'
- },
- {
- id: '2',
- name: '李四',
- tel: '1310000000',
- address: '浙江省杭州市拱墅区莫干山路 50 号'
- },
- {
- id: '3',
- name: '王五',
- tel: '1320000000',
- address: '浙江省杭州市滨江区江南大道 15 号'
- }
-];
-
-describe('AddressList', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a AddressList', () => {
- wrapper = mount(AddressList);
- expect(wrapper.hasClass('van-address-list')).to.be.true;
- });
-
- it('create a AddressList with three items', () => {
- wrapper = mount(AddressList, {
- propsData: {
- value: '1',
- list
- }
- });
- expect(wrapper.find('.van-address-list__group .van-cell').length).to.equal(3);
- expect(wrapper.find('.van-icon-checked').length).to.equal(1);
- });
-
- it('listen to add & edit event', (done) => {
- wrapper = mount(AddressList, {
- propsData: {
- list
- }
- });
-
- const add = sinon.spy();
- wrapper.vm.$on('add', add);
- wrapper.find('.van-address-list__add')[0].trigger('click');
- expect(add.calledOnce).to.be.true;
-
- wrapper.vm.$on('edit', (item, index) => {
- expect(index).to.equal(0);
- done();
- });
- wrapper.find('.van-address-list__edit')[0].trigger('click');
- });
-
- it('listen to select event', (done) => {
- wrapper = mount(AddressList, {
- propsData: {
- value: '1',
- list
- }
- });
-
- wrapper.vm.$on('select', (item, index) => {
- expect(item.id).to.equal('3');
- done();
- });
- wrapper.find('.van-radio')[2].trigger('click');
- });
-});
diff --git a/test/specs/area.spec.js b/test/specs/area.spec.js
deleted file mode 100644
index 7f309d6ac..000000000
--- a/test/specs/area.spec.js
+++ /dev/null
@@ -1,153 +0,0 @@
-import Area from 'packages/area';
-import { mount } from 'avoriaz';
-import areaList from '../../docs/demos/mock/area';
-
-describe('Area', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create an area', () => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList
- }
- });
-
- expect(wrapper.hasClass('van-area')).to.be.true;
- });
-
- it('create an area with default value', done => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList,
- value: '110101'
- }
- });
-
- const confirmBtn = wrapper.find('.van-picker__confirm')[0];
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- confirmBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('confirm'));
- expect(wrapper.vm.$refs.picker.getColumnValue(2).code).to.equal('110101');
- done();
- });
- });
-
- it('create an area and set value', done => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList,
- value: '110101'
- }
- });
-
- setTimeout(() => {
- expect(wrapper.vm.$refs.picker.getColumnValue(2).code).to.equal('110101');
- wrapper.setProps({
- value: '110102'
- });
-
- setTimeout(() => {
- expect(wrapper.vm.$refs.picker.getColumnValue(2).code).to.equal('110102');
- done();
- }, 50);
- }, 50);
- });
-
- it('create an area with invalid areaList', () => {
- wrapper = mount(Area, {
- propsData: {
- areaList: null
- }
- });
-
- expect(wrapper.vm.columns.length).to.equal(0);
- });
-
- it('create an area with columnsNum equal 2', () => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList,
- columnsNum: 2
- }
- });
-
- expect(wrapper.vm.columns.length).to.equal(2);
- });
-
- it('create an area with columnsNum equal 1', () => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList,
- columnsNum: 1
- }
- });
-
- expect(wrapper.vm.columns.length).to.equal(1);
- });
-
- it('create an area and click cancel', done => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList
- }
- });
-
- const cancelBtn = wrapper.find('.van-picker__cancel')[0];
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- cancelBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('cancel'));
- done();
- });
- });
-
- it('onChange method', () => {
- wrapper = mount(Area, {
- propsData: {
- areaList: areaList
- }
- });
-
- let list = [];
- const setColumnValues = (index, arr) => {
- list = [...list, ...arr];
- };
- const code = { code: '110101' };
-
- wrapper.vm.onChange({ setColumnValues }, [code], 0);
- wrapper.vm.onChange({ setColumnValues }, [code, code], 1);
-
- expect(list.length).to.equal(33);
- });
-
- it('getValues method', done => {
- wrapper = mount(Area, {
- propsData: {
- value: '110101',
- areaList: areaList
- }
- });
-
- setTimeout(() => {
- expect(wrapper.vm.getValues()).to.eql([
- { code: '110000', name: '北京市' },
- { code: '110100', name: '北京市' },
- { code: '110101', name: '东城区' }
- ]);
-
- setTimeout(() => {
- wrapper.vm.$refs = [];
- expect(wrapper.vm.getValues()).to.eql([]);
- done();
- }, 50);
- }, 50);
- });
-});
diff --git a/test/specs/badge.spec.js b/test/specs/badge.spec.js
deleted file mode 100644
index 66128b479..000000000
--- a/test/specs/badge.spec.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import { mount } from 'avoriaz';
-import BadgeTestComponent from '../components/badge';
-
-describe('BadgeGroup', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a badge-group', () => {
- wrapper = mount(BadgeTestComponent);
-
- expect(wrapper.hasClass('van-badge-group')).to.be.true;
-
- expect(wrapper.vNode.child.activeKey).to.equal(0);
- expect(wrapper.vNode.child.badges.length).to.equal(2);
- });
-
- it('emit a click event when click badge', () => {
- wrapper = mount(BadgeTestComponent);
-
- const badge = wrapper.find('.van-badge')[0];
- const eventStub = sinon.stub(badge.vNode.child, '$emit');
- badge.trigger('click');
-
- expect(eventStub.calledWith('click')).to.be.true;
- });
-});
-
diff --git a/test/specs/button.spec.js b/test/specs/button.spec.js
deleted file mode 100644
index a280f7471..000000000
--- a/test/specs/button.spec.js
+++ /dev/null
@@ -1,150 +0,0 @@
-import Button from 'packages/button';
-import VanLoading from 'packages/loading';
-import { mount } from 'avoriaz';
-
-describe('Button', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a simple button', () => {
- wrapper = mount(Button);
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--default')).to.be.true;
- expect(wrapper.hasClass('van-button--normal')).to.be.true;
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- wrapper.trigger('click');
-
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('click')).to.be.true;
- });
-
- it('create a primary button', () => {
- wrapper = mount(Button, {
- propsData: {
- type: 'primary'
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--primary')).to.be.true;
- });
-
- it('create a danger button', () => {
- wrapper = mount(Button, {
- propsData: {
- type: 'danger'
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--danger')).to.be.true;
- });
-
- it('create a large button', () => {
- wrapper = mount(Button, {
- propsData: {
- size: 'large'
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--large')).to.be.true;
- });
-
- it('create a small button', () => {
- wrapper = mount(Button, {
- propsData: {
- size: 'small'
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--small')).to.be.true;
- });
-
- it('create a mini button', () => {
- wrapper = mount(Button, {
- propsData: {
- size: 'mini'
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--mini')).to.be.true;
- });
-
- it('create a block button', () => {
- wrapper = mount(Button, {
- propsData: {
- block: true
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--block')).to.be.true;
- });
-
- it('create a bottom action button', () => {
- wrapper = mount(Button, {
- propsData: {
- bottomAction: true
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--bottom-action')).to.be.true;
- });
-
- it('create a disabled button', () => {
- wrapper = mount(Button, {
- propsData: {
- disabled: true
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--disabled')).to.be.true;
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- wrapper.trigger('click');
-
- expect(eventStub.called).to.be.false;
- });
-
- it('create a loading button', () => {
- wrapper = mount(Button, {
- propsData: {
- loading: true
- }
- });
- const loading = wrapper.find(VanLoading)[0];
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(loading.isVueComponent).to.be.true;
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- wrapper.trigger('click');
-
- expect(eventStub.called).to.be.false;
- });
-
- it('create a primary loading button', () => {
- wrapper = mount(Button, {
- propsData: {
- type: 'primary',
- loading: true
- }
- });
-
- expect(wrapper.hasClass('van-button')).to.be.true;
- expect(wrapper.hasClass('van-button--primary')).to.be.true;
-
- const loading = wrapper.find(VanLoading)[0];
- expect(loading.isVueComponent).to.be.true;
- });
-});
diff --git a/test/specs/card.spec.js b/test/specs/card.spec.js
deleted file mode 100644
index 45f51d1ca..000000000
--- a/test/specs/card.spec.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import Card from 'packages/card';
-import { mount } from 'avoriaz';
-
-describe('Card', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create', () => {
- wrapper = mount(Card, {
- propsData: {
- thumb: 'thumb'
- }
- });
-
- expect(wrapper.hasClass('van-card')).to.be.true;
- });
-});
diff --git a/test/specs/cell-swipe.spec.js b/test/specs/cell-swipe.spec.js
deleted file mode 100644
index d8dd20ab9..000000000
--- a/test/specs/cell-swipe.spec.js
+++ /dev/null
@@ -1,144 +0,0 @@
-import CellSwipe from 'packages/cell-swipe';
-import { mount } from 'avoriaz';
-import { triggerTouch, dragHelper } from '../utils';
-
-const defaultProps = {
- propsData: {
- leftWidth: 100,
- rightWidth: 100
- }
-};
-
-describe('CellSwipe', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('render left or right part when has width', () => {
- wrapper = mount(CellSwipe, defaultProps);
- expect(wrapper.find('.van-cell-swipe__left').length).to.equal(1);
- expect(wrapper.find('.van-cell-swipe__right').length).to.equal(1);
- });
-
- it('not render left or right part when width is 0', () => {
- wrapper = mount(CellSwipe);
- expect(wrapper.find('.van-cell-swipe__left').length).to.equal(0);
- expect(wrapper.find('.van-cell-swipe__right').length).to.equal(0);
- });
-
- it('drag and show left part', done => {
- wrapper = mount(CellSwipe, defaultProps);
-
- triggerTouch(wrapper, 'touchstart', 0, 0);
- expect(wrapper.vm.startX).to.equal(0);
- expect(wrapper.vm.startY).to.equal(0);
-
- triggerTouch(wrapper, 'touchmove', 50, 0);
- expect(wrapper.vm.offset).to.equal(50);
-
- triggerTouch(wrapper, 'touchend', 50, 0);
- expect(wrapper.vm.offset).to.equal(100);
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.opened).to.be.true;
- done();
- });
- });
-
- it('drag and show right part', done => {
- wrapper = mount(CellSwipe, defaultProps);
-
- triggerTouch(wrapper, 'touchstart', 0, 0);
- triggerTouch(wrapper, 'touchmove', -50, 0);
- triggerTouch(wrapper, 'touchend', -50, 0);
- expect(wrapper.vm.offset).to.equal(-100);
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.opened).to.be.true;
- wrapper.trigger('click');
- expect(wrapper.vm.offset).to.equal(0);
- done();
- });
- });
-
- it('drag and show left part', () => {
- wrapper = mount(CellSwipe, defaultProps);
- dragHelper(wrapper, 50);
- expect(wrapper.vm.offset).to.equal(100);
- });
-
- it('drag and show right part', () => {
- wrapper = mount(CellSwipe, defaultProps);
-
- dragHelper(wrapper, -50);
- expect(wrapper.vm.offset).to.equal(-100);
- });
-
- it('drag distance out of ranges', done => {
- wrapper = mount(CellSwipe, defaultProps);
-
- triggerTouch(wrapper, 'touchstart', 0, 0);
- triggerTouch(wrapper, 'touchmove', 1000, 0);
-
- setTimeout(() => {
- expect(wrapper.vm.offset).to.equal(0);
- done();
- });
- });
-
- it('drag and hide left part', (done) => {
- wrapper = mount(CellSwipe, defaultProps);
-
- dragHelper(wrapper, 50);
- expect(wrapper.vm.offset).to.equal(100);
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.opened).to.be.true;
-
- dragHelper(wrapper, -50);
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.offset).to.equal(0);
- expect(wrapper.vm.opened).to.be.false;
- done();
- });
- });
- });
-
- it('drag vertical', () => {
- wrapper = mount(CellSwipe, defaultProps);
-
- dragHelper(wrapper, 0, 100);
- expect(wrapper.vm.offset).to.equal(0);
- });
-
- it('on close prop', () => {
- let clickPosition;
- let instance;
- const onClose = (position, ins) => {
- clickPosition = position;
- instance = ins;
- };
-
- wrapper = mount(CellSwipe, {
- propsData: {
- ...defaultProps.propsData,
- onClose
- }
- });
-
- wrapper.trigger('click');
- wrapper.vm.onClick();
- expect(clickPosition).to.equal(undefined);
-
- wrapper.vm.offset = 100;
- wrapper.trigger('click');
- expect(clickPosition).to.equal('cell');
-
- wrapper.find('.van-cell-swipe__left')[0].trigger('click');
- expect(clickPosition).to.equal('left');
-
- wrapper.find('.van-cell-swipe__right')[0].trigger('click');
- expect(clickPosition).to.equal('right');
-
- instance.close();
- expect(wrapper.vm.offset).to.equal(0);
- });
-});
diff --git a/test/specs/cell.spec.js b/test/specs/cell.spec.js
deleted file mode 100644
index 58958141a..000000000
--- a/test/specs/cell.spec.js
+++ /dev/null
@@ -1,94 +0,0 @@
-import CellGroup from 'packages/cell-group';
-import Cell from 'packages/cell';
-import { mount } from 'avoriaz';
-
-describe('CellGroup', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a cell-group', () => {
- wrapper = mount(CellGroup, {
- propsData: {}
- });
-
- expect(wrapper.hasClass('van-cell-group')).to.be.true;
- });
-});
-
-describe('Cell', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create', () => {
- wrapper = mount(Cell);
-
- expect(wrapper.hasClass('van-cell')).to.be.true;
- });
-
- it('create a required cell', () => {
- wrapper = mount(Cell, {
- propsData: {
- required: true
- }
- });
-
- expect(wrapper.hasClass('van-cell')).to.be.true;
- expect(wrapper.hasClass('van-cell--required')).to.be.true;
- });
-
- it('emit a click event', () => {
- wrapper = mount(Cell);
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- wrapper.trigger('click');
-
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('click')).to.be.true;
- });
-
- it('cell with url', () => {
- wrapper = mount(Cell, {
- propsData: {
- url: '#test',
- replace: false
- }
- });
-
- wrapper.trigger('click');
-
- expect(window.location.hash).to.equal('#test');
- window.location.hash = '';
-
- const length = window.history.length;
- wrapper.vm.replace = true;
- wrapper.trigger('click');
- expect(window.location.hash).to.equal('#test');
- expect(window.history.length).to.equal(length);
- window.location.hash = '';
- });
-
- it('cell with to', done => {
- wrapper = mount(Cell, {
- propsData: {
- to: '/test',
- replace: false
- }
- });
- wrapper.vm.$router = {
- push(path) {
- wrapper.vm.replace = true;
- wrapper.trigger('click');
- },
- replace(path) {
- expect(path).to.equal('/test');
- done();
- }
- };
-
- wrapper.trigger('click');
- });
-});
diff --git a/test/specs/checkbox.spec.js b/test/specs/checkbox.spec.js
deleted file mode 100644
index 462db91af..000000000
--- a/test/specs/checkbox.spec.js
+++ /dev/null
@@ -1,214 +0,0 @@
-import { mount } from 'avoriaz';
-import Checkbox from 'packages/checkbox';
-import CheckboxTestComponent from '../components/checkbox';
-
-describe('CheckboxGroup', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a checkbox-group', () => {
- wrapper = mount(CheckboxTestComponent);
-
- expect(wrapper.hasClass('van-checkbox-group')).to.be.true;
-
- expect(wrapper.vNode.child.value.length).to.equal(2);
- expect(wrapper.vNode.child.disabled).to.be.false;
- });
-
- it('emit a change event', (done) => {
- wrapper = mount(CheckboxTestComponent);
-
- expect(wrapper.vNode.child.value.length).to.equal(2);
- const eventStub = sinon.stub(wrapper.vNode.child, '$emit');
-
- wrapper.setData({
- 'result': ['a']
- });
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vNode.child.value.length).to.equal(1);
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('change'));
- done();
- });
- });
-
- it('click on checked checkbox', (done) => {
- wrapper = mount(CheckboxTestComponent);
-
- const eventStub = sinon.stub(wrapper.vNode.child, '$emit');
-
- const firstCheckboxLabel = wrapper.find('.van-checkbox')[0].find('.van-checkbox__label')[0];
- firstCheckboxLabel.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('input'));
- done();
- });
- });
-
- it('click on unchecked checkbox', (done) => {
- wrapper = mount(CheckboxTestComponent);
-
- const eventStub = sinon.stub(wrapper.vNode.child, '$emit');
-
- const lastCheckboxLabel = wrapper.find('.van-checkbox')[3].find('.van-checkbox__label')[0];
- lastCheckboxLabel.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('input'));
- done();
- });
- });
-
- it('click on unchecked item and checked options num beyond max', (done) => {
- wrapper = mount(CheckboxTestComponent);
-
- wrapper.setData({
- 'max': 2
- });
-
- const lastCheckboxLabel = wrapper.find('.van-checkbox')[3].find('.van-checkbox__label')[0];
- lastCheckboxLabel.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.result.indexOf('d')).to.equal(-1);
- done();
- });
- });
-
- it('click on disabled item', (done) => {
- wrapper = mount(CheckboxTestComponent);
-
- const eventStub = sinon.stub(wrapper.vNode.child, '$emit');
-
- const disabledLabel = wrapper.find('.van-checkbox')[2].find('.van-checkbox__label')[0];
- disabledLabel.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.false;
- expect(wrapper.vm.result.indexOf('c')).to.equal(-1);
- done();
- });
- });
-});
-
-describe('Checkbox', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a checkbox', () => {
- wrapper = mount(Checkbox, {
- propsData: {
- value: true,
- disabled: false
- }
- });
-
- expect(wrapper.hasClass('van-checkbox')).to.be.true;
- expect(wrapper.vm.currentValue).to.be.true;
- expect(wrapper.vm.isDisabled).to.be.false;
- expect(wrapper.vm.isChecked).to.be.true;
- });
-
- it('create a checkbox with name', () => {
- wrapper = mount(Checkbox, {
- propsData: {
- name: 'a',
- disabled: false
- }
- });
-
- expect(wrapper.hasClass('van-checkbox')).to.be.true;
- expect(!!wrapper.vm.isChecked).to.be.false;
- });
-
- it('create a not boolean value checkbox', (done) => {
- wrapper = mount(Checkbox, {
- propsData: {
- value: 'test',
- name: 'test'
- }
- });
-
- expect(wrapper.hasClass('van-checkbox')).to.be.true;
- expect(wrapper.vm.currentValue).to.equal('test');
- expect(wrapper.vm.isDisabled).to.be.false;
- expect(wrapper.vm.isChecked).to.be.true;
-
- wrapper.vm.value = null;
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.currentValue).to.equal(null);
- done();
- });
- });
-
- it('click on a checkbox', (done) => {
- wrapper = mount(Checkbox, {
- propsData: {
- value: false,
- disabled: false
- }
- });
-
- expect(wrapper.hasClass('van-checkbox')).to.be.true;
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- const checkboxLabel = wrapper.find('.van-checkbox__icon')[0];
- checkboxLabel.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('input'));
- done();
- });
- });
-
- it('click on a disabled checkbox', () => {
- wrapper = mount(Checkbox, {
- propsData: {
- value: false,
- disabled: true
- }
- });
-
- expect(wrapper.hasClass('van-checkbox')).to.be.true;
- expect(wrapper.find('.van-checkbox--disabled').length).to.equal(1);
- expect(wrapper.vm.currentValue).to.be.false;
- expect(wrapper.vm.isDisabled).to.be.true;
-
- const checkboxLabel = wrapper.find('.van-checkbox__icon')[0];
- checkboxLabel.trigger('click');
-
- expect(wrapper.vm.currentValue).to.be.false;
- });
-
- it('click on a disabled checkbox label', () => {
- wrapper = mount(Checkbox, {
- propsData: {
- value: false,
- labelDisabled: true
- }
- });
-
- expect(wrapper.hasClass('van-checkbox')).to.be.true;
- expect(wrapper.vm.currentValue).to.be.false;
-
- const checkboxLabel = wrapper.find('.van-checkbox__icon')[0];
- checkboxLabel.trigger('click');
-
- expect(wrapper.vm.currentValue).to.be.false;
- });
-});
diff --git a/test/specs/circle.spec.js b/test/specs/circle.spec.js
deleted file mode 100644
index 7fff94e7c..000000000
--- a/test/specs/circle.spec.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import { mount } from 'avoriaz';
-import Circle from 'packages/circle';
-
-describe('Circle', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a circle', () => {
- wrapper = mount(Circle, {
- propsData: {
- text: 'test'
- }
- });
-
- expect(wrapper.hasClass('van-circle')).to.be.true;
- expect(wrapper.find('.van-circle__text')[0].text()).to.equal('test');
- });
-
- it('circle rate', done => {
- let currentRate = 0;
- wrapper = mount(Circle, {
- propsData: {
- rate: 0,
- value: 0,
- clockwise: false
- }
- });
- wrapper.vm.$on('input', rate => {
- currentRate = rate;
- });
- wrapper.vm.rate = 50;
-
- setTimeout(() => {
- expect(currentRate).to.equal(50);
- done();
- }, 100);
- });
-
- it('circle animation', done => {
- let currentRate = 0;
- wrapper = mount(Circle, {
- propsData: {
- rate: 0,
- value: 0,
- speed: 500,
- clockwise: false
- }
- });
- wrapper.vm.$on('input', rate => {
- currentRate = rate;
- });
- wrapper.vm.rate = 50;
-
- setTimeout(() => {
- expect(currentRate === 50).to.be.false;
- setTimeout(() => {
- expect(currentRate === 50).to.be.true;
- done();
- }, 200);
- }, 50);
- });
-});
-
diff --git a/test/specs/collapse.spec.js b/test/specs/collapse.spec.js
deleted file mode 100644
index d1a702ad7..000000000
--- a/test/specs/collapse.spec.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import { mount } from 'avoriaz';
-import Collapse from '../components/collapse';
-
-describe('Circle', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('basic mode', () => {
- wrapper = mount(Collapse);
-
- const firstTitle = wrapper.find('.van-collapse-item__title')[0];
- firstTitle.trigger('click');
- expect(wrapper.vm.active).to.eql(['first']);
-
- const secondTitle = wrapper.find('.van-collapse-item__title')[1];
- secondTitle.trigger('click');
- expect(wrapper.vm.active).to.eql(['first', 1]);
-
- firstTitle.trigger('click');
- expect(wrapper.vm.active).to.eql([1]);
- });
-
- it('accordion', () => {
- wrapper = mount(Collapse, {
- propsData: {
- accordion: true
- }
- });
-
- const firstTitle = wrapper.find('.van-collapse-item__title')[0];
- firstTitle.trigger('click');
- expect(wrapper.vm.active).to.eql('first');
-
- const secondTitle = wrapper.find('.van-collapse-item__title')[1];
- secondTitle.trigger('click');
- expect(wrapper.vm.active).to.eql(1);
-
- firstTitle.trigger('click');
- expect(wrapper.vm.active).to.eql('first');
-
- firstTitle.trigger('click');
- expect(wrapper.vm.active).to.eql('');
- });
-});
-
diff --git a/test/specs/contact.spec.js b/test/specs/contact.spec.js
deleted file mode 100644
index 1cd74d096..000000000
--- a/test/specs/contact.spec.js
+++ /dev/null
@@ -1,267 +0,0 @@
-import ContactCard from 'packages/contact-card';
-import ContactList from 'packages/contact-list';
-import ContactEdit from 'packages/contact-edit';
-import { mount } from 'avoriaz';
-
-describe('ContactCard', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a ContactCard', () => {
- wrapper = mount(ContactCard);
- expect(wrapper.hasClass('van-contact-card')).to.be.true;
- });
-
- it('create a add ContactCard', done => {
- wrapper = mount(ContactCard, {
- propsData: {
- type: 'add'
- }
- });
-
- expect(wrapper.hasClass('van-contact-card')).to.be.true;
- expect(wrapper.find('.van-contact-card__text')[0].text()).to.equal('添加订单联系人信息');
-
- wrapper.vm.addText = '测试文案';
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-contact-card__text')[0].text()).to.equal('测试文案');
- done();
- });
- });
-
- it('create a edit ContactCard', () => {
- wrapper = mount(ContactCard, {
- propsData: {
- type: 'edit',
- tel: '13000000000',
- name: '测试姓名'
- }
- });
-
- expect(wrapper.hasClass('van-contact-card')).to.be.true;
- expect(wrapper.find('.van-contact-card__text div')[0].text()).to.equal('联系人:测试姓名');
- expect(wrapper.find('.van-contact-card__text div')[1].text()).to.equal('联系电话:13000000000');
-
- const spy = sinon.spy();
- wrapper.vm.$on('click', spy);
- wrapper.trigger('click');
- expect(spy.calledOnce).to.be.true;
-
- wrapper.vm.editable = false;
- const spy2 = sinon.spy();
- wrapper.vm.$on('click', spy2);
- wrapper.trigger('click');
- expect(spy2.calledOnce).to.be.false;
- });
-});
-
-describe('ContactList', () => {
- const list = [
- {
- id: '1',
- name: '张三',
- tel: '13000000000'
- },
- {
- id: '2',
- name: '李四',
- tel: '1310000000'
- },
- {
- id: '3',
- name: '王五',
- tel: '1320000000'
- }
- ];
-
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a ContactList', () => {
- wrapper = mount(ContactList);
- expect(wrapper.hasClass('van-contact-list')).to.be.true;
- });
-
- it('create a ContactList with three items', () => {
- wrapper = mount(ContactList, {
- propsData: {
- value: '1',
- list
- }
- });
- expect(wrapper.find('.van-cell').length).to.equal(4);
- expect(wrapper.find('.van-icon-checked').length).to.equal(1);
- });
-
- it('listen to add & edit event', (done) => {
- wrapper = mount(ContactList, {
- propsData: {
- list
- }
- });
-
- const add = sinon.spy();
- wrapper.vm.$on('add', add);
- wrapper.find('.van-contact-list__add')[0].trigger('click');
- expect(add.calledOnce).to.be.true;
-
- wrapper.vm.$on('edit', (item, index) => {
- expect(index).to.equal(0);
- done();
- });
- wrapper.find('.van-contact-list__edit')[0].trigger('click');
- });
-
- it('listen to select event', (done) => {
- wrapper = mount(ContactList, {
- propsData: {
- value: '1',
- list
- }
- });
-
- wrapper.vm.$on('select', (item, index) => {
- expect(item.id).to.equal('3');
- done();
- });
- wrapper.find('.van-radio')[2].trigger('click');
- });
-});
-
-describe('ContactEdit', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a ContactEdit', () => {
- wrapper = mount(ContactEdit);
- expect(wrapper.hasClass('van-contact-edit')).to.be.true;
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal('');
- expect(wrapper.find('.van-field__control')[1].element.value).to.equal('');
- });
-
- it('create a ContactEdit with props', () => {
- const contactInfo = {
- name: '测试',
- tel: '123123213'
- };
-
- wrapper = mount(ContactEdit, {
- propsData: {
- contactInfo
- }
- });
-
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal(contactInfo.name);
- expect(wrapper.find('.van-field__control')[1].element.value).to.equal(contactInfo.tel);
- });
-
- it('save contactInfo', () => {
- const contactInfo = {
- name: '',
- tel: '123123213'
- };
-
- wrapper = mount(ContactEdit, {
- propsData: {
- contactInfo
- }
- });
-
- const saveSpy = sinon.spy();
- wrapper.vm.$on('save', saveSpy);
-
- const saveButton = wrapper.find('.van-button')[0];
-
- // name empty
- wrapper.vm.data.name = '';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['name']).to.be.true;
- wrapper.find('.van-field__control')[0].trigger('focus');
- expect(wrapper.vm.errorInfo['name']).to.be.false;
-
- // name too long
- wrapper.vm.data.name = '111111111111111111111111111';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['name']).to.be.true;
- wrapper.find('.van-field__control')[0].trigger('focus');
- expect(wrapper.vm.errorInfo['name']).to.be.false;
-
- // tel empty
- wrapper.vm.data.name = '123';
- wrapper.vm.data.tel = '';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['tel']).to.be.true;
- wrapper.find('.van-field__control')[1].trigger('focus');
- expect(wrapper.vm.errorInfo['tel']).to.be.false;
-
- // tel invalid
- wrapper.vm.data.tel = 'abc';
- saveButton.trigger('click');
- expect(wrapper.vm.errorInfo['tel']).to.be.true;
- wrapper.find('.van-field__control')[1].trigger('focus');
- expect(wrapper.vm.errorInfo['tel']).to.be.false;
-
- // saving
- wrapper.vm.data.tel = '13000000000';
- saveButton.trigger('click');
- wrapper.vm.isSaving = true;
- saveButton.trigger('click');
- expect(saveSpy.calledOnce).to.be.true;
- });
-
- it('delete', done => {
- wrapper = mount(ContactEdit, {
- attachToDocument: true,
- propsData: {
- isDeleting: true,
- isEdit: true,
- contactInfo: {
- id: '123'
- }
- }
- });
-
- const deleteButton = wrapper.find('.van-button')[1];
- deleteButton.trigger('click');
- wrapper.vm.onDelete();
-
- setTimeout(() => {
- wrapper.vm.isDeleting = false;
- wrapper.vm.$nextTick(() => {
- deleteButton.trigger('click');
- setTimeout(() => {
- expect(document.querySelectorAll('.van-dialog').length).to.equal(1);
-
- wrapper.vm.$on('delete', () => {
- done();
- });
- document.querySelector('.van-dialog__confirm').click();
- }, 300);
- });
- }, 300);
- });
-
- it('watch contactInfo', done => {
- const contactInfo = {
- name: '123'
- };
-
- wrapper = mount(ContactEdit, {
- propsData: {
- contactInfo: {}
- }
- });
-
- wrapper.setProps({ contactInfo });
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.data.name).to.equal('123');
- done();
- });
- });
-});
diff --git a/test/specs/coupon.spec.js b/test/specs/coupon.spec.js
deleted file mode 100644
index c837c7c6d..000000000
--- a/test/specs/coupon.spec.js
+++ /dev/null
@@ -1,324 +0,0 @@
-import CouponCell from 'packages/coupon-cell';
-import CouponList from 'packages/coupon-list';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-
-const coupon = {
- id: 1,
- available: 1,
- discount: 0,
- denominations: 150,
- origin_condition: 0,
- reason: '',
- value: 150,
- condition: '下单立减 1.50 元',
- name: '新手专用优惠券',
- start_at: 1489104000,
- end_at: 1514592000
-};
-
-const discountCoupon = {
- ...coupon,
- id: 2,
- discount: 88,
- denominations: 0,
- origin_condition: 50,
- value: 12,
- condition: '下单即享 8.8 折'
-};
-
-const emptyCoupon = {
- id: 3,
- denominations: 0,
- discount: 0
-};
-
-const disabledCoupon = {
- ...coupon,
- id: 4,
- available: 0,
- reason: '未满足使用门槛'
-};
-
-const disabledDiscountCoupon = {
- ...discountCoupon,
- id: 5,
- available: 0,
- reason: '未满足使用门槛'
-};
-
-describe('CouponCell', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('no coupon', () => {
- wrapper = mount(CouponCell, {});
-
- DOMChecker(wrapper, {
- text: {
- '.van-cell__value': '使用优惠'
- }
- });
- });
-
- it('has two coupon', () => {
- wrapper = mount(CouponCell, {
- propsData: {
- coupons: [coupon, discountCoupon]
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-cell__value': '您有 2 个可用优惠'
- }
- });
- });
-
- it('select first coupon', () => {
- wrapper = mount(CouponCell, {
- propsData: {
- chosenCoupon: 0,
- coupons: [coupon, discountCoupon]
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-cell__value span': '省¥1.50'
- },
- count: {
- '.van-cell__right-icon': 1
- }
- });
- });
-
- it('not editable', () => {
- wrapper = mount(CouponCell, {
- propsData: {
- chosenCoupon: 0,
- coupons: [coupon, discountCoupon],
- editable: false
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-cell__value span': '省¥1.50'
- },
- count: {
- '.van-cell__right-icon': 0
- }
- });
- });
-});
-
-describe('CouponList', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('no coupon', () => {
- wrapper = mount(CouponList, {
- propsData: {
- chosenCoupon: -1
- }
- });
-
- DOMChecker(wrapper, {
- count: {
- '.van-coupon-item': 0,
- '.van-coupon-item--disabled': 0,
- '.van-coupon-list__list h3': 0
- }
- });
- });
-
- it('has two coupon', () => {
- wrapper = mount(CouponList, {
- propsData: {
- chosenCoupon: -1,
- coupons: [coupon, discountCoupon],
- disabledCoupons: [disabledCoupon, disabledDiscountCoupon]
- }
- });
- DOMChecker(wrapper, {
- count: {
- '.van-coupon-item': 4,
- '.van-coupon-item--disabled': 2,
- '.van-coupon-list__list h3': 1
- }
- });
- });
-
- it('switch to first coupon', (done) => {
- wrapper = mount(CouponList, {
- attachToDocument: true,
- propsData: {
- chosenCoupon: -1,
- coupons: [coupon, discountCoupon],
- disabledCoupons: [disabledCoupon, disabledDiscountCoupon]
- }
- });
-
- wrapper.vm.$on('change', (index) => {
- wrapper.vm.chosenCoupon = index;
- });
-
- setTimeout(() => {
- wrapper.find('.van-coupon-item')[0].trigger('click');
-
- setTimeout(() => {
- expect(wrapper.vm.chosenCoupon).to.equal(0);
- done();
- }, 300);
- }, 300);
- });
-
- it('cancel select coupon', (done) => {
- wrapper = mount(CouponList, {
- attachToDocument: true,
- propsData: {
- chosenCoupon: 0,
- displayedCouponIndex: 0,
- coupons: [coupon, discountCoupon],
- disabledCoupons: [disabledCoupon, disabledDiscountCoupon]
- }
- });
-
- wrapper.vm.$on('change', (index) => {
- wrapper.vm.chosenCoupon = index;
- wrapper.vm.displayedCouponIndex = index;
- });
-
- setTimeout(() => {
- wrapper.find('.van-coupon-list__close')[0].trigger('click');
- setTimeout(() => {
- expect(wrapper.vm.chosenCoupon).to.equal(-1);
- done();
- }, 500);
- }, 500);
- });
-
- it('denominations format', () => {
- wrapper = mount(CouponList, {
- attachToDocument: true,
- propsData: {
- coupons: [coupon, {
- ...coupon,
- id: 10,
- denominations: 10
- }, {
- ...coupon,
- id: 11,
- denominations: 100
- }, {
- ...coupon,
- id: 12,
- denominations: 135
- }, {
- ...coupon,
- id: 13,
- denominations: 0
- }]
- }
- });
-
- expect(wrapper.find('.van-coupon-item__gradient h2')[0].text()).to.equal('¥ 1.5');
- expect(wrapper.find('.van-coupon-item__gradient h2')[1].text()).to.equal('¥ 0.1');
- expect(wrapper.find('.van-coupon-item__gradient h2')[2].text()).to.equal('¥ 1');
- expect(wrapper.find('.van-coupon-item__gradient h2')[3].text()).to.equal('¥ 1.35');
- expect(wrapper.find('.van-coupon-item__gradient h2')[4].text()).to.equal('');
- });
-
- it('discount format', () => {
- wrapper = mount(CouponList, {
- attachToDocument: true,
- propsData: {
- coupons: [discountCoupon, {
- ...discountCoupon,
- id: 10,
- discount: 10
- }, {
- ...discountCoupon,
- id: 11,
- discount: 0
- }]
- }
- });
-
- expect(wrapper.find('.van-coupon-item__gradient h2')[0].text()).to.equal('8.8折');
- expect(wrapper.find('.van-coupon-item__gradient h2')[1].text()).to.equal('1折');
- expect(wrapper.find('.van-coupon-item__gradient h2')[2].text()).to.equal('');
- });
-
- it('add coupon', (done) => {
- wrapper = mount(CouponList, {
- attachToDocument: true,
- propsData: {
- chosenCoupon: 0,
- coupons: [coupon, discountCoupon, emptyCoupon],
- disabledCoupons: [disabledCoupon, disabledDiscountCoupon]
- }
- });
-
- const code = '123123';
-
- wrapper.vm.$on('exchange', (code) => {
- expect(code).to.equal(code);
- wrapper.vm.coupons.push({
- ...coupon,
- id: 15
- });
- });
-
- setTimeout(() => {
- DOMChecker(wrapper, {
- count: {
- '.van-button--disabled': 1
- }
- });
-
- wrapper.find('.van-field__control')[0].element.value = code;
- wrapper.find('.van-field__control')[0].trigger('input');
-
- setTimeout(() => {
- wrapper.find('.van-coupon-list__exchange')[0].trigger('click');
- DOMChecker(wrapper, {
- count: {
- '.van-button--disabled': 0
- }
- });
-
- setTimeout(() => {
- expect(wrapper.find('.van-coupon-list')[0].hasStyle('display', 'none')).to.equal(false);
- DOMChecker(wrapper, {
- count: {
- '.van-button--disabled': 1,
- '.van-coupon-item': 6,
- '.van-coupon-item--disabled': 2
- }
- });
- done();
- }, 300);
- }, 300);
- }, 300);
- });
-
- it('displayedCouponIndex out of range', (done) => {
- wrapper = mount(CouponList, {
- propsData: {
- displayedCouponIndex: -100,
- coupons: [coupon, discountCoupon, emptyCoupon]
- }
- });
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.chosenCoupon).to.equal(-1);
- done();
- });
- });
-});
diff --git a/test/specs/datetime-picker.spec.js b/test/specs/datetime-picker.spec.js
deleted file mode 100644
index 08bcabb11..000000000
--- a/test/specs/datetime-picker.spec.js
+++ /dev/null
@@ -1,165 +0,0 @@
-import DatetimePicker from 'packages/datetime-picker';
-import { mount } from 'avoriaz';
-import { dragHelper } from '../utils';
-
-const testTime = '10:00';
-const testDate = new Date('2017/03/10 10:00');
-const minDate = new Date('2000/01/01 00:00');
-const maxDate = new Date('3000/01/01 00:00');
-
-describe('DatetimePicker', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a time picker', () => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'time',
- value: testTime
- }
- });
- expect(wrapper.vm.innerValue).to.equal(testTime);
- });
-
- it('create a date picker', () => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'date',
- value: testDate
- }
- });
- expect(wrapper.vm.innerValue.getTime()).to.equal(testDate.getTime());
- });
-
- it('create a year-month', () => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'year-month',
- value: testDate
- }
- });
- expect(wrapper.vm.innerValue.getTime()).to.equal(testDate.getTime());
- });
-
- it('create a datetime picker', () => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'datetime',
- value: testDate
- }
- });
- expect(wrapper.vm.innerValue.getTime()).to.equal(testDate.getTime());
- });
-
- it('drag time picker', (done) => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'time',
- value: '12:00'
- }
- });
-
- const [hour, minute] = wrapper.find('.van-picker-column ul');
- dragHelper(hour, 0, -50);
- dragHelper(minute, 0, -50);
-
- setTimeout(() => {
- expect(wrapper.vm.innerValue).to.equal('1:01');
- done();
- }, 50);
- });
-
- it('drag date picker', (done) => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'date',
- value: testDate,
- minDate,
- maxDate
- }
- });
-
- setTimeout(() => {
- const [year, month, day] = wrapper.find('.van-picker-column ul');
- dragHelper(year, 0, -50);
- dragHelper(month, 0, -50);
- dragHelper(day, 0, -50);
- setTimeout(() => {
- const newYear = wrapper.vm.innerValue.getFullYear();
- const newMonth = wrapper.vm.innerValue.getMonth() + 1;
- const newDay = wrapper.vm.innerValue.getDate();
- expect(newYear).to.equal(2018);
- expect(newMonth).to.equal(4);
- expect(newDay).to.equal(11);
- done();
- }, 10);
- }, 10);
- });
-
- it('drag year-month picker', (done) => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'year-month',
- value: testDate,
- minDate,
- maxDate
- }
- });
-
- setTimeout(() => {
- const [year, month] = wrapper.find('.van-picker-column ul');
- dragHelper(year, 0, -50);
- dragHelper(month, 0, -50);
- setTimeout(() => {
- const newYear = wrapper.vm.innerValue.getFullYear();
- const newMonth = wrapper.vm.innerValue.getMonth() + 1;
- expect(newYear).to.equal(2018);
- expect(newMonth).to.equal(4);
- done();
- }, 10);
- }, 10);
- });
-
- it('drag datetime picker', (done) => {
- wrapper = mount(DatetimePicker, {
- attachToDocument: true,
- propsData: {
- type: 'datetime',
- value: testDate,
- minDate,
- maxDate
- }
- });
-
- setTimeout(() => {
- const [year, month, day, hour, minute] = wrapper.find('.van-picker-column ul');
- dragHelper(year, 0, -50);
- dragHelper(month, 0, -50);
- dragHelper(day, 0, -50);
- dragHelper(hour, 0, -50);
- dragHelper(minute, 0, -50);
- setTimeout(() => {
- const newYear = wrapper.vm.innerValue.getFullYear();
- const newMonth = wrapper.vm.innerValue.getMonth() + 1;
- const newDay = wrapper.vm.innerValue.getDate();
- const newHour = wrapper.vm.innerValue.getHours();
- const newMinute = wrapper.vm.innerValue.getMinutes();
- expect(newYear).to.equal(2018);
- expect(newMonth).to.equal(4);
- expect(newDay).to.equal(11);
- expect(newHour).to.equal(11);
- expect(newMinute).to.equal(1);
- done();
- }, 10);
- }, 10);
- });
-});
diff --git a/test/specs/deep-assign.spec.js b/test/specs/deep-assign.spec.js
deleted file mode 100644
index 3eff8102b..000000000
--- a/test/specs/deep-assign.spec.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import deepAssign from 'packages/utils/deep-assign';
-
-describe('DeepAssign', () => {
- it('basic assign', () => {
- const a = { foo: 0 };
- const b = { foo: 0, bar: 1 };
- const output = { foo: 0, bar: 1 };
- expect(deepAssign(a, b)).to.eql(output);
- expect(deepAssign(a, null)).to.eql(a);
- expect(deepAssign(a, undefined)).to.eql(a);
- });
-
- it('same object', () => {
- const a = { foo: 0 };
- expect(deepAssign(a, a)).to.eql(a);
- });
-
- it('only assign own keys', () => {
- const Test = function() {};
- Test.prototype.a = 'many';
- const test = new Test();
- test.bar = 1;
- expect(deepAssign({ foo: 1 }, test, { foo: 1, bar: 1 })).to.eql({
- foo: 1,
- bar: 1
- });
- });
-
- it('do not assign undefined values', () => {
- expect(deepAssign({}, { foo: undefined })).to.eql({});
- });
-
- it('do not assign null values', () => {
- expect(deepAssign({}, { foo: null })).to.eql({});
- });
-
- it('assign proprety, if proprety is null in the prototype chain', () => {
- const Unicorn = function() {};
- Unicorn.prototype.rainbows = null;
- const unicorn = new Unicorn();
- expect(deepAssign(unicorn, { rainbows: 'many' }).rainbows).to.eql('many');
- });
-
- it('assign proprety, if proprety is undefined in the prototype chain', () => {
- const Unicorn = function() {};
- Unicorn.prototype.rainbows = undefined;
- const unicorn = new Unicorn();
- expect(deepAssign(unicorn, { rainbows: 'many' }).rainbows).to.eql('many');
- });
-
- it('do not merge with a target proprety in the prototype chain', () => {
- const amountOfRainbows = { amount: 'many' };
- const Unicorn = function() {};
- Unicorn.prototype.rainbows = amountOfRainbows;
- const unicorn = deepAssign(new Unicorn(), { rainbows: 'none' });
- expect(unicorn.rainbows).to.eql('none');
- expect(unicorn.rainbows.amount).to.eql(undefined);
- expect(Unicorn.prototype.rainbows).to.eql(amountOfRainbows);
- });
-
- it('deep assign', () => {
- const a = {
- foo: {
- foo: {
- foo: true
- },
- bar: {
- bar: false
- }
- }
- };
- const b = {
- foo: {
- foo: {
- foo: false,
- bar: true
- },
- bar: null
- },
- bar: true
- };
- const output = {
- foo: {
- foo: {
- foo: false,
- bar: true
- },
- bar: {
- bar: false
- }
- },
- bar: true
- };
- expect(deepAssign(a, b)).to.eql(output);
- });
-});
diff --git a/test/specs/dialog.spec.js b/test/specs/dialog.spec.js
deleted file mode 100644
index 36de317f1..000000000
--- a/test/specs/dialog.spec.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import Vue from 'vue';
-import Dialog from 'packages/dialog';
-
-describe('Dialog', () => {
- afterEach(() => {
- Dialog.close();
- });
-
- it('create a alert dialog', (done) => {
- Dialog.close();
- Dialog.alert({
- title: 'title',
- message: 'message'
- }).then((action) => {
- expect(action).to.equal('confirm');
- done();
- });
-
- setTimeout(() => {
- expect(document.querySelector('.van-dialog')).to.exist;
- expect(document.querySelector('.van-dialog__cancel').style.display).to.equal('none');
- document.querySelector('.van-dialog__confirm').click();
- }, 300);
- });
-
- it('create a confirm dialog', (done) => {
- Dialog.confirm({
- title: 'title',
- message: 'message'
- }).catch((action) => {
- expect(action).to.equal('cancel');
- done();
- });
-
- expect(document.querySelector('.van-dialog')).to.exist;
-
- setTimeout(() => {
- document.querySelector('.van-dialog__cancel').click();
- }, 300);
- });
-
- it('create a confirm dialog with callback', (done) => {
- Dialog.confirm({
- callback: (action) => {
- expect(action).to.equal('cancel');
- done();
- }
- });
-
- setTimeout(() => {
- document.querySelector('.van-dialog__cancel').click();
- }, 300);
- });
-
- it('set default options', () => {
- Dialog.setDefaultOptions({
- title: 'default title'
- });
- expect(Dialog.currentOptions.title).to.equal('default title');
- Dialog.resetDefaultOptions();
- expect(Dialog.currentOptions.title).to.equal('');
- });
-
- it('register component', () => {
- Vue.use(Dialog);
- expect(!!Vue.component('van-dialog')).to.be.true;
- });
-
- it('before close', (done) => {
- Dialog.confirm({
- beforeClose(action, dialogDone) {
- setTimeout(() => {
- dialogDone();
- setTimeout(() => {
- expect(document.querySelector('.van-dialog').style.display).to.equal('none');
- done();
- }, 300);
- });
- }
- });
-
- setTimeout(() => {
- document.querySelector('.van-dialog__confirm').click();
- expect(document.querySelector('.van-dialog').style.display).to.equal('');
- }, 300);
- });
-});
diff --git a/test/specs/field.spec.js b/test/specs/field.spec.js
deleted file mode 100644
index f83cc2ca2..000000000
--- a/test/specs/field.spec.js
+++ /dev/null
@@ -1,199 +0,0 @@
-import Field from 'packages/field';
-import FieldWithIcon from '../components/field';
-import { mount } from 'avoriaz';
-
-describe('Field', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a text field', () => {
- wrapper = mount(Field, {
- propsData: {
- type: 'text',
- autosize: false
- }
- });
-
- expect(wrapper.hasClass('van-field')).to.be.true;
- });
-
- it('create a text field with initialize value', (done) => {
- wrapper = mount(Field, {
- propsData: {
- value: 'test'
- }
- });
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- wrapper.vm.value = 'test2';
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledWith('input'));
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal('test2');
- done();
- });
- });
-
- it('focus on input', (done) => {
- wrapper = mount(Field, {
- propsData: {
- value: ''
- }
- });
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- const input = wrapper.find('.van-field__control')[0];
- input.trigger('focus');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledWith('focus'));
- done();
- });
- });
-
- it('create a textarea field', (done) => {
- wrapper = mount(Field, {
- propsData: {
- type: 'textarea',
- autosize: true
- }
- });
-
- setTimeout(() => {
- expect(wrapper.hasClass('van-field')).to.be.true;
- done();
- }, 50);
- });
-
- it('create a autosize textarea field', (done) => {
- wrapper = mount(Field, {
- attachToDocument: true,
- propsData: {
- type: 'textarea',
- autosize: {}
- }
- });
-
- wrapper.vm.$on('input', val => {
- wrapper.vm.value = val;
- });
-
- const textarea = wrapper.find('.van-field__control')[0];
- const textareaElement = textarea.element;
- const textAreaDiff = (parseInt(textareaElement.style.paddingBottom, 10) +
- parseInt(textareaElement.style.paddingTop, 10)) || 0;
-
- const longText = 'testtesttesttesttesttesttest';
- textareaElement.value = longText;
- textarea.trigger('input');
-
- setTimeout(() => {
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal(longText);
- expect(textareaElement.style.height).to.equal((textareaElement.scrollHeight - textAreaDiff) + 'px');
- done();
- }, 50);
- });
-
- it('autosize object', (done) => {
- wrapper = mount(Field, {
- propsData: {
- type: 'textarea',
- autosize: {
- maxHeight: 100,
- minHeight: 50
- }
- }
- });
-
- wrapper.vm.$on('input', val => {
- wrapper.vm.value = val;
- });
-
- const textarea = wrapper.find('.van-field__control')[0];
- const textareaElement = textarea.element;
-
- const longText = 'testtesttesttesttesttesttest';
- textareaElement.value = longText;
- textarea.trigger('input');
-
- wrapper.update();
- setTimeout(() => {
- expect(wrapper.find('.van-field__control')[0].element.value).to.equal(longText);
- expect(textareaElement.style.height).to.equal(('50px'));
- done();
- }, 50);
- });
-
- it('show icon when has value and icon props', () => {
- wrapper = mount(Field, {
- propsData: {
- icon: 'name',
- value: '123'
- }
- });
-
- wrapper.find('.van-field__icon')[0].trigger('touchstart');
- expect(wrapper.find('.van-field__icon').length).to.equal(1);
- });
-
- it('keypress event', () => {
- wrapper = mount(Field, {
- propsData: {
- value: '',
- type: 'number'
- }
- });
-
- const spy1 = sinon.spy();
- wrapper.vm.onKeypress({ keyCode: 0, preventDefault: spy1 });
- expect(spy1.calledOnce).to.be.true;
-
- const spy2 = sinon.spy();
- wrapper.vm.onKeypress({ keyCode: 50, preventDefault: spy2 });
- expect(spy2.calledOnce).to.be.false;
-
- const spy3 = sinon.spy();
- wrapper.vm.value = '0.1';
- wrapper.vm.onKeypress({ keyCode: 46, preventDefault: spy3 });
- expect(spy3.calledOnce).to.be.true;
-
- wrapper.vm.type = 'text';
- const spy4 = sinon.spy();
- wrapper.vm.onKeypress({ keyCode: 0, preventDefault: spy4 });
- expect(spy4.calledOnce).to.be.false;
- });
-
- it('create a field with icon slot', () => {
- const fn = sinon.spy();
-
- wrapper = mount(FieldWithIcon, {
- propsData: {
- onIconClick: fn
- }
- });
-
- wrapper.find('.van-field__icon')[0].trigger('touchstart');
- expect(fn.calledOnce).to.be.true;
- });
-
- it('blur event', (done) => {
- const blur = sinon.spy();
- const focus = sinon.spy();
- const clickIcon = sinon.spy();
-
- wrapper = mount(FieldWithIcon, {});
- wrapper.vm.$on('blur', blur);
- wrapper.vm.$on('focus', focus);
-
- wrapper.find('.van-field__icon')[0].trigger('click');
- wrapper.find('.van-field__control')[0].trigger('focus');
- wrapper.find('.van-field__control')[0].trigger('blur');
-
- expect(blur.calledOnce).to.be.true;
- expect(clickIcon.calledOnce).to.be.false;
- done();
- });
-});
diff --git a/test/specs/goods-action.spec.js b/test/specs/goods-action.spec.js
deleted file mode 100644
index 1c3b1d304..000000000
--- a/test/specs/goods-action.spec.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import GoodsAction from '../components/goods-action';
-import GoodsActionBigBtn from 'packages/goods-action-big-btn';
-import GoodsActionMiniBtn from 'packages/goods-action-mini-btn';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-
-describe('GoodsAction', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a GoodsAction', () => {
- wrapper = mount(GoodsAction, {});
-
- DOMChecker(wrapper, {
- count: {
- '.van-goods-action-mini-btn': 2,
- '.van-goods-action-big-btn': 2,
- '.van-icon-chat': 1
- }
- });
- });
-
- it('click GoodsActionBigBtn', () => {
- wrapper = mount(GoodsActionBigBtn, {});
-
- const submitSpyFunc = sinon.spy();
- wrapper.vm.$on('click', submitSpyFunc);
- wrapper.trigger('click');
- expect(submitSpyFunc.calledOnce).to.be.true;
- });
-
- it('click GoodsActionMiniBtn', () => {
- wrapper = mount(GoodsActionMiniBtn, {
- propsData: {
- icon: 'card'
- }
- });
-
- const submitSpyFunc = sinon.spy();
- wrapper.vm.$on('click', submitSpyFunc);
- wrapper.trigger('click');
- expect(submitSpyFunc.calledOnce).to.be.true;
- });
-});
diff --git a/test/specs/icon.spec.js b/test/specs/icon.spec.js
deleted file mode 100644
index a93ab14c1..000000000
--- a/test/specs/icon.spec.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import Icon from 'packages/icon';
-import { mount } from 'avoriaz';
-
-describe('Icon', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a icon', () => {
- wrapper = mount(Icon, {
- propsData: {
- name: 'arrow'
- }
- });
-
- expect(wrapper.hasClass('van-icon')).to.be.true;
- expect(wrapper.hasClass('van-icon-arrow')).to.be.true;
- });
-});
diff --git a/test/specs/image-preview.spec.js b/test/specs/image-preview.spec.js
deleted file mode 100644
index 7af0a18da..000000000
--- a/test/specs/image-preview.spec.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import Vue from 'vue';
-import { mount } from 'avoriaz';
-import { triggerTouch } from '../utils';
-import ImagePreview from 'packages/image-preview';
-import ImagePreviewVue from 'packages/image-preview/image-preview';
-
-const images = [
- 'https://img.yzcdn.cn/upload_files/2017/03/15/FkubrzN7AgGwLlTeb1E89-T_ZjBg.png',
- 'https://img.yzcdn.cn/upload_files/2017/03/14/FmTPs0SeyQaAOSK1rRe1sL8RcwSY.jpeg',
- 'https://img.yzcdn.cn/upload_files/2017/03/15/FvexrWlG_WxtCE9Omo5l27n_mAG_.jpeg'
-];
-
-describe('ImagePreview', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('call ImagePreview Function', (done) => {
- ImagePreview(images);
- Vue.nextTick(() => {
- expect(document.querySelectorAll('.van-image-preview img').length).to.equal(3);
- ImagePreview(images.slice(0, 2));
-
- Vue.nextTick(() => {
- expect(document.querySelectorAll('.van-image-preview img').length).to.equal(2);
- done();
- });
- });
- });
-
- it('create a ImagePreview Component', (done) => {
- wrapper = mount(ImagePreviewVue);
- wrapper.vm.images = images;
- wrapper.vm.value = true;
- wrapper.vm.$on('input', val => {
- wrapper.vm.value = val;
- });
-
- expect(wrapper.hasClass('van-image-preview')).to.be.true;
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('img').length).to.equal(3);
- triggerTouch(wrapper, 'touchstart', 0, 0);
- triggerTouch(wrapper, 'touchmove', 100, 100);
- triggerTouch(wrapper, 'touchend', 0, 0);
- expect(wrapper.vm.value).to.be.true;
-
- // triggerTouch(wrapper, 'touchstart', 0, 0);
- // triggerTouch(wrapper, 'touchmove', 0, 0);
- // triggerTouch(wrapper, 'touchend', 0, 0);
- // expect(wrapper.vm.value).to.be.false;
- done();
- });
- });
-
- it('register component', () => {
- Vue.use(ImagePreview);
- expect(!!Vue.component('van-image-preview')).to.be.true;
- });
-});
diff --git a/test/specs/layout.spec.js b/test/specs/layout.spec.js
deleted file mode 100644
index ea9f1b9ba..000000000
--- a/test/specs/layout.spec.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { mount } from 'avoriaz';
-import Col from 'packages/col';
-import Row from 'packages/row';
-import RowTestComponent from '../components/row';
-
-describe('Layout', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a simple row', () => {
- wrapper = mount(Row);
-
- expect(wrapper.hasClass('van-row')).to.be.true;
- expect(wrapper.vm.style).to.be.empty;
- });
-
- it('create a simple column', () => {
- wrapper = mount(Col, {
- propsData: {
- span: 8,
- offset: 8
- }
- });
- expect(wrapper.hasClass('van-col')).to.be.true;
- expect(wrapper.hasClass('van-col-8')).to.be.true;
- expect(wrapper.hasClass('van-col-offset-8')).to.be.true;
- expect(wrapper.vm.gutter).to.equal(0);
- });
-
- it('create a gutter row', () => {
- wrapper = mount(RowTestComponent);
- const row = wrapper.find(Row)[0];
- const column = wrapper.find(Col)[0];
- expect(row.hasStyle('margin-left', '-5px')).to.be.true;
- expect(row.hasStyle('margin-right', '-5px')).to.be.true;
- expect(column.hasStyle('padding-left', '5px')).to.be.true;
- expect(column.hasStyle('padding-right', '5px')).to.be.true;
- });
-});
diff --git a/test/specs/list.spec.js b/test/specs/list.spec.js
deleted file mode 100644
index 548c96a9c..000000000
--- a/test/specs/list.spec.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import List from 'packages/list';
-import { mount } from 'avoriaz';
-
-describe('List', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('load event', done => {
- wrapper = mount(List);
-
- const spy = sinon.spy();
- wrapper.vm.$on('load', spy);
- wrapper.vm.$on('input', val => {
- wrapper.vm.loading = val;
- });
-
- expect(spy.calledOnce).to.be.false;
- wrapper.vm.$nextTick(() => {
- expect(spy.calledOnce).to.be.true;
- done();
- });
- });
-
- it('finished', done => {
- wrapper = mount(List, {
- propsData: {
- finished: true
- }
- });
-
- const spy = sinon.spy();
- wrapper.vm.$on('load', spy);
-
- wrapper.vm.$nextTick(() => {
- expect(spy.calledOnce).to.be.false;
-
- wrapper.vm.finished = false;
-
- setTimeout(() => {
- expect(spy.calledOnce).to.be.true;
- done();
- }, 50);
- });
- });
-
- it('immediate check false', done => {
- wrapper = mount(List, {
- propsData: {
- immediateCheck: false
- }
- });
-
- const spy = sinon.spy();
- wrapper.vm.$on('load', spy);
- wrapper.vm.$on('input', val => {
- wrapper.vm.loading = val;
- });
-
- expect(spy.calledOnce).to.be.false;
- wrapper.vm.$nextTick(() => {
- expect(spy.calledOnce).to.be.false;
- done();
- });
- });
-});
diff --git a/test/specs/loading.spec.js b/test/specs/loading.spec.js
deleted file mode 100644
index 4f6a22b71..000000000
--- a/test/specs/loading.spec.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import Loading from 'packages/loading';
-import { mount } from 'avoriaz';
-
-describe('Loading', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create default', () => {
- wrapper = mount(Loading);
-
- expect(wrapper.hasClass('van-loading')).to.be.true;
- });
-
- it('create gradient-circle black', () => {
- wrapper = mount(Loading, {
- propsData: {
- type: 'gradient-circle',
- color: 'black'
- }
- });
- const spinner = wrapper.find('.van-loading__spinner')[0];
-
- expect(spinner.hasClass('van-loading__spinner--gradient-circle')).to.be.true;
- });
-
- it('create gradient-circle white', () => {
- wrapper = mount(Loading, {
- propsData: {
- type: 'gradient-circle',
- color: 'white'
- }
- });
- const spinner = wrapper.find('.van-loading__spinner')[0];
-
- expect(spinner.hasClass('van-loading__spinner--gradient-circle')).to.be.true;
- });
-
- it('create circle black', () => {
- wrapper = mount(Loading, {
- propsData: {
- type: 'circle',
- color: 'black'
- }
- });
- const spinner = wrapper.find('.van-loading__spinner')[0];
-
- expect(spinner.hasClass('van-loading__spinner--circle')).to.be.true;
- });
-
- it('create circle white', () => {
- wrapper = mount(Loading, {
- propsData: {
- type: 'circle',
- color: 'white'
- }
- });
- const spinner = wrapper.find('.van-loading__spinner')[0];
-
- expect(spinner.hasClass('van-loading__spinner--circle')).to.be.true;
- });
-
- it('loading size', () => {
- wrapper = mount(Loading, {
- propsData: {
- size: '100px'
- }
- });
- expect(wrapper.vm.$el.style.width).to.equal('100px');
- expect(wrapper.vm.$el.style.height).to.equal('100px');
- });
-});
diff --git a/test/specs/nav-bar.spec.js b/test/specs/nav-bar.spec.js
deleted file mode 100644
index 858ef9ffc..000000000
--- a/test/specs/nav-bar.spec.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import NavBar from 'packages/nav-bar';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-
-describe('NavBar', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a NavBar', () => {
- wrapper = mount(NavBar, {
- propsData: {
- title: '标题',
- leftText: '返回',
- rightText: '按钮',
- leftArrow: true
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-nav-bar__title': '标题',
- '.van-nav-bar__left .van-nav-bar__text': '返回',
- '.van-nav-bar__right .van-nav-bar__text': '按钮'
- },
- count: {
- '.van-nav-bar__arrow': 1
- }
- });
- expect(wrapper.hasClass('van-nav-bar')).to.be.true;
- });
-
- it('NavBar fixed', () => {
- wrapper = mount(NavBar, {
- propsData: {
- fixed: true
- }
- });
-
- expect(wrapper.hasClass('van-nav-bar')).to.be.true;
- });
-});
diff --git a/test/specs/notice-bar.spec.js b/test/specs/notice-bar.spec.js
deleted file mode 100644
index 87c796e44..000000000
--- a/test/specs/notice-bar.spec.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import NoticeBar from '../components/notice-bar';
-import { mount } from 'avoriaz';
-
-describe('NoticeBar', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a notice-bar', () => {
- wrapper = mount(NoticeBar, {
- propsData: {},
- attachToDocument: true
- });
-
- expect(wrapper.find('.van-notice-bar').length).to.equal(1);
- });
-
- it('mode closeable', () => {
- wrapper = mount(NoticeBar, {
- propsData: {
- mode: 'closeable'
- },
- attachToDocument: true
- });
-
- const icon = wrapper.find('.van-icon-close');
- expect(icon.length).to.equal(1);
-
- icon[0].trigger('click');
- expect(wrapper.hasStyle('display', 'none'));
- });
-
- it('mode link', () => {
- wrapper = mount(NoticeBar, {
- propsData: {
- mode: 'link'
- },
- attachToDocument: true
- });
-
- expect(wrapper.find('.van-icon-arrow').length).to.equal(1);
- });
-
- it('notice-bar transitionend', (done) => {
- wrapper = mount(NoticeBar, {
- propsData: {
- text: '足协杯战线连续第2年上演广州德比战',
- speed: 1000,
- delay: 0
- },
- attachToDocument: true
- });
-
- const content = wrapper.find('.van-notice-bar__content')[0];
- setTimeout(() => {
- expect(content.hasStyle('transition-delay', '0s')).to.be.true;
- done();
- }, 500);
- });
-});
diff --git a/test/specs/number-keyboard.spec.js b/test/specs/number-keyboard.spec.js
deleted file mode 100644
index 2d456c261..000000000
--- a/test/specs/number-keyboard.spec.js
+++ /dev/null
@@ -1,169 +0,0 @@
-import NumberKeyboard from 'packages/number-keyboard';
-import NumberKeyboardKeepAlive from '../components/number-keyboard';
-import { mount } from 'avoriaz';
-import { triggerTouch } from '../utils';
-
-function mockKeyDown(wrapper, keyIndex) {
- const key = wrapper.element.querySelectorAll('.van-key')[keyIndex];
- const touchStart = document.createEvent('CustomEvent');
- touchStart.initCustomEvent('touchstart', true, true, {});
- key.dispatchEvent(touchStart);
-}
-
-function mockKeyUp(wrapper, keyIndex) {
- const key = wrapper.element.querySelectorAll('.van-key')[keyIndex];
- const touchEnd = document.createEvent('CustomEvent');
- touchEnd.initCustomEvent('touchend', true, true, {});
- key.dispatchEvent(touchEnd);
-}
-
-describe('NumberKeyboard', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a NumberKeyboard', () => {
- wrapper = mount(NumberKeyboard, {});
- expect(wrapper.hasClass('van-number-keyboard')).to.be.true;
- });
-
- it('click a keyboard key', (done) => {
- wrapper = mount(NumberKeyboard, {
- propsData: {
- theme: 'custom',
- closeButtonText: 'close'
- }
- });
-
- // just for coverage
- wrapper.vm.handler(true);
-
- wrapper.vm.$on('input', value => {
- mockKeyUp(wrapper, 0);
- expect(value).to.equal(1);
- done();
- });
-
- mockKeyDown(wrapper, 12); // close
- mockKeyDown(wrapper, 10); // empty
- mockKeyDown(wrapper, 0); // 1
- });
-
- it('click delete key', (done) => {
- wrapper = mount(NumberKeyboard, {});
-
- const deleteSpy = sinon.spy();
- wrapper.vm.$on('delete', deleteSpy);
-
- mockKeyDown(wrapper, 11);
- wrapper.vm.$nextTick(() => {
- expect(deleteSpy.calledOnce).to.be.true;
- done();
- });
- });
-
- it('blur keyboard', (done) => {
- wrapper = mount(NumberKeyboard, {
- attachToDocument: true
- });
-
- const blur = sinon.spy();
- wrapper.vm.$on('blur', blur);
-
- triggerTouch(document.body, 'touchstart');
- wrapper.vm.$nextTick(() => {
- expect(blur.calledOnce).to.be.true;
- done();
- });
- });
-
- it('listen to show event when has transtion', (done) => {
- wrapper = mount(NumberKeyboard, {
- attachToDocument: true
- });
-
- const show = sinon.spy();
- wrapper.vm.$on('show', show);
- wrapper.vm.show = true;
- wrapper.trigger('animationend');
-
- setTimeout(() => {
- expect(show.calledOnce).to.be.true;
- done();
- }, 100);
- });
-
- it('listen to show event when no transtion', (done) => {
- wrapper = mount(NumberKeyboard, {
- attachToDocument: true,
- propsData: {
- transition: false
- }
- });
-
- const show = sinon.spy();
- wrapper.vm.$on('show', show);
- wrapper.vm.show = true;
-
- wrapper.vm.$nextTick(() => {
- expect(show.calledOnce).to.be.true;
- done();
- });
- });
-
- it('listen to hide event when has transtion', (done) => {
- wrapper = mount(NumberKeyboard, {
- attachToDocument: true,
- propsData: {
- show: true
- }
- });
-
- const hide = sinon.spy();
- wrapper.vm.$on('hide', hide);
- wrapper.vm.show = false;
- wrapper.trigger('animationend');
-
- setTimeout(() => {
- expect(hide.calledOnce).to.be.true;
- done();
- }, 100);
- });
-
- it('listen to hide event when no transtion', (done) => {
- wrapper = mount(NumberKeyboard, {
- attachToDocument: true,
- propsData: {
- show: true,
- transition: false
- }
- });
-
- const hide = sinon.spy();
- wrapper.vm.$on('hide', hide);
- wrapper.vm.show = false;
-
- wrapper.vm.$nextTick(() => {
- expect(hide.calledOnce).to.be.true;
- done();
- });
- });
-
- it('keey-alive live cycle', (done) => {
- wrapper = mount(NumberKeyboardKeepAlive, {
- attachToDocument: true,
- propsData: {
- showKeyboard: true
- }
- });
-
- expect(wrapper.find('.van-number-keyboard').length).to.equal(1);
-
- wrapper.vm.showKeyboard = false;
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-number-keyboard').length).to.equal(0);
- done();
- });
- });
-});
diff --git a/test/specs/pagination.spec.js b/test/specs/pagination.spec.js
deleted file mode 100644
index 431cfb30d..000000000
--- a/test/specs/pagination.spec.js
+++ /dev/null
@@ -1,134 +0,0 @@
-import Vue from 'vue';
-import { mount } from 'avoriaz';
-import Pagination from 'packages/pagination';
-
-describe('Pagination', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a multi Pagination', done => {
- wrapper = mount(Pagination, {
- propsData: {
- mode: 'multi',
- totalItems: 120,
- itemsPerPage: 10,
- showPageSize: 5,
- value: 2
- }
- });
- expect(wrapper.hasClass('van-pagination')).to.be.true;
- expect(wrapper.find('.van-pagination__item').length).to.equal(7);
- expect(
- wrapper.find('.van-pagination__item')[0].hasClass('van-pagination__prev')
- ).to.be.true;
- expect(wrapper.vm.value).to.equal(2);
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- wrapper.find('.van-pagination__next')[0].trigger('click');
- Vue.nextTick(() => {
- expect(eventStub.calledWith('input'));
- expect(eventStub.calledWith('change'));
- expect(wrapper.vm.value).to.equal(2);
-
- wrapper.vm.value = 12;
- wrapper.update();
- Vue.nextTick(() => {
- expect(
- wrapper
- .find('.van-pagination__next')[0]
- .hasClass('van-pagination__item--disabled')
- ).to.be.true;
- done();
- });
- });
- });
-
- it('create a multi forceEllipses Pagination', done => {
- wrapper = mount(Pagination, {
- propsData: {
- mode: 'multi',
- totalItems: 120,
- itemsPerPage: 10,
- showPageSize: 5,
- forceEllipses: true,
- value: 1
- }
- });
-
- const ellipsesLink = wrapper.find('.van-pagination__page')[5];
- expect(ellipsesLink.text().trim()).to.equal('...');
-
- wrapper.vm.value = 7;
- wrapper.update();
- Vue.nextTick(() => {
- const ellipsesLink = wrapper.find('.van-pagination__page')[0];
- expect(ellipsesLink.text().trim()).to.equal('...');
-
- wrapper.vm.value = 12;
- Vue.nextTick(() => {
- const pages = wrapper.find('.van-pagination__page');
- const ellipsesLink = pages[pages.length - 1];
- expect(ellipsesLink.text().trim()).to.equal('12');
- done();
- });
- });
- });
-
- it('create a simple Pagination', () => {
- wrapper = mount(Pagination, {
- propsData: {
- mode: 'simple',
- totalItems: 120,
- itemsPerPage: 10,
- value: 1
- }
- });
- expect(wrapper.hasClass('van-pagination')).to.be.true;
- expect(wrapper.find('.van-pagination__item').length).to.equal(2);
- expect(
- wrapper.find('.van-pagination__item')[0].hasClass('van-pagination__prev')
- ).to.be.true;
- });
-
- it('create a empty Pagination', done => {
- wrapper = mount(Pagination, {
- propsData: {
- mode: 'multi',
- totalItems: 120,
- itemsPerPage: 10,
- showPageSize: 5,
- nextText: '下一页',
- previousText: '上一页',
- value: 2
- }
- });
-
- expect(wrapper.find('.van-pagination__prev')[0].text().trim()).to.equal('上一页');
- expect(wrapper.find('.van-pagination__next')[0].text().trim()).to.equal('下一页');
-
- wrapper.vm.value = { currentPage: 18 };
- wrapper.update();
- Vue.nextTick(() => {
- expect(wrapper.find('.van-pagination__page').length).to.equal(0);
- done();
- });
- });
-
- it('create a multi forceEllipses Pagination && max show page size', () => {
- wrapper = mount(Pagination, {
- propsData: {
- mode: 'multi',
- totalItems: 120,
- itemsPerPage: 10,
- showPageSize: 12,
- forceEllipses: true,
- value: 1
- }
- });
-
- const ellipsesLink = wrapper.find('.van-pagination__page')[11];
- expect(ellipsesLink.text().trim()).to.equal('12');
- });
-});
diff --git a/test/specs/password-input.spec.js b/test/specs/password-input.spec.js
deleted file mode 100644
index e5ce480d5..000000000
--- a/test/specs/password-input.spec.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import PasswordInput from 'packages/password-input';
-import { mount } from 'avoriaz';
-
-describe('PasswordInput', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a PasswordInput', () => {
- wrapper = mount(PasswordInput, {});
- expect(wrapper.find('.van-password-input').length).to.equal(1);
- });
-
- it('create a PasswordInput with value && info', (done) => {
- wrapper = mount(PasswordInput, {
- propsData: {
- value: '000',
- info: '测试info'
- }
- });
-
- expect(wrapper.find('.van-password-input i')[2].hasStyle('visibility', 'visible')).to.be.true;
- expect(wrapper.find('.van-password-input i')[3].hasStyle('visibility', 'visible')).to.be.false;
- expect(wrapper.find('.van-password-input__info')[0].text()).to.equal('测试info');
-
- wrapper.vm.value = '0000';
- wrapper.vm.errorInfo = '测试errorInfo';
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-password-input i')[3].hasStyle('visibility', 'visible')).to.be.true;
- expect(wrapper.find('.van-password-input__info').length).to.equal(0);
- expect(wrapper.find('.van-password-input__error-info')[0].text()).to.equal('测试errorInfo');
- done();
- });
- });
-
- it('listen to focus event', () => {
- wrapper = mount(PasswordInput, {});
-
- const focus = sinon.spy();
- wrapper.vm.$on('focus', focus);
- wrapper.find('.van-password-input__security')[0].trigger('touchstart');
-
- expect(focus.calledOnce).to.be.true;
- });
-
- it('change password length', () => {
- wrapper = mount(PasswordInput, {
- propsData: {
- length: 2
- }
- });
-
- expect(wrapper.find('.van-password-input i').length).to.equal(2);
- });
-});
diff --git a/test/specs/picker.spec.js b/test/specs/picker.spec.js
deleted file mode 100644
index 15173ce94..000000000
--- a/test/specs/picker.spec.js
+++ /dev/null
@@ -1,283 +0,0 @@
-import Picker from 'packages/picker';
-import PickerColumn from 'packages/picker/PickerColumn';
-import { mount } from 'avoriaz';
-import { dragHelper } from '../utils';
-
-const simpleColumn = ['1990', '1991', '1992', '1993', '1994', '1995'];
-const columns = [
- {
- values: ['vip', 'normal'],
- className: 'column1'
- },
- {
- values: simpleColumn,
- className: 'column2'
- }
-];
-
-const disabledOption = [{
- disabled: true,
- text: '123'
-}];
-
-describe('Picker', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create picker', () => {
- wrapper = mount(Picker, {
- propsData: {
- columns: columns
- }
- });
-
- expect(wrapper.hasClass('van-picker')).to.be.true;
-
- expect(wrapper.vm.getColumnValues(0).length).to.equal(2);
- expect(wrapper.vm.getValues().length).to.equal(2);
- });
-
- it('set picker values', () => {
- wrapper = mount(Picker, {
- propsData: {
- columns: columns
- }
- });
-
- expect(wrapper.vm.getColumnValues(0).length).to.equal(2);
- expect(wrapper.vm.getColumnValues(1).length).to.equal(6);
-
- expect(wrapper.vm.getColumnValue(0)).to.equal('vip');
- expect(wrapper.vm.getColumnValue(1)).to.equal('1990');
-
- wrapper.vm.setColumnValue(0, 'normal');
- expect(wrapper.vm.getColumnValue(0)).to.equal('normal');
-
- wrapper.vm.setColumnIndex(0, 0);
- expect(wrapper.vm.getColumnValue(0)).to.equal('vip');
-
- wrapper.vm.setColumnValue(1, '1991');
- expect(wrapper.vm.getColumnValue(1)).to.equal('1991');
-
- wrapper.vm.setColumnValues(0, ['vip', 'normal', 'other']);
- expect(wrapper.vm.getColumnValues(0).length).to.equal(3);
- expect(wrapper.vm.getValues().length).to.equal(2);
-
- wrapper.vm.setValues(['vip', '1992']);
- expect(wrapper.vm.getColumnIndex(0)).to.equal(0);
- expect(wrapper.vm.getColumnIndex(1)).to.equal(2);
- expect(wrapper.vm.getColumnIndex(2)).to.equal(undefined);
- expect(wrapper.vm.getIndexes(2)).to.eql([0, 2]);
-
- wrapper.vm.setIndexes([1, 4]);
- expect(wrapper.vm.getColumnValue(0)).to.equal('normal');
- expect(wrapper.vm.getColumnValue(1)).to.equal('1994');
- expect(wrapper.vm.getColumnValue(2)).to.equal(undefined);
- });
-
- it('create a simple column picker', () => {
- wrapper = mount(Picker, {
- propsData: {
- columns: undefined
- }
- });
-
- expect(wrapper.hasClass('van-picker')).to.be.true;
- expect(wrapper.vm.currentColumns.length).to.equal(0);
- });
-
- it('create a invalid columns picker', () => {
- wrapper = mount(Picker, {
- propsData: {
- columns: simpleColumn
- }
- });
-
- expect(wrapper.vm.isSimpleColumn).to.be.true;
- });
-
- it('set invalid index columns', () => {
- wrapper = mount(Picker, {
- propsData: {
- columns: columns
- }
- });
-
- expect(wrapper.vm.getColumnValues(3)).to.equal(undefined);
- wrapper.vm.setColumnValues(3, [1, 2]);
- expect(wrapper.vm.getColumnValues(3)).to.equal(undefined);
-
- expect(wrapper.vm.getColumnValue(3)).to.equal(undefined);
- wrapper.vm.setColumnValue(3, 3);
- expect(wrapper.vm.getColumnValue(3)).to.equal(undefined);
- });
-
- it('create a empty picker and emit a cencel event', (done) => {
- wrapper = mount(Picker, {
- propsData: {
- showToolbar: true
- }
- });
-
- expect(wrapper.hasClass('van-picker')).to.be.true;
- expect(wrapper.contains('.van-picker__toolbar')).to.be.true;
- expect(wrapper.vm.currentColumns.length).to.equal(0);
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- const cancelBtn = wrapper.find('.van-picker__cancel')[0];
- cancelBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('cancel'));
- done();
- });
- });
-
- it('create a empty picker and emit a confirm event', (done) => {
- wrapper = mount(Picker, {
- propsData: {
- showToolbar: true
- }
- });
-
- expect(wrapper.hasClass('van-picker')).to.be.true;
- expect(wrapper.contains('.van-picker__toolbar')).to.be.true;
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- const cancelBtn = wrapper.find('.van-picker__confirm')[0];
- cancelBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('confirm'));
- done();
- });
- });
-
- it('simple column emit a confirm event', (done) => {
- wrapper = mount(Picker, {
- propsData: {
- columns: simpleColumn,
- showToolbar: true
- }
- });
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- const cancelBtn = wrapper.find('.van-picker__confirm')[0];
- cancelBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('confirm'));
- done();
- });
- });
-});
-
-describe('PickerColumn', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a picker-column', () => {
- wrapper = mount(PickerColumn);
-
- expect(wrapper.hasClass('van-picker-column')).to.be.true;
- expect(wrapper.vm.options.length).to.equal(0);
- });
-
- it('change picker-column value', (done) => {
- wrapper = mount(PickerColumn, {
- propsData: {
- options: [1, 2, 3, 4, 5],
- value: 1
- }
- });
-
- expect(wrapper.vm.options.length).to.equal(5);
-
- wrapper.vm.setValue(3);
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.currentValue).to.equal(3);
- done();
- });
- });
-
- it('change picker-column values', (done) => {
- wrapper = mount(PickerColumn);
-
- expect(wrapper.vm.options.length).to.equal(0);
-
- wrapper.vm.options = [1, 2];
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.options.length).to.equal(2);
- done();
- });
- });
-
- it('change defaultIndex', (done) => {
- wrapper = mount(PickerColumn, {
- propsData: {
- options: simpleColumn,
- defaultIndex: 0
- }
- });
-
- expect(wrapper.vm.currentIndex).to.equal(0);
- wrapper.vm.defaultIndex = 2;
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.currentIndex).to.equal(2);
- done();
- });
- });
-
- it('select disabled options', () => {
- wrapper = mount(PickerColumn, {
- propsData: {
- options: [
- { text: '1', disabled: true },
- { text: '2' },
- { text: '3', disabled: true },
- { text: '4', disabled: true }
- ],
- valueKey: 'text'
- }
- });
- expect(wrapper.vm.currentIndex).to.equal(1);
-
- wrapper.vm.setIndex(3);
- expect(wrapper.vm.currentIndex).to.equal(1);
- });
-
- it('disabled options', () => {
- wrapper = mount(PickerColumn, {
- propsData: {
- options: disabledOption
- }
- });
-
- expect(wrapper.find('.van-picker-column__item--disabled').length).to.equal(1);
- expect(wrapper.vm.currentIndex).to.equal(undefined);
- });
-
- it('drag options', () => {
- wrapper = mount(PickerColumn, {
- propsData: {
- options: columns[1].values,
- itemHeight: 50
- }
- });
- expect(wrapper.vm.currentIndex).to.equal(0);
-
- const column = wrapper.find('.van-picker-column')[0];
- dragHelper(column, 0, 0);
- expect(wrapper.vm.currentIndex).to.equal(0);
-
- dragHelper(column, 0, -100);
- expect(wrapper.vm.currentIndex).to.equal(2);
- });
-});
diff --git a/test/specs/popup.spec.js b/test/specs/popup.spec.js
deleted file mode 100644
index 1a9f2c522..000000000
--- a/test/specs/popup.spec.js
+++ /dev/null
@@ -1,182 +0,0 @@
-import Popup from 'packages/popup';
-import { mount } from 'avoriaz';
-import { triggerTouch } from '../utils';
-
-describe('Popup', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a popup', () => {
- wrapper = mount(Popup, {
- propsData: {
- position: 'bottom'
- }
- });
-
- expect(wrapper.hasClass('van-popup')).to.be.true;
- expect(wrapper.instance().currentTransition).to.equal('popup-slide-bottom');
- });
-
- it('create a show popup', (done) => {
- wrapper = mount(Popup, {
- propsData: {
- value: false,
- zIndex: 100,
- overlay: false,
- lockScroll: false
- }
- });
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- expect(wrapper.element.style.display).to.equal('none');
-
- wrapper.vm.value = true;
- wrapper.vm.$nextTick(() => {
- expect(wrapper.element.style.display).to.equal('');
- expect(eventStub.calledWith('input'));
- done();
- });
- });
-
- it('toggle popup show', () => {
- wrapper = mount(Popup, {
- propsData: {
- value: true
- }
- });
-
- expect(wrapper.element.style.display).to.equal('');
- });
-
- it('create a popup-fade transition popup', () => {
- wrapper = mount(Popup, {
- propsData: {
- transition: 'popup-fade'
- }
- });
-
- expect(wrapper.hasClass('van-popup')).to.be.true;
- expect(wrapper.instance().currentTransition).to.equal('popup-fade');
- });
-
- it('popup modal', (done) => {
- wrapper = mount(Popup, {
- propsData: {
- value: true
- }
- });
-
- wrapper.vm.$on('input', val => {
- wrapper.vm.value = val;
- });
-
- expect(wrapper.hasClass('van-popup')).to.be.true;
-
- setTimeout(() => {
- const modal = document.querySelector('.van-modal');
- triggerTouch(modal, 'touchstart', 0, 0);
- triggerTouch(modal, 'touchmove', 0, 10);
- triggerTouch(modal, 'touchmove', 0, 30);
- triggerTouch(modal, 'touchmove', 0, -30);
- expect(modal).to.exist;
-
- modal.click();
- setTimeout(() => {
- expect(wrapper.vm.value).to.be.false;
- done();
- }, 300);
- }, 300);
- });
-
- it('popup prevent scroll', (done) => {
- wrapper = mount(Popup, {
- propsData: {
- value: true
- }
- });
-
- expect(wrapper.hasClass('van-popup')).to.be.true;
-
- setTimeout(() => {
- expect(wrapper.element.style.display).to.equal('');
- wrapper.vm.value = false;
- triggerTouch(document, 'touchstart', 0, 0);
- triggerTouch(document, 'touchmove', 0, 10);
- triggerTouch(document, 'touchmove', 0, 30);
- triggerTouch(document, 'touchmove', 0, -30);
-
- setTimeout(() => {
- expect(wrapper.element.style.display).to.equal('none');
- done();
- }, 500);
- }, 300);
- });
-
- it('treat empty string as true for boolean props', () => {
- wrapper = mount(Popup, {
- propsData: {
- overlay: '',
- lockScroll: '',
- closeOnClickOverlay: ''
- }
- });
-
- expect(wrapper.vm.lockScroll).to.be.true;
- });
-
- it('get container prop', done => {
- const testNode = document.createElement('div');
- const testNode2 = document.createElement('div');
- document.body.appendChild(testNode);
- document.body.appendChild(testNode2);
-
- wrapper = mount(Popup, {
- propsData: {
- getContainer: () => testNode
- }
- });
-
- expect(wrapper.vm.$el.parentNode === testNode).to.be.true;
- wrapper.vm.getContainer = () => testNode2;
-
- setTimeout(() => {
- expect(wrapper.vm.$el.parentNode === testNode2).to.be.true;
- wrapper.vm.getContainer = null;
- done();
- }, 100);
- });
-
- it('watch overlay change', done => {
- const testNode = document.createElement('div');
- document.body.appendChild(testNode);
-
- wrapper = mount(Popup, {
- propsData: {
- overlay: false,
- getContainer: () => testNode
- }
- });
-
- expect(testNode.querySelectorAll('.van-modal').length).to.equal(0);
- wrapper.vm.overlay = true;
- setTimeout(() => {
- expect(testNode.querySelectorAll('.van-modal').length).to.equal(1);
- done();
- }, 100);
- });
-
- it('popup lock scroll', done => {
- wrapper = mount(Popup, {
- propsData: {
- value: true
- }
- });
-
- setTimeout(() => {
- expect(document.body.classList.contains('van-overflow-hidden')).to.be.true;
- done();
- }, 50);
- });
-});
diff --git a/test/specs/progress.spec.js b/test/specs/progress.spec.js
deleted file mode 100644
index d70226746..000000000
--- a/test/specs/progress.spec.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import Progress from 'packages/progress';
-import { mount } from 'avoriaz';
-
-describe('Progress', () => {
- let wrapper;
- let bar;
- let pivot;
- const initProgressBar = function(propsData) {
- wrapper = mount(Progress, {
- propsData: propsData
- });
- bar = wrapper.find('.van-progress__portion')[0];
- pivot = wrapper.find('.van-progress__pivot')[0];
- };
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create active 3% progress bar', () => {
- initProgressBar({ percentage: 3 });
-
- expect(wrapper.hasClass('van-progress')).to.be.true;
- expect(bar.is('span')).to.be.true;
- expect(bar.hasStyle('width', '3%'));
-
- expect(pivot.is('span')).to.be.true;
- expect(pivot.hasStyle('left', '0%'));
- expect(pivot.hasStyle('marginLeft', '0'));
- expect(pivot.text()).to.equal('3%');
- });
-
- it('create active 35% progress bar', () => {
- initProgressBar({ percentage: 35 });
-
- expect(wrapper.hasClass('van-progress')).to.be.true;
- expect(bar.is('span')).to.be.true;
- expect(bar.hasStyle('width', '35%'));
-
- expect(pivot.is('span')).to.be.true;
- expect(pivot.hasStyle('left', '35%'));
- expect(pivot.hasStyle('marginLeft', '-14px'));
- expect(pivot.text()).to.equal('35%');
- });
-
- it('create active 98% progress bar', () => {
- initProgressBar({ percentage: 98 });
-
- expect(wrapper.hasClass('van-progress')).to.be.true;
- expect(bar.is('span')).to.be.true;
- expect(bar.hasStyle('width', '98%'));
-
- expect(pivot.is('span')).to.be.true;
- expect(pivot.hasStyle('left', '100%'));
- expect(pivot.hasStyle('marginLeft', '-28px'));
- expect(pivot.text()).to.equal('98%');
- });
-
- it('create inactive 35% progress bar', () => {
- initProgressBar({ percentage: 35, inactive: true });
-
- expect(pivot.hasStyle('backgroundColor', '#cacaca'));
- });
-
- it('create progress bar with custom text', () => {
- initProgressBar({ percentage: 35, pivotText: 'pivotText' });
-
- expect(pivot.text()).to.equal('pivotText');
- });
-
- it('create progress bar with custom color', () => {
- initProgressBar({ percentage: 35, color: 'red' });
-
- expect(pivot.hasStyle('backgroundColor', 'red'));
- });
-
- it('create progress bar with text color', () => {
- initProgressBar({ percentage: 35, textColor: 'red' });
-
- expect(pivot.hasStyle('color', 'red'));
- });
-});
diff --git a/test/specs/pull-refresh.spec.js b/test/specs/pull-refresh.spec.js
deleted file mode 100644
index 5f528763b..000000000
--- a/test/specs/pull-refresh.spec.js
+++ /dev/null
@@ -1,139 +0,0 @@
-import PullRefresh from 'packages/pull-refresh';
-import { mount } from 'avoriaz';
-import { triggerTouch } from '../utils';
-
-describe('PullRefresh', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a PullRefresh', () => {
- wrapper = mount(PullRefresh, {
- propsData: {
- value: false
- }
- });
-
- expect(wrapper.hasClass('van-pull-refresh')).to.be.true;
- });
-
- it('change head content when pulling down', (done) => {
- wrapper = mount(PullRefresh, {
- propsData: {
- value: false
- }
- });
-
- const track = wrapper.find('.van-pull-refresh__track')[0];
- triggerTouch(track, 'touchstart', 0, 0);
- triggerTouch(track, 'touchmove', 0, 10);
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-pull-refresh__text')[0].text()).to.equal('下拉即可刷新...');
-
- triggerTouch(track, 'touchmove', 0, 30);
- triggerTouch(track, 'touchmove', 0, 60);
- triggerTouch(track, 'touchmove', 0, 100);
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-pull-refresh__text')[0].text()).to.equal('释放即可刷新...');
-
- triggerTouch(track, 'touchend', 0, 100);
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-pull-refresh__loading span')[1].text()).to.equal('加载中...');
- done();
- });
- });
- });
- });
-
- it('change loading status when pulling down', (done) => {
- wrapper = mount(PullRefresh, {
- propsData: {
- value: false
- }
- });
-
- const refreshSpy = sinon.spy();
- wrapper.vm.$on('refresh', refreshSpy);
-
- wrapper.vm.$on('input', value => {
- wrapper.vm.value = value;
-
- setTimeout(() => {
- wrapper.vm.value = false;
- expect(refreshSpy.calledOnce).to.be.true;
- setTimeout(() => {
- expect(wrapper.vm.status).to.equal('normal');
- done();
- }, 0);
- }, 30);
- });
-
- const track = wrapper.find('.van-pull-refresh__track')[0];
- triggerTouch(track, 'touchstart', 0, 0);
- triggerTouch(track, 'touchmove', 0, 100);
- triggerTouch(track, 'touchend', 0, 100);
-
- expect(wrapper.vm.value).to.be.true;
- expect(wrapper.vm.status).to.equal('loading');
-
- // ignore touch event when loading
- triggerTouch(track, 'touchstart', 0, 0);
- triggerTouch(track, 'touchmove', 0, 100);
- triggerTouch(track, 'touchend', 0, 100);
- });
-
- it('pull a short distance', () => {
- wrapper = mount(PullRefresh, {
- propsData: {
- value: false
- }
- });
-
- const track = wrapper.find('.van-pull-refresh__track')[0];
- triggerTouch(track, 'touchstart', 0, 0);
- triggerTouch(track, 'touchmove', 0, 10);
- triggerTouch(track, 'touchend', 0, 10);
-
- expect(wrapper.vm.value).to.be.false;
- expect(wrapper.vm.status).to.equal('normal');
- });
-
- it('not in page top', () => {
- wrapper = mount(PullRefresh, {
- propsData: {
- value: false
- }
- });
-
- window.scrollTop = 100;
-
- const track = wrapper.find('.van-pull-refresh__track')[0];
- // ignore touch event when not at page top
- triggerTouch(track, 'touchstart', 0, 0);
- triggerTouch(track, 'touchmove', 0, 100);
- triggerTouch(track, 'touchend', 0, 100);
- expect(wrapper.vm.ceiling).to.be.false;
-
- window.scrollTop = 0;
- triggerTouch(track, 'touchmove', 0, 100);
- expect(wrapper.vm.ceiling).to.be.true;
- });
-
- it('horizontal direction', () => {
- wrapper = mount(PullRefresh, {
- propsData: {
- value: false
- }
- });
-
- const track = wrapper.find('.van-pull-refresh__track')[0];
- triggerTouch(track, 'touchstart', 0, 0);
- triggerTouch(track, 'touchmove', 10, 0);
- triggerTouch(track, 'touchend', 10, 0);
- expect(wrapper.vm.direction).to.equal('horizontal');
- });
-});
diff --git a/test/specs/radio.spec.js b/test/specs/radio.spec.js
deleted file mode 100644
index 8319901cb..000000000
--- a/test/specs/radio.spec.js
+++ /dev/null
@@ -1,115 +0,0 @@
-import { mount } from 'avoriaz';
-import Radio from 'packages/radio';
-import RadioTestComponent from '../components/radio';
-
-describe('RadioGroup', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a radio-group', () => {
- wrapper = mount(RadioTestComponent);
-
- expect(wrapper.hasClass('van-radio-group')).to.be.true;
-
- expect(wrapper.vNode.child.value).to.equal('1');
- expect(wrapper.vNode.child.disabled).to.be.false;
- });
-
- it('emit a change event', (done) => {
- wrapper = mount(RadioTestComponent);
-
- expect(wrapper.vNode.child.value).to.equal('1');
- const eventStub = sinon.stub(wrapper.vNode.child, '$emit');
-
- wrapper.setData({
- 'radio': '2'
- });
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vNode.child.value).to.equal('2');
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('change'));
- done();
- });
- });
-
- it('click on unchecked radio', (done) => {
- wrapper = mount(RadioTestComponent);
-
- const eventStub = sinon.stub(wrapper.vNode.child, '$emit');
-
- const uncheckedRadioLabel = wrapper.find('.van-radio')[1].find('.van-radio__label')[0];
- uncheckedRadioLabel.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('input'));
- done();
- });
- });
-});
-
-describe('Radio', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a radio', () => {
- wrapper = mount(Radio, {
- propsData: {
- value: '1',
- name: '1',
- disabled: false
- }
- });
-
- expect(wrapper.hasClass('van-radio')).to.be.true;
- expect(wrapper.hasClass('van-radio--disabled')).to.be.false;
- expect(wrapper.instance().currentValue).to.equal('1');
- expect(wrapper.instance().isDisabled).to.be.false;
- });
-
- it('click on a radio', (done) => {
- wrapper = mount(Radio, {
- propsData: {
- value: '1',
- name: '1',
- disabled: false
- }
- });
-
- expect(wrapper.hasClass('van-radio')).to.be.true;
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- wrapper.trigger('click');
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('click'));
- done();
- });
- });
-
- it('click on a disabled radio', () => {
- wrapper = mount(Radio, {
- propsData: {
- value: '1',
- name: '2',
- disabled: true
- }
- });
-
- expect(wrapper.hasClass('van-radio')).to.be.true;
- expect(wrapper.hasClass('van-radio--disabled')).to.be.true;
- expect(wrapper.instance().currentValue).to.equal('1');
- expect(wrapper.instance().isDisabled).to.be.true;
-
- wrapper.trigger('click');
-
- expect(wrapper.instance().currentValue).to.equal('1');
- });
-});
diff --git a/test/specs/search.spec.js b/test/specs/search.spec.js
deleted file mode 100644
index c8df4075a..000000000
--- a/test/specs/search.spec.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import Search from 'packages/search';
-import { mount } from 'avoriaz';
-
-describe('Search', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a search', () => {
- wrapper = mount(Search);
-
- expect(wrapper.hasClass('van-search')).to.be.true;
- });
-
- it('create a search with searchText', (done) => {
- wrapper = mount(Search, {
- propsData: {
- value: 'search text'
- }
- });
-
- wrapper.vm.$nextTick(() => {
- const input = wrapper.find('input')[0];
- expect(input.element.value === 'search text').to.be.true;
- done();
- });
- });
-
- it('emit input event', () => {
- wrapper = mount(Search);
-
- const input = wrapper.find('input')[0];
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- input.trigger('input', { target: { value: 'search' }});
-
- expect(eventStub.calledOnce).to.be.true;
- expect(eventStub.calledWith('input')).to.be.true;
- });
-
- it('handle clean click and refocus', (done) => {
- wrapper = mount(Search);
-
- let value = 'test';
- wrapper.setProps({ value });
-
- const focusSpy = sinon.spy();
- wrapper.vm.$on('focus', focusSpy);
-
- const inputSpy = sinon.spy();
- wrapper.vm.$on('input', val => {
- value = val;
- inputSpy();
- });
-
- const input = wrapper.find('input')[0];
- input.trigger('focus');
-
- const cleanBtn = wrapper.find('.van-field__icon')[0];
- cleanBtn.trigger('touchstart');
-
- wrapper.vm.$nextTick(() => {
- expect(inputSpy.calledOnce).to.be.true;
- expect(value).to.equal('');
- done();
- });
- });
-
- it('handle cancel click', (done) => {
- wrapper = mount(Search);
-
- wrapper.setProps({ value: 'test', showAction: true });
- expect(wrapper.vm.value).to.be.equal('test');
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- const cancelBtn = wrapper.find('.van-search__cancel')[0];
- cancelBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledTwice).to.be.true;
- expect(eventStub.calledWith('input'));
- expect(eventStub.calledWith('change'));
- done();
- });
- });
-
- it('emit a search event', () => {
- wrapper = mount(Search);
-
- const searchSpy = sinon.spy();
- wrapper.vm.$on('search', searchSpy);
-
- const input = wrapper.find('input')[0];
- input.trigger('keypress.enter');
- expect(searchSpy.calledOnce).to.be.true;
-
- const keypressSpy = sinon.spy();
- wrapper.vm.$on('keypress', keypressSpy);
- input.trigger('keypress.a');
- expect(keypressSpy.calledOnce).to.be.true;
- });
-});
diff --git a/test/specs/sku.spec.js b/test/specs/sku.spec.js
deleted file mode 100644
index d8d171db5..000000000
--- a/test/specs/sku.spec.js
+++ /dev/null
@@ -1,402 +0,0 @@
-import Sku from 'packages/sku';
-import Uploader from 'packages/uploader';
-import Toast from 'packages/toast';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-import skuMockData from '../../docs/demos/mock/sku';
-
-const data = skuMockData['zh-CN'];
-const { skuHelper } = Sku;
-const goods = data.goods_info;
-const initialSku = {
- s1: '30349',
- s2: '1193'
-};
-const repeat = (str, count) => {
- let result = '';
- for (let i = 0; i < count; i++) {
- result += str;
- }
- return result;
-};
-
-const File = function() {
- this.name = 'test';
- this.size = 10000;
-};
-
-const mockFile = new File([], '/Users');
-
-describe('Sku', (done) => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('default', (done) => {
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- value: true,
- sku: data.sku,
- goodsId: data.goods_id,
- goods: goods,
- resetStepperOnHide: true,
- resetSelectedSkuOnHide: true
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-sku__goods-name': goods.title,
- '.van-sku__price-num': '1.00'
- },
- value: {
- '.van-stepper__input': '1'
- },
- src: {
- '.van-sku-header__img-wrap img': 'https://img.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'
- }
- });
-
- // 测试默认选中
- const selectedSku = skuHelper.getSelectedSkuValues(data.sku.tree, wrapper.vm.selectedSku);
- expect(selectedSku[0].id).to.equal('30349');
-
- // 测试sku图片
- const firstSku = wrapper.find('.van-sku-row__item')[0];
- firstSku.trigger('click');
- wrapper.vm.$nextTick(() => {
- DOMChecker(wrapper, {
- src: {
- '.van-sku-header__img-wrap img': 'https://img.yzcdn.cn/upload_files/2017/03/16/Fs_OMbSFPa183sBwvG_94llUYiLa.jpeg?imageView2/2/w/100/h/100/q/75/format/jpg'
- }
- });
-
- // 关闭sku弹层
- const closeCallback = sinon.spy();
- const closeIcon = wrapper.find('.van-sku__close-icon')[0];
- wrapper.vm.$on('sku-close', closeCallback);
- closeIcon.trigger('click');
- wrapper.vm.$nextTick(() => {
- expect(closeCallback.calledOnce).to.be.true;
- done();
- });
- });
- });
-
- it('should trigger an event or toast error when click buy and addCart', (done) => {
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- value: true,
- sku: data.sku,
- goodsId: data.goods_id,
- goods: goods
- }
- });
-
- const buyCallback = sinon.spy();
- const addCartCallback = sinon.spy();
- const buyBtn = wrapper.find('.van-button--bottom-action')[1];
- const addCartBtn = wrapper.find('.van-button--bottom-action')[0];
- wrapper.vm.$on('buy-clicked', buyCallback);
- wrapper.vm.$on('add-cart', addCartCallback);
-
- // 未选择完整规格时,弹出toast提示
- buyBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- const toastText = document.querySelector('.van-toast div');
- expect(toastText.textContent).to.equal('请选择完整的规格');
- expect(buyCallback.calledOnce).to.be.false;
-
- // 选择完整规格时,未填留言时,弹出toast提示。
- wrapper.find('.van-sku-row')[1].find('.van-sku-row__item')[0].trigger('click');
- buyBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- expect(toastText.textContent).to.equal('请填写留言1');
- expect(buyCallback.calledOnce).to.be.false;
-
- // 触发buy-clicked事件
- const requiredMessage = wrapper.find('.van-cell--required .van-field__control')[0];
- requiredMessage.element.value = 'test';
- requiredMessage.trigger('input');
- wrapper.vm.$nextTick(() => {
- buyBtn.trigger('click');
- addCartBtn.trigger('click');
- expect(buyCallback.calledOnce).to.be.true;
- expect(addCartCallback.calledOnce).to.be.true;
- done();
- });
- });
- });
- });
-
- it('should modify current num or toast error when change step value', (done) => {
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- value: true,
- sku: data.sku,
- goodsId: data.goods_id,
- goods: goods,
- quota: data.quota,
- quotaUsed: data.quota_used
- }
- });
-
- // 点击减号
- const minusBtn = wrapper.find('.van-stepper__minus')[0];
- minusBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- const toastText = document.querySelector('.van-toast div');
- expect(toastText.textContent).to.equal('至少选择一件');
-
- // 手动修改购买数量
- const stepperInput = wrapper.find('.van-stepper__input')[0];
- stepperInput.element.value = 20;
- stepperInput.trigger('input');
- wrapper.vm.$nextTick(() => {
- expect(+stepperInput.element.value).to.equal(data.quota - data.quota_used);
-
- // 达到购买上限时,点击加号
- const plusBtn = wrapper.find('.van-stepper__plus')[0];
- plusBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- expect(toastText.textContent).to.equal(`限购${data.quota}件`);
- done();
- });
- });
- });
- });
-
- it('should toast custom error when change step value', (done) => {
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- value: true,
- sku: data.sku,
- goodsId: data.goods_id,
- goods: goods,
- quota: data.quota,
- quotaUsed: data.quota_used,
- customStepperConfig: {
- quotaText: '单次限购100件',
- handleOverLimit: (data) => {
- const { action, limitType, quota } = data;
-
- if (action === 'minus') {
- Toast('至少选择一件商品');
- } else if (action === 'plus') {
- if (limitType === 0) {
- Toast(`限购${quota}件`);
- } else {
- Toast('库存不够了~~');
- }
- }
- }
- }
- }
- });
-
- // 点击减号
- const minusBtn = wrapper.find('.van-stepper__minus')[0];
- minusBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- const toastText = document.querySelector('.van-toast div');
- expect(toastText.textContent).to.equal('至少选择一件商品');
-
- // 手动修改购买数量
- const stepperInput = wrapper.find('.van-stepper__input')[0];
- stepperInput.element.value = 20;
- stepperInput.trigger('input');
- wrapper.vm.$nextTick(() => {
- expect(+stepperInput.element.value).to.equal(data.quota - data.quota_used);
-
- // 达到购买上限时,点击加号
- const plusBtn = wrapper.find('.van-stepper__plus')[0];
- plusBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- expect(toastText.textContent).to.equal(`限购${data.quota}件`);
- done();
- });
- });
- });
- });
-
- it('should not render sku group when none_sku is true', (done) => {
- const newSku = {
- ...data.sku,
- none_sku: true
- };
-
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- value: false,
- sku: newSku,
- goodsId: data.goods_id,
- goods: goods
- }
- });
-
- wrapper.vm.value = true;
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-sku-group-container').length).to.equal(0);
- done();
- });
- });
-
- it('should toast error when sku messages fail to pass validation', (done) => {
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- initialSku,
- value: true,
- sku: data.sku,
- goodsId: data.goods_id,
- goods: goods,
- messageConfig: {
- uploadImg: () => {
- return new Promise((resolve) => {
- setTimeout(() => resolve('https://img.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'), 1000);
- });
- },
- uploadMaxSize: 3
- }
- }
- });
-
- const buyBtn = wrapper.find('.van-button--bottom-action')[0];
- const skuMessages = wrapper.find('.van-sku-messages')[0];
- const inputs = skuMessages.find('input');
- const textarea = skuMessages.find('textarea')[0];
- const uploader = wrapper.find(Uploader)[0];
- // 修改留言内容
- inputs[0].element.value = 123;
- // 测试身份证号
- inputs[1].element.value = 234;
- inputs[0].trigger('input');
- inputs[1].trigger('input');
- // 测试图片
- uploader.vm.onChange({ target: { files: [mockFile] }});
-
- wrapper.vm.$nextTick(() => {
- // 点击购买
- buyBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- const toastText = document.querySelector('.van-toast div');
- expect(toastText.textContent).to.equal('请填写正确的身份证号码');
-
- inputs[1].element.value = 330101198801012211;
- // 测试textarea字数限制
- textarea.element.value = repeat('*', 201);
- inputs[1].trigger('input');
- textarea.trigger('input');
-
- wrapper.vm.$nextTick(() => {
- buyBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(toastText.textContent).to.equal('留言4 写的太多了,不要超过200字');
-
- textarea.element.value = '';
- // 测试数字留言
- inputs[3].element.value = 'abc';
- textarea.trigger('input');
- inputs[3].trigger('input');
-
- wrapper.vm.$nextTick(() => {
- buyBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(toastText.textContent).to.equal('请填写正确的数字格式留言');
-
- inputs[3].element.value = 0;
- inputs[4].element.value = 345;
- inputs[3].trigger('input');
- inputs[4].trigger('input');
-
- wrapper.vm.$nextTick(() => {
- buyBtn.trigger('click');
-
- wrapper.vm.$nextTick(() => {
- expect(toastText.textContent).to.equal('请填写正确的邮箱');
- done();
- });
- });
- });
- });
- });
- });
- });
- });
- });
-
- it('should toast error when there is no stock', (done) => {
- /* eslint-disable */
- const newData = Object.assign({}, data);
- newData.sku.stock_num = 0;
- newData.sku.messages = [];
- newData.sku.list.forEach((item) => {
- item.stock_num = 0;
- });
- /* eslint-enable */
-
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- initialSku,
- value: true,
- sku: newData.sku,
- goodsId: newData.goods_id,
- goods: goods
- }
- });
-
- const buyBtn = wrapper.find('.van-button--bottom-action')[0];
-
- wrapper.vm.$nextTick(() => {
- buyBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- const plusBtn = wrapper.find('.van-stepper__plus')[0];
- plusBtn.trigger('click');
- wrapper.vm.$nextTick(() => {
- done();
- });
- });
- });
- });
-
- it('should reset values when sku change', (done) => {
- wrapper = mount(Sku, {
- attachToDocument: true,
- propsData: {
- value: true,
- sku: data.sku,
- goodsId: data.goods_id,
- goods: goods,
- resetStepperOnHide: true,
- resetSelectedSkuOnHide: true
- }
- });
-
- const newSku = {
- ...data.sku,
- tree: [],
- list: [],
- messages: [],
- none_sku: true
- };
-
- wrapper.vm.sku = newSku;
- const skuMessages = wrapper.find(Sku.SkuMessages)[0];
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.selectedSku).to.be.empty;
- expect(skuMessages.vm.messageValues).to.be.empty;
- done();
- });
- });
-});
diff --git a/test/specs/slider.spec.js b/test/specs/slider.spec.js
deleted file mode 100644
index 62e3fe0fb..000000000
--- a/test/specs/slider.spec.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import Slider from 'packages/slider';
-import { mount } from 'avoriaz';
-import { triggerTouch } from '../utils';
-
-describe('Slider', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a simple slider', () => {
- wrapper = mount(Slider, {
- propsData: {
- value: 50,
- disabled: true
- }
- });
-
- expect(wrapper.hasClass('van-slider')).to.be.true;
- expect(wrapper.find('.van-slider__bar').length).to.equal(1);
- expect(wrapper.vm.value).to.equal(50);
- expect(wrapper.hasClass('van-slider--disabled')).to.equal(true);
-
- wrapper.setProps({
- value: 100
- });
- wrapper.update();
-
- expect(wrapper.vm.value).to.equal(100);
- });
-
- it('test click bar', () => {
- wrapper = mount(Slider, {
- propsData: {
- disabled: true,
- value: 50
- }
- });
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- const $bar = wrapper.find('.van-slider')[0];
- $bar.trigger('click');
- const button = wrapper.find('.van-slider__button')[0];
- triggerTouch(button, 'touchstart', 0, 0);
- expect(wrapper.vm.startX).to.equal(undefined);
-
- triggerTouch(button, 'touchmove', 50, 0);
- expect(wrapper.vm.offsetX).to.equal(undefined);
-
- triggerTouch(button, 'touchend', 50, 0);
- expect(wrapper.vm.offsetX).to.equal(undefined);
-
- expect(eventStub.called).to.equal(false);
-
- wrapper.setData({
- disabled: false
- });
- wrapper.update();
- $bar.trigger('click');
-
- expect(wrapper.vm.disabled).to.equal(false);
- expect(eventStub.called).to.equal(true);
- });
-
- it('drag button', () => {
- wrapper = mount(Slider, {
- propsData: {
- value: 50
- }
- });
-
- const button = wrapper.find('.van-slider__button')[0];
- triggerTouch(button, 'touchstart', 0, 0);
- expect(wrapper.vm.startX).to.equal(0);
-
- triggerTouch(button, 'touchmove', 50, 0);
- expect(wrapper.vm.offsetX).to.equal(50);
-
- triggerTouch(button, 'touchend', 50, 0);
- expect(wrapper.vm.offsetX).to.equal(50);
-
- wrapper.setData({
- disabled: true
- });
-
- triggerTouch(button, 'touchstart', 0, 0);
- expect(wrapper.vm.startX).to.equal(0);
- });
-});
diff --git a/test/specs/stepper.spec.js b/test/specs/stepper.spec.js
deleted file mode 100644
index 2c67b50f8..000000000
--- a/test/specs/stepper.spec.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import Stepper from 'packages/stepper';
-import { mount } from 'avoriaz';
-
-describe('Stepper', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a stepper', () => {
- wrapper = mount(Stepper, {
- propsData: {
- defaultValue: 1
- }
- });
-
- expect(wrapper.hasClass('van-stepper')).to.be.true;
- expect(wrapper.data().currentValue).to.equal(1);
-
- const plusButton = wrapper.find('.van-stepper__plus')[0];
- plusButton.trigger('click');
-
- expect(wrapper.data().currentValue).to.equal(2);
-
- const minusButton = wrapper.find('.van-stepper__minus')[0];
- minusButton.trigger('click');
- expect(wrapper.data().currentValue).to.equal(1);
- });
-
- it('create a disabled stepper', (done) => {
- wrapper = mount(Stepper, {
- propsData: {
- disabled: true
- }
- });
-
- expect(wrapper.hasClass('van-stepper')).to.be.true;
- const minusButton = wrapper.find('.van-stepper__minus')[0];
- expect(minusButton.hasClass('van-stepper__minus--disabled')).to.be.true;
-
- const eventStub = sinon.stub(wrapper.vm, '$emit');
- minusButton.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledWith('overlimit'));
- done();
- });
-
- const plusButton = wrapper.find('.van-stepper__plus')[0];
- expect(plusButton.hasClass('van-stepper__plus--disabled')).to.be.true;
-
- plusButton.trigger('click');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.calledWith('overlimit'));
- done();
- });
- });
-
- it('only disable stepper input', () => {
- wrapper = mount(Stepper, {
- propsData: {
- disableInput: true
- }
- });
-
- const input = wrapper.find('.van-stepper__input')[0];
- expect(input.hasAttribute('disabled', 'disabled')).to.be.true;
- });
-
- it('update stepper value use v-model', (done) => {
- wrapper = mount(Stepper, {
- propsData: {
- value: 1
- }
- });
-
- expect(wrapper.hasClass('van-stepper')).to.be.true;
-
- wrapper.vm.value = 2;
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.currentValue).to.equal(2);
- done();
- });
- });
-
- it('correct value when value is not correct', (done) => {
- wrapper = mount(Stepper, {
- propsData: {
- value: 50,
- max: 30
- }
- });
-
- expect(wrapper.hasClass('van-stepper')).to.be.true;
- expect(wrapper.vm.currentValue).to.equal(30);
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- wrapper.vm.value = 30;
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.currentValue).to.equal(30);
- expect(eventStub.calledWith('input'));
-
- // value设置非数字时,则使用设置的最小值(默认1)
- wrapper.vm.value = 'abc';
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.vm.currentValue).to.equal(1);
- done();
- });
- });
- });
-
- it('handle when input change', (done) => {
- wrapper = mount(Stepper, {
- propsData: {
- value: 1
- }
- });
-
- const input = wrapper.find('.van-stepper__input')[0];
- input.element.value = 2;
- input.trigger('input');
-
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(wrapper.data().currentValue).to.equal(2);
- done();
- });
- });
-
- it('should not fire any event on props changed', (done) => {
- wrapper = mount(Stepper, {
- propsData: {
- value: 1
- }
- });
- const eventStub = sinon.stub(wrapper.vm, '$emit');
-
- wrapper.vm.value = 2;
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(eventStub.called).to.be.false;
- done();
- });
- });
-});
diff --git a/test/specs/steps.spec.js b/test/specs/steps.spec.js
deleted file mode 100644
index 9416e8a21..000000000
--- a/test/specs/steps.spec.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import Steps from 'packages/steps';
-import { mount } from 'avoriaz';
-import StepsTestComponent from '../components/steps';
-
-describe('Steps', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a steps', () => {
- wrapper = mount(Steps);
-
- expect(wrapper.hasClass('van-steps')).to.be.true;
- expect(wrapper.data().steps.length).to.equal(0);
- });
-
- it('create a steps with step', () => {
- wrapper = mount(StepsTestComponent);
-
- const finishStep = wrapper.find('.van-step')[0];
- expect(finishStep.hasClass('van-step--finish')).to.be.true;
- expect(finishStep.hasClass('van-step--horizontal')).to.be.true;
-
- const proccessStep = wrapper.find('.van-step')[1];
- expect(proccessStep.hasClass('van-step--process')).to.be.true;
- });
-
- it('create a vertical step', () => {
- wrapper = mount(Steps, {
- propsData: {
- direction: 'vertical'
- }
- });
-
- expect(wrapper.hasClass('van-steps')).to.be.true;
- expect(wrapper.hasClass('van-steps--vertical')).to.be.true;
- expect(wrapper.data().steps.length).to.equal(0);
- });
-});
diff --git a/test/specs/submit-bar.spec.js b/test/specs/submit-bar.spec.js
deleted file mode 100644
index 15c514992..000000000
--- a/test/specs/submit-bar.spec.js
+++ /dev/null
@@ -1,100 +0,0 @@
-import SubmitBar from 'packages/submit-bar';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-
-describe('SubmitBar', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('default', () => {
- const props = {
- price: 3050,
- buttonText: '提交订单',
- tip: '您的收货地址不支持同城送, 我们已为您推荐快递'
- };
-
- wrapper = mount(SubmitBar, {
- propsData: props
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-button__text': props.buttonText,
- '.van-submit-bar__price-integer': '¥30.',
- '.van-submit-bar__price-decimal': '50',
- '.van-submit-bar__tip': props.tip
- }
- });
- });
-
- it('no tip', () => {
- wrapper = mount(SubmitBar, {
- propsData: {
- price: 3005,
- buttonText: '提交订单',
- buttonType: 'default'
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-button__text': '提交订单',
- '.van-submit-bar__price-integer': '¥30.',
- '.van-submit-bar__price-decimal': '05',
- '.van-submit-bar__tip': ''
- }
- });
- });
-
- it('handle submit', () => {
- wrapper = mount(SubmitBar, {
- propsData: {
- price: 3005,
- buttonText: '提交订单'
- }
- });
-
- const submitSpyFunc = sinon.spy();
- wrapper.vm.$on('submit', submitSpyFunc);
- wrapper.find('.van-button')[0].trigger('click');
- setTimeout(() => {
- expect(submitSpyFunc.calledOnce).to.be.true;
- }, 300);
- });
-
- it('can not submit when disabled', (done) => {
- wrapper = mount(SubmitBar, {
- propsData: {
- disabled: true,
- buttonText: '提交订单'
- }
- });
-
- const submitSpyFunc = sinon.spy();
- wrapper.vm.$on('submit', submitSpyFunc);
- wrapper.find('.van-button')[0].trigger('click');
- setTimeout(() => {
- expect(submitSpyFunc.calledOnce).to.be.false;
- done();
- }, 300);
- });
-
- it('can not submit when loading', (done) => {
- wrapper = mount(SubmitBar, {
- propsData: {
- loading: true,
- buttonText: '提交订单'
- }
- });
-
- const submitSpyFunc = sinon.spy();
- wrapper.vm.$on('submit', submitSpyFunc);
- wrapper.find('.van-button')[0].trigger('click');
- setTimeout(() => {
- expect(submitSpyFunc.calledOnce).to.be.false;
- done();
- }, 300);
- });
-});
diff --git a/test/specs/switch-cell.spec.js b/test/specs/switch-cell.spec.js
deleted file mode 100644
index ba7426272..000000000
--- a/test/specs/switch-cell.spec.js
+++ /dev/null
@@ -1,95 +0,0 @@
-import SwitchCell from 'packages/switch-cell';
-import { mount } from 'avoriaz';
-import { DOMChecker } from '../utils';
-
-describe('SwitchCell', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('default', () => {
- wrapper = mount(SwitchCell, {
- attachToDocument: true
- });
-
- DOMChecker(wrapper, {
- count: {
- '.van-switch--on': 0,
- '.van-switch--disabled': 0
- }
- });
- });
-
- it('set title', () => {
- wrapper = mount(SwitchCell, {
- attachToDocument: true,
- propsData: {
- title: '测试标题'
- }
- });
-
- DOMChecker(wrapper, {
- text: {
- '.van-cell__title span': '测试标题'
- },
- count: {
- '.van-switch--on': 0,
- '.van-switch--disabled': 0
- }
- });
- });
-
- it('checked', () => {
- wrapper = mount(SwitchCell, {
- attachToDocument: true,
- propsData: {
- value: true
- }
- });
-
- DOMChecker(wrapper, {
- count: {
- '.van-switch--on': 1,
- '.van-switch--disabled': 0
- }
- });
- });
-
- it('disabled', () => {
- wrapper = mount(SwitchCell, {
- attachToDocument: true,
- propsData: {
- disabled: true
- }
- });
-
- DOMChecker(wrapper, {
- count: {
- '.van-switch--on': 0,
- '.van-switch--disabled': 1
- }
- });
- });
-
- it('listen to change event', (done) => {
- wrapper = mount(SwitchCell, {
- attachToDocument: true,
- propsData: {
- value: false
- }
- });
-
- wrapper.vm.$on('input', (value) => {
- wrapper.vm.value = value;
- });
-
- wrapper.vm.$on('change', (value) => {
- expect(value).to.be.true;
- done();
- });
-
- const switchEl = wrapper.find('.van-switch')[0];
- switchEl.trigger('click');
- });
-});
diff --git a/test/specs/switch.spec.js b/test/specs/switch.spec.js
deleted file mode 100644
index e8bf85af4..000000000
--- a/test/specs/switch.spec.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import Switch from 'packages/switch';
-import VanLoading from 'packages/loading';
-import { mount } from 'avoriaz';
-
-describe('Switch', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create on switch', () => {
- wrapper = mount(Switch, {
- propsData: {
- value: true
- }
- });
-
- expect(wrapper.hasClass('van-switch')).to.be.true;
- expect(wrapper.hasClass('van-switch--on')).to.be.true;
- });
-
- it('create loading switch', () => {
- wrapper = mount(Switch, {
- propsData: {
- loading: true
- }
- });
- const loading = wrapper.find(VanLoading)[0];
-
- expect(wrapper.hasClass('van-switch')).to.be.true;
- expect(loading.isVueComponent).to.be.true;
- });
-
- it('loading switch should be unclickable', () => {
- wrapper = mount(Switch, {
- propsData: {
- loading: true,
- value: true
- }
- });
-
- expect(wrapper.hasClass('van-switch--on')).to.be.true;
- wrapper.trigger('click');
- expect(wrapper.hasClass('van-switch--on')).to.be.true;
- });
-
- it('create disabled switch', () => {
- wrapper = mount(Switch, {
- propsData: {
- disabled: true
- }
- });
-
- expect(wrapper.hasClass('van-switch')).to.be.true;
- expect(wrapper.hasClass('van-switch--disabled')).to.be.true;
- });
-
- it('disabled switch should be unclickable', () => {
- wrapper = mount(Switch, {
- propsData: {
- disabled: true,
- value: false
- }
- });
-
- expect(wrapper.hasClass('van-switch--on')).to.be.false;
- wrapper.trigger('click');
- expect(wrapper.hasClass('van-switch--on')).to.be.false;
- });
-
- it('click should toggle the switch', () => {
- wrapper = mount(Switch, {
- propsData: {
- value: false
- }
- });
-
- wrapper.vm.$on('input', val => {
- wrapper.vm.value = val;
- });
-
- expect(wrapper.hasClass('van-switch--on')).to.be.false;
- wrapper.trigger('click');
- expect(wrapper.hasClass('van-switch--on')).to.be.true;
- });
-});
diff --git a/test/specs/tabbar.spec.js b/test/specs/tabbar.spec.js
deleted file mode 100644
index 86add5d3f..000000000
--- a/test/specs/tabbar.spec.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import TabbarExample from '../components/tabbar';
-import { mount } from 'avoriaz';
-
-describe('Progress', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('Tabbar with four items', (done) => {
- wrapper = mount(TabbarExample);
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-tabbar-item').length).to.equal(4);
-
- wrapper.find('.van-tabbar-item')[3].element.click();
- expect(wrapper.vm.active).to.equal(3);
- expect(wrapper.vm.changeRecord).to.equal(3);
- done();
- });
- });
-});
diff --git a/test/specs/tabs.spec.js b/test/specs/tabs.spec.js
deleted file mode 100644
index 98c320e21..000000000
--- a/test/specs/tabs.spec.js
+++ /dev/null
@@ -1,166 +0,0 @@
-import Tabs from 'packages/tabs';
-import { mount } from 'avoriaz';
-import TabsTestComponent from '../components/tabs';
-import MoreTabsTestComponent from '../components/more-tabs';
-import { triggerTouch } from '../utils';
-
-describe('Tabs', () => {
- let wrapper;
-
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create a empty card tabs', () => {
- wrapper = mount(Tabs, {
- propsData: {
- type: 'card'
- }
- });
-
- expect(wrapper.hasClass('van-tabs')).to.be.true;
- expect(wrapper.hasClass('van-tabs--card')).to.be.true;
- });
-
- it('create a tabs with four tab', (done) => {
- wrapper = mount(TabsTestComponent);
-
- expect(wrapper.hasClass('van-tabs')).to.be.true;
- expect(wrapper.hasClass('van-tabs--line')).to.be.true;
-
- const tabsContainer = wrapper.find('.van-tabs')[0];
- expect(tabsContainer.vNode.child.curActive).to.equal(0);
-
- wrapper.vm.active = 1;
- wrapper.update();
- wrapper.vm.$nextTick(() => {
- expect(tabsContainer.vNode.child.curActive).to.equal(1);
- done();
- });
- });
-
- it('listen click event', (done) => {
- wrapper = mount(TabsTestComponent, {
- attachToDocument: true
- });
-
- const clickSpy = sinon.spy();
- wrapper.vm.$on('click', clickSpy);
-
- wrapper.vm.$nextTick(() => {
- const nTab = wrapper.find('.van-tab')[0];
- nTab.trigger('click');
- expect(clickSpy.calledOnce).to.be.true;
- done();
- });
- });
-
- it('listen click disable event', (done) => {
- wrapper = mount(TabsTestComponent, {
- attachToDocument: true
- });
-
- const clickDisabledSpy = sinon.spy();
- wrapper.vm.$on('disabled', clickDisabledSpy);
-
- wrapper.vm.$nextTick(() => {
- const nTab = wrapper.find('.van-tab')[2];
- nTab.trigger('click');
- expect(clickDisabledSpy.calledOnce).to.be.true;
- done();
- });
- });
-
- it('check animation duration', () => {
- wrapper = mount(TabsTestComponent);
-
- expect(wrapper.style.transitionDuration != '').to.be.true;
- });
-
- it('create a tabs greater then 4', (done) => {
- wrapper = mount(MoreTabsTestComponent, {
- attachToDocument: true
- });
-
- wrapper.vm.$nextTick(() => {
- const nTab = wrapper.find('.van-tab')[4];
- nTab.trigger('click');
- done();
- });
- });
-
- it('create a tabs greater then 4 then click last tab', (done) => {
- wrapper = mount(MoreTabsTestComponent, {
- attachToDocument: true,
- propsData: {
- active: 7
- }
- });
-
- wrapper.vm.$nextTick(() => {
- const nTab = wrapper.find('.van-tab')[6];
- nTab.trigger('click');
- done();
- });
- });
-
- it('watch tab props changes', (done) => {
- wrapper = mount(TabsTestComponent);
- wrapper.vm.firstTabTitle = '测试标题';
- wrapper.vm.firstTabDisabled = true;
-
- wrapper.vm.$nextTick(() => {
- expect(wrapper.find('.van-tab')[0].text().replace(/\n|\s/g, '')).to.equal('测试标题');
- done();
- });
- });
-
- it('create a sticky tabs', (done) => {
- wrapper = mount(TabsTestComponent, {
- attachToDocument: true,
- propsData: {
- sticky: true
- }
- });
-
- wrapper.vm.sticky = false;
-
- setTimeout(() => {
- expect(wrapper.vm.$children[0].position).to.equal('content-top');
- done();
- }, 30);
- });
-
- it('create a swipeable tabs', (done) => {
- wrapper = mount(TabsTestComponent, {
- attachToDocument: true,
- propsData: {
- swipeable: true
- }
- });
-
- const tabsContainer = wrapper.find('.van-tabs')[0];
- const tabContent = wrapper.find('.van-tabs__content')[0];
-
- expect(tabsContainer.vNode.child.curActive).to.equal(0);
-
- wrapper.vm.$nextTick(() => {
- triggerTouch(tabContent, 'touchstart', 0, 0);
- triggerTouch(tabContent, 'touchmove', -100, 0);
- triggerTouch(tabContent, 'touchend', 0, 0);
-
- setTimeout(() => {
- expect(tabsContainer.vNode.child.curActive).to.equal(1);
-
- triggerTouch(tabContent, 'touchstart', 0, 0);
- triggerTouch(tabContent, 'touchmove', 100, 0);
- triggerTouch(tabContent, 'touchend', 0, 0);
-
- setTimeout(() => {
- expect(tabsContainer.vNode.child.curActive).to.equal(0);
- done();
- }, 500);
- }, 500);
- })
- });
-});
diff --git a/test/specs/tag.spec.js b/test/specs/tag.spec.js
deleted file mode 100644
index 8dc6ca4e0..000000000
--- a/test/specs/tag.spec.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import Tag from 'packages/tag';
-import { mount } from 'avoriaz';
-
-describe('Tag', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create without typeProps', () => {
- wrapper = mount(Tag);
- });
-
- it('create with right typeProps', () => {
- wrapper = mount(Tag, {
- propsData: {
- type: 'primary'
- }
- });
- });
-});
diff --git a/test/specs/toast.spec.js b/test/specs/toast.spec.js
deleted file mode 100644
index d03b5ba38..000000000
--- a/test/specs/toast.spec.js
+++ /dev/null
@@ -1,141 +0,0 @@
-import Vue from 'vue';
-import Toast from 'packages/toast';
-
-describe('Toast', () => {
- afterEach(() => {
- Toast.clear(true);
- });
-
- it('create a empty toast', () => {
- Toast();
- expect(document.querySelector('.van-toast')).to.exist;
- });
-
- it('create a toast', () => {
- const toast = Toast('toast');
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.message).to.equal('toast');
- expect(toast.type).to.equal('text');
- expect(toast.displayStyle).to.equal('text');
- expect(typeof toast.timer).to.equal('number');
- });
-
- it('create a loading toast', () => {
- const toast = Toast.loading();
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.type).to.equal('loading');
- });
-
- it('create a options loading toast', () => {
- const toast = Toast.loading({
- message: 'toast'
- });
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.message).to.equal('toast');
- expect(toast.type).to.equal('loading');
- });
-
- it('create a success toast', () => {
- const toast = Toast.success('success');
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.displayStyle).to.equal('default');
- expect(toast.type).to.equal('success');
- });
-
- it('create a options success toast', () => {
- const toast = Toast.success({
- message: 'toast'
- });
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.message).to.equal('toast');
- expect(toast.type).to.equal('success');
- });
-
- it('create a fail toast', () => {
- const toast = Toast.fail('fail');
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.displayStyle).to.equal('default');
- expect(toast.type).to.equal('fail');
- });
-
- it('create a options fail toast', () => {
- const toast = Toast.fail({
- message: 'toast'
- });
-
- expect(document.querySelector('.van-toast')).to.exist;
- expect(toast.message).to.equal('toast');
- expect(toast.type).to.equal('fail');
- });
-
- it('create a forbidClick toast', (done) => {
- Toast({
- message: 'test',
- forbidClick: true
- });
-
- expect(document.querySelector('.van-toast')).to.exist;
- setTimeout(() => {
- expect(document.querySelector('.van-modal')).to.exist;
- done();
- }, 50);
- });
-
- it('toast disappeared after duration', (done) => {
- const toast = Toast({
- message: 'toast',
- duration: 10
- });
-
- setTimeout(() => {
- expect(toast.$el.style.display === 'none').to.be.true;
- Toast.clear();
- done();
- }, 500);
- });
-
- it('toast duration 0', () => {
- Toast.allowMultiple();
- const toast = Toast({
- message: 'toast',
- duration: 0
- });
- expect(toast.timer).to.equal(undefined);
- Toast.allowMultiple(false);
- });
-
- it('multiple toast', () => {
- Toast.allowMultiple();
- Toast.clear(true);
- const toast1 = Toast.success('1');
- const toast2 = Toast.success('2');
- Toast.clear();
- expect(toast1.value).to.be.false;
- expect(toast2.value).to.be.true;
- Toast.clear();
- Toast.clear();
- expect(toast2.value).to.be.false;
- Toast.allowMultiple(false);
- });
-
- it('set default options', () => {
- Toast.setDefaultOptions({ duration: 1000 });
- const toast1 = Toast(1);
- expect(toast1.duration).to.equal(1000);
-
- Toast.resetDefaultOptions();
- const toast2 = Toast(1);
- expect(toast2.duration).to.equal(3000);
- });
-
- it('register component', () => {
- Vue.use(Toast);
- expect(!!Vue.component('van-toast')).to.be.true;
- });
-});
diff --git a/test/specs/tree-select.spec.js b/test/specs/tree-select.spec.js
deleted file mode 100644
index 8ee3bebf6..000000000
--- a/test/specs/tree-select.spec.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import TreeSelect from 'packages/tree-select';
-import { mount } from 'avoriaz';
-
-describe('TreeSelect', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create an empty tree-select', () => {
- wrapper = mount(TreeSelect);
- expect(wrapper.hasStyle('height', '0px')).to.be.true;
- });
-
- it('create a tree-select correctly', () => {
- wrapper = mount(TreeSelect, {
- propsData: {
- items: [{
- text: 'A',
- children: [{
- text: 'Cc',
- id: 123
- }]
- }],
- maxHeight: 200
- }
- });
- expect(wrapper.hasClass('van-tree-select')).to.be.true;
- expect(wrapper.hasStyle('height', '44px')).to.be.true;
- expect(wrapper.vm.maxHeight).to.equal(200);
- });
-
- it('interact with this component', () => {
- wrapper = mount(TreeSelect, {
- propsData: {
- items: [{
- text: 'A',
- children: [{
- text: 'Cc',
- id: 123
- }, {
- text: 'Bb',
- id: 234
- }]
- }, {
- text: 'B',
- children: [{
- text: 'Nmi',
- id: 345
- }]
- }],
- maxHeight: 220
- }
- });
- wrapper.vm.$on('navclick', index => {
- wrapper.vm.mainActiveIndex = index;
- });
- wrapper.vm.$on('itemclick', item => {
- wrapper.vm.activeId = item.id;
- });
- const secondNav = wrapper.find('.van-tree-select__nitem')[1];
- secondNav.trigger('click');
- expect(wrapper.vm.mainActiveIndex).to.equal(1);
- const target = wrapper.find('.van-tree-select__item')[0];
- target.trigger('click');
- expect(wrapper.vm.activeId).to.equal(345);
- });
-});
diff --git a/test/specs/uploader.spec.js b/test/specs/uploader.spec.js
deleted file mode 100644
index 6d3648a49..000000000
--- a/test/specs/uploader.spec.js
+++ /dev/null
@@ -1,137 +0,0 @@
-import Uploader from 'packages/uploader';
-import { mount } from 'avoriaz';
-
-window.File = function() {
- this.name = 'test';
- this.size = 10000;
-};
-
-window.FileReader = function() {
- this.readAsDataURL = this.readAsText = function() {
- this.onload && this.onload({
- target: {
- result: 'test'
- }
- });
- };
-};
-
-const mockFile = new File([], '/Users');
-
-describe('Uploader', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('disabled', () => {
- const afterRead = sinon.spy();
- wrapper = mount(Uploader, {
- propsData: {
- disabled: true,
- afterRead
- }
- });
-
- expect(wrapper.contains('input')).to.equal(true);
- wrapper.vm.onChange({ target: { files: [] }});
- expect(afterRead.calledOnce).to.be.false;
- });
-
- it('before read', () => {
- const afterRead = sinon.spy();
- wrapper = mount(Uploader, {
- propsData: {
- beforeRead: () => false,
- afterRead
- }
- });
-
- wrapper.vm.onChange({ target: { files: [mockFile] }});
- expect(afterRead.calledOnce).to.be.false;
- });
-
- it('read text', done => {
- wrapper = mount(Uploader, {
- propsData: {
- resultType: 'text',
- afterRead: (file) => {
- expect(file.content).to.equal('test');
- done();
- }
- }
- });
-
- wrapper.vm.onChange({ target: { files: [mockFile] }});
- });
-
- it('read dataUrl', done => {
- wrapper = mount(Uploader, {
- propsData: {
- afterRead: (file) => {
- expect(file.content).to.equal('test');
- done();
- }
- }
- });
-
- wrapper.vm.onChange({ target: { files: [mockFile] }});
- });
-
- it('unknown resultType', () => {
- const afterRead = sinon.spy();
- wrapper = mount(Uploader, {
- propsData: {
- resultType: 'xxxx',
- afterRead
- }
- });
- wrapper.vm.onChange({ target: { files: [mockFile] }});
- expect(afterRead.calledOnce).to.be.false;
- });
-
- it('read multiple files', done => {
- wrapper = mount(Uploader, {
- propsData: {
- afterRead: (file) => {
- expect(file.length).to.equal(2);
- done();
- }
- }
- });
-
- wrapper.vm.onChange({ target: { files: [mockFile, mockFile] }});
- });
-
- it('size overlimit', done => {
- const spy = sinon.spy();
- wrapper = mount(Uploader, {
- propsData: {
- maxSize: 1
- }
- });
- wrapper.vm.$on('oversize', spy);
- wrapper.vm.onChange({ target: { files: [mockFile] }});
-
- setTimeout(() => {
- expect(spy.calledOnce).to.be.true;
- done();
- }, 50);
- });
-
- it('multi file size overlimit', done => {
- const spy = sinon.spy();
- wrapper = mount(Uploader, {
- propsData: {
- maxSize: 1
- }
- });
- wrapper.vm.$on('oversize', spy);
- wrapper.vm.onChange({ target: { files: [mockFile, mockFile] }});
-
- setTimeout(() => {
- expect(spy.calledOnce).to.be.true;
- done();
- }, 50);
- });
-});
diff --git a/test/specs/utils.spec.js b/test/specs/utils.spec.js
deleted file mode 100644
index a029e2fa0..000000000
--- a/test/specs/utils.spec.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import deepClone from 'packages/utils/deep-clone';
-import { isAndroid, isDef, camelize, get } from 'packages/utils';
-import { raf, cancel } from 'packages/utils/raf';
-
-describe('Utils', () => {
- it('deepClone', () => {
- const a = { foo: 0 };
- const b = { foo: 0, bar: 1 };
- const fn = () => {};
- const arr = [a, b];
- expect(deepClone(a)).to.eql(a);
- expect(deepClone(b)).to.eql(b);
- expect(deepClone(fn)).to.eql(fn);
- expect(deepClone(arr)).to.eql(arr);
- expect(deepClone(undefined)).to.eql(undefined);
- expect(deepClone(1)).to.eql(1);
- });
-
- it('isDef', () => {
- expect(isDef(null)).to.be.false;
- expect(isDef(undefined)).to.be.false;
- expect(isDef(1)).to.be.true;
- expect(isDef('1')).to.be.true;
- expect(isDef({})).to.be.true;
- expect(isDef(() => {})).to.be.true;
- });
-
- it('camelize', () => {
- expect(camelize('ab')).to.equal('ab');
- expect(camelize('a-b')).to.equal('aB');
- expect(camelize('a-b-c-d')).to.equal('aBCD');
- expect(camelize('a-b-')).to.equal('aB-');
- expect(camelize('-a-b')).to.equal('AB');
- expect(camelize('-')).to.equal('-');
- });
-
- it('get', () => {
- expect(get({ a: 1 }, 'a')).to.equal(1);
- expect(get({ a: { b: 2 }}, 'a.b')).to.equal(2);
- expect(get({ a: { b: 2 }}, 'a.b.c')).to.equal('');
- });
-
- it('isAndroid', () => {
- expect(isAndroid()).to.be.false;
- });
-
- it('raf', (done) => {
- const spy = sinon.spy();
- raf(spy);
-
- setTimeout(() => {
- expect(spy.called).to.be.true;
- cancel(1);
- done();
- }, 50);
- });
-});
diff --git a/test/specs/waterfall.spec.js b/test/specs/waterfall.spec.js
deleted file mode 100644
index 5c0295936..000000000
--- a/test/specs/waterfall.spec.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import Waterfall from '../components/waterfall/waterfall';
-import HiddenWaterfall from '../components/waterfall/waterfall-hide';
-import { mount } from 'avoriaz';
-
-describe('Waterfall', () => {
- let wrapper;
- afterEach(() => {
- wrapper && wrapper.destroy();
- });
-
- it('create', (done) => {
- const waterfallLowerSpy = sinon.spy();
- wrapper = mount(Waterfall, {
- attachToDocument: true,
- propsData: {
- disabled: false,
- list: [],
- onWaterfallLower: waterfallLowerSpy
- }
- });
-
- setTimeout(() => {
- expect(waterfallLowerSpy.called).to.be.true;
- done();
- }, 500);
- });
-
- it('test waterfall lower function', (done) => {
- const waterfallLowerSpy = sinon.spy(function() {
- wrapper.vm.list = wrapper.vm.list.concat([{ id: 1 }, { id: 2 }, { id: 3 }]);
- wrapper.vm.disabled = true;
- });
- wrapper = mount(Waterfall, {
- attachToDocument: true,
- propsData: {
- disabled: false,
- list: [{ id: 10 }],
- onWaterfallLower: waterfallLowerSpy
- }
- });
-
- setTimeout(() => {
- const item = wrapper.find('.waterfall-item');
- expect(waterfallLowerSpy.calledOnce).to.be.true;
- expect(item.length).to.equal(4);
- expect(item[item.length - 1].text()).to.equal('3');
- done();
- }, 500);
- });
-
- it('test waterfall upper function', (done) => {
- const waterfallUpperSpy = sinon.spy(function() {
- wrapper.vm.list.unshift({ id: 1 }, { id: 2 }, { id: 3 });
- wrapper.vm.disabled = true;
- });
- wrapper = mount(Waterfall, {
- attachToDocument: true,
- propsData: {
- disabled: false,
- list: [{ id: 10 }],
- onWaterfallUpper: waterfallUpperSpy
- }
- });
-
- setTimeout(() => {
- const item = wrapper.find('.waterfall-item');
- expect(waterfallUpperSpy.calledOnce).to.be.true;
- expect(item.length).to.equal(4);
- expect(item[0].text()).to.equal('1');
- done();
- }, 500);
- });
-
- it('test waterfall function after hide', (done) => {
- const waterfallLowerSpy = sinon.spy();
- wrapper = mount(HiddenWaterfall, {
- attachToDocument: true,
- propsData: {
- show: false,
- disabled: false,
- list: [{ id: 10 }],
- onWaterfallLower: waterfallLowerSpy
- }
- });
-
- setTimeout(() => {
- expect(waterfallLowerSpy.called).to.be.false;
- done();
- }, 500);
- });
-});
diff --git a/test/utils.js b/test/utils.js
deleted file mode 100644
index c4e85b7ed..000000000
--- a/test/utils.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * 按照一定的规则进行匹配
- */
-export function DOMChecker(wrapper, rules) {
- const { text, count, src, style, noStyle, value } = rules;
-
- if (text) {
- Object.keys(text).forEach(key => {
- expect(wrapper.find(key)[0].text().trim()).to.equal(text[key]);
- });
- }
-
- if (count) {
- Object.keys(count).forEach(key => {
- expect(wrapper.find(key).length).to.equal(count[key]);
- });
- }
-
- if (src) {
- Object.keys(src).forEach(key => {
- expect(wrapper.find(key)[0].element.src).to.equal(src[key]);
- });
- }
-
- if (value) {
- Object.keys(value).forEach(key => {
- expect(wrapper.find(key)[0].element.value).to.equal(value[key]);
- });
- }
-
- if (style) {
- Object.keys(style).forEach(key => {
- Object.keys(style[key]).forEach(prop => {
- expect(wrapper.find(key)[0].hasStyle(prop, style[key][prop])).to.equal(
- true
- );
- });
- });
- }
-
- if (noStyle) {
- Object.keys(noStyle).forEach(key => {
- Object.keys(noStyle[key]).forEach(prop => {
- expect(
- wrapper.find(key)[0].hasStyle(prop, noStyle[key][prop])
- ).to.equal(false);
- });
- });
- }
-}
-
-// 触发一个 touch 事件
-export function triggerTouch(wrapper, eventName, x, y) {
- const el = wrapper.element ? wrapper.element : wrapper;
- const touch = {
- identifier: Date.now(),
- target: el,
- pageX: x,
- pageY: y,
- clientX: x,
- clientY: y,
- radiusX: 2.5,
- radiusY: 2.5,
- rotationAngle: 10,
- force: 0.5
- };
-
- const event = document.createEvent('CustomEvent');
- event.initCustomEvent(eventName, true, true, {});
- event.touches = [touch];
- event.targetTouches = [touch];
- event.changedTouches = [touch];
-
- el.dispatchEvent(event);
-}
-
-export function dragHelper(el, x = 0, y = 0) {
- triggerTouch(el, 'touchstart', 0, 0);
- triggerTouch(el, 'touchmove', x / 4, y / 4);
- triggerTouch(el, 'touchmove', x / 3, y / 3);
- triggerTouch(el, 'touchmove', x / 2, y / 2);
- triggerTouch(el, 'touchmove', x, y);
- triggerTouch(el, 'touchend', x, y);
-}
diff --git a/yarn.lock b/yarn.lock
index b0d2b9775..c4db35273 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -27,6 +27,14 @@
version "0.7.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
+"@types/strip-bom@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2"
+
+"@types/strip-json-comments@0.0.30":
+ version "0.0.30"
+ resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1"
+
"@vue/component-compiler-utils@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-1.2.1.tgz#3d543baa75cfe5dab96e29415b78366450156ef6"
@@ -41,6 +49,24 @@
source-map "^0.5.6"
vue-template-es2015-compiler "^1.6.0"
+"@vue/server-test-utils@^1.0.0-beta.15":
+ version "1.0.0-beta.15"
+ resolved "https://registry.yarnpkg.com/@vue/server-test-utils/-/server-test-utils-1.0.0-beta.15.tgz#6df3c882df1a0da4a49dd309bac6849cfd4280f8"
+ dependencies:
+ "@vue/test-utils" "1.0.0-beta.14"
+
+"@vue/test-utils@1.0.0-beta.14":
+ version "1.0.0-beta.14"
+ resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.14.tgz#bbb65868cc3f3235d44c29e4faa82fb5f393203a"
+ dependencies:
+ lodash "^4.17.4"
+
+"@vue/test-utils@^1.0.0-beta.15":
+ version "1.0.0-beta.15"
+ resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.15.tgz#9f8d85b9f2312217c81d72eba97e176fba23da09"
+ dependencies:
+ lodash "^4.17.4"
+
"@webassemblyjs/ast@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.3.1.tgz#3081b4b3ff0af733aa5ba573af998f33711293f8"
@@ -160,10 +186,6 @@ abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-abbrev@1.0.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-
accepts@~1.3.4, accepts@~1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
@@ -197,21 +219,6 @@ acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
version "5.5.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
-addressparser@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746"
-
-after@0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
-
-agent-base@2:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7"
- dependencies:
- extend "~3.0.0"
- semver "~5.0.1"
-
ajv-keywords@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
@@ -220,7 +227,7 @@ ajv-keywords@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
-ajv@^5.0.0, ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0:
+ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
dependencies:
@@ -254,16 +261,6 @@ amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-amqplib@^0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.2.tgz#d2d7313c7ffaa4d10bcf1e6252de4591b6cc7b63"
- dependencies:
- bitsyntax "~0.0.4"
- bluebird "^3.4.6"
- buffer-more-ints "0.0.2"
- readable-stream "1.x >=1.1.9"
- safe-buffer "^5.0.1"
-
ansi-escapes@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
@@ -324,6 +321,12 @@ app-root-path@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46"
+append-transform@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ dependencies:
+ default-require-extensions "^1.0.0"
+
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -390,10 +393,6 @@ array-includes@^3.0.3:
define-properties "^1.1.2"
es-abstract "^1.7.0"
-array-slice@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5"
-
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
@@ -412,10 +411,6 @@ array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
-arraybuffer.slice@~0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
-
arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -436,20 +431,12 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-
assert@^1.1.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
dependencies:
util "0.10.3"
-assertion-error@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
-
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
@@ -462,10 +449,14 @@ ast-types@0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd"
-ast-types@0.11.3, ast-types@0.x.x:
+ast-types@0.11.3:
version "0.11.3"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8"
+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"
@@ -474,21 +465,15 @@ async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-async@1.x, async@^1.4.0, async@^1.5.0, async@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
-async@2.6.0, async@^2.0.0, async@^2.6.0:
+async@2.6.0, async@^2.1.4, async@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
dependencies:
lodash "^4.14.0"
-async@~2.1.2:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
- dependencies:
- lodash "^4.14.0"
+async@^1.4.0, async@^1.5.0, async@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
asynckit@^0.4.0:
version "0.4.0"
@@ -498,6 +483,10 @@ atob@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc"
+atob@~1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773"
+
autoprefixer@^6.3.1:
version "6.7.7"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
@@ -509,7 +498,7 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
-autoprefixer@^8.4.1:
+autoprefixer@^8.3.0:
version "8.4.1"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.4.1.tgz#c6b30001ea4b3daa6b611e50071f62dd24beb564"
dependencies:
@@ -520,30 +509,14 @@ autoprefixer@^8.4.1:
postcss "^6.0.22"
postcss-value-parser "^3.2.3"
-avoriaz@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/avoriaz/-/avoriaz-2.0.0.tgz#df0b4cd95afa6da03bed886595e36b9c1d17e201"
- dependencies:
- vue-add-globals "^1.0.1"
-
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-aws4@^1.2.1, aws4@^1.6.0:
+aws4@^1.6.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"
-axios@^0.15.3:
- version "0.15.3"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053"
- dependencies:
- follow-redirects "1.0.0"
-
babel-cli@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
@@ -573,6 +546,30 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
+babel-core@^6.0.0:
+ version "6.26.2"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.2.tgz#b67a120521dcd6baf1a2ecceeceb595e223da06c"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-generator "^6.26.0"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.26.0"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ convert-source-map "^1.5.1"
+ debug "^2.6.9"
+ json5 "^0.5.1"
+ lodash "^4.17.4"
+ minimatch "^3.0.4"
+ path-is-absolute "^1.0.1"
+ private "^0.1.8"
+ slash "^1.0.0"
+ source-map "^0.5.7"
+
babel-core@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
@@ -752,6 +749,13 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
+babel-jest@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.3.tgz#4b7a0b6041691bbd422ab49b3b73654a49a6627a"
+ dependencies:
+ babel-plugin-istanbul "^4.1.5"
+ babel-preset-jest "^22.4.3"
+
babel-loader@^7.1.4:
version "7.1.4"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015"
@@ -772,6 +776,19 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
+babel-plugin-istanbul@^4.1.5:
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
+ dependencies:
+ babel-plugin-syntax-object-rest-spread "^6.13.0"
+ find-up "^2.1.0"
+ istanbul-lib-instrument "^1.10.1"
+ test-exclude "^4.2.1"
+
+babel-plugin-jest-hoist@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz#7d8bcccadc2667f96a0dcc6afe1891875ee6c14a"
+
babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
@@ -808,7 +825,7 @@ babel-plugin-syntax-flow@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
-babel-plugin-syntax-object-rest-spread@^6.8.0:
+babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
@@ -952,6 +969,15 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e
babel-template "^6.26.0"
babel-types "^6.26.0"
+babel-plugin-transform-es2015-modules-commonjs@^6.26.0:
+ version "6.26.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"
+ dependencies:
+ babel-plugin-transform-strict-mode "^6.24.1"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-types "^6.26.0"
+
babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
@@ -1147,6 +1173,13 @@ babel-preset-es2015@^6.9.0:
babel-plugin-transform-es2015-unicode-regex "^6.24.1"
babel-plugin-transform-regenerator "^6.24.1"
+babel-preset-jest@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156"
+ dependencies:
+ babel-plugin-jest-hoist "^22.4.3"
+ babel-plugin-syntax-object-rest-spread "^6.13.0"
+
babel-preset-stage-1@^6.5.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
@@ -1240,10 +1273,6 @@ babylon@~6.8.1:
dependencies:
babel-runtime "^6.0.0"
-backo2@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
-
balanced-match@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a"
@@ -1256,18 +1285,10 @@ balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-base64-arraybuffer@0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
-
base64-js@^1.0.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
-base64id@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
-
base64url@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb"
@@ -1294,12 +1315,6 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-better-assert@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
- dependencies:
- callsite "1.0.0"
-
big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
@@ -1312,23 +1327,7 @@ binaryextensions@2:
version "2.1.1"
resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935"
-bitsyntax@~0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/bitsyntax/-/bitsyntax-0.0.4.tgz#eb10cc6f82b8c490e3e85698f07e83d46e0cba82"
- dependencies:
- buffer-more-ints "0.0.2"
-
-bl@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398"
- dependencies:
- readable-stream "~2.0.5"
-
-blob@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
-
-bluebird@^3.1.1, bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.5.1:
+bluebird@^3.0.5, bluebird@^3.1.1, bluebird@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
@@ -1336,7 +1335,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-body-parser@1.18.2, body-parser@^1.16.1:
+body-parser@1.18.2:
version "1.18.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
dependencies:
@@ -1366,12 +1365,6 @@ boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- dependencies:
- hoek "2.x.x"
-
boom@4.x.x:
version "4.3.1"
resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
@@ -1391,12 +1384,6 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^0.1.2:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6"
- dependencies:
- expand-range "^0.1.0"
-
braces@^1.8.2:
version "1.8.5"
resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
@@ -1434,10 +1421,6 @@ browser-resolve@^1.11.2:
dependencies:
resolve "1.1.7"
-browser-stdout@1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
-
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.2.0"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
@@ -1511,6 +1494,12 @@ browserslist@^3.2.6:
caniuse-lite "^1.0.30000830"
electron-to-chromium "^1.3.42"
+bser@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
+ dependencies:
+ node-int64 "^0.4.0"
+
buffer-from@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
@@ -1519,10 +1508,6 @@ buffer-indexof@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
-buffer-more-ints@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c"
-
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -1535,18 +1520,6 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-buildmail@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72"
- dependencies:
- addressparser "1.0.1"
- libbase64 "0.1.0"
- libmime "3.0.0"
- libqp "1.1.0"
- nodemailer-fetch "1.6.0"
- nodemailer-shared "1.1.0"
- punycode "1.4.1"
-
builtin-modules@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@@ -1613,10 +1586,6 @@ caller-path@^0.1.0:
dependencies:
callsites "^0.2.0"
-callsite@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
-
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
@@ -1676,10 +1645,6 @@ caniuse-lite@^1.0.30000832:
version "1.0.30000836"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000836.tgz#c08f405b884d36dc44fa4c9a85c2c06cdab1dbb5"
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
-
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -1691,17 +1656,6 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
-chai@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
- dependencies:
- assertion-error "^1.0.1"
- check-error "^1.0.1"
- deep-eql "^3.0.0"
- get-func-name "^2.0.0"
- pathval "^1.0.0"
- type-detect "^4.0.0"
-
chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -1740,10 +1694,6 @@ chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
-check-error@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
-
cheerio@0.22.0:
version "0.22.0"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
@@ -1765,7 +1715,7 @@ cheerio@0.22.0:
lodash.reject "^4.4.0"
lodash.some "^4.4.0"
-chokidar@^1.4.1, chokidar@^1.6.1:
+chokidar@^1.6.1:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
dependencies:
@@ -1821,10 +1771,6 @@ circular-json@^0.3.1:
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
-circular-json@^0.5.1:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.3.tgz#eb1b783333bb125784647d1a76377caf1499efb1"
-
clap@^1.0.9:
version "1.2.3"
resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
@@ -1913,6 +1859,10 @@ clone-stats@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
+clone@2.x:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
+
clone@^1.0.0, clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@@ -1933,10 +1883,6 @@ co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-co@~3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda"
-
coa@~1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
@@ -1947,9 +1893,9 @@ code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-codecov@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.0.1.tgz#cc4c5cd1955c6be47f6dda2f8c55bcc43c732dca"
+codecov@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.0.2.tgz#aea43843a5cd2fb6b7e488b2eff25d367ab70b12"
dependencies:
argv "0.0.2"
request "^2.81.0"
@@ -1998,7 +1944,7 @@ colors@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
-colors@^1.1.0, colors@^1.1.2:
+colors@^1.1.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794"
@@ -2006,13 +1952,7 @@ colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
-combine-lists@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6"
- dependencies:
- lodash "^4.5.0"
-
-combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5:
+combined-stream@1.0.6, combined-stream@~1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
dependencies:
@@ -2040,18 +1980,14 @@ commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
-component-bind@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
+compare-versions@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.1.0.tgz#43310256a5c555aaed4193c04d8f154cf9c6efd5"
-component-emitter@1.2.1, component-emitter@^1.2.1:
+component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
-component-inherit@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
-
compressible@~2.0.13:
version "2.0.13"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9"
@@ -2083,19 +2019,25 @@ concat-stream@^1.5.0, concat-stream@^1.6.0:
readable-stream "^2.2.2"
typedarray "^0.0.6"
+condense-newlines@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-whitespace "^0.3.0"
+ kind-of "^3.0.2"
+
+config-chain@~1.1.5:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
connect-history-api-fallback@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
-connect@^3.6.0:
- version "3.6.6"
- resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524"
- dependencies:
- debug "2.6.9"
- finalhandler "1.1.0"
- parseurl "~1.3.2"
- utils-merge "1.0.1"
-
console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
@@ -2124,7 +2066,7 @@ content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-convert-source-map@^1.5.0, convert-source-map@^1.5.1:
+convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
@@ -2151,7 +2093,7 @@ copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
-core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
+core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
version "2.5.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b"
@@ -2208,9 +2150,9 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-cross-env@^5.1.4:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.4.tgz#f61c14291f7cc653bb86457002ea80a04699d022"
+cross-env@^5.1.5:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.5.tgz#31daf7f3a52ef337c8ddda585f08175cce5d1fa5"
dependencies:
cross-spawn "^5.1.0"
is-windows "^1.0.0"
@@ -2233,12 +2175,6 @@ cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- dependencies:
- boom "2.x.x"
-
cryptiles@3.x.x:
version "3.1.2"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
@@ -2318,6 +2254,15 @@ css-what@2.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+css@^2.1.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc"
+ dependencies:
+ inherits "^2.0.1"
+ source-map "^0.1.38"
+ source-map-resolve "^0.3.0"
+ urix "^0.1.0"
+
cssesc@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
@@ -2382,10 +2327,6 @@ currently-unhandled@^0.4.1:
dependencies:
array-find-index "^1.0.1"
-custom-event@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425"
-
cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
@@ -2400,10 +2341,6 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-data-uri-to-buffer@1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835"
-
data-urls@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f"
@@ -2416,21 +2353,10 @@ date-fns@^1.27.2:
version "1.29.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
-date-format@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8"
-
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-dateformat@^1.0.6:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.3.0"
-
dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
@@ -2439,24 +2365,18 @@ de-indent@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
-debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6:
+debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
ms "2.0.0"
-debug@3.1.0, debug@^3.0.1, debug@^3.1.0, debug@~3.1.0:
+debug@^3.0.1, debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
-debug@~2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
- dependencies:
- ms "0.7.1"
-
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -2475,12 +2395,6 @@ dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
-deep-eql@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
- dependencies:
- type-detect "^4.0.0"
-
deep-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
@@ -2497,6 +2411,12 @@ deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+default-require-extensions@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ dependencies:
+ strip-bom "^2.0.0"
+
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
@@ -2527,14 +2447,6 @@ defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-degenerator@~1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095"
- dependencies:
- ast-types "0.x.x"
- escodegen "1.x.x"
- esprima "3.x.x"
-
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
@@ -2608,6 +2520,10 @@ detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+detect-newline@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
+
detect-node@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
@@ -2679,11 +2595,7 @@ detective-typescript@^2.0.0:
typescript "^2.6.1"
typescript-eslint-parser "^9.0.0"
-di@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
-
-diff@3.5.0, diff@^3.1.0, diff@^3.2.0, diff@^3.3.1, diff@^3.5.0:
+diff@^3.2.0, diff@^3.3.1, diff@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
@@ -2731,15 +2643,6 @@ dom-converter@~0.1:
dependencies:
utila "~0.3"
-dom-serialize@^2.2.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b"
- dependencies:
- custom-event "~1.0.0"
- ent "~2.2.0"
- extend "^3.0.0"
- void-elements "^2.0.0"
-
dom-serializer@0, dom-serializer@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
@@ -2803,10 +2706,6 @@ dot-prop@^4.1.1:
dependencies:
is-obj "^1.0.0"
-double-ended-queue@^2.1.0-0:
- version "2.1.0-0"
- resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
-
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -2830,6 +2729,16 @@ editions@^1.3.3:
version "1.3.4"
resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b"
+editorconfig@^0.13.2:
+ version "0.13.3"
+ resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34"
+ dependencies:
+ bluebird "^3.0.5"
+ commander "^2.9.0"
+ lru-cache "^3.2.0"
+ semver "^5.1.0"
+ sigmund "^1.0.1"
+
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -2866,7 +2775,7 @@ emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-encodeurl@~1.0.1, encodeurl@~1.0.2:
+encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -2876,45 +2785,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-engine.io-client@~3.1.0:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd"
- dependencies:
- component-emitter "1.2.1"
- component-inherit "0.0.3"
- debug "~3.1.0"
- engine.io-parser "~2.1.1"
- has-cors "1.1.0"
- indexof "0.0.1"
- parseqs "0.0.5"
- parseuri "0.0.5"
- ws "~3.3.1"
- xmlhttprequest-ssl "~1.5.4"
- yeast "0.1.2"
-
-engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
- dependencies:
- after "0.8.2"
- arraybuffer.slice "~0.0.7"
- base64-arraybuffer "0.1.5"
- blob "0.0.4"
- has-binary2 "~1.0.2"
-
-engine.io@~3.1.0:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845"
- dependencies:
- accepts "~1.3.4"
- base64id "1.0.0"
- cookie "0.3.1"
- debug "~3.1.0"
- engine.io-parser "~2.1.0"
- ws "~3.3.1"
- optionalDependencies:
- uws "~9.14.0"
-
enhanced-resolve@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
@@ -2932,10 +2802,6 @@ enhanced-resolve@^4.0.0:
memory-fs "^0.4.0"
tapable "^1.0.0"
-ent@~2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
-
entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
@@ -2985,22 +2851,11 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@1.8.x:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
- dependencies:
- esprima "^2.7.1"
- estraverse "^1.9.1"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.2.0"
-
-escodegen@1.x.x, escodegen@^1.8.0, escodegen@^1.9.0:
+escodegen@^1.8.0, escodegen@^1.9.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2"
dependencies:
@@ -3078,11 +2933,11 @@ espree@^3.5.2, espree@^3.5.4:
acorn "^5.5.0"
acorn-jsx "^3.0.0"
-esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
+esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-esprima@3.x.x, esprima@^3.1.3:
+esprima@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@@ -3102,10 +2957,6 @@ esrecurse@^4.1.0:
dependencies:
estraverse "^4.1.0"
-estraverse@^1.9.1:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
@@ -3139,6 +2990,12 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
+exec-sh@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38"
+ dependencies:
+ merge "^1.1.3"
+
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
@@ -3167,13 +3024,9 @@ exit-hook@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-expand-braces@^0.1.1:
+exit@^0.1.2:
version "0.1.2"
- resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea"
- dependencies:
- array-slice "^0.2.3"
- array-unique "^0.2.1"
- braces "^0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
expand-brackets@^0.1.4:
version "0.1.5"
@@ -3193,13 +3046,6 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expand-range@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044"
- dependencies:
- is-number "^0.1.1"
- repeat-string "^0.2.2"
-
expand-range@^1.8.1:
version "1.8.2"
resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
@@ -3271,7 +3117,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
+extend@~3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
@@ -3302,6 +3148,12 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
+extract-from-css@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92"
+ dependencies:
+ css "^2.1.0"
+
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -3355,6 +3207,12 @@ faye-websocket@~0.11.0:
dependencies:
websocket-driver ">=0.5.1"
+fb-watchman@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
+ dependencies:
+ bser "^2.0.0"
+
figures@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -3379,14 +3237,17 @@ file-exists@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-exists/-/file-exists-2.0.0.tgz#a24150665150e62d55bc5449281d88d2b0810dca"
-file-uri-to-path@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
-
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+fileset@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
+ dependencies:
+ glob "^7.0.3"
+ minimatch "^3.0.3"
+
filing-cabinet@^1.13.0:
version "1.14.0"
resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-1.14.0.tgz#629d9db0a8410c463ce222364b5a708f2cbd71b3"
@@ -3423,18 +3284,6 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
-finalhandler@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.3.1"
- unpipe "~1.0.0"
-
finalhandler@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
@@ -3447,6 +3296,13 @@ finalhandler@1.1.1:
statuses "~1.4.0"
unpipe "~1.0.0"
+find-babel-config@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.1.0.tgz#acc01043a6749fec34429be6b64f542ebb5d6355"
+ dependencies:
+ json5 "^0.5.1"
+ path-exists "^3.0.0"
+
find-cache-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
@@ -3508,12 +3364,6 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1"
readable-stream "^2.0.4"
-follow-redirects@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37"
- dependencies:
- debug "^2.2.0"
-
follow-redirects@^1.0.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa"
@@ -3538,22 +3388,6 @@ forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-form-data@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.11"
-
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
form-data@~2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
@@ -3562,12 +3396,6 @@ form-data@~2.3.1:
combined-stream "1.0.6"
mime-types "^2.1.12"
-formatio@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb"
- dependencies:
- samsam "1.x"
-
forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
@@ -3589,12 +3417,6 @@ from2@^2.1.0, from2@^2.1.1:
inherits "^2.0.1"
readable-stream "^2.0.0"
-fs-access@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a"
- dependencies:
- null-check "^1.0.0"
-
fs-extra@^4.0.2:
version "4.0.3"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
@@ -3641,12 +3463,12 @@ fsevents@^1.0.0, fsevents@^1.1.2:
nan "^2.9.2"
node-pre-gyp "^0.9.0"
-ftp@~0.3.10:
- version "0.3.10"
- resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
+fsevents@^1.1.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.2.tgz#4f598f0f69b273188ef4a62ca4e9e08ace314bbf"
dependencies:
- readable-stream "1.1.x"
- xregexp "2.0.0"
+ nan "^2.9.2"
+ node-pre-gyp "^0.9.0"
function-bind@^1.0.2, function-bind@^1.1.1:
version "1.1.1"
@@ -3669,16 +3491,6 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
get-amd-module-type@^2.0.4:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-2.0.5.tgz#e671ec5a96ad5fbf53a3a22a289e9238c772ddb0"
@@ -3690,10 +3502,6 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-get-func-name@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
-
get-own-enumerable-property-symbols@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b"
@@ -3706,17 +3514,6 @@ get-stream@3.0.0, get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-get-uri@2:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59"
- dependencies:
- data-uri-to-buffer "1"
- debug "2"
- extend "3"
- file-uri-to-path "1"
- ftp "~0.3.10"
- readable-stream "2"
-
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -3783,7 +3580,7 @@ glob-to-regexp@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
-glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -3794,16 +3591,6 @@ glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^5.0.15:
- version "5.0.15"
- resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "2 || 3"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
global-modules@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
@@ -3924,15 +3711,15 @@ grouped-queue@^0.3.3:
dependencies:
lodash "^4.17.2"
-growl@1.10.3:
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
+growly@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
-handlebars@^4.0.1:
+handlebars@^4.0.3:
version "4.0.11"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
dependencies:
@@ -3946,15 +3733,6 @@ har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
- pinkie-promise "^2.0.0"
-
har-validator@~5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
@@ -3968,28 +3746,14 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
-has-binary2@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
- dependencies:
- isarray "2.0.1"
-
has-color@~0.1.0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
-has-cors@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
-
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
-
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -4063,15 +3827,6 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.0"
-hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
-
hawk@~6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
@@ -4081,7 +3836,7 @@ hawk@~6.0.2:
hoek "4.x.x"
sntp "2.x.x"
-he@1.1.1, he@1.1.x, he@^1.1.0:
+he@1.1.x, he@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
@@ -4089,13 +3844,6 @@ highlight.js@^9.12.0:
version "9.12.0"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e"
-hipchat-notifier@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e"
- dependencies:
- lodash "^4.0.0"
- request "^2.0.0"
-
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -4104,10 +3852,6 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-
hoek@4.x.x:
version "4.2.1"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
@@ -4226,14 +3970,6 @@ http-parser-js@>=0.4.0:
version "0.4.11"
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529"
-http-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
-
http-proxy-middleware@~0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab"
@@ -4243,7 +3979,7 @@ http-proxy-middleware@~0.18.0:
lodash "^4.17.5"
micromatch "^3.1.9"
-http-proxy@^1.13.0, http-proxy@^1.16.2:
+http-proxy@^1.16.2:
version "1.17.0"
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
dependencies:
@@ -4251,14 +3987,6 @@ http-proxy@^1.13.0, http-proxy@^1.16.2:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
@@ -4267,29 +3995,10 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
-httpntlm@1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2"
- dependencies:
- httpreq ">=0.4.22"
- underscore "~1.7.0"
-
-httpreq@>=0.4.22:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f"
-
https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-https-proxy-agent@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
-
husky@^0.14.3:
version "0.14.3"
resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3"
@@ -4298,10 +4007,6 @@ husky@^0.14.3:
normalize-path "^1.0.0"
strip-indent "^2.0.0"
-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.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
@@ -4373,14 +4078,6 @@ indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
-inflection@~1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.10.0.tgz#5bffcb1197ad3e81050f8e17e21668087ee9eb2f"
-
-inflection@~1.3.0:
- version "1.3.8"
- resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e"
-
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -4464,11 +4161,7 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
-ip@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590"
-
-ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5:
+ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
@@ -4624,24 +4317,6 @@ is-glob@^4.0.0:
dependencies:
is-extglob "^2.1.1"
-is-my-ip-valid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
-
-is-my-json-valid@^2.12.4:
- version "2.17.2"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c"
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- is-my-ip-valid "^1.0.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
-is-number@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806"
-
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -4716,10 +4391,6 @@ is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
@@ -4774,6 +4445,10 @@ is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+is-whitespace@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f"
+
is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -4790,11 +4465,7 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-isarray@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
-
-isbinaryfile@^3.0.0, isbinaryfile@^3.0.2:
+isbinaryfile@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
@@ -4816,20 +4487,34 @@ isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-istanbul-instrumenter-loader@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949"
+istanbul-api@^1.1.14:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954"
dependencies:
- convert-source-map "^1.5.0"
- istanbul-lib-instrument "^1.7.3"
- loader-utils "^1.1.0"
- schema-utils "^0.3.0"
+ async "^2.1.4"
+ compare-versions "^3.1.0"
+ fileset "^2.0.2"
+ istanbul-lib-coverage "^1.2.0"
+ istanbul-lib-hook "^1.2.0"
+ istanbul-lib-instrument "^1.10.1"
+ istanbul-lib-report "^1.1.4"
+ istanbul-lib-source-maps "^1.2.4"
+ istanbul-reports "^1.3.0"
+ js-yaml "^3.7.0"
+ mkdirp "^0.5.1"
+ once "^1.4.0"
-istanbul-lib-coverage@^1.2.0:
+istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341"
-istanbul-lib-instrument@^1.7.3:
+istanbul-lib-hook@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c"
+ dependencies:
+ append-transform "^0.4.0"
+
+istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.8.0:
version "1.10.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
dependencies:
@@ -4841,24 +4526,40 @@ istanbul-lib-instrument@^1.7.3:
istanbul-lib-coverage "^1.2.0"
semver "^5.3.0"
-istanbul@^0.4.0:
- version "0.4.5"
- resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
+istanbul-lib-report@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5"
dependencies:
- abbrev "1.0.x"
- async "1.x"
- escodegen "1.8.x"
- esprima "2.7.x"
- glob "^5.0.15"
- handlebars "^4.0.1"
- js-yaml "3.x"
- mkdirp "0.5.x"
- nopt "3.x"
- once "1.x"
- resolve "1.1.x"
- supports-color "^3.1.0"
- which "^1.1.1"
- wordwrap "^1.0.0"
+ istanbul-lib-coverage "^1.2.0"
+ mkdirp "^0.5.1"
+ path-parse "^1.0.5"
+ supports-color "^3.1.2"
+
+istanbul-lib-source-maps@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
+ dependencies:
+ debug "^3.1.0"
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+istanbul-lib-source-maps@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7"
+ dependencies:
+ debug "^3.1.0"
+ istanbul-lib-coverage "^1.2.0"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+istanbul-reports@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554"
+ dependencies:
+ handlebars "^4.0.3"
istextorbinary@^2.2.1:
version "2.2.1"
@@ -4875,6 +4576,51 @@ isurl@^1.0.0-alpha5:
has-to-string-tag-x "^1.2.0"
is-object "^1.0.1"
+jest-changed-files@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.4.3.tgz#8882181e022c38bd46a2e4d18d44d19d90a90fb2"
+ dependencies:
+ throat "^4.0.0"
+
+jest-cli@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.3.tgz#bf16c4a5fb7edc3fa5b9bb7819e34139e88a72c7"
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ graceful-fs "^4.1.11"
+ import-local "^1.0.0"
+ is-ci "^1.0.10"
+ istanbul-api "^1.1.14"
+ istanbul-lib-coverage "^1.1.1"
+ istanbul-lib-instrument "^1.8.0"
+ istanbul-lib-source-maps "^1.2.1"
+ jest-changed-files "^22.4.3"
+ jest-config "^22.4.3"
+ jest-environment-jsdom "^22.4.3"
+ jest-get-type "^22.4.3"
+ jest-haste-map "^22.4.3"
+ jest-message-util "^22.4.3"
+ jest-regex-util "^22.4.3"
+ jest-resolve-dependencies "^22.4.3"
+ jest-runner "^22.4.3"
+ jest-runtime "^22.4.3"
+ jest-snapshot "^22.4.3"
+ jest-util "^22.4.3"
+ jest-validate "^22.4.3"
+ jest-worker "^22.4.3"
+ micromatch "^2.3.11"
+ node-notifier "^5.2.1"
+ realpath-native "^1.0.0"
+ rimraf "^2.5.4"
+ slash "^1.0.0"
+ string-length "^2.0.0"
+ strip-ansi "^4.0.0"
+ which "^1.2.12"
+ yargs "^10.0.3"
+
jest-config@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.3.tgz#0e9d57db267839ea31309119b41dc2fa31b76403"
@@ -4900,6 +4646,12 @@ jest-diff@^22.4.3:
jest-get-type "^22.4.3"
pretty-format "^22.4.3"
+jest-docblock@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19"
+ dependencies:
+ detect-newline "^2.1.0"
+
jest-environment-jsdom@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz#d67daa4155e33516aecdd35afd82d4abf0fa8a1e"
@@ -4919,6 +4671,18 @@ jest-get-type@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
+jest-haste-map@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b"
+ dependencies:
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.1.11"
+ jest-docblock "^22.4.3"
+ jest-serializer "^22.4.3"
+ jest-worker "^22.4.3"
+ micromatch "^2.3.11"
+ sane "^2.0.0"
+
jest-jasmine2@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz#4daf64cd14c793da9db34a7c7b8dcfe52a745965"
@@ -4935,6 +4699,12 @@ jest-jasmine2@^22.4.3:
jest-util "^22.4.3"
source-map-support "^0.5.0"
+jest-leak-detector@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35"
+ dependencies:
+ pretty-format "^22.4.3"
+
jest-matcher-utils@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff"
@@ -4961,6 +4731,12 @@ jest-regex-util@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.4.3.tgz#a826eb191cdf22502198c5401a1fc04de9cef5af"
+jest-resolve-dependencies@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e"
+ dependencies:
+ jest-regex-util "^22.4.3"
+
jest-resolve@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea"
@@ -4968,6 +4744,57 @@ jest-resolve@^22.4.3:
browser-resolve "^1.11.2"
chalk "^2.0.1"
+jest-runner@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.3.tgz#298ddd6a22b992c64401b4667702b325e50610c3"
+ dependencies:
+ exit "^0.1.2"
+ jest-config "^22.4.3"
+ jest-docblock "^22.4.3"
+ jest-haste-map "^22.4.3"
+ jest-jasmine2 "^22.4.3"
+ jest-leak-detector "^22.4.3"
+ jest-message-util "^22.4.3"
+ jest-runtime "^22.4.3"
+ jest-util "^22.4.3"
+ jest-worker "^22.4.3"
+ throat "^4.0.0"
+
+jest-runtime@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.3.tgz#b69926c34b851b920f666c93e86ba2912087e3d0"
+ dependencies:
+ babel-core "^6.0.0"
+ babel-jest "^22.4.3"
+ babel-plugin-istanbul "^4.1.5"
+ chalk "^2.0.1"
+ convert-source-map "^1.4.0"
+ exit "^0.1.2"
+ graceful-fs "^4.1.11"
+ jest-config "^22.4.3"
+ jest-haste-map "^22.4.3"
+ jest-regex-util "^22.4.3"
+ jest-resolve "^22.4.3"
+ jest-util "^22.4.3"
+ jest-validate "^22.4.3"
+ json-stable-stringify "^1.0.1"
+ micromatch "^2.3.11"
+ realpath-native "^1.0.0"
+ slash "^1.0.0"
+ strip-bom "3.0.0"
+ write-file-atomic "^2.1.0"
+ yargs "^10.0.3"
+
+jest-serializer-vue@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-1.0.0.tgz#82514e9b3d94a17fe618df3ede84046090f94815"
+ dependencies:
+ pretty "2.0.0"
+
+jest-serializer@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436"
+
jest-snapshot@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2"
@@ -5001,15 +4828,37 @@ jest-validate@^22.4.0, jest-validate@^22.4.3:
leven "^2.1.0"
pretty-format "^22.4.3"
+jest-worker@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b"
+ dependencies:
+ merge-stream "^1.0.1"
+
+jest@^22.4.3:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.3.tgz#2261f4b117dc46d9a4a1a673d2150958dee92f16"
+ dependencies:
+ import-local "^1.0.0"
+ jest-cli "^22.4.3"
+
js-base64@^2.1.9:
version "2.4.3"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582"
+js-beautify@^1.6.12, js-beautify@^1.6.14:
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919"
+ dependencies:
+ config-chain "~1.1.5"
+ editorconfig "^0.13.2"
+ mkdirp "~0.5.0"
+ nopt "~3.0.1"
+
js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.9.0, js-yaml@^3.9.1:
+js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
version "3.11.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
dependencies:
@@ -5126,7 +4975,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
-json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1:
+json-stable-stringify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ dependencies:
+ jsonify "~0.0.0"
+
+json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -5144,9 +4999,9 @@ jsonfile@^4.0.0:
optionalDependencies:
graceful-fs "^4.1.6"
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+jsonify@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
jsprim@^1.2.2:
version "1.4.1"
@@ -5157,84 +5012,12 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
-karma-chrome-launcher@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf"
- dependencies:
- fs-access "^1.0.0"
- which "^1.2.1"
-
-karma-coverage@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.2.tgz#cc09dceb589a83101aca5fe70c287645ef387689"
- dependencies:
- dateformat "^1.0.6"
- istanbul "^0.4.0"
- lodash "^4.17.0"
- minimatch "^3.0.0"
- source-map "^0.5.1"
-
-karma-mocha@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf"
- dependencies:
- minimist "1.2.0"
-
-karma-sinon-chai@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/karma-sinon-chai/-/karma-sinon-chai-1.3.4.tgz#56c82674a5618ee9a4063cfbd57fc01da37f1495"
- dependencies:
- lolex "^1.6.0"
-
karma-spec-reporter@^0.0.32:
version "0.0.32"
resolved "https://registry.yarnpkg.com/karma-spec-reporter/-/karma-spec-reporter-0.0.32.tgz#2e9c7207ea726771260259f82becb543209e440a"
dependencies:
colors "^1.1.2"
-karma-webpack@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-3.0.0.tgz#bf009c5b73c667c11c015717e9e520f581317c44"
- dependencies:
- async "^2.0.0"
- babel-runtime "^6.0.0"
- loader-utils "^1.0.0"
- lodash "^4.0.0"
- source-map "^0.5.6"
- webpack-dev-middleware "^2.0.6"
-
-karma@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.2.tgz#4d2db9402850a66551fa784b0164fb0824ed8c4b"
- dependencies:
- bluebird "^3.3.0"
- body-parser "^1.16.1"
- chokidar "^1.4.1"
- colors "^1.1.0"
- combine-lists "^1.0.0"
- connect "^3.6.0"
- core-js "^2.2.0"
- di "^0.0.1"
- dom-serialize "^2.2.0"
- expand-braces "^0.1.1"
- glob "^7.1.1"
- graceful-fs "^4.1.2"
- http-proxy "^1.13.0"
- isbinaryfile "^3.0.0"
- lodash "^4.17.4"
- log4js "^2.3.9"
- mime "^1.3.4"
- minimatch "^3.0.2"
- optimist "^0.6.1"
- qjobs "^1.1.4"
- range-parser "^1.2.0"
- rimraf "^2.6.0"
- safe-buffer "^5.0.1"
- socket.io "2.0.4"
- source-map "^0.6.1"
- tmp "0.0.33"
- useragent "2.2.1"
-
keyv@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
@@ -5294,29 +5077,13 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-libbase64@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6"
-
-libmime@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6"
- dependencies:
- iconv-lite "0.4.15"
- libbase64 "0.1.0"
- libqp "1.1.0"
-
-libqp@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8"
-
linkify-it@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f"
dependencies:
uc.micro "^1.0.1"
-lint-staged@^7.1.0:
+lint-staged@^7.0.4:
version "7.1.0"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.1.0.tgz#1514a5b71b8d9492ca0c3d2a44769cbcbc8bcc79"
dependencies:
@@ -5424,7 +5191,7 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"
-loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0:
+loader-utils@^1.0.2, loader-utils@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
dependencies:
@@ -5439,6 +5206,10 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
+lodash._reinterpolate@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+
lodash.assignin@^4.0.9:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
@@ -5499,6 +5270,19 @@ lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+lodash.template@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
+ dependencies:
+ lodash._reinterpolate "~3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
+ dependencies:
+ lodash._reinterpolate "~3.0.0"
+
lodash.unescape@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
@@ -5507,14 +5291,14 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0:
- version "4.17.5"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
-
-lodash@^4.17.0, lodash@^4.17.10:
+lodash@4.x, lodash@^4.17.10:
version "4.17.10"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
+lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@@ -5534,33 +5318,6 @@ log-update@^1.0.2:
ansi-escapes "^1.0.0"
cli-cursor "^1.0.2"
-log4js@^2.3.9:
- version "2.5.3"
- resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.5.3.tgz#38bb7bde5e9c1c181bd75e8bc128c5cd0409caf1"
- dependencies:
- circular-json "^0.5.1"
- date-format "^1.2.0"
- debug "^3.1.0"
- semver "^5.3.0"
- streamroller "^0.7.0"
- optionalDependencies:
- amqplib "^0.5.2"
- axios "^0.15.3"
- hipchat-notifier "^1.1.0"
- loggly "^1.1.0"
- mailgun-js "^0.7.0"
- nodemailer "^2.5.0"
- redis "^2.7.1"
- slack-node "~0.2.0"
-
-loggly@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee"
- dependencies:
- json-stringify-safe "5.0.x"
- request "2.75.x"
- timespan "2.3.x"
-
loglevel@^1.4.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
@@ -5569,10 +5326,6 @@ loglevelnext@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.4.tgz#0d991d9998180991dac8bd81e73a596a8720a645"
-lolex@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6"
-
long@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b"
@@ -5606,9 +5359,11 @@ lowercase-keys@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
-lru-cache@2.2.x:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d"
+lru-cache@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee"
+ dependencies:
+ pseudomap "^1.0.1"
lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2:
version "4.1.2"
@@ -5617,41 +5372,22 @@ lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2:
pseudomap "^1.0.2"
yallist "^2.1.2"
-lru-cache@~2.6.5:
- version "2.6.5"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5"
-
macaddress@^0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
-mailcomposer@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4"
- dependencies:
- buildmail "4.0.1"
- libmime "3.0.0"
-
-mailgun-js@^0.7.0:
- version "0.7.15"
- resolved "https://registry.yarnpkg.com/mailgun-js/-/mailgun-js-0.7.15.tgz#ee366a20dac64c3c15c03d6c1b3e0ed795252abb"
- dependencies:
- async "~2.1.2"
- debug "~2.2.0"
- form-data "~2.1.1"
- inflection "~1.10.0"
- is-stream "^1.1.0"
- path-proxy "~1.0.0"
- proxy-agent "~2.0.0"
- q "~1.4.0"
- tsscmp "~1.0.0"
-
make-dir@^1.0.0, make-dir@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b"
dependencies:
pify "^3.0.0"
+makeerror@1.0.x:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
+ dependencies:
+ tmpl "1.0.x"
+
map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -5761,10 +5497,20 @@ merge-source-map@^1.1.0:
dependencies:
source-map "^0.6.1"
+merge-stream@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
+ dependencies:
+ readable-stream "^2.0.1"
+
merge2@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34"
+merge@^1.1.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
+
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -5816,7 +5562,7 @@ miller-rabin@^4.0.0:
version "1.33.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
-mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7:
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18:
version "2.1.18"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
dependencies:
@@ -5826,10 +5572,6 @@ mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-mime@^1.3.4:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
-
mime@^2.0.3, mime@^2.1.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
@@ -5850,7 +5592,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
+minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
@@ -5864,14 +5606,14 @@ minimist@1.1.x:
version "1.1.3"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8"
-minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
minimist@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de"
+minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
@@ -5911,28 +5653,12 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
-mocha@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.1.1.tgz#b774c75609dac05eb48f4d9ba1d827b97fde8a7b"
- dependencies:
- browser-stdout "1.3.1"
- commander "2.11.0"
- debug "3.1.0"
- diff "3.5.0"
- escape-string-regexp "1.0.5"
- glob "7.1.2"
- growl "1.10.3"
- he "1.1.1"
- minimatch "3.0.4"
- mkdirp "0.5.1"
- supports-color "4.4.0"
-
module-definition@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-2.2.4.tgz#c0a3771de58cf6bcf12aed2476706c596ad4b2cb"
@@ -5962,10 +5688,6 @@ move-concurrently@^1.0.1:
rimraf "^2.5.4"
run-queue "^1.0.3"
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -6015,10 +5737,6 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-native-promise-only@^0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11"
-
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -6039,10 +5757,6 @@ neo-async@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee"
-netmask@~1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
-
nice-try@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
@@ -6053,6 +5767,13 @@ no-case@^2.2.0:
dependencies:
lower-case "^1.1.1"
+node-cache@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.0.tgz#48ac796a874e762582692004a376d26dfa875811"
+ dependencies:
+ clone "2.x"
+ lodash "4.x"
+
node-dir@0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d"
@@ -6061,6 +5782,10 @@ node-forge@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300"
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+
node-libs-browser@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
@@ -6089,6 +5814,15 @@ node-libs-browser@^2.0.0:
util "^0.10.3"
vm-browserify "0.0.4"
+node-notifier@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
+ dependencies:
+ growly "^1.3.0"
+ semver "^5.4.1"
+ shellwords "^0.1.1"
+ which "^1.3.0"
+
node-pre-gyp@^0.9.0:
version "0.9.1"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0"
@@ -6116,63 +5850,10 @@ node-source-walk@^3.0.0, node-source-walk@^3.2.0, node-source-walk@^3.3.0:
dependencies:
babylon "^6.17.0"
-node-uuid@~1.4.7:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
-
node-watch@^0.5.5:
version "0.5.8"
resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.5.8.tgz#208d10f93afe2f24b3701c254f54c7552f90c905"
-nodemailer-direct-transport@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86"
- dependencies:
- nodemailer-shared "1.1.0"
- smtp-connection "2.12.0"
-
-nodemailer-fetch@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4"
-
-nodemailer-shared@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0"
- dependencies:
- nodemailer-fetch "1.6.0"
-
-nodemailer-smtp-pool@2.8.2:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72"
- dependencies:
- nodemailer-shared "1.1.0"
- nodemailer-wellknown "0.1.10"
- smtp-connection "2.12.0"
-
-nodemailer-smtp-transport@2.7.2:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77"
- dependencies:
- nodemailer-shared "1.1.0"
- nodemailer-wellknown "0.1.10"
- smtp-connection "2.12.0"
-
-nodemailer-wellknown@0.1.10:
- version "0.1.10"
- resolved "https://registry.yarnpkg.com/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5"
-
-nodemailer@^2.5.0:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9"
- dependencies:
- libmime "3.0.0"
- mailcomposer "4.0.1"
- nodemailer-direct-transport "3.3.2"
- nodemailer-shared "1.1.0"
- nodemailer-smtp-pool "2.8.2"
- nodemailer-smtp-transport "2.7.2"
- socks "1.1.9"
-
nomnom@^1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
@@ -6180,12 +5861,6 @@ nomnom@^1.8.1:
chalk "~0.4.0"
underscore "~1.6.0"
-nopt@3.x:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- dependencies:
- abbrev "1"
-
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -6193,6 +5868,12 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"
+nopt@~3.0.1:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ dependencies:
+ abbrev "1"
+
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
@@ -6283,10 +5964,6 @@ nth-check@~1.0.1:
dependencies:
boolbase "~1.0.0"
-null-check@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd"
-
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@@ -6299,7 +5976,7 @@ nwmatcher@^1.4.3:
version "1.4.4"
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e"
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
+oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@@ -6307,10 +5984,6 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-object-component@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
-
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
@@ -6372,7 +6045,7 @@ on-headers@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
-once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0:
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
@@ -6524,30 +6197,6 @@ p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
-pac-proxy-agent@1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
- get-uri "2"
- http-proxy-agent "1"
- https-proxy-agent "1"
- pac-resolver "~2.0.0"
- raw-body "2"
- socks-proxy-agent "2"
-
-pac-resolver@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd"
- dependencies:
- co "~3.0.6"
- degenerator "~1.0.2"
- ip "1.0.1"
- netmask "~1.0.4"
- thunkify "~2.1.1"
-
pako@~1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
@@ -6606,18 +6255,6 @@ parse5@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
-parseqs@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
- dependencies:
- better-assert "~1.0.0"
-
-parseuri@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
- dependencies:
- better-assert "~1.0.0"
-
parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@@ -6660,22 +6297,10 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-path-proxy@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e"
- dependencies:
- inflection "~1.3.0"
-
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-path-to-regexp@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
- dependencies:
- isarray "0.0.1"
-
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -6690,10 +6315,6 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
-pathval@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
-
pbkdf2@^3.0.3:
version "3.0.16"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c"
@@ -7287,6 +6908,14 @@ pretty-format@^22.4.3:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
+pretty@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5"
+ dependencies:
+ condense-newlines "^0.2.1"
+ extend-shallow "^2.0.1"
+ js-beautify "^1.6.12"
+
private@^0.1.6, private@^0.1.7, private@^0.1.8, private@~0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -7295,10 +6924,6 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
@@ -7323,6 +6948,10 @@ promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+
proxy-addr@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
@@ -7330,24 +6959,11 @@ proxy-addr@~2.0.3:
forwarded "~0.1.2"
ipaddr.js "1.6.0"
-proxy-agent@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499"
- dependencies:
- agent-base "2"
- debug "2"
- extend "3"
- http-proxy-agent "1"
- https-proxy-agent "1"
- lru-cache "~2.6.5"
- pac-proxy-agent "1"
- socks-proxy-agent "2"
-
prr@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
-pseudomap@^1.0.2:
+pseudomap@^1.0.1, pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@@ -7380,7 +6996,7 @@ punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-punycode@1.4.1, punycode@^1.2.4, punycode@^1.4.1:
+punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
@@ -7392,22 +7008,10 @@ q@^1.1.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
-q@~1.4.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-
-qjobs@^1.1.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071"
-
qs@6.5.1, qs@~6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-qs@~6.2.0:
- version "6.2.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
-
query-string@^4.1.0:
version "4.3.4"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
@@ -7459,11 +7063,11 @@ randomfill@^1.0.3:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
-range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0:
+range-parser@^1.0.3, 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, raw-body@2.3.2:
+raw-body@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
dependencies:
@@ -7524,7 +7128,7 @@ read-pkg@^3.0.0:
normalize-package-data "^2.3.2"
path-type "^3.0.0"
-"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
dependencies:
@@ -7545,26 +7149,6 @@ readable-stream@1.0:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@1.1.x, "readable-stream@1.x >=1.1.9":
- version "1.1.14"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@~2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
- util-deprecate "~1.0.1"
-
readdirp@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
@@ -7574,6 +7158,12 @@ readdirp@^2.0.0:
readable-stream "^2.0.2"
set-immediate-shim "^1.0.1"
+realpath-native@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0"
+ dependencies:
+ util.promisify "^1.0.0"
+
recast@^0.12.5:
version "0.12.9"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1"
@@ -7606,22 +7196,6 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
-redis-commands@^1.2.0:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2"
-
-redis-parser@^2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"
-
-redis@^2.7.1:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02"
- dependencies:
- double-ended-queue "^2.1.0-0"
- redis-commands "^1.2.0"
- redis-parser "^2.6.0"
-
reduce-css-calc@^1.2.6:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
@@ -7728,10 +7302,6 @@ repeat-element@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
-repeat-string@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae"
-
repeat-string@^1.5.2, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
@@ -7764,33 +7334,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.0"
tough-cookie ">=2.3.3"
-request@2.75.x:
- version "2.75.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- bl "~1.1.2"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.0.0"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- node-uuid "~1.4.7"
- oauth-sign "~0.8.1"
- qs "~6.2.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
-
-request@^2.0.0, request@^2.74.0, request@^2.81.0, request@^2.83.0:
+request@^2.81.0, request@^2.83.0:
version "2.85.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
dependencies:
@@ -7817,15 +7361,6 @@ request@^2.0.0, request@^2.74.0, request@^2.81.0, request@^2.83.0:
tunnel-agent "^0.6.0"
uuid "^3.1.0"
-requestretry@^1.2.2:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/requestretry/-/requestretry-1.13.0.tgz#213ec1006eeb750e8b8ce54176283d15a8d55d94"
- dependencies:
- extend "^3.0.0"
- lodash "^4.15.0"
- request "^2.74.0"
- when "^3.7.7"
-
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -7890,15 +7425,15 @@ resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
-resolve-url@^0.2.1:
+resolve-url@^0.2.1, resolve-url@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-resolve@1.1.7, resolve@1.1.x:
+resolve@1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.5.0:
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.5.0:
version "1.7.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3"
dependencies:
@@ -7938,7 +7473,7 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
-rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2:
+rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
@@ -7997,9 +7532,19 @@ safer-buffer@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-samsam@1.x, samsam@^1.1.3:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50"
+sane@^2.0.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.0.tgz#6359cd676f5efd9988b264d8ce3b827dd6b27bec"
+ dependencies:
+ anymatch "^2.0.0"
+ exec-sh "^0.2.0"
+ fb-watchman "^2.0.0"
+ micromatch "^3.1.4"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+ watch "~0.18.0"
+ optionalDependencies:
+ fsevents "^1.1.1"
sass-lookup@^1.1.0:
version "1.1.0"
@@ -8012,12 +7557,6 @@ sax@^1.2.4, sax@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-schema-utils@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
- dependencies:
- ajv "^5.0.0"
-
schema-utils@^0.4.0, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
@@ -8043,7 +7582,7 @@ semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0:
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
@@ -8051,10 +7590,6 @@ semver@5.4.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-semver@~5.0.1:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
-
send@0.16.2:
version "0.16.2"
resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
@@ -8073,7 +7608,7 @@ send@0.16.2:
range-parser "~1.2.0"
statuses "~1.4.0"
-serialize-javascript@^1.4.0:
+serialize-javascript@^1.3.0, serialize-javascript@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe"
@@ -8161,7 +7696,7 @@ shelljs@^0.8.0:
interpret "^1.0.0"
rechoir "^0.6.2"
-shelljs@^0.8.2:
+shelljs@^0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35"
dependencies:
@@ -8169,33 +7704,18 @@ shelljs@^0.8.2:
interpret "^1.0.0"
rechoir "^0.6.2"
+shellwords@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+
+sigmund@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
+
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-sinon-chai@^2.12.0:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d"
-
-sinon@^2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.4.1.tgz#021fd64b54cb77d9d2fb0d43cdedfae7629c3a36"
- dependencies:
- diff "^3.1.0"
- formatio "1.2.0"
- lolex "^1.6.0"
- native-promise-only "^0.8.1"
- path-to-regexp "^1.7.0"
- samsam "^1.1.3"
- text-encoding "0.6.4"
- type-detect "^4.0.0"
-
-slack-node@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/slack-node/-/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30"
- dependencies:
- requestretry "^1.2.2"
-
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -8214,17 +7734,6 @@ slide@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
-smart-buffer@^1.0.13, smart-buffer@^1.0.4:
- version "1.1.15"
- resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
-
-smtp-connection@2.12.0:
- version "2.12.0"
- resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1"
- dependencies:
- httpntlm "1.6.1"
- nodemailer-shared "1.1.0"
-
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -8252,59 +7761,12 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- dependencies:
- hoek "2.x.x"
-
sntp@2.x.x:
version "2.1.0"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
dependencies:
hoek "4.x.x"
-socket.io-adapter@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
-
-socket.io-client@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e"
- dependencies:
- backo2 "1.0.2"
- base64-arraybuffer "0.1.5"
- component-bind "1.0.0"
- component-emitter "1.2.1"
- debug "~2.6.4"
- engine.io-client "~3.1.0"
- has-cors "1.1.0"
- indexof "0.0.1"
- object-component "0.0.3"
- parseqs "0.0.5"
- parseuri "0.0.5"
- socket.io-parser "~3.1.1"
- to-array "0.1.4"
-
-socket.io-parser@~3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e"
- dependencies:
- component-emitter "1.2.1"
- debug "~3.1.0"
- has-binary2 "~1.0.2"
- isarray "2.0.1"
-
-socket.io@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014"
- dependencies:
- debug "~2.6.6"
- engine.io "~3.1.0"
- socket.io-adapter "~1.1.0"
- socket.io-client "2.0.4"
- socket.io-parser "~3.1.1"
-
sockjs-client@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12"
@@ -8323,28 +7785,6 @@ sockjs@0.3.19:
faye-websocket "^0.10.0"
uuid "^3.0.1"
-socks-proxy-agent@2:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3"
- dependencies:
- agent-base "2"
- extend "3"
- socks "~1.1.5"
-
-socks@1.1.9:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691"
- dependencies:
- ip "^1.1.2"
- smart-buffer "^1.0.4"
-
-socks@~1.1.5:
- version "1.1.10"
- resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a"
- dependencies:
- ip "^1.1.4"
- smart-buffer "^1.0.13"
-
sort-keys@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
@@ -8361,6 +7801,15 @@ source-list-map@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
+source-map-resolve@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761"
+ dependencies:
+ atob "~1.1.0"
+ resolve-url "~0.2.1"
+ source-map-url "~0.3.0"
+ urix "~0.1.0"
+
source-map-resolve@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
@@ -8387,10 +7836,24 @@ source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+source-map-url@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9"
+
+source-map@0.5.6:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+
+source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+source-map@^0.1.38:
+ version "0.1.43"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
+ dependencies:
+ amdefine ">=0.0.4"
+
source-map@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
@@ -8401,12 +7864,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
-source-map@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
- dependencies:
- amdefine ">=0.0.4"
-
spdx-correct@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
@@ -8501,10 +7958,6 @@ static-extend@^0.1.1:
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-statuses@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
statuses@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
@@ -8547,15 +8000,6 @@ stream-to-observable@^0.2.0:
dependencies:
any-observable "^0.2.0"
-streamroller@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b"
- dependencies:
- date-format "^1.2.0"
- debug "^3.1.0"
- mkdirp "^0.5.1"
- readable-stream "^2.3.0"
-
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -8564,6 +8008,13 @@ string-argv@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736"
+string-length@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
+ dependencies:
+ astral-regex "^1.0.0"
+ strip-ansi "^4.0.0"
+
string-template@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add"
@@ -8601,7 +8052,7 @@ stringify-object@^3.2.1, stringify-object@^3.2.2:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-stringstream@~0.0.4, stringstream@~0.0.5:
+stringstream@~0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -8628,16 +8079,16 @@ strip-bom-stream@^2.0.0:
first-chunk-stream "^2.0.0"
strip-bom "^2.0.0"
+strip-bom@3.0.0, strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
dependencies:
is-utf8 "^0.2.0"
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
-
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -8652,7 +8103,7 @@ strip-indent@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
-strip-json-comments@~2.0.1:
+strip-json-comments@^2.0.0, strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@@ -8677,17 +8128,11 @@ sugarss@^1.0.0:
dependencies:
postcss "^6.0.14"
-supports-color@4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
- dependencies:
- has-flag "^2.0.0"
-
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-supports-color@^3.1.0, supports-color@^3.2.3:
+supports-color@^3.1.2, supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
dependencies:
@@ -8765,9 +8210,15 @@ temp@^0.8.1:
os-tmpdir "^1.0.0"
rimraf "~2.2.6"
-text-encoding@0.6.4:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19"
+test-exclude@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
+ dependencies:
+ arrify "^1.0.1"
+ micromatch "^3.1.8"
+ object-assign "^4.1.0"
+ read-pkg-up "^1.0.1"
+ require-main-filename "^1.0.1"
text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
@@ -8777,6 +8228,10 @@ textextensions@2:
version "2.2.0"
resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz#38ac676151285b658654581987a0ce1a4490d286"
+throat@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
+
through2@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
@@ -8788,10 +8243,6 @@ through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-thunkify@~2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
-
thunky@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
@@ -8806,19 +8257,15 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
-timespan@2.3.x:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929"
-
-tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33:
+tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
os-tmpdir "~1.0.2"
-to-array@0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
+tmpl@1.0.x:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
to-arraybuffer@^1.0.0:
version "1.0.1"
@@ -8854,7 +8301,7 @@ toposort@^1.0.0:
version "1.0.6"
resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec"
-tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.0, tough-cookie@~2.3.3:
+tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
dependencies:
@@ -8878,9 +8325,14 @@ trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-tsscmp@~1.0.0:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97"
+tsconfig@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7"
+ dependencies:
+ "@types/strip-bom" "^3.0.0"
+ "@types/strip-json-comments" "0.0.30"
+ strip-bom "^3.0.0"
+ strip-json-comments "^2.0.0"
tty-browserify@0.0.0:
version "0.0.0"
@@ -8892,10 +8344,6 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
-tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
-
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
@@ -8906,10 +8354,6 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
-type-detect@^4.0.0:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
-
type-is@~1.6.15, type-is@~1.6.16:
version "1.6.16"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
@@ -8976,18 +8420,10 @@ uglifyjs-webpack-plugin@^1.2.4:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
-ultron@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
-
underscore@~1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
-underscore@~1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
-
union-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
@@ -9062,14 +8498,10 @@ uri-js@^3.0.2:
dependencies:
punycode "^2.1.0"
-urix@^0.1.0:
+urix@^0.1.0, urix@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-url-join@^2.0.2:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728"
-
url-join@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a"
@@ -9133,18 +8565,11 @@ user-home@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
-useragent@2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e"
- dependencies:
- lru-cache "2.2.x"
- tmp "0.0.x"
-
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-util.promisify@1.0.0:
+util.promisify@1.0.0, util.promisify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
dependencies:
@@ -9173,10 +8598,6 @@ uuid@^3.0.1, uuid@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
-uws@~9.14.0:
- version "9.14.0"
- resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95"
-
v8-compile-cache@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4"
@@ -9258,14 +8679,6 @@ vm-browserify@0.0.4:
dependencies:
indexof "0.0.1"
-void-elements@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
-
-vue-add-globals@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/vue-add-globals/-/vue-add-globals-1.0.1.tgz#151f241426e70cbc790a1f31bb0f4435d7575efc"
-
vue-eslint-parser@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1"
@@ -9281,11 +8694,26 @@ vue-hot-reload-api@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926"
+vue-jest@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-2.5.0.tgz#9dcf902720fa47ba98e60eb771a02c13e6b4eb56"
+ dependencies:
+ babel-plugin-transform-es2015-modules-commonjs "^6.26.0"
+ chalk "^2.1.0"
+ extract-from-css "^0.4.4"
+ find-babel-config "^1.1.0"
+ js-beautify "^1.6.14"
+ node-cache "^4.1.1"
+ object-assign "^4.1.1"
+ source-map "^0.5.6"
+ tsconfig "^7.0.0"
+ vue-template-es2015-compiler "^1.5.3"
+
vue-lazyload@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz#901f9ec15c7e6ca78781a2bae4a343686bdedb2c"
-vue-loader@^15.0.9:
+vue-loader@^15.0.0:
version "15.0.9"
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.0.9.tgz#2f3f59ffd395b03e413bbe14db1369c2f57917c8"
dependencies:
@@ -9299,6 +8727,19 @@ vue-router@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9"
+vue-server-renderer@^2.5.16:
+ version "2.5.16"
+ resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.5.16.tgz#279ef8e37e502a0de3a9ae30758cc04a472eaac0"
+ dependencies:
+ chalk "^1.1.3"
+ hash-sum "^1.0.2"
+ he "^1.1.0"
+ lodash.template "^4.4.0"
+ lodash.uniq "^4.5.0"
+ resolve "^1.2.0"
+ serialize-javascript "^1.3.0"
+ source-map "0.5.6"
+
vue-sfc-compiler@^0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/vue-sfc-compiler/-/vue-sfc-compiler-0.0.8.tgz#fdf8189f5385b080b50aae7f9f806146b100d39e"
@@ -9319,7 +8760,7 @@ vue-template-compiler@2.5.16:
de-indent "^1.0.2"
he "^1.1.0"
-vue-template-es2015-compiler@^1.6.0:
+vue-template-es2015-compiler@^1.5.3, vue-template-es2015-compiler@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18"
@@ -9333,6 +8774,19 @@ w3c-hr-time@^1.0.1:
dependencies:
browser-process-hrtime "^0.1.2"
+walker@~1.0.5:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+ dependencies:
+ makeerror "1.0.x"
+
+watch@~0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
+ dependencies:
+ exec-sh "^0.2.0"
+ minimist "^1.2.0"
+
watchpack@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed"
@@ -9367,7 +8821,7 @@ webpack-addons@^1.1.5:
dependencies:
jscodeshift "^0.4.0"
-webpack-cli@^2.1.3:
+webpack-cli@^2.0.15:
version "2.1.3"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.1.3.tgz#65d166851abaa56067ef3f716b02a97ba6bbe84d"
dependencies:
@@ -9410,18 +8864,6 @@ webpack-dev-middleware@3.1.3:
url-join "^4.0.0"
webpack-log "^1.0.1"
-webpack-dev-middleware@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz#a51692801e8310844ef3e3790e1eacfe52326fd4"
- dependencies:
- loud-rejection "^1.6.0"
- memory-fs "~0.4.1"
- mime "^2.1.0"
- path-is-absolute "^1.0.0"
- range-parser "^1.0.3"
- url-join "^2.0.2"
- webpack-log "^1.0.1"
-
webpack-dev-server@3.1.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz#9a08d13c4addd1e3b6d8ace116e86715094ad5b4"
@@ -9464,6 +8906,12 @@ webpack-log@^1.0.1, webpack-log@^1.1.2:
loglevelnext "^1.0.1"
uuid "^3.1.0"
+webpack-merge@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216"
+ dependencies:
+ lodash "^4.17.5"
+
webpack-sources@^1.0.1, webpack-sources@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
@@ -9471,7 +8919,7 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0:
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@^4.8.1:
+webpack@^4.6.0:
version "4.8.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.8.1.tgz#59e38f99f2751c931dd09a035aba7bec4b5f916e"
dependencies:
@@ -9527,10 +8975,6 @@ whatwg-url@^6.4.0:
tr46 "^1.0.0"
webidl-conversions "^4.0.1"
-when@^3.7.7:
- version "3.7.8"
- resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82"
-
whet.extend@~0.9.9:
version "0.9.9"
resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
@@ -9539,7 +8983,7 @@ which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-which@^1.1.1, which@^1.2.1, which@^1.2.10, which@^1.2.14, which@^1.2.9:
+which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
dependencies:
@@ -9559,14 +9003,14 @@ wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-wordwrap@^1.0.0, wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+
worker-farm@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
@@ -9592,6 +9036,14 @@ write-file-atomic@^1.2.0:
imurmurhash "^0.1.4"
slide "^1.1.5"
+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:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
write@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
@@ -9605,26 +9057,10 @@ ws@^4.0.0:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
-ws@~3.3.1:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
- dependencies:
- async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
- ultron "~1.1.0"
-
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
-xmlhttprequest-ssl@~1.5.4:
- version "1.5.5"
- resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
-
-xregexp@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
-
xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@@ -9645,6 +9081,12 @@ yallist@^3.0.0, yallist@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
+yargs-parser@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ dependencies:
+ camelcase "^4.1.0"
+
yargs-parser@^9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
@@ -9668,6 +9110,23 @@ yargs@11.0.0:
y18n "^3.2.1"
yargs-parser "^9.0.2"
+yargs@^10.0.3:
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^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 "^8.1.0"
+
yargs@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
@@ -9700,10 +9159,6 @@ yargs@~3.10.0:
decamelize "^1.0.0"
window-size "0.1.0"
-yeast@0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
-
yeoman-environment@^2.0.0, yeoman-environment@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.0.6.tgz#ae1b21d826b363f3d637f88a7fc9ea7414cb5377"