Authored by TaoHuang

Merge branch 'develop' of http://git.yoho.cn/fe/xianyu-ufo-app-web into develop

  1 +import Mine from './mine';
  2 +
1 export default [ 3 export default [
2 { 4 {
3 name: 'channel', 5 name: 'channel',
4 path: '/xianyu/channel', 6 path: '/xianyu/channel',
5 component: () => import('./channel/channel') 7 component: () => import('./channel/channel')
6 }, 8 },
  9 + ...Mine
7 ]; 10 ];
  1 +<template>
  2 + <div class="orders">
  3 + <div v-for="(item, index) in orders" :key="index" class="order-cell">
  4 + <p class="order-num">{{item.num}}</p>
  5 + <p class="order-text">{{item.name}}</p>
  6 + </div>
  7 + </div>
  8 +</template>
  9 +
  10 +<script>
  11 +import {createNamespacedHelpers} from 'vuex';
  12 +
  13 +const {mapActions} = createNamespacedHelpers('home/mine');
  14 +
  15 +export default {
  16 + name: 'order',
  17 + props: {
  18 +
  19 + },
  20 + data() {
  21 + return {
  22 + orders: [
  23 + {name: '待发货',num:1},
  24 + {name: '已发货',num:1},
  25 + {name: '交易成功',num:2},
  26 + {name: '交易失败',num:2}
  27 + ]
  28 + };
  29 + },
  30 + computed: {
  31 +
  32 + },
  33 + mounted() {
  34 +
  35 + },
  36 + methods: {
  37 + ...mapActions([]),
  38 + }
  39 +
  40 +};
  41 +</script>
  42 +
  43 +<style lang="scss" scoped>
  44 + .orders {
  45 + display: flex;
  46 + height: 100px;
  47 + justify-content: space-between;
  48 + }
  49 + .order-cell {
  50 + flex: 1;
  51 + justify-content: center;
  52 + align-items: center;
  53 + &:not(:last-child) {
  54 + position: relative;
  55 + &::after {
  56 + content: '';
  57 + position: absolute;
  58 + width: 1px;
  59 + height: 80px;
  60 + top: 10px;
  61 + right: 0;
  62 + background: linear-gradient(#fff, #F0F0F0,#fff)
  63 + }
  64 + }
  65 + }
  66 + .order-num {
  67 + font-family: 'Alte DIN 1451 Mittelschrift';
  68 + font-size: 32px;
  69 + text-align: center;
  70 + }
  71 + .order-text {
  72 + padding-top: 10px;
  73 + font-size: 24;
  74 + color: #444;
  75 + text-align: center;
  76 + }
  77 +</style>
  1 +<template>
  2 + <div class="marquee_box">
  3 + <ul class="marquee_list" :class="{marquee_top:animate}">
  4 + <li v-for="(item,index) in lists" :key="index">
  5 + {{item.name}}
  6 + </li>
  7 + </ul>
  8 + </div>
  9 +</template>
  10 +
  11 +<script>
  12 +import {createNamespacedHelpers} from 'vuex';
  13 +
  14 +const {mapState, mapActions} = createNamespacedHelpers('home/mine');
  15 +
  16 +export default {
  17 + name: 'scroll',
  18 + props: {
  19 +
  20 + },
  21 + data() {
  22 + return {
  23 + animate:false,
  24 + // lists:[
  25 + // {name:'公告1'},
  26 + // {name:'公告2'}
  27 + // ],
  28 + };
  29 + },
  30 + computed: {
  31 + ...mapState({
  32 + lists: state => state.rollNoticeList
  33 + })
  34 + },
  35 + mounted() {
  36 + this.fetchRollBoardList()
  37 + },
  38 + created(){
  39 + if(this.lists.length > 1) {
  40 + setInterval(this.showMarquee, 3000)
  41 + }
  42 +},
  43 + methods: {
  44 + ...mapActions(['fetchRollBoardList']),
  45 +  showMarquee() {
  46 + let that = this
  47 + that.animate = true;
  48 + setTimeout(()=>{
  49 + that.lists.push(that.lists[0]);
  50 + that.lists.shift();
  51 + that.animate = false;
  52 + },800)
  53 + },
  54 + }
  55 +}
  56 +</script>
  57 +
  58 +<style lang="scss" scoped>
  59 +.marquee_box {
  60 + position: relative;
  61 + width: 100%;
  62 + height: 90px;
  63 + overflow: hidden;
  64 +}
  65 +
  66 +.marquee_list {
  67 + display: block;
  68 + position: absolute;
  69 + top: 0;
  70 + left: 0;
  71 +}
  72 +
  73 +.marquee_top {
  74 + transition: all 0.8s;
  75 + margin-top: -90px
  76 +}
  77 +
  78 +.marquee_list li {
  79 + height: 90px;
  80 + line-height: 90px;
  81 + font-size: 24px;
  82 + color: #D0021B;
  83 + padding-left: 20px;
  84 +}
  85 +</style>
  1 +<template>
  2 + <div class="tab-item" :class="itemClass">
  3 + <div class="title" :class="titleClass">{{data.title}}</div>
  4 + <slot><div class="text">{{data.num}}</div></slot>
  5 + <i class="cubeic-arrow"></i>
  6 + </div>
  7 +</template>
  8 +
  9 +<script>
  10 +import {createNamespacedHelpers} from 'vuex';
  11 +
  12 +const {mapActions} = createNamespacedHelpers('home/mine');
  13 +
  14 +export default {
  15 + name: 'tabItem',
  16 + props: {
  17 + data: {
  18 + type: Object,
  19 + default: {}
  20 + },
  21 + noLine: {
  22 + type: Boolean,
  23 + default: false
  24 + },
  25 + small: {
  26 + type: Boolean,
  27 + default: false
  28 + },
  29 + grey: {
  30 + type: Boolean,
  31 + default: false
  32 + },
  33 + titleBold: {
  34 + type: Boolean,
  35 + default: false
  36 + },
  37 + titleSmall: {
  38 + type: Boolean,
  39 + default:false
  40 + }
  41 + },
  42 + data() {
  43 + return {
  44 +
  45 + };
  46 + },
  47 + computed: {
  48 + itemClass() {
  49 + return {
  50 + 'line': !this.noLine,
  51 + 'grey': this.grey,
  52 + 'small': this.small
  53 + }
  54 + },
  55 + titleClass() {
  56 + return {
  57 + 'title-bold': this.titleBold,
  58 + 'title-size': this.titleSmall
  59 + }
  60 + }
  61 + },
  62 + mounted() {
  63 +
  64 + },
  65 + methods: {
  66 + ...mapActions([]),
  67 + }
  68 +
  69 +};
  70 +</script>
  71 +
  72 +<style lang="scss" scoped>
  73 +.tab-item {
  74 + display: flex;
  75 + width: 100%;
  76 + height: 120px;
  77 + line-height: 120px;
  78 +}
  79 +.small {
  80 + height: 90px;
  81 + line-height: 90px;
  82 +}
  83 +.grey {
  84 + background-color: #F5F7F9;
  85 +}
  86 +.line {
  87 + border-bottom: solid 1px #eee;
  88 +}
  89 +.title {
  90 + flex: 1;
  91 + font-size: 32px;
  92 + color: black;
  93 + min-width: 100px;
  94 +}
  95 +.title-bold {
  96 + font-weight: bold;
  97 +}
  98 +.title-size {
  99 + font-size: 28px;
  100 +}
  101 +.text {
  102 + font-family: 'Alte DIN 1451 Mittelschrift';
  103 + color: black;
  104 + text-align: right;
  105 + font-size: 32px;
  106 +}
  107 +.cubeic-arrow {
  108 + color: #D8D8D8;
  109 + margin-left: 10px;
  110 + font-size: 32px;
  111 +}
  112 +
  113 +</style>
  1 +export default [{
  2 + name: 'mine',
  3 + path: '/xianyu/home/mine.html',
  4 + component: () => import(/* webpackChunkName: "mine" */ './mine')
  5 +}];
  1 +<template>
  2 + <LayoutApp :show-back="true">
  3 + <div class="body" ref="body">
  4 + <div v-for="item in tabList" :key="item.name">
  5 + <tab-item v-if="item.name === 'board'" :data="item" noLine titleBold titleSmall small grey>
  6 + <scroll></scroll>
  7 + </tab-item>
  8 + <order v-else-if="item.name === 'order'"></order>
  9 + <tab-item v-else-if="item.name === 'sale'" :data="item" noLine titleBold></tab-item>
  10 + <tab-item v-else :data="item"></tab-item>
  11 + </div>
  12 + </div>
  13 + </LayoutApp>
  14 +</template>
  15 +
  16 +<script>
  17 +import tabItem from './components/tabItem';
  18 +import order from './components/order';
  19 +import scroll from './components/scroll';
  20 +
  21 +import { createNamespacedHelpers } from 'vuex';
  22 +
  23 +const {mapState} = createNamespacedHelpers('home/mine');
  24 +export default {
  25 + data() {
  26 + return {
  27 + tabList: [
  28 + {name: 'board', title: '公告栏'},
  29 + {name:'sale', title: '出售中', num: 1},
  30 + {name: 'order'},
  31 + {name: 'income', title: '交易收入', num: 1},
  32 + {name: 'buyOrder', title: '我购买的订单', num: 1},
  33 + {name: 'buy', title: '我的求购', num: 1},
  34 + {name: 'collect', title: '我的收藏', num: 1}
  35 + ]
  36 + }
  37 + },
  38 + computed:{
  39 + ...mapState({
  40 + username: state => state.username
  41 + })
  42 + },
  43 + components: {
  44 + tabItem,
  45 + order,
  46 + scroll
  47 + }
  48 +};
  49 +</script>
  50 +
  51 +<style lang="scss" scoped>
  52 +.body {
  53 + height: 100%;
  54 + overflow-y: auto;
  55 + background-color: white;
  56 + padding: 0 40px;
  57 +}
  58 +</style>
  1 +import PriceChange from './price-change';
  2 +
1 export default [{ 3 export default [{
2 name: 'OrderDetail', 4 name: 'OrderDetail',
3 path: '/xianyu/order/detail.html', 5 path: '/xianyu/order/detail.html',
@@ -6,4 +8,4 @@ export default [{ @@ -6,4 +8,4 @@ export default [{
6 name: 'OrderConfirm', 8 name: 'OrderConfirm',
7 path: '/xianyu/order/confirm.html', 9 path: '/xianyu/order/confirm.html',
8 component: () => import(/* webpackChunkName: "order" */ './confirm') 10 component: () => import(/* webpackChunkName: "order" */ './confirm')
9 -}]; 11 +}, ...PriceChange];
  1 +<template>
  2 + <div class="order-item-wrapper">
  3 + <div class="item-img">
  4 + <img
  5 + alt=""
  6 + src="//img10.static.yhbimg.com/goodsimg/2019/06/17/16/01c74e27eab148e4731af0e53518878972.jpg?imageMogr2/thumbnail/235x314/position/center/quality/60/format/webp"
  7 + />
  8 + </div>
  9 + <div class="item-info">
  10 + <div class="price-status">
  11 + <span class="price">¥299.00</span>
  12 + <slot name="orderStatus" :orderStatus="orderStatus"></slot>
  13 + </div>
  14 + <p class="item-name">
  15 + Nike Air Max 97 秋季限定款Kobe签名独家发售 限购
  16 + </p>
  17 + <p class="item-spec">
  18 + 蓝色,39码
  19 + </p>
  20 + </div>
  21 + </div>
  22 +</template>
  23 +
  24 +<script>
  25 +export default {
  26 + data() {
  27 + return {
  28 + orderStatus: "交易成功"
  29 + };
  30 + }
  31 +};
  32 +</script>
  33 +
  34 +<style lang="scss" scoped>
  35 +.order-item-wrapper {
  36 + display: flex;
  37 +
  38 + .item-img {
  39 + max-width: 180px;
  40 + max-height: 180px;
  41 +
  42 + & > img {
  43 + width: 100%;
  44 + height: 100%;
  45 + }
  46 + }
  47 +
  48 + .item-name {
  49 + display: -webkit-box;
  50 + -webkit-line-clamp: 2;
  51 + -webkit-box-orient: vertical;
  52 + overflow: hidden;
  53 + text-overflow: ellipsis;
  54 + }
  55 +
  56 + .item-info {
  57 + display: flex;
  58 + justify-content: space-between;
  59 + align-items: center;
  60 + }
  61 +}
  62 +</style>
  1 +<template>
  2 + <scroll class="order-list-wrapper"> </scroll>
  3 +</template>
  4 +
  5 +<script>
  6 +import { Scroll } from "cube-ui";
  7 +export default {
  8 + components: {
  9 + Scroll
  10 + }
  11 +};
  12 +</script>
  13 +
  14 +<style lang="scss" scoped>
  15 +.order-list-wrapper {
  16 + height: 100vh;
  17 +}
  18 +</style>
  1 +const routers = [
  2 + // 买家订单
  3 + // owner: {sell, buy} 订单来源
  4 + {
  5 + name: 'BuyerOrderList',
  6 + path: '/xianyu/order/list/:owner',
  7 + component: () => import('./order-list'),
  8 + },
  9 +];
  10 +
  11 +export default routers;
  1 +<template> </template>
  2 +
  3 +<script>
  4 +import { Button } from "cube-ui";
  5 +
  6 +export default {
  7 + components: {
  8 + Button
  9 + }
  10 +};
  11 +</script>
  12 +<style lang="scss" scoped>
  13 +</style>
  1 +// 调价首页路由
  2 +export default [{
  3 + path: '/xianyu/order/priceChange/:orderId(\\d+).html',
  4 + name: 'PriceChange',
  5 + component: () => import(/* webpackChunkName: "priceChange" */ './list')
  6 +}];
  1 +<template>
  2 + <LayoutApp :title="title" :class="classes">
  3 + <ScrollView ref="scroll" :options="scrollOption" @pulling-up="onPullingUp" @pulling-down="onPullingDown">
  4 + <div class="order-page">
  5 + <div class="title">出售中</div>
  6 + <div class="product" @click="onClickProduct">
  7 + <ImgSize class="pro-img" :src="productInfo.imageUrl" :width="200" :height="200"></ImgSize>
  8 + </div>
  9 + </div>
  10 + </ScrollView>
  11 + </LayoutApp>
  12 +</template>
  13 +
  14 +<script>
  15 +import LayoutApp from '../../../components/layout/layout-app';
  16 +import ScrollView from '../../../components/layout/scroll-view';
  17 +
  18 +import {createNamespacedHelpers} from 'vuex';
  19 +import ImgSize from '../../../components/img-size';
  20 +
  21 +const {mapState, mapActions, mapMutations} = createNamespacedHelpers('order/priceChange')
  22 +
  23 +export default {
  24 + components: {ImgSize, ScrollView, LayoutApp},
  25 + name: 'PriceChange',
  26 + data() {
  27 + return {
  28 + title: '订单',
  29 + classes: {},
  30 + scrollOption: {
  31 + pullDownRefresh: {
  32 + threshold: 70,
  33 + stop: 90
  34 + },
  35 + observeDOM: false,
  36 + pullUpLoad: true
  37 + },
  38 + page: 1,
  39 + modalLoad: false,
  40 + pageSize: 10,
  41 + };
  42 + },
  43 + asyncData({store, router}) {
  44 + return store.dispatch('order/priceChange/fetchProduct', {productId: router.params.orderId});
  45 + },
  46 + mounted() {
  47 + this.modalLoad = true;
  48 + },
  49 + computed: {
  50 + ...mapState(['productInfo', 'skcs']),
  51 + },
  52 + methods: {
  53 + ...mapMutations(['fetchProduct']),
  54 + async onPullingUp() {
  55 +
  56 + },
  57 + async onPullingDown() {
  58 +
  59 + },
  60 + onClickProduct() {
  61 +
  62 + }
  63 + }
  64 +};
  65 +</script>
  66 +
  67 +<style lang="scss" scoped>
  68 + .order-page {
  69 + .title {
  70 + line-height: 95px;
  71 + font-size: 68px;
  72 + font-weight: bold;
  73 + padding: 24px 40px 0 40px;
  74 + }
  75 + }
  76 +</style>
  1 +export default [{
  2 + path: '/xianyu/test/test.html',
  3 + name: 'testPage',
  4 + component: () => import(/* webpackChunkName: "invite" */ './test'),
  5 +}];
  1 +<template>
  2 + <div class="page-container">
  3 + <LayoutApp :title="title" :show-back="false"></LayoutApp>
  4 + </div>
  5 +
  6 +</template>
  7 +
  8 +<script>
  9 +import LayoutApp from '../components/layout/layout-app';
  10 +
  11 +export default {
  12 + name: 'testPage',
  13 + components: {LayoutApp},
  14 + mounted() {
  15 +
  16 + },
  17 + data() {
  18 + return {
  19 + title: '测试页面',
  20 + };
  21 + },
  22 + computed: {
  23 +
  24 + },
  25 + methods: {
  26 +
  27 + }
  28 +};
  29 +</script>
  30 +
  31 +<style lang="scss" scoped>
  32 + .page-container {
  33 + position: absolute;
  34 + left: 0;
  35 + top: 0;
  36 + right: 0;
  37 + bottom: 0;
  38 + overflow: hidden;
  39 +
  40 + /deep/ .layout {
  41 + .layout-header {
  42 + background-color: #444;
  43 + color: #fff;
  44 + }
  45 + }
  46 + }
  47 +
  48 +</style>
  1 +import mine from './mine';
1 export default function() { 2 export default function() {
2 return { 3 return {
3 namespaced: true, 4 namespaced: true,
@@ -7,5 +8,8 @@ export default function() { @@ -7,5 +8,8 @@ export default function() {
7 }, 8 },
8 actions: { 9 actions: {
9 }, 10 },
  11 + modules: {
  12 + mine: mine()
  13 + }
10 }; 14 };
11 } 15 }
  1 +export default function() {
  2 + return {
  3 + namespaced: true,
  4 + state: {
  5 + rollNoticeList: [],
  6 + },
  7 + mutations: {
  8 + addList(state, { list }) {
  9 + state.rollNoticeList = state.rollNoticeList.concat(list);
  10 + },
  11 + },
  12 + actions: {
  13 + async fetchRollBoardList({ commit }) {
  14 + const result = await this.$api.get('/api/ufo/mine/rollBoardList', {});
  15 +
  16 + if (result.code === 200) {
  17 + commit('addList', { list: result.data.list });
  18 + }
  19 + }
  20 + },
  21 + };
  22 +}
1 import Vue from 'vue'; 1 import Vue from 'vue';
2 import Vuex from 'vuex'; 2 import Vuex from 'vuex';
3 -import {createApi} from 'create-api'; 3 +import { createApi } from 'create-api';
4 import storeYoho from './yoho'; 4 import storeYoho from './yoho';
5 -import storeOrder from './order'; 5 +import storeOrder, { buyerOderList } from './order';
6 import storeList from './list'; 6 import storeList from './list';
7 import storeProduct from './product'; 7 import storeProduct from './product';
8 import storeHome from './home'; 8 import storeHome from './home';
@@ -17,9 +17,12 @@ export function createStore(context) { @@ -17,9 +17,12 @@ export function createStore(context) {
17 order: storeOrder(), 17 order: storeOrder(),
18 list: storeList(), 18 list: storeList(),
19 produt: storeProduct(), 19 produt: storeProduct(),
20 - home: storeHome() 20 + home: storeHome(),
  21 +
  22 + // 买家订单列表
  23 + buyerOderList: buyerOderList(),
21 }, 24 },
22 - strict: process.env.NODE_ENV !== 'production' 25 + strict: process.env.NODE_ENV !== 'production',
23 }); 26 });
24 27
25 const api = createApi(context, store); 28 const api = createApi(context, store);
  1 +import priceChange from './price-change';
1 import { get } from 'lodash'; 2 import { get } from 'lodash';
2 import { getImgUrl } from '../../common/utils'; 3 import { getImgUrl } from '../../common/utils';
  4 +export { default as buyerOderList } from './order-list';
3 5
4 export default function() { 6 export default function() {
5 return { 7 return {
6 namespaced: true, 8 namespaced: true,
  9 + modules: {
  10 + priceChange: priceChange()
  11 + },
7 state: { 12 state: {
8 list: [], 13 list: [],
9 resource: '', 14 resource: '',
10 page: 1, 15 page: 1,
11 - size: 10 16 + size: 10,
12 }, 17 },
13 mutations: { 18 mutations: {
14 addList(state, { list }) { 19 addList(state, { list }) {
@@ -19,7 +24,7 @@ export default function() { @@ -19,7 +24,7 @@ export default function() {
19 }, 24 },
20 changePage(state, { page }) { 25 changePage(state, { page }) {
21 state.page = page; 26 state.page = page;
22 - } 27 + },
23 }, 28 },
24 actions: { 29 actions: {
25 async fetchList({ commit, state }) { 30 async fetchList({ commit, state }) {
@@ -27,7 +32,7 @@ export default function() { @@ -27,7 +32,7 @@ export default function() {
27 32
28 const result = await this.$api.get('/api/union/inviteList', { 33 const result = await this.$api.get('/api/union/inviteList', {
29 page: page, 34 page: page,
30 - size: state.size 35 + size: state.size,
31 }); 36 });
32 37
33 if (result.code === 200) { 38 if (result.code === 200) {
@@ -38,16 +43,20 @@ export default function() { @@ -38,16 +43,20 @@ export default function() {
38 return result.data ? result.data.length : 0; 43 return result.data ? result.data.length : 0;
39 }, 44 },
40 async fetchResource({ commit }) { 45 async fetchResource({ commit }) {
41 - const result = await this.$api.get('/api/yoho/resource', { content_code: 'a51c8222d21b3d88faa4a49c01c9c93e' }); 46 + const result = await this.$api.get('/api/yoho/resource', {
  47 + content_code: 'a51c8222d21b3d88faa4a49c01c9c93e',
  48 + });
42 49
43 - commit('addResource', { url: getImgUrl(get(result, 'data[0].data.src') || '', 1000, 1000) }); 50 + commit('addResource', {
  51 + url: getImgUrl(get(result, 'data[0].data.src') || '', 1000, 1000),
  52 + });
44 }, 53 },
45 54
46 async fetchUnionStatus() { 55 async fetchUnionStatus() {
47 const result = await this.$api.get('/api/union/queryUnion'); 56 const result = await this.$api.get('/api/union/queryUnion');
48 57
49 return result; 58 return result;
50 - } 59 + },
51 }, 60 },
52 }; 61 };
53 } 62 }
  1 +// 订单来源, 接口对应查询参数: tabType
  2 +export const ownType = {
  3 + BUY: 'buy', // 买家
  4 + SELL: 'sell', // 卖家
  5 +};
  6 +
  7 +// 卖家订单状态, 接口对应查询参数: type
  8 +export const sellerOrderStatus = {
  9 + IN_SALE: 1, // 出售中
  10 + TO_BE_DELIVERED: 2, // 待发货
  11 + SHIPPED: 3, // 已发货
  12 + DONE: 5, // 交易完成
  13 + FAILED: 6, // 交易失败
  14 +};
  15 +
  16 +// 买家订单状态,接口对应查询参数: type
  17 +export const buyerOrderStatus = {
  18 + UNPAID: 2, // 未付款
  19 + TO_BE_DELIVERED: 3, // 待发货
  20 + PENDING_RECEIPT: 4, // 待收货
  21 + DONE: 5, // 交易成功
  22 + FAILED: 6, // 交易失败
  23 +};
  1 +export default function() {
  2 + return {
  3 + namespaced: true,
  4 + state: {},
  5 + mutations: {},
  6 + actions: {},
  7 + getters: {},
  8 + };
  9 +}
  1 +import * as Types from './types';
  2 +import {first, get, flatten} from 'lodash';
  3 +
  4 +export default {
  5 + async fetchProduct({commit}, {productId, page = 1, refresh = false}) {
  6 + commit(Types.FETCH_ORDER_PRODUCT_REQUEST);
  7 +
  8 + let result;
  9 +
  10 + if (refresh) {
  11 + const results = await Promise.all(Array.from(new Array(page)).map((v, i) => {
  12 + return this.$api.get('/api/ufo/seller/entryGoodsSizeList', {
  13 + productId,
  14 + page: i + 1
  15 + });
  16 + }));
  17 +
  18 + result = {
  19 + code: 200,
  20 + data: {
  21 + productInfo: get(first(results), 'data.productInfo'),
  22 + data: flatten(results.map(r => get(r, 'data.data', [])))
  23 + }
  24 + };
  25 + } else {
  26 + result = await this.$api.get('/api/ufo/seller/entryGoodsSizeList', {
  27 + productId,
  28 + page
  29 + });
  30 + }
  31 +
  32 + console.log(result);
  33 +
  34 + if (result && result.code === 200) {
  35 + commit(Types.FETCH_ORDER_PRODUCT_SUCCESS, {
  36 + order: result.data,
  37 + refresh
  38 + });
  39 + } else {
  40 + commit(Types.FETCH_ORDER_PRODUCT_FAILED);
  41 + }
  42 + }
  43 +};
  1 +import actions from './actions';
  2 +import mutations from './mutations';
  3 +
  4 +export default function() {
  5 + return {
  6 + namespaced: true,
  7 + state: {
  8 + fetchingPro: false,
  9 + fetchingNoSale: false,
  10 + fetchingChangePrice: false,
  11 + fetchingCalcPrice: false,
  12 + productInfo: {},
  13 + skcs: []
  14 + },
  15 + actions,
  16 + mutations
  17 + };
  18 +}
  1 +import * as Types from './types';
  2 +
  3 +export default {
  4 + [Types.FETCH_ORDER_PRODUCT_REQUEST](state) {
  5 + state.orderInfo = {};
  6 + state.fetchingPro = true;
  7 + },
  8 + [Types.FETCH_ORDER_PRODUCT_FAILED](state) {
  9 + state.fetchingPro = false;
  10 + },
  11 + [Types.FETCH_ORDER_PRODUCT_SUCCESS](state, {order, refresh}) {
  12 + state.fetchingPro = false;
  13 +
  14 + if (order.productInfo && state.productInfo.productId !== order.productInfo.productId || refresh) {
  15 + state.productInfo = order.productInfo || state.productInfo;
  16 + }
  17 +
  18 + if (refresh) {
  19 + state.skcs = order.data;
  20 + } else if (order.data) {
  21 + state.skcs = state.skcs.concat(order.data);
  22 + }
  23 + },
  24 +};
  1 +export const FETCH_ORDER_PRODUCT_REQUEST = 'FETCH_ORDER_PRODUCT_REQUEST';
  2 +export const FETCH_ORDER_PRODUCT_FAILED = 'FETCH_ORDER_PRODUCT_FAILED';
  3 +export const FETCH_ORDER_PRODUCT_SUCCESS = 'FETCH_ORDER_PRODUCT_SUCCESS';
  4 +
  5 +export const POST_NOSALE_REQUEST = 'POST_NO_SALE_REQUEST';
  6 +export const POST_NOSALE_FAILED = 'POST_NOSALE_FAILED';
  7 +export const POST_NOSALE_SUCCESS = 'POST_NOSALE_SUCCESS';
  8 +
  9 +export const POST_CHANGE_PRICE_REQUEST = 'POST_CHANGE_PRICE_REQUEST';
  10 +export const POST_CHANGEPRICE_FAILED = 'POST_CHANGEPRICE_FAILED';
  11 +export const POST_CHANGEPRICE_SUCCESS = 'POST_CHANGEPRICE_SUCCESS';
  12 +export const MERGE_CHANGEPRICE_DATA = 'MERGE_CHANGEPRICE_DATA';
  13 +
  14 +export const POST_CALCPRICE_REQUEST = 'POST_CALCPRICE_REQUEST';
  15 +export const POST_CALCPRICE_FAILED = 'POST_CALCPRICE_FAILED';
  16 +export const POST_CALCPRICE_SUCCESS = 'POST_CALCPRICE_SUCCESS';
1 module.exports = { 1 module.exports = {
  2 + '/api/ufo/mine/rollBoardList': {
  3 + ufo: true,
  4 + api: 'ufo.users.rollNoticeList',
  5 + params: {}
  6 + },
  7 + '/api/ufo/mine/orderSummary': {
  8 + ufo: true,
  9 + api: 'ufo.seller.orderSummary',
  10 + params: {}
  11 + },
  12 + '/api/ufo/mine/favoriteNum': {
  13 + ufo: true,
  14 + api: 'ufo.user.favoriteNum',
  15 + params: {}
  16 + },
  17 + '/api/ufo/mine/depositNum': {
  18 + ufo: true,
  19 + api: 'ufo.deposit.queryUserStorageCount',
  20 + params: {}
  21 + },
  22 + '/api/ufo/mine/asssets': {
  23 + ufo: true,
  24 + api: 'ufo.asssets.details',
  25 + params: {}
  26 + },
2 }; 27 };
  1 +/**
  2 + * param 仅为参数校验使用
  3 + */
1 module.exports = { 4 module.exports = {
2 '/api/ufo/invite/friendList': { 5 '/api/ufo/invite/friendList': {
3 ufo: true, 6 ufo: true,
4 api: 'ufo.invite.code', 7 api: 'ufo.invite.code',
5 - params: {  
6 - } 8 + params: {},
7 }, 9 },
8 '/api/ufo/invite/recordDetailList': { 10 '/api/ufo/invite/recordDetailList': {
9 ufo: true, 11 ufo: true,
10 api: 'ufo.invite.getInviteSettlementItemList', 12 api: 'ufo.invite.getInviteSettlementItemList',
11 - params: {  
12 - } 13 + params: {},
13 }, 14 },
14 '/api/yoho/resource': { 15 '/api/yoho/resource': {
15 service: true, 16 service: true,
16 api: 'operations/api/v5/resource/get', 17 api: 'operations/api/v5/resource/get',
17 params: { 18 params: {
18 - content_code: {type: String}  
19 - } 19 + content_code: { type: String },
  20 + },
20 }, 21 },
21 '/api/union/inviteList': { 22 '/api/union/inviteList': {
22 api: 'app.union.shareOrder.queryInviteYohoList', 23 api: 'app.union.shareOrder.queryInviteYohoList',
23 params: { 24 params: {
24 - page: {type: Number},  
25 - size: {type: Number}  
26 - } 25 + page: { type: Number },
  26 + size: { type: Number },
  27 + },
27 }, 28 },
28 '/api/union/queryUnion': { 29 '/api/union/queryUnion': {
29 api: 'app.union.shareOrder.queryUnionTypeByUid', 30 api: 'app.union.shareOrder.queryUnionTypeByUid',
30 params: {} 31 params: {}
31 - } 32 + },
  33 + '/api/ufo/seller/entryGoodsSizeList': {
  34 + accessLog: true,
  35 + checkSign: false,
  36 + ufo: true,
  37 + api: 'ufo.seller.entryGoodsSizeList',
  38 + params: {
  39 + productId: {type: Number},
  40 + limit: {type: Number},
  41 + page: {type: Number}
  42 + }
  43 + },
  44 +
  45 + // 订单列表查询
  46 + '/order/list': {
  47 + ufo: true,
  48 + api: 'ufo.order.list',
  49 +
  50 + // 类型定义
  51 + params: {
  52 + limit: { type: Number, require: true }, // page size
  53 + page: { type: Number, require: true }, // page number
  54 + uid: { type: String, require: true },
  55 + type: { type: Number, require: true }, // 订单类型
  56 + tabType: { type: Number, require: true }, // 订单来源
  57 + },
  58 + },
  59 +
  60 + // 订单详情
  61 + '/order/detail': {
  62 + ufo: true,
  63 + api: 'ufo.order.detail',
  64 + params: {
  65 + tabType: { type: Number, require: true }, // 订单来源
  66 + order_code: { type: Number, require: true }, // 订单编号
  67 + uid: { type: String, require: true },
  68 + },
  69 + },
  70 +
  71 + // 确认收货
  72 + '/buyer/confirm/receipt': {
  73 + ufo: true,
  74 + api: 'ufo.buyer.confirm',
  75 + params: {
  76 + order_code: { type: Number, require: true }, // 订单编号
  77 + uid: { type: String, require: true },
  78 + },
  79 + },
32 }; 80 };
@@ -78,6 +78,7 @@ exports.createApp = async(app) => { @@ -78,6 +78,7 @@ exports.createApp = async(app) => {
78 try { 78 try {
79 const userMiddleware = require('./doraemon/middleware/user'); 79 const userMiddleware = require('./doraemon/middleware/user');
80 const setYohoDataMiddleware = require('./doraemon/middleware/set-yoho-data'); 80 const setYohoDataMiddleware = require('./doraemon/middleware/set-yoho-data');
  81 + const serverMiddleware = require('./doraemon/middleware/server-handler');
81 const errorMiddleware = require('./doraemon/middleware/error-handler'); 82 const errorMiddleware = require('./doraemon/middleware/error-handler');
82 const ssrApiMiddleware = require('./doraemon/middleware/ssr-api'); 83 const ssrApiMiddleware = require('./doraemon/middleware/ssr-api');
83 const ssrRouteMiddleware = require('./doraemon/middleware/ssr'); 84 const ssrRouteMiddleware = require('./doraemon/middleware/ssr');
@@ -85,6 +86,8 @@ exports.createApp = async(app) => { @@ -85,6 +86,8 @@ exports.createApp = async(app) => {
85 // YOHO 前置中间件 86 // YOHO 前置中间件
86 app.use(setYohoDataMiddleware); 87 app.use(setYohoDataMiddleware);
87 app.use(userMiddleware); 88 app.use(userMiddleware);
  89 + app.use(serverMiddleware);
  90 +
88 app.use('/xianyu', ssrApiMiddleware); 91 app.use('/xianyu', ssrApiMiddleware);
89 92
90 app.use(ssrRouteMiddleware.routers); 93 app.use(ssrRouteMiddleware.routers);
  1 +const express = require('express');
  2 +
  3 +const passport = require('../models/passport');
  4 +
  5 +const app = express();
  6 +const router = express.Router(); // eslint-disable-line
  7 +
  8 +router.get('/xianyu/passport/login/taobao', passport.login.taobaoLogin)
  9 +router.get('/xianyu/passport/callback/taobao', passport.login.taobaoCallback)
  10 +
  11 +app.use(router);
  12 +
  13 +module.exports = app;
  1 +/**
  2 + * Module dependencies.
  3 + */
  4 +const util = require('util');
  5 +const md5 = require('yoho-md5');
  6 +const TopClient = require('topsdk');
  7 +const { OAuth2Strategy, InternalOAuthError } = require('passport-oauth');
  8 +
  9 +let client;
  10 +
  11 +/**
  12 + * @param {Object} params
  13 + * @api public
  14 + */
  15 +function signMD5(params, clientSecret) {
  16 + let _signStr = '';
  17 +
  18 + params.sign_method = 'md5';
  19 +
  20 + for (const k of Object.keys(params).sort()) {
  21 + _signStr += `${k}${params[k]}`;
  22 + }
  23 +
  24 + let signd = md5(clientSecret + _signStr + clientSecret);
  25 +
  26 + params.sign = new Buffer(signd, 'base64').toString('hex');
  27 +
  28 + return params;
  29 +}
  30 +
  31 +/**
  32 + * @param {Object} options
  33 + * @param {Function} verify
  34 + * @api public
  35 + */
  36 +function Strategy(options, verify) {
  37 + options = options || {};
  38 + options.authorizationURL = options.authorizationURL || 'https://oauth.taobao.com/authorize';
  39 + options.tokenURL = options.tokenURL || 'https://oauth.taobao.com/token';
  40 + options.scopeSeparator = options.scopeSeparator || ',';
  41 + options.customHeaders = options.customHeaders || {};
  42 +
  43 + client = new TopClient(options.clientID, options.clientSecret, {
  44 + endpoint: 'https://eco.taobao.com/router/rest',
  45 + useValidators: true,
  46 + rawResponse: false
  47 + });
  48 +
  49 + if (!options.customHeaders['User-Agent']) {
  50 + options.customHeaders['User-Agent'] = options.userAgent || 'passport-taobao';
  51 + }
  52 +
  53 + OAuth2Strategy.call(this, options, verify);
  54 + this.name = 'taobao';
  55 + this._userProfileURL = options.userProfileURL || 'https://eco.taobao.com/router/rest';
  56 +}
  57 +
  58 +/**
  59 + * Inherit from `OAuth2Strategy`.
  60 + */
  61 +util.inherits(Strategy, OAuth2Strategy);
  62 +
  63 +
  64 +/**
  65 + * @param {String} accessToken
  66 + * @param {Function} done
  67 + * @api protected
  68 + */
  69 +Strategy.prototype.userProfile = function (accessToken, done) {
  70 + console.log(client)
  71 + client.execute('taobao.user.buyer.get', {
  72 + session: accessToken,
  73 + fields: 'nick,sex'
  74 + }).then(res => {
  75 + console.log(res);
  76 + });
  77 +return;
  78 +
  79 +
  80 + console.log(arguments)
  81 + let oauth2 = this._oauth2;
  82 + let url = 'https://eco.taobao.com/router/rest';
  83 + let params = {
  84 + method: 'taobao.user.buyer.get',
  85 + app_key: oauth2._clientId,
  86 + session: accessToken,
  87 + format: 'json',
  88 + v: '2.0',
  89 + fields: 'uid,nick,avatar'
  90 + };
  91 +
  92 +
  93 + // _clientSecret
  94 + // ?format=json&v=2.0&fields=uid,nick,avatar&method=taobao.user.buyer.get';
  95 + // url = url + '&app_key=' + oauth2._clientId;
  96 + // url = url + '&timestamp=' + Date.parse(new Date());
  97 + // url = url + '&access_token=' + accessToken;
  98 + if (!accessToken) {
  99 + return done(new Error('accessToken is empty'));
  100 + }
  101 +
  102 + Object.keys(signMD5(params, oauth2._clientSecret)).forEach((k, i) => {
  103 + url += `${i ? '&' : '?'}${k}=${params[k]}`;
  104 + });
  105 + console.log(url)
  106 + oauth2.get(url, accessToken, function (err, result, res) {
  107 + if (err) {
  108 + return done(new InternalOAuthError('failed to fetch user profile', err));
  109 + }
  110 + try {
  111 + if (result) {
  112 + console.log(result)
  113 + let json = JSON.parse(result);
  114 + if (json.error_response)
  115 + return done(new InternalOAuthError(json.error_response.code + '-' + json.error_response.msg, new Error(json.error_response.msg)));
  116 + else {
  117 + let json = JSON.parse(result);
  118 + let profile = { provider: 'taobao' };
  119 + profile.id = json.uid;
  120 + profile.nickname = json.nick;
  121 + profile.avatar = json.avatar;
  122 + profile._raw = result;
  123 + profile._json = json;
  124 + done(null, profile);
  125 + }
  126 + }
  127 + } catch (e) {
  128 + done('ERROR:' + e + result);
  129 + }
  130 + });
  131 +}
  132 +
  133 +module.exports = Strategy;
  1 +
  2 +const passport = require('passport');
  3 +const TaobaoStrategy = require('./passport-taobao');
  4 +
  5 +const uuid = require('uuid');
  6 +
  7 +const config = global.yoho.config;
  8 +
  9 +// taobao 登录
  10 +passport.use('taobao', new TaobaoStrategy({
  11 + clientID: '27930297',
  12 + clientSecret: '29b30287153a02f531c160df17da8078',
  13 + callbackURL: `http://127.0.0.1:6001/xianyu/passport/callback/taobao`,
  14 + requireState: false
  15 +}, (accessToken, refreshToken, profile, done) => {
  16 + done(null, profile);
  17 +}));
  18 +
  19 +const login = {
  20 + taobaoLogin: (req, res, next) => {
  21 + req.session.authState = uuid.v4();
  22 +
  23 + return passport.authenticate('taobao', {
  24 + state: req.session.authState,
  25 + failWithError: true
  26 + })(req, res, next);
  27 + },
  28 + taobaoCallback: (req, res, next) => {
  29 + console.log(req.session)
  30 + // return res.send(req.query);
  31 + passport.authenticate('taobao', (err, user) => {
  32 + console.log('21312312')
  33 + console.log(user)
  34 + console.log(err)
  35 + })(req, res, next);
  36 + // if (req.session.authState === req.query.state) {
  37 + // } else {
  38 + // res.send('error');
  39 + // }
  40 + }
  41 +}
  42 +
  43 +module.exports = {
  44 + login
  45 +};
This diff could not be displayed because it is too large.
@@ -53,21 +53,25 @@ @@ -53,21 +53,25 @@
53 "lottie-web": "^5.4.2", 53 "lottie-web": "^5.4.2",
54 "mysql": "^2.16.0", 54 "mysql": "^2.16.0",
55 "nodemon": "^1.19.1", 55 "nodemon": "^1.19.1",
  56 + "passport": "^0.4.0",
  57 + "passport-oauth": "^1.0.0",
56 "qiniu": "^7.2.1", 58 "qiniu": "^7.2.1",
57 "request": "^2.88.0", 59 "request": "^2.88.0",
58 "request-promise": "^4.2.2", 60 "request-promise": "^4.2.2",
59 "serve-favicon": "^2.5.0", 61 "serve-favicon": "^2.5.0",
60 "source-map": "^0.7.3", 62 "source-map": "^0.7.3",
  63 + "topsdk": "=1.0.13",
  64 + "util": "^0.12.1",
61 "uuid": "^3.3.2", 65 "uuid": "^3.3.2",
62 - "vue": "^2.5.20", 66 + "vue": "^2.6.10",
63 "vue-awesome-swiper": "^3.1.3", 67 "vue-awesome-swiper": "^3.1.3",
64 "vue-infinite-scroll": "^2.0.2", 68 "vue-infinite-scroll": "^2.0.2",
65 "vue-lazyload": "^1.2.6", 69 "vue-lazyload": "^1.2.6",
66 - "vue-loader": "^15.4.2", 70 + "vue-loader": "^15.7.1",
67 "vue-router": "^3.0.2", 71 "vue-router": "^3.0.2",
68 - "vue-server-renderer": "^2.5.20", 72 + "vue-server-renderer": "^2.6.10",
69 "vue-style-loader": "^4.1.2", 73 "vue-style-loader": "^4.1.2",
70 - "vue-template-compiler": "^2.5.20", 74 + "vue-template-compiler": "^2.6.10",
71 "vue-touch": "^1.1.0", 75 "vue-touch": "^1.1.0",
72 "vue-virtual-scroll-list": "^1.2.8", 76 "vue-virtual-scroll-list": "^1.2.8",
73 "vuex": "^3.0.1", 77 "vuex": "^3.0.1",
@@ -972,6 +972,11 @@ @@ -972,6 +972,11 @@
972 "@types/istanbul-lib-coverage" "*" 972 "@types/istanbul-lib-coverage" "*"
973 "@types/istanbul-lib-report" "*" 973 "@types/istanbul-lib-report" "*"
974 974
  975 +"@types/node@^10.12.12":
  976 + version "10.14.19"
  977 + resolved "http://npm.yohops.com/@types%2fnode/-/node-10.14.19.tgz#f52742c7834a815dedf66edfc8a51547e2a67342"
  978 + integrity sha1-9SdCx4NKgV3t9m7fyKUVR+Kmc0I=
  979 +
975 "@types/stack-utils@^1.0.1": 980 "@types/stack-utils@^1.0.1":
976 version "1.0.1" 981 version "1.0.1"
977 resolved "http://r.cnpmjs.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" 982 resolved "http://r.cnpmjs.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
@@ -982,19 +987,20 @@ @@ -982,19 +987,20 @@
982 resolved "http://r.cnpmjs.org/@types/yargs/download/@types/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" 987 resolved "http://r.cnpmjs.org/@types/yargs/download/@types/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916"
983 integrity sha1-Rd0dBjjoyPFT6H0paQdlkpaHORY= 988 integrity sha1-Rd0dBjjoyPFT6H0paQdlkpaHORY=
984 989
985 -"@vue/component-compiler-utils@^2.0.0":  
986 - version "2.3.0"  
987 - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.3.0.tgz#4f580f1b28fc7685859d87ea0e92a1c0271c93da" 990 +"@vue/component-compiler-utils@^3.0.0":
  991 + version "3.0.0"
  992 + resolved "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634"
  993 + integrity sha1-0W+ia4NsBt9bqutF89gK/EfjVjQ=
988 dependencies: 994 dependencies:
989 consolidate "^0.15.1" 995 consolidate "^0.15.1"
990 hash-sum "^1.0.2" 996 hash-sum "^1.0.2"
991 lru-cache "^4.1.2" 997 lru-cache "^4.1.2"
992 merge-source-map "^1.1.0" 998 merge-source-map "^1.1.0"
993 - postcss "^6.0.20"  
994 - postcss-selector-parser "^3.1.1"  
995 - prettier "1.13.7"  
996 - source-map "^0.5.6"  
997 - vue-template-es2015-compiler "^1.6.0" 999 + postcss "^7.0.14"
  1000 + postcss-selector-parser "^5.0.0"
  1001 + prettier "1.16.3"
  1002 + source-map "~0.6.1"
  1003 + vue-template-es2015-compiler "^1.9.0"
998 1004
999 "@webassemblyjs/ast@1.5.13": 1005 "@webassemblyjs/ast@1.5.13":
1000 version "1.5.13" 1006 version "1.5.13"
@@ -1639,6 +1645,11 @@ base64-js@^1.0.2: @@ -1639,6 +1645,11 @@ base64-js@^1.0.2:
1639 version "1.3.0" 1645 version "1.3.0"
1640 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 1646 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
1641 1647
  1648 +base64url@3.x.x:
  1649 + version "3.0.1"
  1650 + resolved "http://npm.yohops.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
  1651 + integrity sha1-Y5nVcuK8P5CpqLItXbsKMtM/eI0=
  1652 +
1642 base@^0.11.1: 1653 base@^0.11.1:
1643 version "0.11.2" 1654 version "0.11.2"
1644 resolved "http://npm.yohops.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 1655 resolved "http://npm.yohops.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -1684,6 +1695,11 @@ bignumber.js@4.1.0: @@ -1684,6 +1695,11 @@ bignumber.js@4.1.0:
1684 version "4.1.0" 1695 version "4.1.0"
1685 resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1" 1696 resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1"
1686 1697
  1698 +bignumber.js@^7.0.0:
  1699 + version "7.2.1"
  1700 + resolved "http://npm.yohops.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f"
  1701 + integrity sha1-gMBIdZ2CaACAfEv9Uh5Q7bulel8=
  1702 +
1687 binary-extensions@^1.0.0: 1703 binary-extensions@^1.0.0:
1688 version "1.11.0" 1704 version "1.11.0"
1689 resolved "http://npm.yohops.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 1705 resolved "http://npm.yohops.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
@@ -1694,7 +1710,12 @@ block-stream@*: @@ -1694,7 +1710,12 @@ block-stream@*:
1694 dependencies: 1710 dependencies:
1695 inherits "~2.0.0" 1711 inherits "~2.0.0"
1696 1712
1697 -bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: 1713 +bluebird@^3.1.1:
  1714 + version "3.5.5"
  1715 + resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
  1716 + integrity sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=
  1717 +
  1718 +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3:
1698 version "3.5.3" 1719 version "3.5.3"
1699 resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" 1720 resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
1700 1721
@@ -2437,7 +2458,8 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: @@ -2437,7 +2458,8 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
2437 2458
2438 consolidate@^0.15.1: 2459 consolidate@^0.15.1:
2439 version "0.15.1" 2460 version "0.15.1"
2440 - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" 2461 + resolved "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
  2462 + integrity sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=
2441 dependencies: 2463 dependencies:
2442 bluebird "^3.1.1" 2464 bluebird "^3.1.1"
2443 2465
@@ -2727,7 +2749,8 @@ date-now@^0.1.4: @@ -2727,7 +2749,8 @@ date-now@^0.1.4:
2727 2749
2728 de-indent@^1.0.2: 2750 de-indent@^1.0.2:
2729 version "1.0.2" 2751 version "1.0.2"
2730 - resolved "http://npm.yohops.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" 2752 + resolved "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
  2753 + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
2731 2754
2732 debug@*, debug@4.1.0, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0: 2755 debug@*, debug@4.1.0, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0:
2733 version "4.1.0" 2756 version "4.1.0"
@@ -2812,7 +2835,7 @@ default-user-agent@^1.0.0: @@ -2812,7 +2835,7 @@ default-user-agent@^1.0.0:
2812 dependencies: 2835 dependencies:
2813 os-name "~1.0.3" 2836 os-name "~1.0.3"
2814 2837
2815 -define-properties@^1.1.2: 2838 +define-properties@^1.1.2, define-properties@^1.1.3:
2816 version "1.1.3" 2839 version "1.1.3"
2817 resolved "http://npm.yohops.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 2840 resolved "http://npm.yohops.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
2818 dependencies: 2841 dependencies:
@@ -3142,6 +3165,22 @@ error-stack-parser@^2.0.0: @@ -3142,6 +3165,22 @@ error-stack-parser@^2.0.0:
3142 dependencies: 3165 dependencies:
3143 stackframe "^1.0.4" 3166 stackframe "^1.0.4"
3144 3167
  3168 +es-abstract@^1.12.0:
  3169 + version "1.14.2"
  3170 + resolved "http://npm.yohops.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497"
  3171 + integrity sha1-fOEI+tgwaMh4PDzfYuUE4ITYxJc=
  3172 + dependencies:
  3173 + es-to-primitive "^1.2.0"
  3174 + function-bind "^1.1.1"
  3175 + has "^1.0.3"
  3176 + has-symbols "^1.0.0"
  3177 + is-callable "^1.1.4"
  3178 + is-regex "^1.0.4"
  3179 + object-inspect "^1.6.0"
  3180 + object-keys "^1.1.1"
  3181 + string.prototype.trimleft "^2.0.0"
  3182 + string.prototype.trimright "^2.0.0"
  3183 +
3145 es-abstract@^1.5.1: 3184 es-abstract@^1.5.1:
3146 version "1.12.0" 3185 version "1.12.0"
3147 resolved "http://npm.yohops.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" 3186 resolved "http://npm.yohops.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
@@ -3152,7 +3191,7 @@ es-abstract@^1.5.1: @@ -3152,7 +3191,7 @@ es-abstract@^1.5.1:
3152 is-callable "^1.1.3" 3191 is-callable "^1.1.3"
3153 is-regex "^1.0.4" 3192 is-regex "^1.0.4"
3154 3193
3155 -es-to-primitive@^1.1.1: 3194 +es-to-primitive@^1.1.1, es-to-primitive@^1.2.0:
3156 version "1.2.0" 3195 version "1.2.0"
3157 resolved "http://npm.yohops.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 3196 resolved "http://npm.yohops.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
3158 dependencies: 3197 dependencies:
@@ -4140,7 +4179,7 @@ has-values@^1.0.0: @@ -4140,7 +4179,7 @@ has-values@^1.0.0:
4140 is-number "^3.0.0" 4179 is-number "^3.0.0"
4141 kind-of "^4.0.0" 4180 kind-of "^4.0.0"
4142 4181
4143 -has@^1.0.1: 4182 +has@^1.0.1, has@^1.0.3:
4144 version "1.0.3" 4183 version "1.0.3"
4145 resolved "http://npm.yohops.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 4184 resolved "http://npm.yohops.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
4146 dependencies: 4185 dependencies:
@@ -4575,6 +4614,11 @@ is-alphanumerical@^1.0.0: @@ -4575,6 +4614,11 @@ is-alphanumerical@^1.0.0:
4575 is-alphabetical "^1.0.0" 4614 is-alphabetical "^1.0.0"
4576 is-decimal "^1.0.0" 4615 is-decimal "^1.0.0"
4577 4616
  4617 +is-arguments@^1.0.4:
  4618 + version "1.0.4"
  4619 + resolved "http://npm.yohops.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
  4620 + integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=
  4621 +
4578 is-arrayish@^0.2.1: 4622 is-arrayish@^0.2.1:
4579 version "0.2.1" 4623 version "0.2.1"
4580 resolved "http://npm.yohops.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 4624 resolved "http://npm.yohops.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -4695,6 +4739,11 @@ is-generator-fn@^2.0.0: @@ -4695,6 +4739,11 @@ is-generator-fn@^2.0.0:
4695 resolved "http://r.cnpmjs.org/is-generator-fn/download/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" 4739 resolved "http://r.cnpmjs.org/is-generator-fn/download/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
4696 integrity sha1-fRQK3DiarzARqPKipM+m+q3/sRg= 4740 integrity sha1-fRQK3DiarzARqPKipM+m+q3/sRg=
4697 4741
  4742 +is-generator-function@^1.0.7:
  4743 + version "1.0.7"
  4744 + resolved "http://npm.yohops.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522"
  4745 + integrity sha1-0hMuUpuwAAp/gHlNS99c1eWBNSI=
  4746 +
4698 is-glob@^2.0.0: 4747 is-glob@^2.0.0:
4699 version "2.0.1" 4748 version "2.0.1"
4700 resolved "http://npm.yohops.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 4749 resolved "http://npm.yohops.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -5349,6 +5398,13 @@ jsesc@~0.5.0: @@ -5349,6 +5398,13 @@ jsesc@~0.5.0:
5349 version "0.5.0" 5398 version "0.5.0"
5350 resolved "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 5399 resolved "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
5351 5400
  5401 +json-bigint@^0.3.0:
  5402 + version "0.3.0"
  5403 + resolved "http://npm.yohops.com/json-bigint/-/json-bigint-0.3.0.tgz#0ccd912c4b8270d05f056fbd13814b53d3825b1e"
  5404 + integrity sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=
  5405 + dependencies:
  5406 + bignumber.js "^7.0.0"
  5407 +
5352 json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: 5408 json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
5353 version "1.0.2" 5409 version "1.0.2"
5354 resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 5410 resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -5574,9 +5630,10 @@ lodash._baseclone@~4.5.0: @@ -5574,9 +5630,10 @@ lodash._baseclone@~4.5.0:
5574 version "4.5.7" 5630 version "4.5.7"
5575 resolved "http://npm.yohops.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" 5631 resolved "http://npm.yohops.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434"
5576 5632
5577 -lodash._reinterpolate@~3.0.0: 5633 +lodash._reinterpolate@^3.0.0:
5578 version "3.0.0" 5634 version "3.0.0"
5579 - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" 5635 + resolved "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
  5636 + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
5580 5637
5581 lodash.assign@^4.2.0: 5638 lodash.assign@^4.2.0:
5582 version "4.2.0" 5639 version "4.2.0"
@@ -5626,21 +5683,24 @@ lodash.tail@^4.1.1: @@ -5626,21 +5683,24 @@ lodash.tail@^4.1.1:
5626 resolved "http://npm.yohops.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" 5683 resolved "http://npm.yohops.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
5627 5684
5628 lodash.template@^4.4.0: 5685 lodash.template@^4.4.0:
5629 - version "4.4.0"  
5630 - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" 5686 + version "4.5.0"
  5687 + resolved "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
  5688 + integrity sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks=
5631 dependencies: 5689 dependencies:
5632 - lodash._reinterpolate "~3.0.0" 5690 + lodash._reinterpolate "^3.0.0"
5633 lodash.templatesettings "^4.0.0" 5691 lodash.templatesettings "^4.0.0"
5634 5692
5635 lodash.templatesettings@^4.0.0: 5693 lodash.templatesettings@^4.0.0:
5636 - version "4.1.0"  
5637 - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" 5694 + version "4.2.0"
  5695 + resolved "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
  5696 + integrity sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM=
5638 dependencies: 5697 dependencies:
5639 - lodash._reinterpolate "~3.0.0" 5698 + lodash._reinterpolate "^3.0.0"
5640 5699
5641 lodash.uniq@^4.5.0: 5700 lodash.uniq@^4.5.0:
5642 version "4.5.0" 5701 version "4.5.0"
5643 - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 5702 + resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
  5703 + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
5644 5704
5645 lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: 5705 lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10:
5646 version "4.17.11" 5706 version "4.17.11"
@@ -5865,7 +5925,8 @@ merge-descriptors@1.0.1: @@ -5865,7 +5925,8 @@ merge-descriptors@1.0.1:
5865 5925
5866 merge-source-map@^1.1.0: 5926 merge-source-map@^1.1.0:
5867 version "1.1.0" 5927 version "1.1.0"
5868 - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" 5928 + resolved "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
  5929 + integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=
5869 dependencies: 5930 dependencies:
5870 source-map "^0.6.1" 5931 source-map "^0.6.1"
5871 5932
@@ -6432,6 +6493,11 @@ oauth-sign@~0.9.0: @@ -6432,6 +6493,11 @@ oauth-sign@~0.9.0:
6432 version "0.9.0" 6493 version "0.9.0"
6433 resolved "http://npm.yohops.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 6494 resolved "http://npm.yohops.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
6434 6495
  6496 +oauth@0.9.x:
  6497 + version "0.9.15"
  6498 + resolved "http://npm.yohops.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
  6499 + integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE=
  6500 +
6435 object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: 6501 object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
6436 version "4.1.1" 6502 version "4.1.1"
6437 resolved "http://npm.yohops.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 6503 resolved "http://npm.yohops.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -6444,10 +6510,20 @@ object-copy@^0.1.0: @@ -6444,10 +6510,20 @@ object-copy@^0.1.0:
6444 define-property "^0.2.5" 6510 define-property "^0.2.5"
6445 kind-of "^3.0.3" 6511 kind-of "^3.0.3"
6446 6512
  6513 +object-inspect@^1.6.0:
  6514 + version "1.6.0"
  6515 + resolved "http://npm.yohops.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
  6516 + integrity sha1-xwtsv3LydKq0w0wMgvUWe/gs8Vs=
  6517 +
6447 object-keys@^1.0.12: 6518 object-keys@^1.0.12:
6448 version "1.0.12" 6519 version "1.0.12"
6449 resolved "http://npm.yohops.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 6520 resolved "http://npm.yohops.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
6450 6521
  6522 +object-keys@^1.1.1:
  6523 + version "1.1.1"
  6524 + resolved "http://npm.yohops.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
  6525 + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4=
  6526 +
6451 object-visit@^1.0.0: 6527 object-visit@^1.0.0:
6452 version "1.0.1" 6528 version "1.0.1"
6453 resolved "http://npm.yohops.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 6529 resolved "http://npm.yohops.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -6463,6 +6539,16 @@ object.defaults@^1.1.0: @@ -6463,6 +6539,16 @@ object.defaults@^1.1.0:
6463 for-own "^1.0.0" 6539 for-own "^1.0.0"
6464 isobject "^3.0.0" 6540 isobject "^3.0.0"
6465 6541
  6542 +object.entries@^1.1.0:
  6543 + version "1.1.0"
  6544 + resolved "http://npm.yohops.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
  6545 + integrity sha1-ICT8bWuiRq7ji9sP/Vz7zzcbdRk=
  6546 + dependencies:
  6547 + define-properties "^1.1.3"
  6548 + es-abstract "^1.12.0"
  6549 + function-bind "^1.1.1"
  6550 + has "^1.0.3"
  6551 +
6466 object.getownpropertydescriptors@^2.0.3: 6552 object.getownpropertydescriptors@^2.0.3:
6467 version "2.0.3" 6553 version "2.0.3"
6468 resolved "http://npm.yohops.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" 6554 resolved "http://npm.yohops.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
@@ -6739,6 +6825,47 @@ pascalcase@^0.1.1: @@ -6739,6 +6825,47 @@ pascalcase@^0.1.1:
6739 version "0.1.1" 6825 version "0.1.1"
6740 resolved "http://npm.yohops.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 6826 resolved "http://npm.yohops.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
6741 6827
  6828 +passport-oauth1@1.x.x:
  6829 + version "1.1.0"
  6830 + resolved "http://npm.yohops.com/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918"
  6831 + integrity sha1-p96YiiEfnPRoc3cTDqdN8ycwyRg=
  6832 + dependencies:
  6833 + oauth "0.9.x"
  6834 + passport-strategy "1.x.x"
  6835 + utils-merge "1.x.x"
  6836 +
  6837 +passport-oauth2@1.x.x:
  6838 + version "1.5.0"
  6839 + resolved "http://npm.yohops.com/passport-oauth2/-/passport-oauth2-1.5.0.tgz#64babbb54ac46a4dcab35e7f266ed5294e3c4108"
  6840 + integrity sha1-ZLq7tUrEak3Ks15/Jm7VKU48QQg=
  6841 + dependencies:
  6842 + base64url "3.x.x"
  6843 + oauth "0.9.x"
  6844 + passport-strategy "1.x.x"
  6845 + uid2 "0.0.x"
  6846 + utils-merge "1.x.x"
  6847 +
  6848 +passport-oauth@^1.0.0:
  6849 + version "1.0.0"
  6850 + resolved "http://npm.yohops.com/passport-oauth/-/passport-oauth-1.0.0.tgz#90aff63387540f02089af28cdad39ea7f80d77df"
  6851 + integrity sha1-kK/2M4dUDwIImvKM2tOep/gNd98=
  6852 + dependencies:
  6853 + passport-oauth1 "1.x.x"
  6854 + passport-oauth2 "1.x.x"
  6855 +
  6856 +passport-strategy@1.x.x:
  6857 + version "1.0.0"
  6858 + resolved "http://npm.yohops.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
  6859 + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=
  6860 +
  6861 +passport@^0.4.0:
  6862 + version "0.4.0"
  6863 + resolved "http://npm.yohops.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811"
  6864 + integrity sha1-xQlWkTR71a07XhgCOMORTRbwWBE=
  6865 + dependencies:
  6866 + passport-strategy "1.x.x"
  6867 + pause "0.0.1"
  6868 +
6742 path-browserify@0.0.0: 6869 path-browserify@0.0.0:
6743 version "0.0.0" 6870 version "0.0.0"
6744 resolved "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 6871 resolved "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
@@ -6807,6 +6934,11 @@ pause-stream@~0.0.11: @@ -6807,6 +6934,11 @@ pause-stream@~0.0.11:
6807 dependencies: 6934 dependencies:
6808 through "~2.3" 6935 through "~2.3"
6809 6936
  6937 +pause@0.0.1:
  6938 + version "0.0.1"
  6939 + resolved "http://npm.yohops.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
  6940 + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
  6941 +
6810 pbkdf2@^3.0.3: 6942 pbkdf2@^3.0.3:
6811 version "3.0.17" 6943 version "3.0.17"
6812 resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" 6944 resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
@@ -7030,7 +7162,7 @@ postcss-scss@^2.0.0: @@ -7030,7 +7162,7 @@ postcss-scss@^2.0.0:
7030 dependencies: 7162 dependencies:
7031 postcss "^7.0.0" 7163 postcss "^7.0.0"
7032 7164
7033 -postcss-selector-parser@^3.1.0, postcss-selector-parser@^3.1.1: 7165 +postcss-selector-parser@^3.1.0:
7034 version "3.1.1" 7166 version "3.1.1"
7035 resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" 7167 resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
7036 dependencies: 7168 dependencies:
@@ -7038,6 +7170,15 @@ postcss-selector-parser@^3.1.0, postcss-selector-parser@^3.1.1: @@ -7038,6 +7170,15 @@ postcss-selector-parser@^3.1.0, postcss-selector-parser@^3.1.1:
7038 indexes-of "^1.0.1" 7170 indexes-of "^1.0.1"
7039 uniq "^1.0.1" 7171 uniq "^1.0.1"
7040 7172
  7173 +postcss-selector-parser@^5.0.0:
  7174 + version "5.0.0"
  7175 + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
  7176 + integrity sha1-JJBENWaXsztk8aj3yAki3d7nGVw=
  7177 + dependencies:
  7178 + cssesc "^2.0.0"
  7179 + indexes-of "^1.0.1"
  7180 + uniq "^1.0.1"
  7181 +
7041 postcss-selector-parser@^5.0.0-rc.4: 7182 postcss-selector-parser@^5.0.0-rc.4:
7042 version "5.0.0-rc.4" 7183 version "5.0.0-rc.4"
7043 resolved "http://npm.yohops.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz#ca5e77238bf152966378c13e91ad6d611568ea87" 7184 resolved "http://npm.yohops.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz#ca5e77238bf152966378c13e91ad6d611568ea87"
@@ -7067,14 +7208,6 @@ postcss@^5.2.10: @@ -7067,14 +7208,6 @@ postcss@^5.2.10:
7067 source-map "^0.5.6" 7208 source-map "^0.5.6"
7068 supports-color "^3.2.3" 7209 supports-color "^3.2.3"
7069 7210
7070 -postcss@^6.0.20:  
7071 - version "6.0.23"  
7072 - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"  
7073 - dependencies:  
7074 - chalk "^2.4.1"  
7075 - source-map "^0.6.1"  
7076 - supports-color "^5.4.0"  
7077 -  
7078 postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.5, postcss@^7.0.6: 7211 postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.5, postcss@^7.0.6:
7079 version "7.0.6" 7212 version "7.0.6"
7080 resolved "http://npm.yohops.com/postcss/-/postcss-7.0.6.tgz#6dcaa1e999cdd4a255dcd7d4d9547f4ca010cdc2" 7213 resolved "http://npm.yohops.com/postcss/-/postcss-7.0.6.tgz#6dcaa1e999cdd4a255dcd7d4d9547f4ca010cdc2"
@@ -7083,6 +7216,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.5, @@ -7083,6 +7216,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.5,
7083 source-map "^0.6.1" 7216 source-map "^0.6.1"
7084 supports-color "^5.5.0" 7217 supports-color "^5.5.0"
7085 7218
  7219 +postcss@^7.0.14:
  7220 + version "7.0.18"
  7221 + resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233"
  7222 + integrity sha1-S5zala5sBpxnpNkzAp7d1IOKwjM=
  7223 + dependencies:
  7224 + chalk "^2.4.2"
  7225 + source-map "^0.6.1"
  7226 + supports-color "^6.1.0"
  7227 +
7086 prelude-ls@~1.1.2: 7228 prelude-ls@~1.1.2:
7087 version "1.1.2" 7229 version "1.1.2"
7088 resolved "http://npm.yohops.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 7230 resolved "http://npm.yohops.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -7091,9 +7233,10 @@ prepend-http@^1.0.1: @@ -7091,9 +7233,10 @@ prepend-http@^1.0.1:
7091 version "1.0.4" 7233 version "1.0.4"
7092 resolved "http://npm.yohops.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 7234 resolved "http://npm.yohops.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
7093 7235
7094 -prettier@1.13.7:  
7095 - version "1.13.7"  
7096 - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" 7236 +prettier@1.16.3:
  7237 + version "1.16.3"
  7238 + resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d"
  7239 + integrity sha1-jGIWhFO63vcC80tFtu6JlXSmpl0=
7097 7240
7098 pretty-error@^2.0.2: 7241 pretty-error@^2.0.2:
7099 version "2.1.1" 7242 version "2.1.1"
@@ -7745,7 +7888,14 @@ resolve@^1.1.7: @@ -7745,7 +7888,14 @@ resolve@^1.1.7:
7745 dependencies: 7888 dependencies:
7746 path-parse "^1.0.6" 7889 path-parse "^1.0.6"
7747 7890
7748 -resolve@^1.2.0, resolve@^1.3.2: 7891 +resolve@^1.2.0:
  7892 + version "1.12.0"
  7893 + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
  7894 + integrity sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=
  7895 + dependencies:
  7896 + path-parse "^1.0.6"
  7897 +
  7898 +resolve@^1.3.2:
7749 version "1.8.1" 7899 version "1.8.1"
7750 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 7900 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
7751 dependencies: 7901 dependencies:
@@ -7955,7 +8105,12 @@ send@0.16.2: @@ -7955,7 +8105,12 @@ send@0.16.2:
7955 range-parser "~1.2.0" 8105 range-parser "~1.2.0"
7956 statuses "~1.4.0" 8106 statuses "~1.4.0"
7957 8107
7958 -serialize-javascript@^1.3.0, serialize-javascript@^1.4.0: 8108 +serialize-javascript@^1.3.0:
  8109 + version "1.9.1"
  8110 + resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1567600455468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
  8111 + integrity sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=
  8112 +
  8113 +serialize-javascript@^1.4.0:
7959 version "1.5.0" 8114 version "1.5.0"
7960 resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" 8115 resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe"
7961 8116
@@ -8185,7 +8340,8 @@ source-map@0.1.x: @@ -8185,7 +8340,8 @@ source-map@0.1.x:
8185 8340
8186 source-map@0.5.6: 8341 source-map@0.5.6:
8187 version "0.5.6" 8342 version "0.5.6"
8188 - resolved "http://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 8343 + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
  8344 + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
8189 8345
8190 source-map@^0.4.2: 8346 source-map@^0.4.2:
8191 version "0.4.4" 8347 version "0.4.4"
@@ -8391,6 +8547,22 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: @@ -8391,6 +8547,22 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
8391 is-fullwidth-code-point "^2.0.0" 8547 is-fullwidth-code-point "^2.0.0"
8392 strip-ansi "^4.0.0" 8548 strip-ansi "^4.0.0"
8393 8549
  8550 +string.prototype.trimleft@^2.0.0:
  8551 + version "2.1.0"
  8552 + resolved "http://npm.yohops.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
  8553 + integrity sha1-bMR/DX641isPNwFhFxWjlUWR1jQ=
  8554 + dependencies:
  8555 + define-properties "^1.1.3"
  8556 + function-bind "^1.1.1"
  8557 +
  8558 +string.prototype.trimright@^2.0.0:
  8559 + version "2.1.0"
  8560 + resolved "http://npm.yohops.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
  8561 + integrity sha1-Zp0WS+nfm291WfqOiZRbFopabFg=
  8562 + dependencies:
  8563 + define-properties "^1.1.3"
  8564 + function-bind "^1.1.1"
  8565 +
8394 string_decoder@^1.0.0, string_decoder@^1.1.1: 8566 string_decoder@^1.0.0, string_decoder@^1.1.1:
8395 version "1.2.0" 8567 version "1.2.0"
8396 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" 8568 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
@@ -8584,7 +8756,7 @@ supports-color@^3.2.3: @@ -8584,7 +8756,7 @@ supports-color@^3.2.3:
8584 dependencies: 8756 dependencies:
8585 has-flag "^1.0.0" 8757 has-flag "^1.0.0"
8586 8758
8587 -supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: 8759 +supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.5.0:
8588 version "5.5.0" 8760 version "5.5.0"
8589 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 8761 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
8590 dependencies: 8762 dependencies:
@@ -8773,6 +8945,15 @@ toposort@^1.0.0: @@ -8773,6 +8945,15 @@ toposort@^1.0.0:
8773 version "1.0.7" 8945 version "1.0.7"
8774 resolved "http://npm.yohops.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" 8946 resolved "http://npm.yohops.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
8775 8947
  8948 +topsdk@=1.0.13:
  8949 + version "1.0.13"
  8950 + resolved "http://npm.yohops.com/topsdk/-/topsdk-1.0.13.tgz#b95d6031e7482e80350f0d2ed5e8d7997117a6b8"
  8951 + integrity sha1-uV1gMedILoA1Dw0u1ejXmXEXprg=
  8952 + dependencies:
  8953 + "@types/node" "^10.12.12"
  8954 + json-bigint "^0.3.0"
  8955 + request "^2.88.0"
  8956 +
8776 touch@^3.1.0: 8957 touch@^3.1.0:
8777 version "3.1.0" 8958 version "3.1.0"
8778 resolved "http://npm.yohops.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 8959 resolved "http://npm.yohops.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
@@ -8919,6 +9100,11 @@ uid-safe@2.1.5, uid-safe@~2.1.2, uid-safe@~2.1.5: @@ -8919,6 +9100,11 @@ uid-safe@2.1.5, uid-safe@~2.1.2, uid-safe@~2.1.5:
8919 dependencies: 9100 dependencies:
8920 random-bytes "~1.0.0" 9101 random-bytes "~1.0.0"
8921 9102
  9103 +uid2@0.0.x:
  9104 + version "0.0.3"
  9105 + resolved "http://npm.yohops.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
  9106 + integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
  9107 +
8922 unc-path-regex@^0.1.2: 9108 unc-path-regex@^0.1.2:
8923 version "0.1.2" 9109 version "0.1.2"
8924 resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" 9110 resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
@@ -9159,6 +9345,17 @@ util@^0.10.3: @@ -9159,6 +9345,17 @@ util@^0.10.3:
9159 dependencies: 9345 dependencies:
9160 inherits "2.0.3" 9346 inherits "2.0.3"
9161 9347
  9348 +util@^0.12.1:
  9349 + version "0.12.1"
  9350 + resolved "http://npm.yohops.com/util/-/util-0.12.1.tgz#f908e7b633e7396c764e694dd14e716256ce8ade"
  9351 + integrity sha1-+QjntjPnOWx2TmlN0U5xYlbOit4=
  9352 + dependencies:
  9353 + inherits "^2.0.3"
  9354 + is-arguments "^1.0.4"
  9355 + is-generator-function "^1.0.7"
  9356 + object.entries "^1.1.0"
  9357 + safe-buffer "^5.1.2"
  9358 +
9162 utila@^0.4.0, utila@~0.4: 9359 utila@^0.4.0, utila@~0.4:
9163 version "0.4.0" 9360 version "0.4.0"
9164 resolved "http://npm.yohops.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" 9361 resolved "http://npm.yohops.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
@@ -9173,7 +9370,7 @@ utils-merge@1.0.0: @@ -9173,7 +9370,7 @@ utils-merge@1.0.0:
9173 version "1.0.0" 9370 version "1.0.0"
9174 resolved "http://npm.yohops.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" 9371 resolved "http://npm.yohops.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
9175 9372
9176 -utils-merge@1.0.1: 9373 +utils-merge@1.0.1, utils-merge@1.x.x:
9177 version "1.0.1" 9374 version "1.0.1"
9178 resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 9375 resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
9179 9376
@@ -9258,8 +9455,9 @@ vue-eslint-parser@^4.0.2: @@ -9258,8 +9455,9 @@ vue-eslint-parser@^4.0.2:
9258 lodash "^4.17.11" 9455 lodash "^4.17.11"
9259 9456
9260 vue-hot-reload-api@^2.3.0: 9457 vue-hot-reload-api@^2.3.0:
9261 - version "2.3.1"  
9262 - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz#b2d3d95402a811602380783ea4f566eb875569a2" 9458 + version "2.3.4"
  9459 + resolved "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
  9460 + integrity sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=
9263 9461
9264 vue-infinite-scroll@^2.0.2: 9462 vue-infinite-scroll@^2.0.2:
9265 version "2.0.2" 9463 version "2.0.2"
@@ -9269,11 +9467,12 @@ vue-lazyload@^1.2.6: @@ -9269,11 +9467,12 @@ vue-lazyload@^1.2.6:
9269 version "1.2.6" 9467 version "1.2.6"
9270 resolved "https://registry.yarnpkg.com/vue-lazyload/-/vue-lazyload-1.2.6.tgz#baa04c172d52a812608eb12c7a6bfb14f5c91079" 9468 resolved "https://registry.yarnpkg.com/vue-lazyload/-/vue-lazyload-1.2.6.tgz#baa04c172d52a812608eb12c7a6bfb14f5c91079"
9271 9469
9272 -vue-loader@^15.4.2:  
9273 - version "15.4.2"  
9274 - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.4.2.tgz#812bb26e447dd3b84c485eb634190d914ce125e2" 9470 +vue-loader@^15.7.1:
  9471 + version "15.7.1"
  9472 + resolved "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.7.1.tgz?cache=0&sync_timestamp=1563435501637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd"
  9473 + integrity sha1-bMrNQSKqgPabqqwI/ylaYuOu/P0=
9275 dependencies: 9474 dependencies:
9276 - "@vue/component-compiler-utils" "^2.0.0" 9475 + "@vue/component-compiler-utils" "^3.0.0"
9277 hash-sum "^1.0.2" 9476 hash-sum "^1.0.2"
9278 loader-utils "^1.1.0" 9477 loader-utils "^1.1.0"
9279 vue-hot-reload-api "^2.3.0" 9478 vue-hot-reload-api "^2.3.0"
@@ -9283,9 +9482,10 @@ vue-router@^3.0.2: @@ -9283,9 +9482,10 @@ vue-router@^3.0.2:
9283 version "3.0.2" 9482 version "3.0.2"
9284 resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be" 9483 resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be"
9285 9484
9286 -vue-server-renderer@^2.5.20:  
9287 - version "2.5.20"  
9288 - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.5.20.tgz#b4d4718949592f7138d7fa2b370f2a00b967af37" 9485 +vue-server-renderer@^2.6.10:
  9486 + version "2.6.10"
  9487 + resolved "https://registry.npm.taobao.org/vue-server-renderer/download/vue-server-renderer-2.6.10.tgz#cb2558842ead360ae2ec1f3719b75564a805b375"
  9488 + integrity sha1-yyVYhC6tNgri7B83GbdVZKgFs3U=
9289 dependencies: 9489 dependencies:
9290 chalk "^1.1.3" 9490 chalk "^1.1.3"
9291 hash-sum "^1.0.2" 9491 hash-sum "^1.0.2"
@@ -9303,16 +9503,18 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: @@ -9303,16 +9503,18 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
9303 hash-sum "^1.0.2" 9503 hash-sum "^1.0.2"
9304 loader-utils "^1.0.2" 9504 loader-utils "^1.0.2"
9305 9505
9306 -vue-template-compiler@^2.5.20:  
9307 - version "2.5.20"  
9308 - resolved "http://npm.yohops.com/vue-template-compiler/-/vue-template-compiler-2.5.20.tgz#b9c01741b7e0261d1c5aac5937c93bde98f880f0" 9506 +vue-template-compiler@^2.6.10:
  9507 + version "2.6.10"
  9508 + resolved "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc"
  9509 + integrity sha1-MjtPNJXwT6o1AzN6gvXWUHeZycw=
9309 dependencies: 9510 dependencies:
9310 de-indent "^1.0.2" 9511 de-indent "^1.0.2"
9311 he "^1.1.0" 9512 he "^1.1.0"
9312 9513
9313 -vue-template-es2015-compiler@^1.6.0:  
9314 - version "1.6.0"  
9315 - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18" 9514 +vue-template-es2015-compiler@^1.9.0:
  9515 + version "1.9.1"
  9516 + resolved "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
  9517 + integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=
9316 9518
9317 vue-touch@^1.1.0: 9519 vue-touch@^1.1.0:
9318 version "1.1.0" 9520 version "1.1.0"
@@ -9324,9 +9526,10 @@ vue-virtual-scroll-list@^1.2.8: @@ -9324,9 +9526,10 @@ vue-virtual-scroll-list@^1.2.8:
9324 version "1.2.8" 9526 version "1.2.8"
9325 resolved "http://npm.yohops.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.2.8.tgz#893fba84a982bc06c9c7a2c7f71e4d437c2e82f4" 9527 resolved "http://npm.yohops.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.2.8.tgz#893fba84a982bc06c9c7a2c7f71e4d437c2e82f4"
9326 9528
9327 -vue@^2.5.20:  
9328 - version "2.5.20"  
9329 - resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.20.tgz#79fff9ccaa10cc37e7a7239b4c7adfac94df81ba" 9529 +vue@^2.6.10:
  9530 + version "2.6.10"
  9531 + resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637"
  9532 + integrity sha1-pysaQqTYKnIepDjRtr9V5mGVxjc=
9330 9533
9331 vuex@^3.0.1: 9534 vuex@^3.0.1:
9332 version "3.0.1" 9535 version "3.0.1"