Authored by QC-L

扫码组件展示登录

@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 "list": [] 30 "list": []
31 }, 31 },
32 "miniprogram": { 32 "miniprogram": {
33 - "current": 12, 33 + "current": 14,
34 "list": [ 34 "list": [
35 { 35 {
36 "id": -1, 36 "id": -1,
@@ -117,6 +117,13 @@ @@ -117,6 +117,13 @@
117 "pathName": "pages/order/orderSuccess/orderSuccess", 117 "pathName": "pages/order/orderSuccess/orderSuccess",
118 "query": "", 118 "query": "",
119 "scene": "1011" 119 "scene": "1011"
  120 + },
  121 + {
  122 + "id": -1,
  123 + "name": "扫码登录",
  124 + "pathName": "pages/productDetail/index",
  125 + "query": "q=https%3A%2F%2Fo.yohobuy.com%2Fufo%3Fp%3D517449%2C1%26skup%3D517449%26skn%3D10003791&scancode_time=1553151155",
  126 + "scene": 1011
120 } 127 }
121 ] 128 ]
122 } 129 }
  1 +// src/components/login/login-bg/login-bg.js
  2 +import { getLoginButtonType } from '../../../libs/login/login.js'
  3 +import event from '../../../utils/event.js'
  4 +Component({
  5 + /**
  6 + * 组件的属性列表
  7 + */
  8 + properties: {
  9 +
  10 + },
  11 +
  12 + /**
  13 + * 组件的初始数据
  14 + */
  15 + data: {
  16 + loginText: '微信登录',
  17 + loginButtonType: '',
  18 + loginTips: ''
  19 + },
  20 +
  21 + created() {
  22 + let that = this;
  23 + event.one('user-login-success', () => {
  24 + this.triggerEvent('loginSuccess', true);
  25 + // 返回上一页
  26 + this.goReferer(); // 如果不需要绑定手机则返回前一页
  27 + });
  28 + event.one('change-login-status', params => {
  29 + that.setData({
  30 + loginText: params.text || '微信登录',
  31 + loginTips: params.tips || '',
  32 + loginButtonType: params.openType || ''
  33 + });
  34 + });
  35 + event.one('user-login-callback', this.loginCallback);
  36 + event.one('user-get-phonenumber-error', this.getPhonenumberError);
  37 + },
  38 +
  39 + attached() {
  40 + const buttonType = getLoginButtonType();
  41 + console.log(buttonType);
  42 + this.setData({
  43 + loginButtonType: buttonType
  44 + });
  45 + },
  46 +
  47 + /**
  48 + * 组件的方法列表
  49 + */
  50 + methods: {
  51 + loginCallback(res) {
  52 +
  53 + },
  54 +
  55 + goReferer() {
  56 + console.log('执行返回');
  57 + wx.navigateBack({
  58 + delta: 1
  59 + });
  60 + },
  61 +
  62 + getPhonenumberError(error) {
  63 + if (error === 'getPhoneNumber:fail user deny') {
  64 + error = '获取手机号失败, 请使用验证码登录';
  65 + }
  66 +
  67 + let timeOut = 1000;
  68 +
  69 + if (error === 'getUserInfo:fail auth deny') {
  70 + timeOut = 0;
  71 + }
  72 +
  73 + setTimeout(() => {
  74 + wx.navigateTo({
  75 + url: `../login/index`,
  76 + })
  77 + }, timeOut);
  78 +
  79 + wx.showToast({
  80 + title: error,
  81 + duration: 3000,
  82 + icon: 'none'
  83 + });
  84 +
  85 + },
  86 + }
  87 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {
  4 + "login-button": "../button"
  5 + }
  6 +}
  1 +<!--src/components/login/login-bg/login-bg.wxml-->
  2 +<view class="login-container">
  3 + <image class="logo" src="../../../assets/images/home-logo.png"></image>
  4 + <view class="login-buttons">
  5 + <view class="to-login">{{loginText}}</view>
  6 + <login-button class="login-area auto-btn" openType="{{loginButtonType}}"></login-button>
  7 + </view>
  8 + <view class="login-tips">{{loginTips}}</view>
  9 +</view>
  1 +/* src/components/login/login-bg/login-bg.wxss */
  2 +
  3 +.login-container {
  4 + position: fixed;
  5 + top: 0;
  6 + width: 100%;
  7 + height: 100%;
  8 + display: flex;
  9 + flex-direction: column;
  10 + align-items: center;
  11 + background-color: white;
  12 +
  13 +}
  14 +
  15 +.logo {
  16 + position: relative;
  17 + width: 366rpx;
  18 + height: 312rpx;
  19 + margin-top: 244rpx;
  20 +}
  21 +
  22 +.login-buttons {
  23 + position: relative;
  24 + width: 540rpx;
  25 + height: 88rpx;
  26 + margin-top: 202rpx;
  27 +}
  28 +
  29 +.login-area {
  30 + position: absolute;
  31 + top: 0;
  32 + left: 0;
  33 + width: 540rpx;
  34 + height: 88rpx;
  35 +}
  36 +
  37 +.login-area.auto-btn {
  38 + background-color: transparent;
  39 + border: none;
  40 +}
  41 +
  42 +.login-area.auto-btn:after {
  43 + border: none;
  44 +}
  45 +
  46 +.login-tips {
  47 + width: 540rpx;
  48 + height: 60rpx;
  49 + line-height: 60rpx;
  50 + font-size: 24rpx;
  51 + color: #b0b0b0;
  52 + margin-top: 16rpx;
  53 + text-align: center;
  54 +}
  55 +
  56 +.to-login {
  57 + height: 100%;
  58 + line-height: 88rpx;
  59 + color: #fff;
  60 + font-size: 32rpx;
  61 + letter-spacing: 8rpx;
  62 + text-align: center;
  63 + background-color: #000;
  64 + border-radius: 50rpx;
  65 +}
@@ -68,6 +68,7 @@ Page({ @@ -68,6 +68,7 @@ Page({
68 68
69 goReferer() { 69 goReferer() {
70 console.log('执行返回'); 70 console.log('执行返回');
  71 + // 隐藏登录
71 wx.navigateBack({ 72 wx.navigateBack({
72 delta: 1 73 delta: 1
73 }); 74 });
1 -import Taro, {Component} from '@tarojs/taro'; 1 +import Taro, {Component, login} from '@tarojs/taro';
2 import {View, Swiper, SwiperItem, Image} from '@tarojs/components'; 2 import {View, Swiper, SwiperItem, Image} from '@tarojs/components';
3 import {productDetail as productDetailModel} from '../../models'; 3 import {productDetail as productDetailModel} from '../../models';
4 import {getImgUrl} from '../../utils'; 4 import {getImgUrl} from '../../utils';
@@ -56,6 +56,7 @@ export default class ProductDetail extends Component { @@ -56,6 +56,7 @@ export default class ProductDetail extends Component {
56 snapshootShareData: {}, 56 snapshootShareData: {},
57 skup: '', 57 skup: '',
58 storeId: -1, 58 storeId: -1,
  59 + isLogin: true,
59 productDec: { 60 productDec: {
60 color: { 61 color: {
61 text: '颜色', 62 text: '颜色',
@@ -84,7 +85,8 @@ export default class ProductDetail extends Component { @@ -84,7 +85,8 @@ export default class ProductDetail extends Component {
84 config = { 85 config = {
85 usingComponents: { 86 usingComponents: {
86 'share-sheet' : '../../components/shareSheet/shareSheet', 87 'share-sheet' : '../../components/shareSheet/shareSheet',
87 - 'snapshoot-share' : '../../components/shareSheet/snapshootShare/snapshootShare' 88 + 'snapshoot-share' : '../../components/shareSheet/snapshootShare/snapshootShare',
  89 + 'login-bg': '../../components/login/login-bg/login-bg'
88 } 90 }
89 } 91 }
90 92
@@ -142,14 +144,36 @@ export default class ProductDetail extends Component { @@ -142,14 +144,36 @@ export default class ProductDetail extends Component {
142 skup, 144 skup,
143 storeId 145 storeId
144 }); 146 });
145 - event.emit('user-is-login', () => {  
146 - this.loadStoreProductInfo(skup, storeId);  
147 - }, () => {  
148 - Taro.redirectTo({  
149 - url: `/pages/productDetail/index?skup=${skup}&storeId=${storeId}`,  
150 - });  
151 - }); 147 + // event.emit('user-is-login', () => {
  148 + // this.loadStoreProductInfo(skup, storeId);
  149 + // }, () => {
  150 + // Taro.redirectTo({
  151 + // url: `/pages/productDetail/index?skup=${skup}&storeId=${storeId}`,
  152 + // });
  153 + // });
  154 + event.emit('judge-user-is-login', this.isLogined.bind(this), this.isLoginCallBack.bind(this, skup, storeId));
  155 + }
  156 +
  157 + isLogined(isLogin) {
  158 + this.setState({
  159 + isLogin
  160 + })
  161 + console.log(isLogin);
  162 + console.log(this.state.storeId);
  163 + }
  164 +
  165 + isLoginCallBack(skup, storeId) {
  166 + this.loadStoreProductInfo(skup, storeId);
  167 + }
  168 +
  169 + loginSuccess(isLogin) {
  170 + this.setState({
  171 + isLogin
  172 + })
  173 + let { skup, storeId } = this.state;
  174 + this.loadStoreProductInfo(skup, storeId);
152 } 175 }
  176 +
153 async loadStoreProductInfo(skup, storeId) { 177 async loadStoreProductInfo(skup, storeId) {
154 await getPrivateKey(); 178 await getPrivateKey();
155 productDetailModel.getStoreProductDetail(skup, storeId).then(res => { 179 productDetailModel.getStoreProductDetail(skup, storeId).then(res => {
@@ -495,12 +519,13 @@ export default class ProductDetail extends Component { @@ -495,12 +519,13 @@ export default class ProductDetail extends Component {
495 } 519 }
496 520
497 render() { 521 render() {
498 - let {productInfo, recommendList, goodsList, productDec, id, skup} = this.state; 522 + let {productInfo, recommendList, goodsList, productDec, id, skup, isLogin, storeId} = this.state;
499 let imageList = goodsList.image_list || []; 523 let imageList = goodsList.image_list || [];
500 let status = productInfo.status; 524 let status = productInfo.status;
501 - 525 +
502 return ( 526 return (
503 - <View className="product-page"> 527 + <View>
  528 + { !(!isLogin && storeId !== -1) && (<View className="product-page">
504 <View className="swiperNum">{this.swiperNum}</View> 529 <View className="swiperNum">{this.swiperNum}</View>
505 <Swiper className='product-swiper' autoplay onChange={this.onChangeSwiper}> 530 <Swiper className='product-swiper' autoplay onChange={this.onChangeSwiper}>
506 { 531 {
@@ -614,7 +639,12 @@ export default class ProductDetail extends Component { @@ -614,7 +639,12 @@ export default class ProductDetail extends Component {
614 { 639 {
615 skup ? <Image className="goYohoBuy" onClick={this.goOnLineProuduct.bind(this, id)} src={goOnLine} mode="aspectFill" /> : <Image className="goYohoBuy" onClick={this.goYohoBuyMinApp.bind(this)} src={goYohoBuy} mode="aspectFill" /> 640 skup ? <Image className="goYohoBuy" onClick={this.goOnLineProuduct.bind(this, id)} src={goOnLine} mode="aspectFill" /> : <Image className="goYohoBuy" onClick={this.goYohoBuyMinApp.bind(this)} src={goYohoBuy} mode="aspectFill" />
616 } 641 }
617 - </View> 642 + </View>)
  643 + }
  644 + {
  645 + !isLogin && storeId !== -1 && (<login-bg catchtouchmove='true' onLoginSuccess={this.loginSuccess}></login-bg>)
  646 + }
  647 + </View>
618 ) 648 )
619 } 649 }
620 } 650 }
@@ -1883,10 +1883,6 @@ constants-browserify@^1.0.0: @@ -1883,10 +1883,6 @@ constants-browserify@^1.0.0:
1883 version "1.0.0" 1883 version "1.0.0"
1884 resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 1884 resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
1885 1885
1886 -contains-path@^0.1.0:  
1887 - version "0.1.0"  
1888 - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"  
1889 -  
1890 content-disposition@0.5.2: 1886 content-disposition@0.5.2:
1891 version "0.5.2" 1887 version "0.5.2"
1892 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 1888 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
@@ -2349,13 +2345,6 @@ dns-txt@^2.0.2: @@ -2349,13 +2345,6 @@ dns-txt@^2.0.2:
2349 dependencies: 2345 dependencies:
2350 buffer-indexof "^1.0.0" 2346 buffer-indexof "^1.0.0"
2351 2347
2352 -doctrine@1.5.0:  
2353 - version "1.5.0"  
2354 - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"  
2355 - dependencies:  
2356 - esutils "^2.0.2"  
2357 - isarray "^1.0.0"  
2358 -  
2359 doctrine@^2.1.0: 2348 doctrine@^2.1.0:
2360 version "2.1.0" 2349 version "2.1.0"
2361 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 2350 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
@@ -2526,35 +2515,6 @@ eslint-config-taro@^1.1.0: @@ -2526,35 +2515,6 @@ eslint-config-taro@^1.1.0:
2526 dependencies: 2515 dependencies:
2527 eslint-plugin-taro "1.1.0" 2516 eslint-plugin-taro "1.1.0"
2528 2517
2529 -eslint-import-resolver-node@^0.3.1:  
2530 - version "0.3.2"  
2531 - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"  
2532 - dependencies:  
2533 - debug "^2.6.9"  
2534 - resolve "^1.5.0"  
2535 -  
2536 -eslint-module-utils@^2.2.0:  
2537 - version "2.2.0"  
2538 - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"  
2539 - dependencies:  
2540 - debug "^2.6.8"  
2541 - pkg-dir "^1.0.0"  
2542 -  
2543 -eslint-plugin-import@^2.12.0:  
2544 - version "2.14.0"  
2545 - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8"  
2546 - dependencies:  
2547 - contains-path "^0.1.0"  
2548 - debug "^2.6.8"  
2549 - doctrine "1.5.0"  
2550 - eslint-import-resolver-node "^0.3.1"  
2551 - eslint-module-utils "^2.2.0"  
2552 - has "^1.0.1"  
2553 - lodash "^4.17.4"  
2554 - minimatch "^3.0.3"  
2555 - read-pkg-up "^2.0.0"  
2556 - resolve "^1.6.0"  
2557 -  
2558 eslint-plugin-react@^7.8.2: 2518 eslint-plugin-react@^7.8.2:
2559 version "7.11.1" 2519 version "7.11.1"
2560 resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" 2520 resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c"
@@ -2900,7 +2860,7 @@ find-up@^1.0.0: @@ -2900,7 +2860,7 @@ find-up@^1.0.0:
2900 path-exists "^2.0.0" 2860 path-exists "^2.0.0"
2901 pinkie-promise "^2.0.0" 2861 pinkie-promise "^2.0.0"
2902 2862
2903 -find-up@^2.0.0, find-up@^2.1.0: 2863 +find-up@^2.1.0:
2904 version "2.1.0" 2864 version "2.1.0"
2905 resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 2865 resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
2906 dependencies: 2866 dependencies:
@@ -4119,15 +4079,6 @@ load-json-file@^1.0.0: @@ -4119,15 +4079,6 @@ load-json-file@^1.0.0:
4119 pinkie-promise "^2.0.0" 4079 pinkie-promise "^2.0.0"
4120 strip-bom "^2.0.0" 4080 strip-bom "^2.0.0"
4121 4081
4122 -load-json-file@^2.0.0:  
4123 - version "2.0.0"  
4124 - resolved "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"  
4125 - dependencies:  
4126 - graceful-fs "^4.1.2"  
4127 - parse-json "^2.2.0"  
4128 - pify "^2.0.0"  
4129 - strip-bom "^3.0.0"  
4130 -  
4131 loader-runner@^2.3.0: 4082 loader-runner@^2.3.0:
4132 version "2.3.1" 4083 version "2.3.1"
4133 resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" 4084 resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979"
@@ -4482,7 +4433,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: @@ -4482,7 +4433,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
4482 version "1.0.1" 4433 version "1.0.1"
4483 resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 4434 resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
4484 4435
4485 -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: 4436 +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
4486 version "3.0.4" 4437 version "3.0.4"
4487 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 4438 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4488 dependencies: 4439 dependencies:
@@ -5160,12 +5111,6 @@ path-type@^1.0.0: @@ -5160,12 +5111,6 @@ path-type@^1.0.0:
5160 pify "^2.0.0" 5111 pify "^2.0.0"
5161 pinkie-promise "^2.0.0" 5112 pinkie-promise "^2.0.0"
5162 5113
5163 -path-type@^2.0.0:  
5164 - version "2.0.0"  
5165 - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"  
5166 - dependencies:  
5167 - pify "^2.0.0"  
5168 -  
5169 path-type@^3.0.0: 5114 path-type@^3.0.0:
5170 version "3.0.0" 5115 version "3.0.0"
5171 resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" 5116 resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -5204,12 +5149,6 @@ pinkie@^2.0.0: @@ -5204,12 +5149,6 @@ pinkie@^2.0.0:
5204 version "2.0.4" 5149 version "2.0.4"
5205 resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 5150 resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
5206 5151
5207 -pkg-dir@^1.0.0:  
5208 - version "1.0.0"  
5209 - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"  
5210 - dependencies:  
5211 - find-up "^1.0.0"  
5212 -  
5213 pkg-dir@^2.0.0: 5152 pkg-dir@^2.0.0:
5214 version "2.0.0" 5153 version "2.0.0"
5215 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 5154 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
@@ -5525,13 +5464,6 @@ read-pkg-up@^1.0.1: @@ -5525,13 +5464,6 @@ read-pkg-up@^1.0.1:
5525 find-up "^1.0.0" 5464 find-up "^1.0.0"
5526 read-pkg "^1.0.0" 5465 read-pkg "^1.0.0"
5527 5466
5528 -read-pkg-up@^2.0.0:  
5529 - version "2.0.0"  
5530 - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"  
5531 - dependencies:  
5532 - find-up "^2.0.0"  
5533 - read-pkg "^2.0.0"  
5534 -  
5535 read-pkg@^1.0.0: 5467 read-pkg@^1.0.0:
5536 version "1.1.0" 5468 version "1.1.0"
5537 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 5469 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -5540,14 +5472,6 @@ read-pkg@^1.0.0: @@ -5540,14 +5472,6 @@ read-pkg@^1.0.0:
5540 normalize-package-data "^2.3.2" 5472 normalize-package-data "^2.3.2"
5541 path-type "^1.0.0" 5473 path-type "^1.0.0"
5542 5474
5543 -read-pkg@^2.0.0:  
5544 - version "2.0.0"  
5545 - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"  
5546 - dependencies:  
5547 - load-json-file "^2.0.0"  
5548 - normalize-package-data "^2.3.2"  
5549 - path-type "^2.0.0"  
5550 -  
5551 "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.5, 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, readable-stream@^2.3.6: 5475 "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.5, 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, readable-stream@^2.3.6:
5552 version "2.3.6" 5476 version "2.3.6"
5553 resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 5477 resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
@@ -5822,7 +5746,7 @@ resolve-url@^0.2.1: @@ -5822,7 +5746,7 @@ resolve-url@^0.2.1:
5822 version "0.2.1" 5746 version "0.2.1"
5823 resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 5747 resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
5824 5748
5825 -resolve@^1.1.6, resolve@^1.5.0, resolve@^1.6.0: 5749 +resolve@^1.1.6, resolve@^1.6.0:
5826 version "1.8.1" 5750 version "1.8.1"
5827 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 5751 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
5828 dependencies: 5752 dependencies:
@@ -6384,10 +6308,6 @@ strip-bom@^2.0.0: @@ -6384,10 +6308,6 @@ strip-bom@^2.0.0:
6384 dependencies: 6308 dependencies:
6385 is-utf8 "^0.2.0" 6309 is-utf8 "^0.2.0"
6386 6310
6387 -strip-bom@^3.0.0:  
6388 - version "3.0.0"  
6389 - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"  
6390 -  
6391 strip-eof@^1.0.0: 6311 strip-eof@^1.0.0:
6392 version "1.0.0" 6312 version "1.0.0"
6393 resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 6313 resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"