From 4ed701fa0f6a99db892f01bab4cc59bf81ce5991 Mon Sep 17 00:00:00 2001 From: h30830569 <30830569@qq.com> Date: Mon, 9 May 2022 09:55:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 14 + .env | 4 + .env.development | 4 + .env.production | 4 + .eslintignore | 4 + .eslintrc.js | 198 + .gitignore | 23 + .prettierrc.json | 5 + README.md | 19 + babel.config.js | 63 + package-lock.json | 15338 ++++++++++++++++ package.json | 109 + postcss.config.js | 29 + public/index.html | 28 + src/App.vue | 101 + src/components/QS-SharePoster/QRCodeAlg.js | 1009 + .../QS-SharePoster/QS-SharePoster.js | 1620 ++ src/components/QS-SharePoster/app.js | 565 + src/components/QS-SharePoster/image-tools.js | 147 + src/components/comment/comment.vue | 54 + src/components/coupon-list/coupon-list.vue | 88 + src/components/cu-avatar/cu-avatar.vue | 246 + src/components/cu-form-item/cu-form-item.vue | 437 + src/components/cu-form/cu-form.vue | 192 + src/components/cu-image/cu-image.vue | 286 + src/components/cu-modal/cu-modal.vue | 288 + src/components/cu-navbar/cu-navbar.vue | 323 + src/components/cu-popup/cu-popup.vue | 456 + src/components/cu-select/cu-select.vue | 417 + src/components/cu-steps/cu-steps.vue | 261 + src/components/cu-swiper/cu-swiper.vue | 381 + src/components/goods-item/goods-item.vue | 62 + src/components/goods-list/goods-list.vue | 43 + src/components/j-video/j-video.vue | 118 + src/components/loading-view/loading-view.vue | 52 + src/components/nav-shadow/nav-shadow.vue | 23 + .../password-popup/password-popup.vue | 255 + src/components/price-format/price-format.vue | 82 + .../product-swiper/product-swiper.vue | 136 + src/components/safe-view/safe-view.vue | 31 + src/components/sms-input/sms-input.vue | 78 + src/components/spec-popup/spec-popup.vue | 195 + src/components/trigonometry/trigonometry.vue | 55 + src/components/upload/upload.vue | 87 + src/main.js | 36 + src/manifest.json | 205 + src/mixin/app.mixin.js | 13 + src/mixin/router.mixin.js | 29 + src/pageA/address/index.vue | 163 + src/pageA/after_sale/index.vue | 107 + src/pageA/after_sales_detail/index.vue | 439 + src/pageA/after_sales_logistics/index.vue | 96 + src/pageA/balance_transfer/index.vue | 149 + src/pageA/balance_transfer_details/index.vue | 81 + src/pageA/bank_card/index.vue | 204 + src/pageA/bank_details/index.vue | 126 + src/pageA/collection/index.vue | 69 + src/pageA/coupon/coupon.vue | 91 + src/pageA/fan_list/index.vue | 185 + src/pageA/history/index.vue | 90 + src/pageA/invite_friends/index.vue | 376 + src/pageA/membership_interests/index.vue | 243 + src/pageA/my_account/index.vue | 282 + src/pageA/my_bank/index.vue | 126 + src/pageA/new_address/index.vue | 287 + src/pageA/news/index.vue | 159 + src/pageA/personal/personal.vue | 210 + src/pageA/reset_password/index.vue | 21 + src/pageA/reset_password/login.vue | 183 + src/pageA/reset_password/reset_security.vue | 155 + src/pageA/reset_password/secure.vue | 155 + src/pageA/special_area/index.vue | 109 + .../user_order/conponents/order-item.vue | 121 + src/pageA/user_order/index.vue | 165 + src/pageA/user_sign/index.vue | 305 + src/pageA/withdrawal_balance/index.vue | 116 + src/pageA/withdrawal_details/index.vue | 68 + src/pageB/code/index.vue | 40 + src/pageB/index/index.vue | 29 + src/pageB/order_details/index.vue | 113 + .../select_product/components/goods-item.vue | 48 + src/pageB/select_product/index.vue | 122 + src/pageB/select_store/index.vue | 68 + .../user_order/conponents/order-item.vue | 35 + src/pageB/user_order/index.vue | 37 + src/pageB/user_select_pro/index.vue | 60 + src/pages.json | 626 + src/pages/about_us/index.vue | 23 + src/pages/apply_refund/index.vue | 358 + src/pages/article_details/article_details.vue | 157 + src/pages/auxiliary_cart/index.vue | 23 + src/pages/bargain/components/goods.vue | 43 + src/pages/bargain/index.vue | 151 + src/pages/bargain/invite.vue | 380 + src/pages/comment/comment.vue | 43 + src/pages/confirm_order/confirm_order.vue | 403 + src/pages/confirm_payment/confirm_payment.vue | 274 + src/pages/development/index.vue | 5 + src/pages/feedback/index.vue | 98 + src/pages/goods_logistics/index.vue | 76 + src/pages/guide/guide.vue | 205 + src/pages/guide/judge.vue | 60 + src/pages/healthy/healthy.vue | 176 + src/pages/healthy/index.vue | 109 + src/pages/index/components/popup-view.vue | 79 + src/pages/index/components/title.vue | 21 + src/pages/index/index.vue | 392 + src/pages/login/index.vue | 198 + src/pages/logistics_information/index.vue | 115 + src/pages/me/me.vue | 506 + src/pages/my_package/index.vue | 62 + src/pages/order_details/index.vue | 312 + src/pages/payment_results/payment_results.vue | 104 + src/pages/points/components/coupon-comp.vue | 27 + .../points/components/points-goods-comp.vue | 44 + src/pages/points/record.vue | 99 + src/pages/points/swap-record.vue | 11 + src/pages/points/swap.vue | 180 + .../components/share-popup.vue | 278 + src/pages/product_details/index.vue | 699 + src/pages/publish_evaluation/index.vue | 70 + src/pages/register/index.vue | 209 + src/pages/search/search.vue | 110 + src/pages/search/search_result.vue | 150 + .../shop_cart/components/cart-goods-item.vue | 85 + src/pages/shop_cart/index.vue | 316 + src/pages/shop_cart/mixin/index.js | 37 + src/pages/sort/index.vue | 254 + src/pages/switch_account/index.vue | 135 + src/pages/upgrade_popup/index.vue | 522 + src/pages/web_view/index.vue | 53 + src/pages/welcome/index.vue | 29 + src/static/images/app/app_update_close.png | Bin 0 -> 2378 bytes src/static/images/app/bg_top.png | Bin 0 -> 10522 bytes src/static/images/app/devlop.png | Bin 0 -> 127386 bytes src/static/images/app/popup_bg.png | Bin 0 -> 31500 bytes src/static/images/app/update-img.png | Bin 0 -> 11832 bytes src/static/images/cart/check-round-fill.png | Bin 0 -> 482 bytes src/static/images/cart/check-round.png | Bin 0 -> 261 bytes src/static/images/cart/empty-cart.png | Bin 0 -> 11728 bytes src/static/images/cart/short-cart.png | Bin 0 -> 618 bytes src/static/images/coupon/coupon.png | Bin 0 -> 1542 bytes src/static/images/coupon/coupon_no.png | Bin 0 -> 667 bytes src/static/images/coupon/select-red.png | Bin 0 -> 515 bytes src/static/images/coupon/unselect.png | Bin 0 -> 443 bytes src/static/images/del.png | Bin 0 -> 3831 bytes src/static/images/icon_play.png | Bin 0 -> 1392 bytes src/static/images/logistics/complete.png | Bin 0 -> 1566 bytes src/static/images/logs/logs.png | Bin 0 -> 11388 bytes src/static/images/member/add.png | Bin 0 -> 650 bytes src/static/images/member/member_1.png | Bin 0 -> 14744 bytes src/static/images/member/member_top.png | Bin 0 -> 21534 bytes src/static/images/member/red.png | Bin 0 -> 1808 bytes src/static/images/member/suspension.png | Bin 0 -> 4417 bytes src/static/images/order/defalut-icon.png | Bin 0 -> 925 bytes src/static/images/share.png | Bin 0 -> 2223 bytes src/static/images/share/album.png | Bin 0 -> 4823 bytes src/static/images/share/code.png | Bin 0 -> 5660 bytes src/static/images/share/logs.png | Bin 0 -> 2927 bytes src/static/images/share/wechat-friends.png | Bin 0 -> 2273 bytes src/static/images/share/wechat-moments.png | Bin 0 -> 3561 bytes src/static/images/user/about_us.png | Bin 0 -> 1283 bytes src/static/images/user/account_del.png | Bin 0 -> 463 bytes src/static/images/user/address_management.png | Bin 0 -> 776 bytes src/static/images/user/avatar.png | Bin 0 -> 3782 bytes src/static/images/user/browse_records.png | Bin 0 -> 867 bytes src/static/images/user/camera.png | Bin 0 -> 840 bytes src/static/images/user/can_mention.png | Bin 0 -> 1577 bytes src/static/images/user/code-icon.png | Bin 0 -> 1295 bytes src/static/images/user/collection.png | Bin 0 -> 1023 bytes src/static/images/user/empty.png | Bin 0 -> 4493 bytes src/static/images/user/err.png | Bin 0 -> 1654 bytes src/static/images/user/evaluated.png | Bin 0 -> 1002 bytes src/static/images/user/fan_list.png | Bin 0 -> 449 bytes src/static/images/user/fan_title_bg.png | Bin 0 -> 2006 bytes src/static/images/user/left_arrow.png | Bin 0 -> 411 bytes src/static/images/user/logistics.png | Bin 0 -> 630 bytes src/static/images/user/my_account.png | Bin 0 -> 1143 bytes src/static/images/user/my_bg.png | Bin 0 -> 2428 bytes src/static/images/user/my_collection.png | Bin 0 -> 2331 bytes src/static/images/user/my_coupon.png | Bin 0 -> 766 bytes .../images/user/password_modification.png | Bin 0 -> 681 bytes src/static/images/user/pay_nosel.png | Bin 0 -> 670 bytes src/static/images/user/pay_sel.png | Bin 0 -> 1191 bytes src/static/images/user/pending_payment.png | Bin 0 -> 433 bytes src/static/images/user/phone-icon.png | Bin 0 -> 521 bytes src/static/images/user/play.png | Bin 0 -> 687 bytes src/static/images/user/pre_income.png | Bin 0 -> 1447 bytes src/static/images/user/pwd-icon.png | Bin 0 -> 941 bytes src/static/images/user/received.png | Bin 0 -> 576 bytes src/static/images/user/registered_account.png | Bin 0 -> 1024 bytes src/static/images/user/service.png | Bin 0 -> 825 bytes src/static/images/user/sfter_sale.png | Bin 0 -> 808 bytes src/static/images/user/share_friends.png | Bin 0 -> 779 bytes src/static/images/user/shipped.png | Bin 0 -> 1290 bytes src/static/images/user/sign_in.png | Bin 0 -> 1262 bytes src/static/images/user/smile.png | Bin 0 -> 1251 bytes src/static/images/user/sms-icon.png | Bin 0 -> 1211 bytes src/static/images/user/switch_accounts.png | Bin 0 -> 1063 bytes src/static/images/user/thumbs_up.png | Bin 0 -> 859 bytes src/static/images/user/user-icon.png | Bin 0 -> 1046 bytes src/static/images/user/user_sign-bg.png | Bin 0 -> 17077 bytes src/static/images/user/user_sign-btn.png | Bin 0 -> 14643 bytes src/static/images/user/user_sign-des-icon.png | Bin 0 -> 1222 bytes .../images/user/user_sign-des-title.png | Bin 0 -> 4483 bytes src/static/images/user/user_sign-rule.png | Bin 0 -> 5191 bytes .../images/user/user_sign-sign-icon.png | Bin 0 -> 622 bytes src/static/images/user/user_sign-sucess.png | Bin 0 -> 4682 bytes src/static/images/user/user_sign-title.png | Bin 0 -> 20342 bytes src/static/images/user/white_left_arrow.png | Bin 0 -> 262 bytes src/static/images/user/yjfk-icon.png | Bin 0 -> 5043 bytes src/static/images/user/zx-icon.png | Bin 0 -> 3438 bytes src/static/svg/add_acc.svg | 1 + src/static/svg/del.svg | 1 + src/static/svg/down_arrow.svg | 1 + src/static/svg/down_arrow_sel.svg | 1 + src/static/svg/svip.svg | 1 + src/static/svg/up_arrow.svg | 1 + src/static/svg/up_arrow_sel.svg | 1 + src/static/tabbar/cart.png | Bin 0 -> 1086 bytes src/static/tabbar/cart_sel.png | Bin 0 -> 1109 bytes src/static/tabbar/class.png | Bin 0 -> 1648 bytes src/static/tabbar/class_sel.png | Bin 0 -> 1710 bytes src/static/tabbar/healthy.png | Bin 0 -> 1179 bytes src/static/tabbar/healthy_sel.png | Bin 0 -> 1218 bytes src/static/tabbar/index.png | Bin 0 -> 1108 bytes src/static/tabbar/index_sel.png | Bin 0 -> 1156 bytes src/static/tabbar/my.png | Bin 0 -> 989 bytes src/static/tabbar/my_sel.png | Bin 0 -> 774 bytes src/store/getters.js | 17 + src/store/index.js | 20 + src/store/modules/app.js | 79 + src/store/modules/goods.js | 66 + src/store/modules/user.js | 244 + src/style/index.scss | 231 + src/uni.scss | 81 + src/uni_modules/mescroll-uni/changelog.md | 6 + .../mescroll-body/mescroll-body.css | 19 + .../mescroll-body/mescroll-body.vue | 400 + .../beibei/components/mescroll-down.css | 47 + .../beibei/components/mescroll-down.vue | 39 + .../mescroll-diy/beibei/mescroll-body.vue | 360 + .../beibei/mescroll-uni-option.js | 49 + .../mescroll-diy/beibei/mescroll-uni.vue | 437 + .../xinlang/components/mescroll-down.css | 44 + .../xinlang/components/mescroll-down.vue | 53 + .../xinlang/components/mescroll-up.css | 32 + .../xinlang/components/mescroll-up.vue | 40 + .../mescroll-diy/xinlang/mescroll-body.vue | 380 + .../xinlang/mescroll-uni-option.js | 64 + .../mescroll-diy/xinlang/mescroll-uni.vue | 462 + .../mescroll-empty/mescroll-empty.vue | 116 + .../mescroll-uni/components/mescroll-down.css | 55 + .../mescroll-uni/components/mescroll-down.vue | 47 + .../mescroll-uni/components/mescroll-top.vue | 83 + .../mescroll-uni/components/mescroll-up.css | 47 + .../mescroll-uni/components/mescroll-up.vue | 39 + .../components/mescroll-uni/mescroll-i18n.js | 15 + .../mescroll-uni/mescroll-mixins.js | 57 + .../mescroll-uni/mescroll-uni-option.js | 64 + .../components/mescroll-uni/mescroll-uni.css | 36 + .../components/mescroll-uni/mescroll-uni.js | 799 + .../components/mescroll-uni/mescroll-uni.vue | 477 + .../mescroll-uni/mixins/mescroll-comp.js | 47 + .../mescroll-uni/mixins/mescroll-more-item.js | 66 + .../mescroll-uni/mixins/mescroll-more.js | 74 + .../components/mescroll-uni/wxs/mixins.js | 109 + .../components/mescroll-uni/wxs/renderjs.js | 92 + .../components/mescroll-uni/wxs/wxs.wxs | 268 + src/uni_modules/mescroll-uni/package.json | 80 + src/uni_modules/mescroll-uni/readme.md | 45 + src/utils/address_parse.js | 497 + src/utils/async-validator.js | 1343 ++ src/utils/author.js | 59 + src/utils/check-update.js | 121 + src/utils/filters.js | 217 + src/utils/index.js | 96 + src/utils/login.js | 37 + src/utils/ossutil/base64.js | 143 + src/utils/ossutil/crypto.js | 178 + src/utils/ossutil/hmac.js | 34 + src/utils/ossutil/sha1.js | 79 + src/utils/ossutil/uploadFile.js | 89 + src/utils/pay.js | 87 + src/utils/permission.js | 272 + src/utils/push.js | 94 + src/utils/request.js | 118 + src/utils/tools.js | 89 + src/utils/uni-copy.js | 45 + src/utils/wechath5.js | 31 + tsconfig.json | 9 + unpackage/res/icons/1024x1024.png | Bin 0 -> 41256 bytes unpackage/res/icons/120x120.png | Bin 0 -> 4158 bytes unpackage/res/icons/144x144.png | Bin 0 -> 4799 bytes unpackage/res/icons/152x152.png | Bin 0 -> 5115 bytes unpackage/res/icons/167x167.png | Bin 0 -> 5536 bytes unpackage/res/icons/180x180.png | Bin 0 -> 5915 bytes unpackage/res/icons/192x192.png | Bin 0 -> 6263 bytes unpackage/res/icons/20x20.png | Bin 0 -> 640 bytes unpackage/res/icons/29x29.png | Bin 0 -> 987 bytes unpackage/res/icons/40x40.png | Bin 0 -> 1439 bytes unpackage/res/icons/58x58.png | Bin 0 -> 2021 bytes unpackage/res/icons/60x60.png | Bin 0 -> 2121 bytes unpackage/res/icons/72x72.png | Bin 0 -> 2542 bytes unpackage/res/icons/76x76.png | Bin 0 -> 2702 bytes unpackage/res/icons/80x80.png | Bin 0 -> 2843 bytes unpackage/res/icons/87x87.png | Bin 0 -> 3123 bytes unpackage/res/icons/96x96.png | Bin 0 -> 3383 bytes vue.config.js | 14 + windi.config.js | 58 + yarn.lock | 11094 +++++++++++ 311 files changed, 58550 insertions(+) create mode 100644 .editorconfig create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .prettierrc.json create mode 100644 README.md create mode 100644 babel.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/index.html create mode 100644 src/App.vue create mode 100644 src/components/QS-SharePoster/QRCodeAlg.js create mode 100644 src/components/QS-SharePoster/QS-SharePoster.js create mode 100644 src/components/QS-SharePoster/app.js create mode 100644 src/components/QS-SharePoster/image-tools.js create mode 100644 src/components/comment/comment.vue create mode 100644 src/components/coupon-list/coupon-list.vue create mode 100644 src/components/cu-avatar/cu-avatar.vue create mode 100644 src/components/cu-form-item/cu-form-item.vue create mode 100644 src/components/cu-form/cu-form.vue create mode 100644 src/components/cu-image/cu-image.vue create mode 100644 src/components/cu-modal/cu-modal.vue create mode 100644 src/components/cu-navbar/cu-navbar.vue create mode 100644 src/components/cu-popup/cu-popup.vue create mode 100644 src/components/cu-select/cu-select.vue create mode 100644 src/components/cu-steps/cu-steps.vue create mode 100644 src/components/cu-swiper/cu-swiper.vue create mode 100644 src/components/goods-item/goods-item.vue create mode 100644 src/components/goods-list/goods-list.vue create mode 100644 src/components/j-video/j-video.vue create mode 100644 src/components/loading-view/loading-view.vue create mode 100644 src/components/nav-shadow/nav-shadow.vue create mode 100644 src/components/password-popup/password-popup.vue create mode 100644 src/components/price-format/price-format.vue create mode 100644 src/components/product-swiper/product-swiper.vue create mode 100644 src/components/safe-view/safe-view.vue create mode 100644 src/components/sms-input/sms-input.vue create mode 100644 src/components/spec-popup/spec-popup.vue create mode 100644 src/components/trigonometry/trigonometry.vue create mode 100644 src/components/upload/upload.vue create mode 100644 src/main.js create mode 100644 src/manifest.json create mode 100644 src/mixin/app.mixin.js create mode 100644 src/mixin/router.mixin.js create mode 100644 src/pageA/address/index.vue create mode 100644 src/pageA/after_sale/index.vue create mode 100644 src/pageA/after_sales_detail/index.vue create mode 100644 src/pageA/after_sales_logistics/index.vue create mode 100644 src/pageA/balance_transfer/index.vue create mode 100644 src/pageA/balance_transfer_details/index.vue create mode 100644 src/pageA/bank_card/index.vue create mode 100644 src/pageA/bank_details/index.vue create mode 100644 src/pageA/collection/index.vue create mode 100644 src/pageA/coupon/coupon.vue create mode 100644 src/pageA/fan_list/index.vue create mode 100644 src/pageA/history/index.vue create mode 100644 src/pageA/invite_friends/index.vue create mode 100644 src/pageA/membership_interests/index.vue create mode 100644 src/pageA/my_account/index.vue create mode 100644 src/pageA/my_bank/index.vue create mode 100644 src/pageA/new_address/index.vue create mode 100644 src/pageA/news/index.vue create mode 100644 src/pageA/personal/personal.vue create mode 100644 src/pageA/reset_password/index.vue create mode 100644 src/pageA/reset_password/login.vue create mode 100644 src/pageA/reset_password/reset_security.vue create mode 100644 src/pageA/reset_password/secure.vue create mode 100644 src/pageA/special_area/index.vue create mode 100644 src/pageA/user_order/conponents/order-item.vue create mode 100644 src/pageA/user_order/index.vue create mode 100644 src/pageA/user_sign/index.vue create mode 100644 src/pageA/withdrawal_balance/index.vue create mode 100644 src/pageA/withdrawal_details/index.vue create mode 100644 src/pageB/code/index.vue create mode 100644 src/pageB/index/index.vue create mode 100644 src/pageB/order_details/index.vue create mode 100644 src/pageB/select_product/components/goods-item.vue create mode 100644 src/pageB/select_product/index.vue create mode 100644 src/pageB/select_store/index.vue create mode 100644 src/pageB/user_order/conponents/order-item.vue create mode 100644 src/pageB/user_order/index.vue create mode 100644 src/pageB/user_select_pro/index.vue create mode 100644 src/pages.json create mode 100644 src/pages/about_us/index.vue create mode 100644 src/pages/apply_refund/index.vue create mode 100644 src/pages/article_details/article_details.vue create mode 100644 src/pages/auxiliary_cart/index.vue create mode 100644 src/pages/bargain/components/goods.vue create mode 100644 src/pages/bargain/index.vue create mode 100644 src/pages/bargain/invite.vue create mode 100644 src/pages/comment/comment.vue create mode 100644 src/pages/confirm_order/confirm_order.vue create mode 100644 src/pages/confirm_payment/confirm_payment.vue create mode 100644 src/pages/development/index.vue create mode 100644 src/pages/feedback/index.vue create mode 100644 src/pages/goods_logistics/index.vue create mode 100644 src/pages/guide/guide.vue create mode 100644 src/pages/guide/judge.vue create mode 100644 src/pages/healthy/healthy.vue create mode 100644 src/pages/healthy/index.vue create mode 100644 src/pages/index/components/popup-view.vue create mode 100644 src/pages/index/components/title.vue create mode 100644 src/pages/index/index.vue create mode 100644 src/pages/login/index.vue create mode 100644 src/pages/logistics_information/index.vue create mode 100644 src/pages/me/me.vue create mode 100644 src/pages/my_package/index.vue create mode 100644 src/pages/order_details/index.vue create mode 100644 src/pages/payment_results/payment_results.vue create mode 100644 src/pages/points/components/coupon-comp.vue create mode 100644 src/pages/points/components/points-goods-comp.vue create mode 100644 src/pages/points/record.vue create mode 100644 src/pages/points/swap-record.vue create mode 100644 src/pages/points/swap.vue create mode 100644 src/pages/product_details/components/share-popup.vue create mode 100644 src/pages/product_details/index.vue create mode 100644 src/pages/publish_evaluation/index.vue create mode 100644 src/pages/register/index.vue create mode 100644 src/pages/search/search.vue create mode 100644 src/pages/search/search_result.vue create mode 100644 src/pages/shop_cart/components/cart-goods-item.vue create mode 100644 src/pages/shop_cart/index.vue create mode 100644 src/pages/shop_cart/mixin/index.js create mode 100644 src/pages/sort/index.vue create mode 100644 src/pages/switch_account/index.vue create mode 100644 src/pages/upgrade_popup/index.vue create mode 100644 src/pages/web_view/index.vue create mode 100644 src/pages/welcome/index.vue create mode 100644 src/static/images/app/app_update_close.png create mode 100644 src/static/images/app/bg_top.png create mode 100644 src/static/images/app/devlop.png create mode 100644 src/static/images/app/popup_bg.png create mode 100644 src/static/images/app/update-img.png create mode 100644 src/static/images/cart/check-round-fill.png create mode 100644 src/static/images/cart/check-round.png create mode 100644 src/static/images/cart/empty-cart.png create mode 100644 src/static/images/cart/short-cart.png create mode 100644 src/static/images/coupon/coupon.png create mode 100644 src/static/images/coupon/coupon_no.png create mode 100644 src/static/images/coupon/select-red.png create mode 100644 src/static/images/coupon/unselect.png create mode 100644 src/static/images/del.png create mode 100644 src/static/images/icon_play.png create mode 100644 src/static/images/logistics/complete.png create mode 100644 src/static/images/logs/logs.png create mode 100644 src/static/images/member/add.png create mode 100644 src/static/images/member/member_1.png create mode 100644 src/static/images/member/member_top.png create mode 100644 src/static/images/member/red.png create mode 100644 src/static/images/member/suspension.png create mode 100644 src/static/images/order/defalut-icon.png create mode 100644 src/static/images/share.png create mode 100644 src/static/images/share/album.png create mode 100644 src/static/images/share/code.png create mode 100644 src/static/images/share/logs.png create mode 100644 src/static/images/share/wechat-friends.png create mode 100644 src/static/images/share/wechat-moments.png create mode 100644 src/static/images/user/about_us.png create mode 100644 src/static/images/user/account_del.png create mode 100644 src/static/images/user/address_management.png create mode 100644 src/static/images/user/avatar.png create mode 100644 src/static/images/user/browse_records.png create mode 100644 src/static/images/user/camera.png create mode 100644 src/static/images/user/can_mention.png create mode 100644 src/static/images/user/code-icon.png create mode 100644 src/static/images/user/collection.png create mode 100644 src/static/images/user/empty.png create mode 100644 src/static/images/user/err.png create mode 100644 src/static/images/user/evaluated.png create mode 100644 src/static/images/user/fan_list.png create mode 100644 src/static/images/user/fan_title_bg.png create mode 100644 src/static/images/user/left_arrow.png create mode 100644 src/static/images/user/logistics.png create mode 100644 src/static/images/user/my_account.png create mode 100644 src/static/images/user/my_bg.png create mode 100644 src/static/images/user/my_collection.png create mode 100644 src/static/images/user/my_coupon.png create mode 100644 src/static/images/user/password_modification.png create mode 100644 src/static/images/user/pay_nosel.png create mode 100644 src/static/images/user/pay_sel.png create mode 100644 src/static/images/user/pending_payment.png create mode 100644 src/static/images/user/phone-icon.png create mode 100644 src/static/images/user/play.png create mode 100644 src/static/images/user/pre_income.png create mode 100644 src/static/images/user/pwd-icon.png create mode 100644 src/static/images/user/received.png create mode 100644 src/static/images/user/registered_account.png create mode 100644 src/static/images/user/service.png create mode 100644 src/static/images/user/sfter_sale.png create mode 100644 src/static/images/user/share_friends.png create mode 100644 src/static/images/user/shipped.png create mode 100644 src/static/images/user/sign_in.png create mode 100644 src/static/images/user/smile.png create mode 100644 src/static/images/user/sms-icon.png create mode 100644 src/static/images/user/switch_accounts.png create mode 100644 src/static/images/user/thumbs_up.png create mode 100644 src/static/images/user/user-icon.png create mode 100644 src/static/images/user/user_sign-bg.png create mode 100644 src/static/images/user/user_sign-btn.png create mode 100644 src/static/images/user/user_sign-des-icon.png create mode 100644 src/static/images/user/user_sign-des-title.png create mode 100644 src/static/images/user/user_sign-rule.png create mode 100644 src/static/images/user/user_sign-sign-icon.png create mode 100644 src/static/images/user/user_sign-sucess.png create mode 100644 src/static/images/user/user_sign-title.png create mode 100644 src/static/images/user/white_left_arrow.png create mode 100644 src/static/images/user/yjfk-icon.png create mode 100644 src/static/images/user/zx-icon.png create mode 100644 src/static/svg/add_acc.svg create mode 100644 src/static/svg/del.svg create mode 100644 src/static/svg/down_arrow.svg create mode 100644 src/static/svg/down_arrow_sel.svg create mode 100644 src/static/svg/svip.svg create mode 100644 src/static/svg/up_arrow.svg create mode 100644 src/static/svg/up_arrow_sel.svg create mode 100644 src/static/tabbar/cart.png create mode 100644 src/static/tabbar/cart_sel.png create mode 100644 src/static/tabbar/class.png create mode 100644 src/static/tabbar/class_sel.png create mode 100644 src/static/tabbar/healthy.png create mode 100644 src/static/tabbar/healthy_sel.png create mode 100644 src/static/tabbar/index.png create mode 100644 src/static/tabbar/index_sel.png create mode 100644 src/static/tabbar/my.png create mode 100644 src/static/tabbar/my_sel.png create mode 100644 src/store/getters.js create mode 100644 src/store/index.js create mode 100644 src/store/modules/app.js create mode 100644 src/store/modules/goods.js create mode 100644 src/store/modules/user.js create mode 100644 src/style/index.scss create mode 100644 src/uni.scss create mode 100644 src/uni_modules/mescroll-uni/changelog.md create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-body.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni-option.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-body.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni-option.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-empty/mescroll-empty.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-top.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-i18n.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni-option.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.css create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.vue create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-comp.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/mixins.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/renderjs.js create mode 100644 src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/wxs.wxs create mode 100644 src/uni_modules/mescroll-uni/package.json create mode 100644 src/uni_modules/mescroll-uni/readme.md create mode 100644 src/utils/address_parse.js create mode 100644 src/utils/async-validator.js create mode 100644 src/utils/author.js create mode 100644 src/utils/check-update.js create mode 100644 src/utils/filters.js create mode 100644 src/utils/index.js create mode 100644 src/utils/login.js create mode 100644 src/utils/ossutil/base64.js create mode 100644 src/utils/ossutil/crypto.js create mode 100644 src/utils/ossutil/hmac.js create mode 100644 src/utils/ossutil/sha1.js create mode 100644 src/utils/ossutil/uploadFile.js create mode 100644 src/utils/pay.js create mode 100644 src/utils/permission.js create mode 100644 src/utils/push.js create mode 100644 src/utils/request.js create mode 100644 src/utils/tools.js create mode 100644 src/utils/uni-copy.js create mode 100644 src/utils/wechath5.js create mode 100644 tsconfig.json create mode 100644 unpackage/res/icons/1024x1024.png create mode 100644 unpackage/res/icons/120x120.png create mode 100644 unpackage/res/icons/144x144.png create mode 100644 unpackage/res/icons/152x152.png create mode 100644 unpackage/res/icons/167x167.png create mode 100644 unpackage/res/icons/180x180.png create mode 100644 unpackage/res/icons/192x192.png create mode 100644 unpackage/res/icons/20x20.png create mode 100644 unpackage/res/icons/29x29.png create mode 100644 unpackage/res/icons/40x40.png create mode 100644 unpackage/res/icons/58x58.png create mode 100644 unpackage/res/icons/60x60.png create mode 100644 unpackage/res/icons/72x72.png create mode 100644 unpackage/res/icons/76x76.png create mode 100644 unpackage/res/icons/80x80.png create mode 100644 unpackage/res/icons/87x87.png create mode 100644 unpackage/res/icons/96x96.png create mode 100644 vue.config.js create mode 100644 windi.config.js create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ea6e20f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.env b/.env new file mode 100644 index 0000000..c492fc4 --- /dev/null +++ b/.env @@ -0,0 +1,4 @@ +VUE_APP_LANGUAGE = 'uniapp' +VUE_APP_VERSION = '1.3.6' +VUE_APP_VERSION_CODE = 136 +VUE_APP_SERVICE='https://tb.53kf.com/code/app/bba10e62b32391cdefb75e35d59943237/1' diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..deb7145 --- /dev/null +++ b/.env.development @@ -0,0 +1,4 @@ + +ENV = 'development' + +VUE_APP_BASE_API = 'https://jiqu.zichunsheng.cn/api' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..6e9973b --- /dev/null +++ b/.env.production @@ -0,0 +1,4 @@ + +ENV = 'production' + +VUE_APP_BASE_API = 'https://jiqu.zichunsheng.cn/api' diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e6529fc --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +build/*.js +src/assets +public +dist diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..a5c7072 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,198 @@ +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + // add your custom rules here + //it is base on https://github.com/vuejs/eslint-config-vue + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline": "off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", { "null": "ignore" }], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7f7cd6c --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules/ +dist/ +.hbuilderx/ + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.project +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..edcba88 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "printWidth": 150 +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..51e2a78 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# mall-app + +## Project setup +``` +yarn install +``` + +### Compiles and hot-reloads for development +``` +yarn serve +``` + +### Compiles and minifies for production +``` +yarn build +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..dc4690a --- /dev/null +++ b/babel.config.js @@ -0,0 +1,63 @@ +const plugins = [] + +if (process.env.UNI_OPT_TREESHAKINGNG) { + plugins.push(require('@dcloudio/vue-cli-plugin-uni-optimize/packages/babel-plugin-uni-api/index.js')) +} + +if ( + ( + process.env.UNI_PLATFORM === 'app-plus' && + process.env.UNI_USING_V8 + ) || + ( + process.env.UNI_PLATFORM === 'h5' && + process.env.UNI_H5_BROWSER === 'builtin' + ) +) { + const path = require('path') + + const isWin = /^win/.test(process.platform) + + const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path) + + const input = normalizePath(process.env.UNI_INPUT_DIR) + try { + plugins.push([ + require('@dcloudio/vue-cli-plugin-hbuilderx/packages/babel-plugin-console'), + { + file (file) { + file = normalizePath(file) + if (file.indexOf(input) === 0) { + return path.relative(input, file) + } + return false + } + } + ]) + } catch (e) {} +} + +process.UNI_LIBRARIES = process.UNI_LIBRARIES || ['@dcloudio/uni-ui'] +process.UNI_LIBRARIES.forEach(libraryName => { + plugins.push([ + 'import', + { + 'libraryName': libraryName, + 'customName': (name) => { + return `${libraryName}/lib/${name}/${name}` + } + } + ]) +}) +module.exports = { + presets: [ + [ + '@vue/app', + { + modules: 'commonjs', + useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry' + } + ] + ], + plugins +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..822b809 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15338 @@ +{ + "name": "mall-app", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@antfu/utils": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.1.7.tgz", + "integrity": "sha512-XbmXbhrjfxQq+ishOKeUIK1VYxQV0B+ZkAQkz00bxhmQd5izdT0YRSDwkyH/KX46gFVBMd+6anvSDlciUt3L4A==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" + }, + "@babel/core": { + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.16.10.tgz", + "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.10", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "requires": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", + "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/parser": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "dependencies": { + "@babel/helper-create-class-features-plugin": { + "version": "7.17.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + } + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", + "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.1", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "dependencies": { + "@babel/helper-create-class-features-plugin": { + "version": "7.17.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + } + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" + } + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", + "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/register": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/register/-/register-7.17.0.tgz", + "integrity": "sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg==", + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.16.10.tgz", + "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.10", + "@babel/types": "^7.16.8", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@dcloudio/types": { + "version": "2.5.16", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-2.5.16.tgz", + "integrity": "sha512-gvGzSVIIWKHnA3wMCb/w+RCAqwrMEj6DpHB4Yve8SFMN35Q1sayCYrF8kzjykSC7Fdq6971SsTPr07WXXOazvg==" + }, + "@dcloudio/uni-app-plus": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-2.0.0.tgz", + "integrity": "sha512-QKAcmnyLjrgujXeIPw8oe/ERgTILxJIRMH0Tc6gqoi6pRrM4xdmEP7HV/qWJoVgl2TW1DPXsDdQSvyZpZh0oUQ==" + }, + "@dcloudio/uni-automator": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-2.0.0.tgz", + "integrity": "sha512-N2/3DTC3DvrnvzYlsM0tN5NJZ3UU3jvzMY0TiW8UE49cBCUjGVTar2CaBp3edepT0y3jIq4I0djosukMDcdKAw==", + "dev": true, + "requires": { + "address": "^1.1.2", + "debug": "^4.1.1", + "default-gateway": "^6.0.0", + "kill-port": "^1.6.0", + "licia": "^1.21.0", + "postcss-selector-parser": "^6.0.2", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^7.2.3" + }, + "dependencies": { + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + } + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "ws": { + "version": "7.5.6", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "dev": true + } + } + }, + "@dcloudio/uni-cli-i18n": { + "version": "2.0.0-alpha-33020211130001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-i18n/-/uni-cli-i18n-2.0.0-alpha-33020211130001.tgz", + "integrity": "sha512-9ZyhEuRU+ckjHtrceHPP1HilByiyFlhGXnJShx6JWILZDtUvXHYRhlVMa/45ceTERwXkUlcOqDJ5xe3Fo9yTGg==", + "dev": true, + "requires": { + "i18n": "^0.13.3", + "os-locale-s-fix": "^1.0.8-fix-1" + } + }, + "@dcloudio/uni-cli-shared": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-2.0.0.tgz", + "integrity": "sha512-tgI2JS2c8YUiYePbftr+VOlj87vsDiuuyVGbEZKyQ3uY8+ZtOxfHEtQ0gnJyjABTlLXZlIYXfiT1lt1EGhTV6A==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "postcss-urlrewrite": "^0.2.2", + "strip-json-comments": "^2.0.1" + } + }, + "@dcloudio/uni-h5": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-2.0.0.tgz", + "integrity": "sha512-MebNdwlrmc4JOfHe3yUWU54ltEmRFBty4jAyUtFdqyCDBWx1q6qvgjjWi9WtQ5ln5DgcsaFa+DqzTKHIXxJHlQ==", + "requires": { + "@dcloudio/uni-i18n": "^0.0.3", + "base64-arraybuffer": "^0.2.0", + "intersection-observer": "^0.7.0", + "pako": "^1.0.11", + "safe-area-insets": "^1.4.1" + }, + "dependencies": { + "@dcloudio/uni-i18n": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-0.0.3.tgz", + "integrity": "sha512-BJGl0yUkuTMv6v0r1lUzq2EURkSoM/CoKbjlf7xlDXDTUqkhUGjK5epTq2hwsi26HTxTjvl6/vf50Q5wSTFApA==" + } + } + }, + "@dcloudio/uni-helper-json": { + "version": "1.0.13", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-helper-json/-/uni-helper-json-1.0.13.tgz", + "integrity": "sha512-FO9Iu4zW4td3Tr+eiCDWuele2ehkJ4qxQ/UhpAMLjso+ZdWz6NagK5Syh6cdy1hoDqbxpNoqnLynuJXe81Ereg==" + }, + "@dcloudio/uni-i18n": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-2.0.0.tgz", + "integrity": "sha512-VE5z4AirbGEx3g1+waaH6q3t43Oa/5fRFv0MEtPJ1Hu7KzqZJc+jKGOvBvXopDowwpwaLXsoyL3jFxB3w23k7Q==" + }, + "@dcloudio/uni-migration": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-migration/-/uni-migration-2.0.0.tgz", + "integrity": "sha512-ZpkvkHNdBjQvlO9LoGDJIvbmfilH+yDVoEu0u0KX63pOGSmC7RFOKOApzoiTIMAofEUYhh5mrjU5HFefxaOR7w==", + "dev": true, + "requires": { + "commander": "^4.0.1", + "fs-extra": "^8.1.0", + "mustache": "^3.1.0", + "recast": "*", + "stricter-htmlparser2": "^3.9.6" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + } + } + }, + "@dcloudio/uni-mp-360": { + "version": "2.0.0-alpha-33020211130001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-360/-/uni-mp-360-2.0.0-alpha-33020211130001.tgz", + "integrity": "sha512-/Vz/RM/UVFH7WtTWAk0scY8vy0/DSEUGJvNkb4Vxqu0OsBVHU0VyA5NQwULpoCzpaBITsR1ODL//MBRVED8G2A==" + }, + "@dcloudio/uni-mp-alipay": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-2.0.0.tgz", + "integrity": "sha512-eSGrFwadnWPm7/ajMfLC+4fpE+cVEyCTCMnQRR0+zj5dxGU8XOmA9CwmV16iEdsLJ/mVP5GA6d9iL+FwnAaybw==" + }, + "@dcloudio/uni-mp-baidu": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-2.0.0.tgz", + "integrity": "sha512-W3tnaZObhdXsZSMAvgzFJDQpXTSq+9PDFuX46Z28cwZeIMCkIqocOVlpeK2NpoKn0tozO2dkl5m08XbxxQG0JA==" + }, + "@dcloudio/uni-mp-kuaishou": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-2.0.0.tgz", + "integrity": "sha512-D+nenDZn/DaYuYRIN6FwlV0MdNsFJgffWQR8iunkNu6tl5B+/QwsufVQJsC410TPmJr9J9SWQSSpVbCpH4lBiA==" + }, + "@dcloudio/uni-mp-lark": { + "version": "2.0.0-alpha-33020211130001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-2.0.0-alpha-33020211130001.tgz", + "integrity": "sha512-XS6Q4UU+AUqn2h/b4IczXpFxA70ZGcJU2v0RSrYrqU9zfU88/Ph6SDcYlbxD4jMChxME0N6Z0UlJnFieX6AEPA==" + }, + "@dcloudio/uni-mp-qq": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-2.0.0.tgz", + "integrity": "sha512-a459wSM9fyrJ+h1c3eZMPaxUDFkl2Cw3jwO7TJKLErXM48K327hzjfxtU3S3M6nrxF05ELy+iYygT1c60sB6KA==" + }, + "@dcloudio/uni-mp-toutiao": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-2.0.0.tgz", + "integrity": "sha512-oiHKK6lA+lKBznCTOch1yaZbyIJsp0+V9Q9nwntrWnHpRk4NaQ5B/TFIh3N8siVgnlvjv1rFMdzjBgt3FHTigg==" + }, + "@dcloudio/uni-mp-vue": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-2.0.0.tgz", + "integrity": "sha512-vDLzlaV6ywsjOZiAza49BnwzLesIhBBggwDxBh9/AsAndEeF10h77teWOlSQyRcPCN56dJ7x67NRO5eQ6I86dQ==" + }, + "@dcloudio/uni-mp-weixin": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-2.0.0.tgz", + "integrity": "sha512-BCmEwAkZq3NdnZ1uu4dWBvZxrH2SENc1GHzjF/Ly1yeh+6sRop+cso6JtJTzFpD3V+tRYe2pR5xpSTm/8ouE+g==" + }, + "@dcloudio/uni-quickapp-native": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-native/-/uni-quickapp-native-2.0.0.tgz", + "integrity": "sha512-6xXe4YaLQnV7lqC9DZDJoxWuLSh5zbf9KNtLQ3RE6fOtmgTxboLKedrdAivC3h4ZyIulEYa0LgAQT2O8zc5oAg==", + "requires": { + "@hap-toolkit/dsl-vue": "0.6.13", + "@hap-toolkit/packager": "0.6.13", + "@hap-toolkit/server": "0.6.13", + "module-alias": "^2.1.0" + } + }, + "@dcloudio/uni-quickapp-webview": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-2.0.0.tgz", + "integrity": "sha512-9jd7eOJDL5A7rUnVYU3nGvcWT2R9eWpJE1sYwT06P8advtjTvF24eNvA4wEUElR3PekJcusfTyIdvYkMne5OvQ==" + }, + "@dcloudio/uni-template-compiler": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-template-compiler/-/uni-template-compiler-2.0.0.tgz", + "integrity": "sha512-U7gd+/a5fb9SU8XUPaDD8KA5L6rauz6jwQcyRCyHtkmNAGvJM9hPUSSnyPSKZHoypBmprT+k1lPGtY8/GXdXUA==", + "dev": true, + "requires": { + "@babel/parser": "^7.3.3", + "@babel/traverse": "^7.3.3", + "@babel/types": "^7.3.3", + "vue-template-compiler": "^2.6.10" + } + }, + "@dcloudio/vue-cli-plugin-hbuilderx": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/vue-cli-plugin-hbuilderx/-/vue-cli-plugin-hbuilderx-2.0.0.tgz", + "integrity": "sha512-jPQmPlN66fYxHdbdUpo6LllhdHJteuIIl3UWJAQLntn9my6QihxS2z0Bhjcm1SLByXy/QxeO9ny2+G51y9/uEQ==", + "dev": true, + "requires": { + "acorn": "^5.2.1", + "css": "~2.2.1", + "escodegen": "^1.8.1" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + } + } + }, + "@dcloudio/vue-cli-plugin-uni": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/vue-cli-plugin-uni/-/vue-cli-plugin-uni-2.0.0.tgz", + "integrity": "sha512-wwz1SJaa0Jf5lexKUINAcN2OgV8/jFCxboyaNbm5Skw4eW/8aGNiWNtULrZ6WLiq5gqoN/loIqCUnT6or3Q/FA==", + "dev": true, + "requires": { + "@dcloudio/uni-stat": "^2.0.0", + "buffer-json": "^2.0.0", + "copy-webpack-plugin": "^5.1.1", + "cross-env": "^5.2.0", + "envinfo": "^6.0.1", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "lru-cache": "^4.1.2", + "mkdirp": "^0.5.1", + "module-alias": "^2.1.0", + "postcss": "^7.0.7", + "postcss-import": "^12.0.1", + "postcss-selector-parser": "^5.0.0", + "postcss-value-parser": "^3.3.1", + "strip-json-comments": "^2.0.1", + "update-check": "^1.5.3", + "webpack-merge": "^4.1.4", + "wrap-loader": "^0.2.0", + "xregexp": "4.0.0" + }, + "dependencies": { + "@dcloudio/uni-stat": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-2.0.0.tgz", + "integrity": "sha512-fLGis+NLA5qVU0An6FXUtMwaNhEkXwaJlwT/347Kvavv+VtKE2akj47f240hRkiIopvlittrpXbTFBjUNXxCNA==", + "dev": true + }, + "cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5" + } + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "dependencies": { + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + } + } + } + } + }, + "@dcloudio/vue-cli-plugin-uni-optimize": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/vue-cli-plugin-uni-optimize/-/vue-cli-plugin-uni-optimize-2.0.0.tgz", + "integrity": "sha512-MOAl/wt+bbjAfdV9rTssWW3DkNkMeedvLwBp4H+VyYUvEnbFtZqfRnA+KridEYmQN9NRJRZMrtGZE86JPWEvnQ==", + "dev": true + }, + "@dcloudio/webpack-uni-mp-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/webpack-uni-mp-loader/-/webpack-uni-mp-loader-2.0.0.tgz", + "integrity": "sha512-JqDiWPMKBDVGj7Zv6Zp3SceQUtv4+J9ZWc0/BsJkxqcHLYumulrQNpYote+aUst3s55fUo2/89JSQVOxjwAgMQ==", + "dev": true + }, + "@dcloudio/webpack-uni-pages-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@dcloudio/webpack-uni-pages-loader/-/webpack-uni-pages-loader-2.0.0.tgz", + "integrity": "sha512-qKCbkN6IBtQlyTs5LyXASU/pzkpygaWTdUmrHChTlNARaHshcgqbfh6lnafXXkS5USTSmNU9Nm200Bvur3iIJQ==", + "dev": true, + "requires": { + "merge": "^1.2.1", + "strip-json-comments": "^2.0.1" + } + }, + "@hap-toolkit/compiler": { + "version": "0.6.15", + "resolved": "https://registry.npmmirror.com/@hap-toolkit/compiler/-/compiler-0.6.15.tgz", + "integrity": "sha512-ivGKaBhC5NoNrb9qXhzrqPyWVG1YDEUxkTeveL2oqve4WLlK7h7fJfGjMx/jSvGvLGyhquofF5mxkQzLdCCieg==", + "requires": { + "@babel/core": "^7.3.4", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@hap-toolkit/shared-utils": "0.6.15", + "css": "^2.2.4", + "css-what": "^2.1.3", + "escodegen": "^1.11.1", + "esprima": "^4.0.1", + "hash-sum": "^1.0.2", + "loader-utils": "^1.2.3", + "parse5": "^3.0.3", + "source-map": "^0.7.3", + "webpack": "^4.29.5" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@hap-toolkit/debugger": { + "version": "0.6.15", + "resolved": "https://registry.npmmirror.com/@hap-toolkit/debugger/-/debugger-0.6.15.tgz", + "integrity": "sha512-AO2ZHJiqS9gP3Xi/6S63Sl2Tgf81NEhNVjY81RHIhraoEPuTsPPUsUQoYEvU6tO9Y69OXCVT4C1O+kY/LrwY+g==", + "requires": { + "@hap-toolkit/shared-utils": "0.6.15", + "adb-commander": "^0.1.8", + "adb-devices-emitter": "^0.1.8", + "chrome-simple-launcher": "0.1.3", + "koa": "^2.7.0", + "koa-body": "^4.0.8", + "koa-router": "^7.4.0", + "koa-static": "^5.0.0", + "qr-image": "^3.2.0", + "socket.io": "^2.2.0" + } + }, + "@hap-toolkit/dsl-vue": { + "version": "0.6.13", + "resolved": "https://registry.npmmirror.com/@hap-toolkit/dsl-vue/-/dsl-vue-0.6.13.tgz", + "integrity": "sha512-mIupVZ6gseenCAY+BFLNGttFPcmuy3pGgB5dUUPBxnCvXcZhgAWQenAI/Y3/tz0ubObVjWLfbZKXDGfpLPTd9g==", + "requires": { + "@hap-toolkit/compiler": "^0.6.13", + "@hap-toolkit/packager": "^0.6.13", + "@hap-toolkit/shared-utils": "^0.6.13", + "css-loader": "^2.1.1", + "md5": "^2.2.1", + "mini-css-extract-plugin": "^0.5.0", + "url-loader": "^2.1.0", + "vue-loader": "^15.6.4", + "vue-template-compiler": "^2.6.7", + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "css-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-2.1.1.tgz", + "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", + "requires": { + "camelcase": "^5.2.0", + "icss-utils": "^4.1.0", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.14", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^2.0.6", + "postcss-modules-scope": "^2.1.0", + "postcss-modules-values": "^2.0.0", + "postcss-value-parser": "^3.3.0", + "schema-utils": "^1.0.0" + } + }, + "mini-css-extract-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", + "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "postcss-modules-local-by-default": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", + "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0", + "postcss-value-parser": "^3.3.1" + } + }, + "postcss-modules-values": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", + "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^7.0.6" + } + } + } + }, + "@hap-toolkit/packager": { + "version": "0.6.13", + "resolved": "https://registry.npmmirror.com/@hap-toolkit/packager/-/packager-0.6.13.tgz", + "integrity": "sha512-x0PoC+6rxAcRjryuNbW5o7LBjRxTFUkgbWl2ovOTjrKaChw51JjSqcLR28klk4SiiPLUPpAJxMjz/ooc35yZ3Q==", + "requires": { + "@babel/core": "^7.3.3", + "@babel/preset-env": "^7.3.1", + "@babel/register": "^7.0.0", + "@babel/runtime": "^7.3.1", + "@hap-toolkit/compiler": "^0.6.13", + "@hap-toolkit/shared-utils": "^0.6.13", + "aaptjs": "^1.3.1", + "babel-loader": "^8.0.5", + "fs-extra": "^7.0.1", + "hash-sum": "^1.0.2", + "jsrsasign": "^7.2.2", + "jszip": "^3.1.5", + "koa-bodyparser": "^4.2.1", + "koa-router": "^7.4.0", + "loader-utils": "^1.2.3", + "moment": "^2.24.0", + "qr-image": "^3.2.0", + "webpack": "^4.29.5" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + } + } + }, + "@hap-toolkit/server": { + "version": "0.6.13", + "resolved": "https://registry.npmmirror.com/@hap-toolkit/server/-/server-0.6.13.tgz", + "integrity": "sha512-d29Ivum+MvPL0AEnjHW+jNa8FUqnmCPvwHii8la8OGg9HzTj7Oq7pr9n+VjksbfNI0aWdlf+uzyZEuh9rUxJ7g==", + "requires": { + "@babel/runtime": "^7.3.1", + "@hap-toolkit/debugger": "^0.6.13", + "@hap-toolkit/packager": "^0.6.13", + "@hap-toolkit/shared-utils": "^0.6.13", + "jszip": "^3.2.0", + "koa": "^2.7.0", + "koa-body": "^4.0.8", + "koa-mount": "^4.0.0", + "koa-router": "^7.4.0", + "koa-send": "^5.0.0", + "koa-static": "^5.0.0", + "opn": "^5.4.0", + "portfinder": "^1.0.20", + "qr-image": "^3.2.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + } + } + }, + "@hap-toolkit/shared-utils": { + "version": "0.6.15", + "resolved": "https://registry.npmmirror.com/@hap-toolkit/shared-utils/-/shared-utils-0.6.15.tgz", + "integrity": "sha512-LxjISCLd4opthpkPIQNkMnVY+P5iWG8X6PwexET8tzWYvIUVNa66NR5lOCeOYMoLaMzxQkLZf1HTw14S7zRezQ==", + "requires": { + "chalk": "^2.4.2", + "qrcode-terminal": "^0.12.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmmirror.com/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/@jest/core/-/core-25.5.4.tgz", + "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/reporters": "^25.5.1", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^25.5.0", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-resolve-dependencies": "^25.5.4", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "jest-watcher": "^25.5.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "realpath-native": "^2.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@jest/environment": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-25.5.0.tgz", + "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0" + } + }, + "@jest/fake-timers": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz", + "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "lolex": "^5.0.0" + } + }, + "@jest/globals": { + "version": "25.5.2", + "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-25.5.2.tgz", + "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/types": "^25.5.0", + "expect": "^25.5.0" + } + }, + "@jest/reporters": { + "version": "25.5.1", + "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-25.5.1.tgz", + "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^25.5.1", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "node-notifier": "^6.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^3.1.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^4.1.3" + } + }, + "@jest/source-map": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-25.5.0.tgz", + "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz", + "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==", + "dev": true, + "requires": { + "@jest/test-result": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4" + } + }, + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@prerenderer/prerenderer": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/@prerenderer/prerenderer/-/prerenderer-0.7.2.tgz", + "integrity": "sha512-zWG3uFnrQWDJQoSzGB8bOnNhJCgIiylVYDFBP7Nw2LqngHOqwvpdBtGSjfajC8+fdR/iB2FqMqe27cfdmf/8TQ==", + "dev": true, + "requires": { + "express": "^4.16.2", + "http-proxy-middleware": "^0.18.0", + "portfinder": "^1.0.13" + }, + "dependencies": { + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "@prerenderer/renderer-puppeteer": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@prerenderer/renderer-puppeteer/-/renderer-puppeteer-0.2.0.tgz", + "integrity": "sha512-sC8WBcYcXbqm6premzCcUNDRROtAwBtBewUuzHyKcYDqU6InqjfpUQEXdIlhikN0gvqzlJy1+c7OJSfNYi4/tg==", + "dev": true, + "requires": { + "promise-limit": "^2.5.0", + "puppeteer": "^1.7.0" + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.18", + "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/formidable": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@types/formidable/-/formidable-1.2.5.tgz", + "integrity": "sha512-zu3mQJa4hDNubEMViSj937602XdDGzK7Q5pJ5QmLUbNxclbo9tZGt5jtwM352ssZ+pqo5V4H14TBvT/ALqQQcA==", + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "17.0.10", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.10.tgz", + "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", + "dev": true + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "dev": true + }, + "@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.13.1", + "resolved": "https://registry.npmmirror.com/@types/uglify-js/-/uglify-js-3.13.1.tgz", + "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.32", + "resolved": "https://registry.npmmirror.com/@types/webpack/-/webpack-4.41.32.tgz", + "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-dev-server": { + "version": "3.11.6", + "resolved": "https://registry.npmmirror.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz", + "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==", + "dev": true, + "requires": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/serve-static": "*", + "@types/webpack": "^4", + "http-proxy-middleware": "^1.0.0" + } + }, + "@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", + "dev": true + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + } + } + }, + "@vue/babel-preset-app": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz", + "integrity": "sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.0", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.0", + "@vue/babel-plugin-jsx": "^1.0.3", + "@vue/babel-preset-jsx": "^1.2.4", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", + "core-js-compat": "^3.6.5", + "semver": "^6.1.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "core-js": { + "version": "3.21.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.21.1.tgz", + "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + } + } + }, + "@vue/babel-preset-jsx": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", + "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0" + } + }, + "@vue/cli-overlay": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-4.5.15.tgz", + "integrity": "sha512-0zI0kANAVmjFO2LWGUIzdGPMeE3+9k+KeRDXsUqB30YfRF7abjfiiRPq5BU9pOzlJbVdpRkisschBrvdJqDuDg==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.15.tgz", + "integrity": "sha512-hBLrwYfFkHldEe34op/YNgPhpOWI5n5DB2Qt9I/1Epeif4M4iFaayrgjvOR9AVM6WbD3Yx7WCFszYpWrQZpBzQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.0", + "@vue/babel-preset-app": "^4.5.15", + "@vue/cli-shared-utils": "^4.5.15", + "babel-loader": "^8.1.0", + "cache-loader": "^4.1.0", + "thread-loader": "^2.1.3", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-router": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.15.tgz", + "integrity": "sha512-q7Y6kP9b3k55Ca2j59xJ7XPA6x+iSRB+N4ac0ZbcL1TbInVQ4j5wCzyE+uqid40hLy4fUdlpl4X9fHJEwuVxPA==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^4.5.15" + } + }, + "@vue/cli-plugin-vuex": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz", + "integrity": "sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg==", + "dev": true + }, + "@vue/cli-service": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-4.5.15.tgz", + "integrity": "sha512-sFWnLYVCn4zRfu45IcsIE9eXM0YpDV3S11vlM2/DVbIPAGoYo5ySpSof6aHcIvkeGsIsrHFpPHzNvDZ/efs7jA==", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.15", + "@vue/cli-plugin-router": "^4.5.15", + "@vue/cli-plugin-vuex": "^4.5.15", + "@vue/cli-shared-utils": "^4.5.15", + "@vue/component-compiler-utils": "^3.1.2", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", + "cssnano": "^4.1.10", + "debug": "^4.1.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", + "postcss-loader": "^3.0.0", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^1.4.4", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.1.0", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + } + } + }, + "@vue/cli-shared-utils": { + "version": "4.5.15", + "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.15.tgz", + "integrity": "sha512-SKaej9hHzzjKSOw1NlFmc6BSE0vcqUQMQiv1cxQ2DhVyy4QxZXBmzmiLBUBe+hYZZs1neXW7n//udeN9bCAY+Q==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", + "dev": true + }, + "@vue/shared": { + "version": "3.2.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.27.tgz", + "integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==" + }, + "@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@windicss/plugin-utils": { + "version": "0.16.7", + "resolved": "https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-0.16.7.tgz", + "integrity": "sha512-mxgTj/MkemN8JlyfaS20OAJ0BqTUoUlDT9wD/m5U+nUa5SN/r0kPlg1IW9SbmRTrYjNXWEENf9F0Fjb/X4zn6g==", + "dev": true, + "requires": { + "@antfu/utils": "^0.1.6", + "debug": "^4.3.2", + "fast-glob": "^3.2.5", + "jiti": "^1.9.2", + "magic-string": "^0.25.7", + "micromatch": "^4.0.4", + "windicss": "^3.0.12" + }, + "dependencies": { + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "aaptjs": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/aaptjs/-/aaptjs-1.3.1.tgz", + "integrity": "sha512-0YE9/DCvJel2NVQbvuEWJsjuGgy1d1dlB9Hsgi3sw160VBiFl222h4OTXh4RfFvUl4NFP8sEiZpjC3ZbeVJVLw==", + "requires": { + "shelljs": "^0.8.1" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==" + } + } + }, + "acorn-object-spread": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz", + "integrity": "sha512-XLGUSlVB4GeniUbk97r+NxLvcQDYNddFBl1WHSvMr/4v5lnNPWHzwHLdXrlBnusvZ0zq2lkjDm7fPEgJpjb4dg==", + "requires": { + "acorn": "^3.1.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "adb-commander": { + "version": "0.1.9", + "resolved": "https://registry.npmmirror.com/adb-commander/-/adb-commander-0.1.9.tgz", + "integrity": "sha512-uFZ+gRLQF4wqkuAQ/bBB22oLHQ8W6HQ31BTCssRtoinMm3oBauAH9e1kUm+cqyc3soGqwUGcsKuKuW37IlMIwA==", + "requires": { + "adb-driver": "^0.1.8" + } + }, + "adb-devices-emitter": { + "version": "0.1.9", + "resolved": "https://registry.npmmirror.com/adb-devices-emitter/-/adb-devices-emitter-0.1.9.tgz", + "integrity": "sha512-vR38T3ZqZmCXPQS6p0dEjbHZYAybNk6MLW2evtbVGCQvvrvoTzXSFjIdfrRbxryn9HJ7WAXfH42GYgvZIZDiTA==", + "requires": { + "adb-commander": "^0.1.9" + } + }, + "adb-driver": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/adb-driver/-/adb-driver-0.1.8.tgz", + "integrity": "sha512-sERbuWCkIBtoHlEkE3tg67AWUaX/yJskYSLI6DKZsvgr5rL7iVNjMSIB2s7d1zt3luP/BMgLfP5z4Jto+CLafA==", + "requires": { + "which": "^1.3.1" + } + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/after/-/after-0.8.2.tgz", + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==" + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + } + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA==", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmmirror.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" + }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmmirror.com/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmmirror.com/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "babel-jest": { + "version": "25.5.1", + "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-25.5.1.tgz", + "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", + "dev": true, + "requires": { + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-loader": { + "version": "8.2.3", + "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-import": { + "version": "1.13.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-import/-/babel-plugin-import-1.13.3.tgz", + "integrity": "sha512-1qCWdljJOrDRH/ybaCZuDgySii4yYrtQ8OJQwrcDqdt0y67N30ng3X3nABg6j7gR7qUJgcMa9OMhc4AGViDwWw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/runtime": "^7.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", + "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", + "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.20.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-preset-current-node-syntax": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz", + "integrity": "sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", + "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^25.5.0", + "babel-preset-current-node-syntax": "^0.1.2" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmmirror.com/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "dev": true + }, + "raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmmirror.com/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "requires": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + } + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buble": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/buble/-/buble-0.15.2.tgz", + "integrity": "sha512-SHkzALzgJm7LhA/kfL1C3Os8X2ZuZB1Mg95mLdZM1blK5rdSpTngS01uGMfT98Yf6seQrKKTh/2JxSFdqNnKVA==", + "requires": { + "acorn": "^3.3.0", + "acorn-jsx": "^3.0.1", + "acorn-object-spread": "^1.0.0", + "chalk": "^1.1.3", + "magic-string": "^0.14.0", + "minimist": "^1.2.0", + "os-homedir": "^1.0.1" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "magic-string": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.14.0.tgz", + "integrity": "sha512-ASteqiQbpCPx2uMF5NkmrIUlo3nsSDcPOo+O+F+pdPML/IS560BwrEljpzDFOR45eOME7UPTxgUQVPs6Lj2mTw==", + "requires": { + "vlq": "^0.2.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" + } + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/buffer-json/-/buffer-json-2.0.0.tgz", + "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "builtin-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-2.0.0.tgz", + "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" + }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "requires": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + } + }, + "cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/cache-loader/-/cache-loader-4.1.0.tgz", + "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==", + "dev": true, + "requires": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001301", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", + "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmmirror.com/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "chrome-simple-launcher": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/chrome-simple-launcher/-/chrome-simple-launcher-0.1.3.tgz", + "integrity": "sha512-8xUtp6cS4tn1o1Pzev6pxbgF7vCRdfxFLW4xOSUIF/83+ya8GWRqMpkqd8h7VDliHLhyRIi5zKbi85wpZ4m2oA==" + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + }, + "co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "requires": { + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + } + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-string": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.0.tgz", + "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "cookie-storage": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cookie-storage/-/cookie-storage-6.1.0.tgz", + "integrity": "sha512-HeVqbVy8BjXhAAuFtL6MTG+witHoLbxfky2jgVh9FmxmyL6IKa9gSSyPNjevXCCCxPu6Tzd9J8+eXTRQzYU/cg==" + }, + "cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "requires": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" + }, + "copy-text-to-clipboard": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz", + "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==" + }, + "copy-to": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz", + "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" + }, + "copy-webpack-plugin": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz", + "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/globby/-/globby-7.1.1.tgz", + "integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + } + } + }, + "core-js-compat": { + "version": "3.20.3", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.20.3.tgz", + "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", + "requires": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + } + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmmirror.com/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + }, + "dependencies": { + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + } + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-5.0.5.tgz", + "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + } + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmmirror.com/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.75", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz", + "integrity": "sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/engine.io/-/engine.io-3.5.0.tgz", + "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "~7.4.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "engine.io-client": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-3.5.2.tgz", + "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==", + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==" + } + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "envinfo": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/envinfo/-/envinfo-6.0.1.tgz", + "integrity": "sha512-IbMWvMQulMm1hiky1Zt5YTcSDEdZs0r9bt77mcLa4RUAKRYTGZvrb3MtAt47FuldPxwL+u2LtQex1FajIW1/Cw==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-walker": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-0.2.1.tgz", + "integrity": "sha512-6/I1dwNKk0N9iGOU3ydzAAurz4NPo/ttxZNCqgIVbWFvWyzWBSNonRrJ5CpjDuyBfmM7ENN7WCzUi9aT/UPXXQ==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "expect": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/expect/-/expect-25.5.0.tgz", + "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-styles": "^4.0.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6" + } + }, + "express": { + "version": "4.17.3", + "resolved": "https://registry.npmmirror.com/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/file-loader/-/file-loader-4.3.0.tgz", + "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "flyio": { + "version": "0.6.14", + "resolved": "https://registry.npmmirror.com/flyio/-/flyio-0.6.14.tgz", + "integrity": "sha512-RE2OXE1ZZmcXOKb0jCtGyquHDxpAqHg17CZ8lmQKRfl3x1kP+NBpaQDx4WgN7DNpLJjFnspTzTEQpwRGg6/xaA==", + "requires": { + "request": "^2.85.0" + } + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-them-args": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/get-them-args/-/get-them-args-1.3.2.tgz", + "integrity": "sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true, + "optional": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==" + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg==", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + } + } + }, + "http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "requires": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "dependencies": { + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==" + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", + "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "i18n": { + "version": "0.13.4", + "resolved": "https://registry.npmmirror.com/i18n/-/i18n-0.13.4.tgz", + "integrity": "sha512-GZnXWeA15jTi9gc1jfgrJcSrNYDg7qbJXSYMuibqPYb1ThORmGCeM+gL6LrDagYRHh87/q/D0jRSOhAfv6wAow==", + "dev": true, + "requires": { + "debug": "^4.3.3", + "make-plural": "^7.0.0", + "math-interval-parser": "^2.0.1", + "messageformat": "^2.3.0", + "mustache": "^4.2.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==" + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflation": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/inflation/-/inflation-2.0.0.tgz", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "intersection-observer": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.7.0.tgz", + "integrity": "sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==" + }, + "invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/ip/-/ip-1.1.5.tgz", + "integrity": "sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "jest": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest/-/jest-25.5.4.tgz", + "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==", + "dev": true, + "requires": { + "@jest/core": "^25.5.4", + "import-local": "^3.0.2", + "jest-cli": "^25.5.4" + }, + "dependencies": { + "jest-cli": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-25.5.4.tgz", + "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==", + "dev": true, + "requires": { + "@jest/core": "^25.5.4", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^25.5.4", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "prompts": "^2.0.1", + "realpath-native": "^2.0.0", + "yargs": "^15.3.1" + } + } + } + }, + "jest-changed-files": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz", + "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "execa": "^3.2.0", + "throat": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-config": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-25.5.4.tgz", + "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^25.5.4", + "@jest/types": "^25.5.0", + "babel-jest": "^25.5.1", + "chalk": "^3.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^25.5.0", + "jest-environment-node": "^25.5.0", + "jest-get-type": "^25.2.6", + "jest-jasmine2": "^25.5.4", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "micromatch": "^4.0.2", + "pretty-format": "^25.5.0", + "realpath-native": "^2.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + } + } + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + } + }, + "jest-docblock": { + "version": "25.3.0", + "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-25.3.0.tgz", + "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-25.5.0.tgz", + "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0" + } + }, + "jest-environment-jsdom": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz", + "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "jsdom": "^15.2.1" + } + }, + "jest-environment-node": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz", + "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "semver": "^6.3.0" + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-jasmine2": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz", + "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^25.5.0", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "co": "^4.6.0", + "expect": "^25.5.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^25.5.0", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0", + "throat": "^5.0.0" + } + }, + "jest-leak-detector": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz", + "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==", + "dev": true, + "requires": { + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + } + }, + "jest-matcher-utils": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", + "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "jest-resolve": { + "version": "25.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-25.5.1.tgz", + "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "browser-resolve": "^1.11.3", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.1", + "read-pkg-up": "^7.0.1", + "realpath-native": "^2.0.0", + "resolve": "^1.17.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz", + "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-snapshot": "^25.5.1" + } + }, + "jest-runner": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-25.5.4.tgz", + "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-docblock": "^25.3.0", + "jest-haste-map": "^25.5.1", + "jest-jasmine2": "^25.5.4", + "jest-leak-detector": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "jest-runtime": "^25.5.4", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + } + }, + "jest-runtime": { + "version": "25.5.4", + "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-25.5.4.tgz", + "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/globals": "^25.5.2", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.3.1" + } + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "25.5.1", + "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz", + "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/prettier": "^1.19.0", + "chalk": "^3.0.0", + "expect": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "make-dir": "^3.0.0", + "natural-compare": "^1.4.0", + "pretty-format": "^25.5.0", + "semver": "^6.3.0" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-validate": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "leven": "^3.1.0", + "pretty-format": "^25.5.0" + } + }, + "jest-watcher": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-25.5.0.tgz", + "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", + "dev": true, + "requires": { + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "jest-util": "^25.5.0", + "string-length": "^3.1.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "jiti": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.13.0.tgz", + "integrity": "sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ==", + "dev": true + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-queue": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/js-queue/-/js-queue-2.0.2.tgz", + "integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==", + "dev": true, + "requires": { + "easy-stack": "^1.0.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "jsdom": { + "version": "15.2.1", + "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-15.2.1.tgz", + "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.4.1", + "cssstyle": "^2.0.0", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.2.0", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jsrsasign": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/jsrsasign/-/jsrsasign-7.2.2.tgz", + "integrity": "sha512-hNN6476wY3ZP9X5HXdCmf/ovcbK+K56Fhg3cAIhgxy1WYXtGSNYDmlplecMqz1RbmqdBolkr4iyl5FAl6s4Xtg==" + }, + "jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "jweixin-module": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz", + "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==" + }, + "keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "requires": { + "tsscmp": "1.0.6" + } + }, + "kill-port": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/kill-port/-/kill-port-1.6.1.tgz", + "integrity": "sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw==", + "dev": true, + "requires": { + "get-them-args": "1.3.2", + "shell-exec": "1.0.2" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "koa": { + "version": "2.13.4", + "resolved": "https://registry.npmmirror.com/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", + "requires": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" + } + } + }, + "koa-body": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/koa-body/-/koa-body-4.2.0.tgz", + "integrity": "sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA==", + "requires": { + "@types/formidable": "^1.0.31", + "co-body": "^5.1.1", + "formidable": "^1.1.1" + }, + "dependencies": { + "co-body": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/co-body/-/co-body-5.2.0.tgz", + "integrity": "sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==", + "requires": { + "inflation": "^2.0.0", + "qs": "^6.4.0", + "raw-body": "^2.2.0", + "type-is": "^1.6.14" + } + } + } + }, + "koa-bodyparser": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz", + "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==", + "requires": { + "co-body": "^6.0.0", + "copy-to": "^2.0.1" + } + }, + "koa-compose": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/koa-compose/-/koa-compose-3.2.1.tgz", + "integrity": "sha512-8gen2cvKHIZ35eDEik5WOo8zbVp9t4cP8p4hW4uE55waxolLRexKKrqfCpwhGVppnB40jWeF8bZeTVg99eZgPw==", + "requires": { + "any-promise": "^1.1.0" + } + }, + "koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "requires": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "dependencies": { + "koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" + } + } + }, + "koa-mount": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/koa-mount/-/koa-mount-4.0.0.tgz", + "integrity": "sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ==", + "requires": { + "debug": "^4.0.1", + "koa-compose": "^4.1.0" + }, + "dependencies": { + "koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" + } + } + }, + "koa-router": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/koa-router/-/koa-router-7.4.0.tgz", + "integrity": "sha512-IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g==", + "requires": { + "debug": "^3.1.0", + "http-errors": "^1.3.1", + "koa-compose": "^3.0.0", + "methods": "^1.0.1", + "path-to-regexp": "^1.1.1", + "urijs": "^1.19.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "requires": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + } + }, + "koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "requires": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "launch-editor": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.3.0.tgz", + "integrity": "sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.6.1" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + } + } + }, + "launch-editor-middleware": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz", + "integrity": "sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w==", + "dev": true, + "requires": { + "launch-editor": "^2.3.0" + } + }, + "lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "dev": true, + "requires": { + "invert-kv": "^3.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "licia": { + "version": "1.34.0", + "resolved": "https://registry.npmmirror.com/licia/-/licia-1.34.0.tgz", + "integrity": "sha512-EKSzTKn8OTEBgySpDWq7dZ98DpfXXmFJHOi55RWDzm/UsD1LZuSwFzz6EVm4hHia2Manb0OM0Y0eUPkNWc7+Ww==", + "dev": true + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "loglevel": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/loglevel/-/loglevel-1.8.0.tgz", + "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", + "dev": true + }, + "lolex": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "luch-request": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/luch-request/-/luch-request-3.0.7.tgz", + "integrity": "sha512-rYTgAO0CiAMjuotvwhtEREQ6mh/qdgYO2a+cKDv2VPnww/MdNaHMGMpsPY6VvJCOtfH7kV9lDujjuihhlu1xmg==", + "requires": { + "@dcloudio/types": "^2.0.16" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "make-plural": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", + "dev": true + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "messageformat": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/messageformat/-/messageformat-2.3.0.tgz", + "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", + "dev": true, + "requires": { + "make-plural": "^4.3.0", + "messageformat-formatters": "^2.0.1", + "messageformat-parser": "^4.1.2" + }, + "dependencies": { + "make-plural": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/make-plural/-/make-plural-4.3.0.tgz", + "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "messageformat-formatters": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", + "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==", + "dev": true + }, + "messageformat-parser": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz", + "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + } + } + }, + "mini-types": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/mini-types/-/mini-types-0.1.7.tgz", + "integrity": "sha512-aSoVvrIr/O9tbzFjSCeKr/T53Hu+un+FXkfWPfGcb/q8eAHXX1CDgSHv8l0GtFTlfHzznmn4hbRGB3UTWmZ3fA==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "miniprogram-api-typings": { + "version": "3.4.5", + "resolved": "https://registry.npmmirror.com/miniprogram-api-typings/-/miniprogram-api-typings-3.4.5.tgz", + "integrity": "sha512-GWvMdmPhJ40PLq4/sOh+n2xGRKf2R3kcuOaSe7IRTdT+Os8lfNrJYehYdgH7IoUWqaHqV8mFEWQj5oPIGhVv4Q==", + "dev": true + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "mustache": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/mustache/-/mustache-3.2.1.tgz", + "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", + "dev": true + }, + "mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-ipc": { + "version": "9.2.1", + "resolved": "https://registry.npmmirror.com/node-ipc/-/node-ipc-9.2.1.tgz", + "integrity": "sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ==", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.7", + "js-queue": "2.0.2" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + } + } + }, + "node-notifier": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/node-notifier/-/node-notifier-6.0.0.tgz", + "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.1.1", + "semver": "^6.3.0", + "shellwords": "^0.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "only": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmmirror.com/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==" + }, + "os-locale-s-fix": { + "version": "1.0.8-fix-1", + "resolved": "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz", + "integrity": "sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==", + "dev": true, + "requires": { + "lcid": "^3.0.0" + } + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "pnp-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz", + "integrity": "sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + } + } + }, + "postcss-class-rename": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/postcss-class-rename/-/postcss-class-rename-1.0.1.tgz", + "integrity": "sha512-p7mjgoinuuKL7wvxzrj3BD5wN9mHUNNwHCS7sEMd0BsrTC+ly07ie9tqLzEeZEEYhBGWV8FJK69AHI5S/1FV9g==", + "dev": true + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-comment": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/postcss-comment/-/postcss-comment-2.0.0.tgz", + "integrity": "sha512-5zT5iKU7c0tK9KJFNrVf+g1MGTkzf/4V3e0Zzm2g1uoFQC5jeTHmB9O1iAqh97+jnKpc6al204e0pwFUiCwseg==", + "dev": true, + "requires": { + "postcss": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-helpers": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/postcss-helpers/-/postcss-helpers-0.3.2.tgz", + "integrity": "sha512-hppnMXY6Ehe8CgLHQCDWbyUsXvBFggdzftWzznL65MhgZsE8o8pUTYbmUbLst0rps+wyUSLIUJ0bGpV2Tzv7lw==", + "dev": true, + "requires": { + "urijs": "^1.18.12" + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + } + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.9", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-urlrewrite": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/postcss-urlrewrite/-/postcss-urlrewrite-0.2.2.tgz", + "integrity": "sha512-DxPSgykgHjoV4Z+ygvq2C5HkiuiKQQD74xpoNQSQuyi8zab9nODVtNKfnCN6BEv9VZrjpOGLGAf8BDvgG6EtHg==", + "dev": true, + "requires": { + "postcss-helpers": "^0.3.2" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "postcss-windicss-postcss7": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/postcss-windicss-postcss7/-/postcss-windicss-postcss7-1.1.1.tgz", + "integrity": "sha512-9wraE8OO0CtRndDVnU3Fc03MQp1TpN2ZZuB1517jkYWbfpSSKA8n5jJbAqpPoHQtjRcyio+0/Otj4Wly1S8zKw==", + "dev": true, + "requires": { + "@windicss/plugin-utils": "^0.16.0", + "chokidar": "^3.5.1", + "debug": "^4.3.2", + "exit-hook": "^2.2.1", + "windicss": "^3.0.12" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true + }, + "prerender-spa-plugin": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/prerender-spa-plugin/-/prerender-spa-plugin-3.4.0.tgz", + "integrity": "sha512-4Gtu7XIz5p0VBi1527c/ogu0NNcM5kJPG9q3F26SioeeURVbIJ11B6fuK8pxTmlPqffKPR/2TRRf4o020r4Fqw==", + "dev": true, + "requires": { + "@prerenderer/prerenderer": "^0.7.2", + "@prerenderer/renderer-puppeteer": "^0.2.0", + "html-minifier": "^3.5.16" + } + }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "optional": true + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "promise-limit": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/promise-limit/-/promise-limit-2.7.0.tgz", + "integrity": "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==", + "dev": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "puppeteer": { + "version": "1.20.0", + "resolved": "https://registry.npmmirror.com/puppeteer/-/puppeteer-1.20.0.tgz", + "integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true + }, + "qr-image": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/qr-image/-/qr-image-3.2.0.tgz", + "integrity": "sha512-rXKDS5Sx3YipVsqmlMJsJsk6jXylEpiHRC2+nJy66fxA5ExYyGa4PqwteW69SaVmAb2OQ18HbYriT7cGQMbduw==" + }, + "qrcode-reader": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz", + "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==", + "dev": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "recast": { + "version": "0.20.5", + "resolved": "https://registry.npmmirror.com/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "dev": true, + "requires": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + } + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==" + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.21.1", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.21.1.tgz", + "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", + "requires": { + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + }, + "resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "requires": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup-plugin-buble": { + "version": "0.15.0", + "resolved": "https://registry.npmmirror.com/rollup-plugin-buble/-/rollup-plugin-buble-0.15.0.tgz", + "integrity": "sha512-iyCysEjC/TTMfchDK15DU4DZlj1x3TOzjWFUlzPjM8b3DA1sztuWmWd3vsPn3uvubGWHHfp49LqxlrXUr7+PLw==", + "requires": { + "buble": "^0.15.0", + "rollup-pluginutils": "^1.5.0" + } + }, + "rollup-plugin-commonjs": { + "version": "8.4.1", + "resolved": "https://registry.npmmirror.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.4.1.tgz", + "integrity": "sha512-mg+WuD+jlwoo8bJtW3Mvx7Tz6TsIdMsdhuvCnDMoyjh0oxsVgsjB/N0X984RJCWwc5IIiqNVJhXeeITcc73++A==", + "requires": { + "acorn": "^5.2.1", + "estree-walker": "^0.5.0", + "magic-string": "^0.22.4", + "resolve": "^1.4.0", + "rollup-pluginutils": "^2.0.1" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + }, + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==" + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "requires": { + "vlq": "^0.2.2" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmmirror.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + } + } + } + } + }, + "rollup-plugin-json": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/rollup-plugin-json/-/rollup-plugin-json-2.3.1.tgz", + "integrity": "sha512-alQQQVPo2z9pl6LSK8QqyDlWwCH5KeE8YxgQv7fa/SeTxz+gQe36jBjcha7hQW68MrVh9Ms71EQaMZDAG3w2yw==", + "requires": { + "rollup-pluginutils": "^2.0.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmmirror.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "requires": { + "estree-walker": "^0.6.1" + } + } + } + }, + "rollup-plugin-node-resolve": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz", + "integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==", + "requires": { + "builtin-modules": "^2.0.0", + "is-module": "^1.0.0", + "resolve": "^1.1.6" + } + }, + "rollup-pluginutils": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", + "integrity": "sha512-SjdWWWO/CUoMpDy8RUbZ/pSpG68YHmhk5ROKNIoi2En9bJ8bTt3IhYi254RWiTclQmL7Awmrq+rZFOhZkJAHmQ==", + "requires": { + "estree-walker": "^0.2.1", + "minimatch": "^3.0.2" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmmirror.com/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-area-insets": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz", + "integrity": "sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "sass": { + "version": "1.49.0", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.49.0.tgz", + "integrity": "sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmmirror.com/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-exec": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/shell-exec/-/shell-exec-1.0.2.tgz", + "integrity": "sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg==", + "dev": true + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/socket.io/-/socket.io-2.4.1.tgz", + "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.5.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.4.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" + }, + "socket.io-client": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-2.4.0.tgz", + "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "socket.io-parser": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==" + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/sockjs-client/-/sockjs-client-1.6.0.tgz", + "integrity": "sha512-qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "eventsource": "^1.1.0", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-1.0.5.tgz", + "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "stackframe": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true + }, + "stricter-htmlparser2": { + "version": "3.9.6", + "resolved": "https://registry.npmmirror.com/stricter-htmlparser2/-/stricter-htmlparser2-3.9.6.tgz", + "integrity": "sha512-w/PqXYnjfpi49nb3xnsizORItMM53M/jHdCL8Cer0OqO3vRLsNDtRKoHY/IkIuGnH7/TEn23yvlZoQQLt7pdrw==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2", + "x-domhandler": "^2.4.2" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + } + } + }, + "string-length": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "dev": true, + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/thread-loader/-/thread-loader-2.1.3.tgz", + "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + } + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==", + "dev": true + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "dev": true, + "requires": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urijs": { + "version": "1.19.7", + "resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.7.tgz", + "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==" + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmmirror.com/url/-/url-0.11.0.tgz", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uview-ui": { + "version": "1.8.5", + "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-1.8.5.tgz", + "integrity": "sha512-dZHtRAH5HW1dLZW5HfO0hDrGpcxnMgbLDLKxbM/jRvgytJBKF7icpuIU607fVF0lGaKp3jUE/IhqoIw4uliYAA==" + }, + "v8-to-istanbul": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", + "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "vconsole": { + "version": "3.11.2", + "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.11.2.tgz", + "integrity": "sha512-gOYOEocyRtFcy4viVEf4c52okpuhRLE0l43q4aMaKLp9pxYoyMJXsEUBydCuzQPc1PKwUpUVE8fEzTcAGUA5sA==", + "requires": { + "cookie-storage": "^6.1.0", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" + }, + "dependencies": { + "core-js": { + "version": "3.21.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.21.1.tgz", + "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" + } + } + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" + }, + "vue-loader": { + "version": "15.9.8", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "vue-meta-info": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/vue-meta-info/-/vue-meta-info-0.1.7.tgz", + "integrity": "sha512-0tfCM0XB6aU44ycijhGBCiLe9bLsFa82qZ1fA3gaEnvpQCw4Tnk6p5R3JpppZTThycr70ckf9Wx49C7ESDp75A==", + "requires": { + "rollup-plugin-buble": "^0.15.0", + "rollup-plugin-commonjs": "^8.2.0", + "rollup-plugin-json": "^2.3.0", + "rollup-plugin-node-resolve": "^3.0.0", + "vue": "^2.4.2", + "vue-router": "^2.7.0" + }, + "dependencies": { + "vue": { + "version": "2.6.14", + "resolved": "https://registry.npmmirror.com/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + } + } + }, + "vue-router": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-2.8.1.tgz", + "integrity": "sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA==" + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" + }, + "vuex": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz", + "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.3", + "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", + "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "dev": true, + "requires": { + "ansi-html-community": "0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "windicss": { + "version": "3.5.1", + "resolved": "https://registry.npmmirror.com/windicss/-/windicss-3.5.1.tgz", + "integrity": "sha512-E1hYZATcZFci/XhGS0sJAMRxULjnK+glNukE78Ku7xeb3jxgMY55fFOdIrav+GjQCsgR+IZxPq9/DwmO6eyc4Q==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-loader": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/wrap-loader/-/wrap-loader-0.2.0.tgz", + "integrity": "sha512-Qdhdu7vr2H8dLE2sKySQznOBHXIHbKg7PZ5aqkeBOQHGqxLfcJw/ZlB40j67b1tks9OYqSBCHc+uHtGRCmQYlg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "x-domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/x-domhandler/-/x-domhandler-2.4.2.tgz", + "integrity": "sha512-c+T0p5hsahezbHpahjNpSDKjMMwGwOnG6Iaz8zzSjEBlJM47hakZmNBLNpktZJjuRdopoUMPf7HzcPcTE1G0GQ==", + "dev": true, + "requires": { + "domelementtype": "1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + } + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==" + }, + "ylru": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ylru/-/ylru-1.2.1.tgz", + "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e68993b --- /dev/null +++ b/package.json @@ -0,0 +1,109 @@ +{ + "name": "mall-app", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "npm run dev:h5", + "build": "npm run build:h5", + "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build", + "build:custom": "cross-env NODE_ENV=production uniapp-cli custom", + "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build", + "build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build", + "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build", + "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build", + "build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build", + "build:mp-lark": "cross-env NODE_ENV=production UNI_PLATFORM=mp-lark vue-cli-service uni-build", + "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build", + "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build", + "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build", + "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build", + "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build", + "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build", + "build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build", + "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch", + "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom", + "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve", + "dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch", + "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch", + "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch", + "dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch", + "dev:mp-lark": "cross-env NODE_ENV=development UNI_PLATFORM=mp-lark vue-cli-service uni-build --watch", + "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch", + "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch", + "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize", + "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch", + "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch", + "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch", + "dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch", + "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js", + "serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js", + "test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i", + "test:h5": "cross-env UNI_PLATFORM=h5 jest -i", + "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i", + "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i", + "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i" + }, + "dependencies": { + "@dcloudio/uni-app-plus": "^2.0.0-32920211122002", + "@dcloudio/uni-h5": "^2.0.0-32920211122002", + "@dcloudio/uni-helper-json": "*", + "@dcloudio/uni-i18n": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-360": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-alipay": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-baidu": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-kuaishou": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-lark": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-qq": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-toutiao": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-vue": "^2.0.0-32920211122002", + "@dcloudio/uni-mp-weixin": "^2.0.0-32920211122002", + "@dcloudio/uni-quickapp-native": "^2.0.0-32920211122002", + "@dcloudio/uni-quickapp-webview": "^2.0.0-32920211122002", + "@dcloudio/uni-stat": "^2.0.0-32920211122002", + "@vue/shared": "^3.0.0", + "core-js": "^3.6.5", + "flyio": "^0.6.2", + "jweixin-module": "^1.6.0", + "luch-request": "^3.0.7", + "regenerator-runtime": "^0.12.1", + "uuid": "^8.3.2", + "uview-ui": "^1.8.4", + "vconsole": "^3.10.0", + "vue": "^2.6.11", + "vuex": "^3.6.2" + }, + "devDependencies": { + "@babel/runtime": "~7.12.0", + "@dcloudio/types": "*", + "@dcloudio/uni-automator": "^2.0.0-32920211122002", + "@dcloudio/uni-cli-i18n": "^2.0.0-32920211122002", + "@dcloudio/uni-cli-shared": "^2.0.0-32920211122002", + "@dcloudio/uni-migration": "^2.0.0-32920211122002", + "@dcloudio/uni-template-compiler": "^2.0.0-32920211122002", + "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.0-32920211122002", + "@dcloudio/vue-cli-plugin-uni": "^2.0.0-32920211122002", + "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.0-32920211122002", + "@dcloudio/webpack-uni-mp-loader": "^2.0.0-32920211122002", + "@dcloudio/webpack-uni-pages-loader": "^2.0.0-32920211122002", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "babel-plugin-import": "^1.11.0", + "cross-env": "^7.0.2", + "jest": "^25.4.0", + "mini-types": "*", + "miniprogram-api-typings": "*", + "postcss-class-rename": "^1.0.1", + "postcss-comment": "^2.0.0", + "postcss-windicss-postcss7": "^1.1.1", + "sass": "^1.43.4", + "sass-loader": "^8.0.2", + "vue-template-compiler": "^2.6.11" + }, + "browserslist": [ + "Android >= 4.4", + "ios >= 9" + ], + "uni-app": { + "scripts": {} + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..d76bd59 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,29 @@ +const path = require('path') +module.exports = { + parser: require('postcss-comment'), + plugins: [ + require('postcss-windicss-postcss7')({}), + require('postcss-import')({ + resolve (id, basedir, importOptions) { + if (id.startsWith('/')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) + } else if (id.startsWith('@/')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) + } else if (id.startsWith('/') && !id.startsWith('//')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) + } + return id + } + }), + require('autoprefixer')({ + remove: process.env.UNI_PLATFORM !== 'h5' + }), + require('@dcloudio/vue-cli-plugin-uni/packages/postcss'), + // require('postcss-class-rename')({ + // [process.env.UNI_PLATFORM === 'mp-weixin' ? ':not\\\(\\\[hidden\\\]\\\)\\\s~\\\s:not\\\(\\\[hidden\\\]\\\)' : '不可能匹配的字符']: 'view + view', // 支持 space-x-4 语法 + // '\\\\:': '_', // 变体写法 focus_bg-primary + // '\\\\/': '_', // 数值百分号 w-1_2 + // '\\\\.': '__', // 小数点写法 w-1__5 + // }) + ] +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..ba6f516 --- /dev/null +++ b/public/index.html @@ -0,0 +1,28 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + + + +
+ + + + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..cb8a3c2 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,101 @@ + + + + diff --git a/src/components/QS-SharePoster/QRCodeAlg.js b/src/components/QS-SharePoster/QRCodeAlg.js new file mode 100644 index 0000000..e69a0e5 --- /dev/null +++ b/src/components/QS-SharePoster/QRCodeAlg.js @@ -0,0 +1,1009 @@ + /** + * 获取单个字符的utf8编码 + * unicode BMP平面约65535个字符 + * @param {num} code + * return {array} + */ + function unicodeFormat8(code) { + // 1 byte + var c0, c1, c2; + if (code < 128) { + return [code]; + // 2 bytes + } else if (code < 2048) { + c0 = 192 + (code >> 6); + c1 = 128 + (code & 63); + return [c0, c1]; + // 3 bytes + } else { + c0 = 224 + (code >> 12); + c1 = 128 + (code >> 6 & 63); + c2 = 128 + (code & 63); + return [c0, c1, c2]; + } + } + /** + * 获取字符串的utf8编码字节串 + * @param {string} string + * @return {array} + */ + function getUTF8Bytes(string) { + var utf8codes = []; + for (var i = 0; i < string.length; i++) { + var code = string.charCodeAt(i); + var utf8 = unicodeFormat8(code); + for (var j = 0; j < utf8.length; j++) { + utf8codes.push(utf8[j]); + } + } + return utf8codes; + } + /** + * 二维码算法实现 + * @param {string} data 要编码的信息字符串 + * @param {num} errorCorrectLevel 纠错等级 + */ + export default function QRCodeAlg(data, errorCorrectLevel) { + this.typeNumber = -1; //版本 + this.errorCorrectLevel = errorCorrectLevel; + this.modules = null; //二维矩阵,存放最终结果 + this.moduleCount = 0; //矩阵大小 + this.dataCache = null; //数据缓存 + this.rsBlocks = null; //版本数据信息 + this.totalDataCount = -1; //可使用的数据量 + this.data = data; + this.utf8bytes = getUTF8Bytes(data); + this.make(); + } + QRCodeAlg.prototype = { + constructor: QRCodeAlg, + /** + * 获取二维码矩阵大小 + * @return {num} 矩阵大小 + */ + getModuleCount: function () { + return this.moduleCount; + }, + /** + * 编码 + */ + make: function () { + this.getRightType(); + this.dataCache = this.createData(); + this.createQrcode(); + }, + /** + * 设置二位矩阵功能图形 + * @param {bool} test 表示是否在寻找最好掩膜阶段 + * @param {num} maskPattern 掩膜的版本 + */ + makeImpl: function (maskPattern) { + this.moduleCount = this.typeNumber * 4 + 17; + this.modules = new Array(this.moduleCount); + for (var row = 0; row < this.moduleCount; row++) { + this.modules[row] = new Array(this.moduleCount); + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(true, maskPattern); + if (this.typeNumber >= 7) { + this.setupTypeNumber(true); + } + this.mapData(this.dataCache, maskPattern); + }, + /** + * 设置二维码的位置探测图形 + * @param {num} row 探测图形的中心横坐标 + * @param {num} col 探测图形的中心纵坐标 + */ + setupPositionProbePattern: function (row, col) { + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || this.moduleCount <= row + r) continue; + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || this.moduleCount <= col + c) continue; + if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + }, + /** + * 创建二维码 + * @return {[type]} [description] + */ + createQrcode: function () { + var minLostPoint = 0; + var pattern = 0; + var bestModules = null; + for (var i = 0; i < 8; i++) { + this.makeImpl(i); + var lostPoint = QRUtil.getLostPoint(this); + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint; + pattern = i; + bestModules = this.modules; + } + } + this.modules = bestModules; + this.setupTypeInfo(false, pattern); + if (this.typeNumber >= 7) { + this.setupTypeNumber(false); + } + }, + /** + * 设置定位图形 + * @return {[type]} [description] + */ + setupTimingPattern: function () { + for (var r = 8; r < this.moduleCount - 8; r++) { + if (this.modules[r][6] != null) { + continue; + } + this.modules[r][6] = (r % 2 == 0); + if (this.modules[6][r] != null) { + continue; + } + this.modules[6][r] = (r % 2 == 0); + } + }, + /** + * 设置矫正图形 + * @return {[type]} [description] + */ + setupPositionAdjustPattern: function () { + var pos = QRUtil.getPatternPosition(this.typeNumber); + for (var i = 0; i < pos.length; i++) { + for (var j = 0; j < pos.length; j++) { + var row = pos[i]; + var col = pos[j]; + if (this.modules[row][col] != null) { + continue; + } + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + } + } + }, + /** + * 设置版本信息(7以上版本才有) + * @param {bool} test 是否处于判断最佳掩膜阶段 + * @return {[type]} [description] + */ + setupTypeNumber: function (test) { + var bits = QRUtil.getBCHTypeNumber(this.typeNumber); + for (var i = 0; i < 18; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; + this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; + } + }, + /** + * 设置格式信息(纠错等级和掩膜版本) + * @param {bool} test + * @param {num} maskPattern 掩膜版本 + * @return {} + */ + setupTypeInfo: function (test, maskPattern) { + var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern; + var bits = QRUtil.getBCHTypeInfo(data); + // vertical + for (var i = 0; i < 15; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + if (i < 6) { + this.modules[i][8] = mod; + } else if (i < 8) { + this.modules[i + 1][8] = mod; + } else { + this.modules[this.moduleCount - 15 + i][8] = mod; + } + // horizontal + var mod = (!test && ((bits >> i) & 1) == 1); + if (i < 8) { + this.modules[8][this.moduleCount - i - 1] = mod; + } else if (i < 9) { + this.modules[8][15 - i - 1 + 1] = mod; + } else { + this.modules[8][15 - i - 1] = mod; + } + } + // fixed module + this.modules[this.moduleCount - 8][8] = (!test); + }, + /** + * 数据编码 + * @return {[type]} [description] + */ + createData: function () { + var buffer = new QRBitBuffer(); + var lengthBits = this.typeNumber > 9 ? 16 : 8; + buffer.put(4, 4); //添加模式 + buffer.put(this.utf8bytes.length, lengthBits); + for (var i = 0, l = this.utf8bytes.length; i < l; i++) { + buffer.put(this.utf8bytes[i], 8); + } + if (buffer.length + 4 <= this.totalDataCount * 8) { + buffer.put(0, 4); + } + // padding + while (buffer.length % 8 != 0) { + buffer.putBit(false); + } + // padding + while (true) { + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD0, 8); + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD1, 8); + } + return this.createBytes(buffer); + }, + /** + * 纠错码编码 + * @param {buffer} buffer 数据编码 + * @return {[type]} + */ + createBytes: function (buffer) { + var offset = 0; + var maxDcCount = 0; + var maxEcCount = 0; + var length = this.rsBlock.length / 3; + var rsBlocks = new Array(); + for (var i = 0; i < length; i++) { + var count = this.rsBlock[i * 3 + 0]; + var totalCount = this.rsBlock[i * 3 + 1]; + var dataCount = this.rsBlock[i * 3 + 2]; + for (var j = 0; j < count; j++) { + rsBlocks.push([dataCount, totalCount]); + } + } + var dcdata = new Array(rsBlocks.length); + var ecdata = new Array(rsBlocks.length); + for (var r = 0; r < rsBlocks.length; r++) { + var dcCount = rsBlocks[r][0]; + var ecCount = rsBlocks[r][1] - dcCount; + maxDcCount = Math.max(maxDcCount, dcCount); + maxEcCount = Math.max(maxEcCount, ecCount); + dcdata[r] = new Array(dcCount); + for (var i = 0; i < dcdata[r].length; i++) { + dcdata[r][i] = 0xff & buffer.buffer[i + offset]; + } + offset += dcCount; + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); + var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); + var modPoly = rawPoly.mod(rsPoly); + ecdata[r] = new Array(rsPoly.getLength() - 1); + for (var i = 0; i < ecdata[r].length; i++) { + var modIndex = i + modPoly.getLength() - ecdata[r].length; + ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; + } + } + var data = new Array(this.totalDataCount); + var index = 0; + for (var i = 0; i < maxDcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < dcdata[r].length) { + data[index++] = dcdata[r][i]; + } + } + } + for (var i = 0; i < maxEcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < ecdata[r].length) { + data[index++] = ecdata[r][i]; + } + } + } + return data; + + }, + /** + * 布置模块,构建最终信息 + * @param {} data + * @param {} maskPattern + * @return {} + */ + mapData: function (data, maskPattern) { + var inc = -1; + var row = this.moduleCount - 1; + var bitIndex = 7; + var byteIndex = 0; + for (var col = this.moduleCount - 1; col > 0; col -= 2) { + if (col == 6) col--; + while (true) { + for (var c = 0; c < 2; c++) { + if (this.modules[row][col - c] == null) { + var dark = false; + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); + } + var mask = QRUtil.getMask(maskPattern, row, col - c); + if (mask) { + dark = !dark; + } + this.modules[row][col - c] = dark; + bitIndex--; + if (bitIndex == -1) { + byteIndex++; + bitIndex = 7; + } + } + } + row += inc; + if (row < 0 || this.moduleCount <= row) { + row -= inc; + inc = -inc; + break; + } + } + } + } + }; + /** + * 填充字段 + */ + QRCodeAlg.PAD0 = 0xEC; + QRCodeAlg.PAD1 = 0x11; + //--------------------------------------------------------------------- + // 纠错等级对应的编码 + //--------------------------------------------------------------------- + var QRErrorCorrectLevel = [1, 0, 3, 2]; + //--------------------------------------------------------------------- + // 掩膜版本 + //--------------------------------------------------------------------- + var QRMaskPattern = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + }; + //--------------------------------------------------------------------- + // 工具类 + //--------------------------------------------------------------------- + var QRUtil = { + /* + 每个版本矫正图形的位置 + */ + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), + G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), + G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), + /* + BCH编码格式信息 + */ + getBCHTypeInfo: function (data) { + var d = data << 10; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { + d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); + } + return ((data << 10) | d) ^ QRUtil.G15_MASK; + }, + /* + BCH编码版本信息 + */ + getBCHTypeNumber: function (data) { + var d = data << 12; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { + d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); + } + return (data << 12) | d; + }, + /* + 获取BCH位信息 + */ + getBCHDigit: function (data) { + var digit = 0; + while (data != 0) { + digit++; + data >>>= 1; + } + return digit; + }, + /* + 获取版本对应的矫正图形位置 + */ + getPatternPosition: function (typeNumber) { + return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; + }, + /* + 掩膜算法 + */ + getMask: function (maskPattern, i, j) { + switch (maskPattern) { + case QRMaskPattern.PATTERN000: + return (i + j) % 2 == 0; + case QRMaskPattern.PATTERN001: + return i % 2 == 0; + case QRMaskPattern.PATTERN010: + return j % 3 == 0; + case QRMaskPattern.PATTERN011: + return (i + j) % 3 == 0; + case QRMaskPattern.PATTERN100: + return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; + case QRMaskPattern.PATTERN101: + return (i * j) % 2 + (i * j) % 3 == 0; + case QRMaskPattern.PATTERN110: + return ((i * j) % 2 + (i * j) % 3) % 2 == 0; + case QRMaskPattern.PATTERN111: + return ((i * j) % 3 + (i + j) % 2) % 2 == 0; + default: + throw new Error("bad maskPattern:" + maskPattern); + } + }, + /* + 获取RS的纠错多项式 + */ + getErrorCorrectPolynomial: function (errorCorrectLength) { + var a = new QRPolynomial([1], 0); + for (var i = 0; i < errorCorrectLength; i++) { + a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); + } + return a; + }, + /* + 获取评价 + */ + getLostPoint: function (qrCode) { + var moduleCount = qrCode.getModuleCount(), + lostPoint = 0, + darkCount = 0; + for (var row = 0; row < moduleCount; row++) { + var sameCount = 0; + var head = qrCode.modules[row][0]; + for (var col = 0; col < moduleCount; col++) { + var current = qrCode.modules[row][col]; + //level 3 评价 + if (col < moduleCount - 6) { + if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) { + if (col < moduleCount - 10) { + if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) { + lostPoint += 40; + } + } else if (col > 3) { + if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) { + lostPoint += 40; + } + } + } + } + //level 2 评价 + if ((row < moduleCount - 1) && (col < moduleCount - 1)) { + var count = 0; + if (current) count++; + if (qrCode.modules[row + 1][col]) count++; + if (qrCode.modules[row][col + 1]) count++; + if (qrCode.modules[row + 1][col + 1]) count++; + if (count == 0 || count == 4) { + lostPoint += 3; + } + } + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + //level 4 评价 + if (current) { + darkCount++; + } + } + } + for (var col = 0; col < moduleCount; col++) { + var sameCount = 0; + var head = qrCode.modules[0][col]; + for (var row = 0; row < moduleCount; row++) { + var current = qrCode.modules[row][col]; + //level 3 评价 + if (row < moduleCount - 6) { + if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) { + if (row < moduleCount - 10) { + if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) { + lostPoint += 40; + } + } else if (row > 3) { + if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) { + lostPoint += 40; + } + } + } + } + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + } + } + // LEVEL4 + var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; + lostPoint += ratio * 10; + return lostPoint; + } + + }; + //--------------------------------------------------------------------- + // QRMath使用的数学工具 + //--------------------------------------------------------------------- + var QRMath = { + /* + 将n转化为a^m + */ + glog: function (n) { + if (n < 1) { + throw new Error("glog(" + n + ")"); + } + return QRMath.LOG_TABLE[n]; + }, + /* + 将a^m转化为n + */ + gexp: function (n) { + while (n < 0) { + n += 255; + } + while (n >= 256) { + n -= 255; + } + return QRMath.EXP_TABLE[n]; + }, + EXP_TABLE: new Array(256), + LOG_TABLE: new Array(256) + + }; + for (var i = 0; i < 8; i++) { + QRMath.EXP_TABLE[i] = 1 << i; + } + for (var i = 8; i < 256; i++) { + QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; + } + for (var i = 0; i < 255; i++) { + QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; + } + //--------------------------------------------------------------------- + // QRPolynomial 多项式 + //--------------------------------------------------------------------- + /** + * 多项式类 + * @param {Array} num 系数 + * @param {num} shift a^shift + */ + function QRPolynomial(num, shift) { + if (num.length == undefined) { + throw new Error(num.length + "/" + shift); + } + var offset = 0; + while (offset < num.length && num[offset] == 0) { + offset++; + } + this.num = new Array(num.length - offset + shift); + for (var i = 0; i < num.length - offset; i++) { + this.num[i] = num[i + offset]; + } + } + QRPolynomial.prototype = { + get: function (index) { + return this.num[index]; + }, + getLength: function () { + return this.num.length; + }, + /** + * 多项式乘法 + * @param {QRPolynomial} e 被乘多项式 + * @return {[type]} [description] + */ + multiply: function (e) { + var num = new Array(this.getLength() + e.getLength() - 1); + for (var i = 0; i < this.getLength(); i++) { + for (var j = 0; j < e.getLength(); j++) { + num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); + } + } + return new QRPolynomial(num, 0); + }, + /** + * 多项式模运算 + * @param {QRPolynomial} e 模多项式 + * @return {} + */ + mod: function (e) { + var tl = this.getLength(), + el = e.getLength(); + if (tl - el < 0) { + return this; + } + var num = new Array(tl); + for (var i = 0; i < tl; i++) { + num[i] = this.get(i); + } + while (num.length >= el) { + var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0)); + + for (var i = 0; i < e.getLength(); i++) { + num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); + } + while (num[0] == 0) { + num.shift(); + } + } + return new QRPolynomial(num, 0); + } + }; + + //--------------------------------------------------------------------- + // RS_BLOCK_TABLE + //--------------------------------------------------------------------- + /* + 二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数] + */ + var RS_BLOCK_TABLE = [ + // L + // M + // Q + // H + // 1 + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + + // 2 + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + + // 3 + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + + // 4 + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + + // 5 + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + + // 6 + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + + // 7 + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + + // 8 + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + + // 9 + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + + // 10 + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + + // 11 + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + + // 12 + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + + // 13 + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + + // 14 + [3, 145, 115, 1, 146, 116], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + + // 15 + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + + // 16 + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + + // 17 + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + + // 18 + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + + // 19 + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + + // 20 + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, 43, 15, 10, 44, 16], + + // 21 + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + + // 22 + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + + // 23 + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + + // 24 + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + + // 25 + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + + // 26 + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + + // 27 + [8, 152, 122, 4, 153, 123], + [22, 73, 45, 3, 74, 46], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + + // 28 + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + + // 29 + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + + // 30 + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + + // 31 + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + + // 32 + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + + // 33 + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, 55, 25], + [11, 45, 15, 46, 46, 16], + + // 34 + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + + // 35 + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + + // 36 + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + + // 37 + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + + // 38 + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + + // 39 + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, 45, 15, 67, 46, 16], + + // 40 + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + + /** + * 根据数据获取对应版本 + * @return {[type]} [description] + */ + QRCodeAlg.prototype.getRightType = function () { + for (var typeNumber = 1; typeNumber < 41; typeNumber++) { + var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel]; + if (rsBlock == undefined) { + throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel); + } + var length = rsBlock.length / 3; + var totalDataCount = 0; + for (var i = 0; i < length; i++) { + var count = rsBlock[i * 3 + 0]; + var dataCount = rsBlock[i * 3 + 2]; + totalDataCount += dataCount * count; + } + var lengthBytes = typeNumber > 9 ? 2 : 1; + if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) { + this.typeNumber = typeNumber; + this.rsBlock = rsBlock; + this.totalDataCount = totalDataCount; + break; + } + } + }; + + //--------------------------------------------------------------------- + // QRBitBuffer + //--------------------------------------------------------------------- + function QRBitBuffer() { + this.buffer = new Array(); + this.length = 0; + } + QRBitBuffer.prototype = { + get: function (index) { + var bufIndex = Math.floor(index / 8); + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1); + }, + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1)); + } + }, + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8); + if (this.buffer.length <= bufIndex) { + this.buffer.push(0); + } + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); + } + this.length++; + } + }; \ No newline at end of file diff --git a/src/components/QS-SharePoster/QS-SharePoster.js b/src/components/QS-SharePoster/QS-SharePoster.js new file mode 100644 index 0000000..13a81c6 --- /dev/null +++ b/src/components/QS-SharePoster/QS-SharePoster.js @@ -0,0 +1,1620 @@ +import _app from './app.js'; +import QRCodeAlg from './QRCodeAlg.js'; +import { + base64ToPath +} from './image-tools.js'; +const ShreUserPosterBackgroundKey = 'ShrePosterBackground_'; // 背景图片缓存名称前缀 +const idKey = 'QSSHAREPOSTER_IDKEY'; //drawArray自动生成的idkey +var nbgScale = 1; +// export default +function getSharePoster(obj) { + let { + type, + formData, + background, + posterCanvasId, + backgroundImage, + reserve, + textArray, + drawArray, + qrCodeArray, + imagesArray, + setCanvasWH, + setCanvasToTempFilePath, + canvas2image, + setDraw, + bgScale, + Context, + _this, + delayTimeScale, + drawDelayTime, + draw + } = obj; + return new Promise(async (rs, rj) => { + try { + _app.showLoading('正在准备海报数据'); + if (!Context) { + _app.log('没有画布对象,创建画布对象'); + Context = uni.createCanvasContext(posterCanvasId, (_this || null)); + } + let bgObj; + if (background && background.width && background.height) { + bgObj = background; + } else { + bgObj = await getShreUserPosterBackground({ + backgroundImage, + type, + formData + }); + } + bgScale = bgScale || nbgScale; + bgObj.width = bgObj.width * bgScale; + bgObj.height = bgObj.height * bgScale; + + _app.log('获取背景图信息对象成功:' + JSON.stringify(bgObj)); + const params = { + bgObj, + type, + bgScale, + getBgObj: function() { + return params.bgObj; + }, + setBgObj: function(newBgObj) { + const n = { + ...params.bgObj, + ...newBgObj + }; + params.bgObj = n; + bgObj = n; + } + }; + if (imagesArray) { + if (typeof(imagesArray) == 'function') + imagesArray = imagesArray(params); + _app.showLoading('正在生成需绘制图片的临时路径'); + _app.log('准备设置图片'); + imagesArray = await setImage(imagesArray); + _app.hideLoading(); + } + if (textArray) { + if (typeof(textArray) == 'function') + textArray = textArray(params); + textArray = setText(Context, textArray); + + } + if (qrCodeArray) { + if (typeof(qrCodeArray) == 'function') + qrCodeArray = qrCodeArray(params); + _app.showLoading('正在生成需绘制图片的临时路径'); + for (let i = 0; i < qrCodeArray.length; i++) { + _app.log(i); + if (qrCodeArray[i].image) + qrCodeArray[i].image = await _app.downloadFile_PromiseFc(qrCodeArray[i].image); + } + _app.hideLoading(); + } + if (drawArray) { + if (typeof(drawArray) == 'function') { + drawArray = drawArray(params); + } + if (_app.isPromise(drawArray)) { + drawArray = await drawArray; + } + + if (_app.isArray(drawArray) && drawArray.length > 0) { + // let hasAllInfoCallback = false; + const addDrawArray = []; + for (let i = 0; i < drawArray.length; i++) { + const drawArrayItem = drawArray[i]; + // if (_app.isFn(drawArrayItem.allInfoCallback) && !hasAllInfoCallback) + // hasAllInfoCallback = true; + drawArrayItem[idKey] = i; + let newData; + let addDraw = false; + switch (drawArrayItem.type) { + case 'image': + newData = await setImage(drawArrayItem); + break; + case 'text': + newData = setText(Context, drawArrayItem, params.bgObj); + // if (_app.isArray(setTextResult)) { + // addDraw = true; + // addDrawArray.push({ + // index: i, + // items: setTextResult + // }); + // } else { + // newData = setTextResult; + // } + break; + case 'qrcode': + if (drawArrayItem.image) + newData = { + image: await _app.downloadFile_PromiseFc(drawArrayItem.image) + }; + break; + case 'custom': + break; + case 'fillrect': + break; + case 'strokeRect': + break; + case 'roundStrokeRect': + break; + case 'roundFillRect': + break; + default: + _app.log('未识别的类型'); + break; + } + if (!addDraw && newData && _app.isObject(newData)) { + drawArray[i] = { + ...drawArrayItem, + ...newData + } + }; + } + + // if (addDrawArray.length) { + // for (let i = 0; i < addDrawArray.length; i++) { + // const item = addDrawArray[i]; + // const index = drawArray.findIndex(ite => ite[idKey] == item.index); + // if (-1 != index) { + // item.items.forEach((ite, index) => { + // ite[idKey] = drawArray.length + index; + // ite.allInfoCallback = null; + // }); + // drawArray.splice(index, 1, ...item.items) + // } + // } + // } + _app.log('AllInfoCallback之前', JSON.stringify(drawArray)); + + // if (hasAllInfoCallback) { + _app.log('----------------hasAllInfoCallback----------------'); + const drawArray_copy = [...drawArray]; + drawArray_copy.sort((a, b) => { + const a_serialNum = !_app.isUndef(a.serialNum) && !_app.isNull(a + .serialNum) ? Number(a.serialNum) : Number.NEGATIVE_INFINITY; + const b_serialNum = !_app.isUndef(b.serialNum) && !_app.isNull(b + .serialNum) ? Number(b.serialNum) : Number.NEGATIVE_INFINITY; + return a_serialNum - b_serialNum; + }) + _app.log('开始for循环'); + + for (let i = 0; i < drawArray_copy.length; i++) { + const item = { + ...drawArray_copy[i] + }; + const item_idKey = item[idKey]; + _app.log('item_idKey', item_idKey); + const ind = drawArray.findIndex(it => it[idKey] == item_idKey); + _app.log('ind', ind); + if (-1 == ind) break; + if (_app.isFn(item.allInfoCallback)) { + let newData = item.allInfoCallback({ + drawArray + }); + _app.log('newData', JSON.stringify(newData)); + if (_app.isPromise(newData)) newData = await newData; + + if (drawArray[ind].type === 'text' && newData.size) { + const textLength = countTextLength(Context, { + text: newData.text || drawArray[ind].text, + size: newData.size + }); + newData.textLength = textLength; + } + drawArray[ind] = { + ...item, + ...newData + }; + } + _app.log('drawArray[ind]', JSON.stringify(drawArray[ind])); + if (drawArray[ind].type === 'text') { + const setLineFeedResult = setLineFeed(Context, drawArray[ind], params.bgObj); + if (_app.isArray(setLineFeedResult)) { + setLineFeedResult.forEach((ite, index) => { + ite[idKey] = drawArray.length + index; + ite.allInfoCallback = null; + }) + drawArray.splice(ind, 1, ...setLineFeedResult); + } else { + drawArray.splice(ind, 1, setLineFeedResult); + } + } + + } + _app.log('for循环结束'); + _app.log('allInfocallback结束', JSON.stringify(drawArray)); + // } + } + } + drawArray.sort((a, b) => { + const a_zIndex = !_app.isUndef(a.zIndex) && !_app.isNull(a + .zIndex) ? Number(a.zIndex) : Number.NEGATIVE_INFINITY; + const b_zIndex = !_app.isUndef(b.zIndex) && !_app.isNull(b + .zIndex) ? Number(b.zIndex) : Number.NEGATIVE_INFINITY; + return a_zIndex - b_zIndex; + }); + _app.log('params:' + JSON.stringify(params)) + if (setCanvasWH && typeof(setCanvasWH) == 'function') { + await new Promise((resolve, reject) => { + setCanvasWH(params); + setTimeout(() => { + resolve(); + }, 50) + }) + } + const poster = await drawShareImage({ + Context, + type, + posterCanvasId, + reserve, + drawArray, + textArray, + imagesArray, + bgObj, + qrCodeArray, + setCanvasToTempFilePath, + setDraw, + bgScale, + _this, + delayTimeScale, + drawDelayTime, + canvas2image, + draw + }); + _app.hideLoading(); + rs({ + bgObj, + poster, + type + }); + } catch (e) { + //TODO handle the exception + rj(e); + } + }); +} + +function drawShareImage(obj) { //绘制海报方法 + let { + Context, + type, + posterCanvasId, + reserve, + bgObj, + drawArray, + textArray, + qrCodeArray, + imagesArray, + setCanvasToTempFilePath, + setDraw, + bgScale, + _this, + delayTimeScale, + drawDelayTime, + canvas2image, + draw + } = obj; + const params = { + Context, + bgObj, + type, + bgScale + }; + delayTimeScale = delayTimeScale !== undefined ? delayTimeScale : 15; + drawDelayTime = drawDelayTime !== undefined ? drawDelayTime : 100; + return new Promise((rs, rj) => { + try { + _app.showLoading('正在绘制海报'); + _app.log('背景对象:' + JSON.stringify(bgObj)); + if (bgObj && bgObj.path) { + _app.log('背景有图片路径'); + Context.drawImage(bgObj.path, 0, 0, bgObj.width, bgObj.height); + } else { + _app.log('背景没有图片路径'); + if (bgObj.backgroundColor) { + _app.log('背景有背景颜色:' + bgObj.backgroundColor); + Context.setFillStyle(bgObj.backgroundColor); + Context.fillRect(0, 0, bgObj.width, bgObj.height); + } else { + _app.log('背景没有背景颜色'); + } + } + + _app.showLoading('绘制图片'); + if (imagesArray && imagesArray.length > 0) + drawImage(Context, imagesArray); + + _app.showLoading('绘制自定义内容'); + if (setDraw && typeof(setDraw) == 'function') setDraw(params); + + _app.showLoading('绘制文本'); + if (textArray && textArray.length > 0) + drawText(Context, textArray, bgObj); + + _app.showLoading('绘制二维码'); + if (qrCodeArray && qrCodeArray.length > 0) { + for (let i = 0; i < qrCodeArray.length; i++) { + drawQrCode(Context, qrCodeArray[i]); + } + } + + _app.showLoading('绘制可控层级序列'); + if (drawArray && drawArray.length > 0) { + for (let i = 0; i < drawArray.length; i++) { + const drawArrayItem = drawArray[i]; + _app.log('绘制可控层级序列, drawArrayItem:' + JSON.stringify(drawArrayItem)); + switch (drawArrayItem.type) { + case 'image': + _app.log('绘制可控层级序列, 绘制图片'); + drawImage(Context, drawArrayItem); + break; + case 'text': + _app.log('绘制可控层级序列, 绘制文本'); + drawText(Context, drawArrayItem, bgObj); + break; + case 'qrcode': + _app.log('绘制可控层级序列, 绘制二维码'); + drawQrCode(Context, drawArrayItem); + break; + case 'custom': + _app.log('绘制可控层级序列, 绘制自定义内容'); + if (drawArrayItem.setDraw && typeof drawArrayItem.setDraw === 'function') + drawArrayItem.setDraw(Context); + break; + drawRoundStrokeRect, drawStrokeRect + case 'fillRect': + _app.log('绘制可控层级序列, 绘制填充直角矩形'); + drawFillRect(Context, drawArrayItem); + break; + case 'strokeRect': + _app.log('绘制可控层级序列, 绘制线条直角矩形'); + drawStrokeRect(Context, drawArrayItem); + break; + case 'roundStrokeRect': + _app.log('绘制可控层级序列, 绘制线条圆角矩形'); + drawRoundStrokeRect(Context, drawArrayItem); + break; + case 'roundFillRect': + _app.log('绘制可控层级序列, 绘制填充圆角矩形'); + drawRoundFillRect(Context, drawArrayItem); + break; + default: + _app.log('未识别的类型'); + break; + } + } + } + _app.showLoading('绘制中') + _app.log('准备执行draw方法') + _app.log('Context:', Context); + if (draw === false) { + _app.log('draw属性为false,请自行调用canvas实例的draw方法'); + rs(); + return; + } + const fn = function() { + let setObj = setCanvasToTempFilePath || {}; + if (setObj && typeof(setObj) == 'function') + setObj = setCanvasToTempFilePath(bgObj, type); + let canvasToTempFilePathFn; + const dpr = uni.getSystemInfoSync().pixelRatio; + const data = { + // 注释的设置使用uni自己的默认值更为稳定 + // x: 0, + // y: 0, + // width: Number(bgObj.width), + // height: Number(bgObj.height), + // destWidth: Number(bgObj.width) * dpr, + // destHeight: Number(bgObj.height) * dpr, + quality: .8, + fileType: 'jpg', + ...setObj, + canvasId: posterCanvasId, + }; + if (canvas2image === false) { + _app.hideLoading(); + return rs({ + setCanvasToTempFilePath: data + }); + } + _app.showLoading('正在输出图片'); + _app.log('canvasToTempFilePath的data对象:' + JSON.stringify(data)); + canvasToTempFilePathFn = function() { + const toTempFilePathObj = { //输出为图片 + ...data, + success(res) { + _app.hideLoading(); + rs({ + ...res, + setCanvasToTempFilePath: data + }); + }, + fail(err) { + _app.hideLoading(); + _app.log('输出图片失败'); + _app.log('输出图片失败:' + JSON.stringify(err)); + rj('输出图片失败:' + JSON.stringify(err)) + } + } + uni.canvasToTempFilePath(toTempFilePathObj, _this || null); + } + let delayTime = 0; + if (qrCodeArray) { + qrCodeArray.forEach(item => { + if (item.text) { + delayTime += Number(item.text.length); + } + }) + } + if (imagesArray) { + imagesArray.forEach(() => { + delayTime += delayTimeScale; + }) + } + if (textArray) { + textArray.forEach(() => { + delayTime += delayTimeScale; + }) + } + if (drawArray) { + drawArray.forEach(item => { + switch (item.type) { + case 'text': + if (item.text) { + delayTime += item.text.length; + } + break; + case 'qrcode': + if (item.text) { + delayTime += item.text.length * 2; + } + break; + default: + delayTime += delayTimeScale; + break; + } + }) + } + _app.log('延时系数:' + delayTimeScale); + _app.log('总计延时:' + delayTime); + setTimeout(canvasToTempFilePathFn, delayTime); + } + + + Context.draw((typeof(reserve) == 'boolean' ? reserve : false), setTimeout(fn, drawDelayTime)); + } catch (e) { + //TODO handle the exception + _app.hideLoading(); + rj(e); + } + }); +} + +// export +function drawFillRect(Context, drawArrayItem = {}) { //填充矩形 + _app.log('进入绘制填充直角矩形方法, drawArrayItem:' + JSON.stringify(drawArrayItem)); + Context.setFillStyle(drawArrayItem.backgroundColor || 'black'); + Context.setGlobalAlpha(drawArrayItem.alpha || 1); + Context.fillRect(drawArrayItem.dx || 0, drawArrayItem.dy || 0, drawArrayItem.width || 0, drawArrayItem.height || 0); + Context.setGlobalAlpha(1); +} + +// export +function drawStrokeRect(Context, drawArrayItem = {}) { //线条矩形 + Context.setStrokeStyle(drawArrayItem.color || 'black'); + Context.setLineWidth(drawArrayItem.lineWidth || 1); + Context.strokeRect(drawArrayItem.dx, drawArrayItem.dy, drawArrayItem.width, drawArrayItem.height); +} + +// export +function drawRoundStrokeRect(Context, drawArrayItem = {}) { + let { + dx, + dy, + width, + height, + r, + lineWidth, + color + } = drawArrayItem; + r = r || width * .1; + + if (width < 2 * r) { + r = width / 2; + } + if (width < 2 * r) { + r = width / 2; + } + Context.beginPath(); + Context.arc(dx + r, dy + r, r, 1 * Math.PI, 1.5 * Math.PI); + Context.lineTo(dx + width - r, dy); + Context.arc(dx + width - r, dy + r, r, 1.5 * Math.PI, 0); + Context.lineTo(dx + width, dy + height - r); + Context.arc(dx + width - r, dy + height - r, r, 0, .5 * Math.PI); + Context.lineTo(dx + r, dy + height); + Context.arc(dx + r, dy + height - r, r, .5 * Math.PI, 1 * Math.PI); + Context.lineTo(dx, dy + r); + Context.closePath(); + Context.setLineWidth(lineWidth || 1); + Context.setStrokeStyle(color || 'black'); + Context.stroke(); +} + +// export +function drawRoundFillRect(Context, drawArrayItem = {}) { + let { + dx, + dy, + width, + height, + r, + backgroundColor + } = drawArrayItem; + r = r || width * .1; + + if (width < 2 * r) { + r = width / 2; + } + if (width < 2 * r) { + r = width / 2; + } + Context.beginPath(); + Context.arc(dx + r, dy + r, r, 1 * Math.PI, 1.5 * Math.PI); + Context.lineTo(dx + width - r, dy); + Context.arc(dx + width - r, dy + r, r, 1.5 * Math.PI, 0); + Context.lineTo(dx + width, dy + height - r); + Context.arc(dx + width - r, dy + height - r, r, 0, .5 * Math.PI); + Context.lineTo(dx + r, dy + height); + Context.arc(dx + r, dy + height - r, r, .5 * Math.PI, 1 * Math.PI); + Context.lineTo(dx, dy + r); + Context.closePath(); + Context.setFillStyle(backgroundColor); + Context.fill(); +} + +// export +function setText(Context, texts, bgObj) { // 设置文本数据 + _app.log('进入设置文字方法, texts:' + JSON.stringify(texts)); + if (texts && _app.isArray(texts)) { + _app.log('texts是数组'); + if (texts.length > 0) { + for (let i = 0; i < texts.length; i++) { + _app.log('字符串信息-初始化之前:' + JSON.stringify(texts[i])); + texts[i] = setTextFn(Context, texts[i], bgObj); + } + } + } else { + _app.log('texts是对象'); + texts = setTextFn(Context, texts, bgObj); + _app.log('返回texts:' + JSON.stringify(texts)); + return texts; + } +} + +function setTextFn(Context, textItem, bgObj) { + _app.log('进入设置文字方法, textItem:' + JSON.stringify(textItem)); + if (_app.isNotNull_string(textItem.text)) { + textItem.text = String(textItem.text); + textItem.alpha = textItem.alpha !== undefined ? Number(textItem.alpha) : 1; + textItem.color = textItem.color || 'black'; + textItem.size = textItem.size !== undefined ? Number(textItem.size) : 10; + textItem.textAlign = textItem.textAlign || 'left'; + textItem.textBaseline = textItem.textBaseline || 'middle'; + textItem.dx = Number(textItem.dx) || 0; + textItem.dy = Number(textItem.dy) || 0; + textItem.size = Math.ceil(Number(textItem.size)); + _app.log('字符串信息-初始化默认值后:' + JSON.stringify(textItem)); + let textLength = countTextLength(Context, { + text: textItem.text, + size: textItem.size + }); + _app.log('字符串信息-初始化时的文本长度:' + textLength); + let infoCallBackObj = {}; + if (textItem.infoCallBack && typeof(textItem.infoCallBack) === 'function') { + infoCallBackObj = textItem.infoCallBack(textLength); + } + + if (infoCallBackObj.size) + textLength = countTextLength(Context, { + text: textItem.text, + size: textItem.size + }); + textItem = { + ...textItem, + ...infoCallBackObj, + textLength, + } + _app.log('字符串信息-infoCallBack后:' + JSON.stringify(textItem)); + } + return textItem; +} + +function setLineFeed(Context, textItem, bgObj) { + if (textItem.text && textItem.lineFeed) { + _app.log('设置换行') + let lineNum = -1, + maxWidth = bgObj.width, + lastLineMaxWidth, + lineHeight = textItem.size, + dx = textItem.dx; + if (_app.isObject(textItem.lineFeed)) { + const lineFeed = textItem.lineFeed; + lineNum = (lineFeed.lineNum !== undefined && typeof(lineFeed.lineNum) === 'number') && lineFeed + .lineNum >= 0 ? + lineFeed.lineNum : lineNum; + maxWidth = (lineFeed.maxWidth !== undefined && typeof(lineFeed.maxWidth) === 'number') ? lineFeed + .maxWidth : + maxWidth; + + lastLineMaxWidth = (lineFeed.lastLineMaxWidth !== undefined && typeof(lineFeed.lastLineMaxWidth) === 'number') ? lineFeed + .lastLineMaxWidth : + maxWidth; + + lineHeight = (lineFeed.lineHeight !== undefined && typeof(lineFeed.lineHeight) === 'number') ? lineFeed + .lineHeight : + lineHeight; + dx = (lineFeed.dx !== undefined && typeof(lineFeed.dx) === 'number') ? lineFeed.dx : dx; + } + _app.lineFeedTags.forEach(i => { + textItem.text = textItem.text.split(i).join(_app.tagetLineFeedTag); + }) + const chr = (textItem.text).split(""); + let temp = ""; + const row = []; + //循环出几行文字组成数组 + for (let a = 0, len = chr.length; a < len; a++) { + if (chr[a] === _app.tagetLineFeedTag) { + row.push(temp); + temp = chr[++a]; + continue; + } + if (countTextLength(Context, { + text: temp, + size: textItem.size + }) <= maxWidth && countTextLength(Context, { + text: (temp + chr[a]), + size: textItem.size + }) <= maxWidth) { + temp += chr[a]; + if (a == (chr.length - 1)) { + row.push(temp); + } + } else { + row.push(temp); + temp = chr[a]; + if (a == chr.length - 1) row.push(chr[a]); + } + } + _app.log('循环出的文本数组:' + JSON.stringify(row)); + //只显示几行 变量间距lineHeight 变量行数lineNum + let allNum = (lineNum >= 0 && lineNum < row.length) ? lineNum : row.length; + const newArr = []; + for (let i = 0; i < allNum; i++) { + let str = row[i]; + if (i == (allNum - 1) && allNum < row.length && row.length > 1) { + + const chr2 = (str).split(""); + let temp2 = ""; + //循环出几行文字组成数组 + for (let a = 0, len = chr2.length; a < len; a++) { + if (countTextLength(Context, { + text: temp2, + size: textItem.size + }) <= lastLineMaxWidth && countTextLength(Context, { + text: (temp2 + chr2[a]), + size: textItem.size + }) <= lastLineMaxWidth) { + temp2 += chr2[a]; + } + } + str = temp2; + if (countTextLength(Context, { + text: str, + size: textItem.size + }) > (lastLineMaxWidth - textItem.size) * .9) { + str = str.substring(0, str.length - 1) + '...'; + } + } + const obj = { + ...textItem, + text: str, + dx: i === 0 ? textItem.dx : (dx >= 0 ? dx : textItem.dx), + dy: textItem.dy + (i * lineHeight), + textLength: countTextLength(Context, { + text: str, + size: textItem.size + }) + }; + _app.log('重新组成的文本对象:' + JSON.stringify(obj)); + newArr.push(obj); + } + _app.log('newArr: -----', JSON.stringify(newArr)) + const result = newArr.length > 1 ? newArr : newArr[0]; + return result + } + return textItem; +} + +function countTextLength(Context, obj) { + _app.log('计算文字长度, obj:' + JSON.stringify(obj)); + const { + text, + size + } = obj; + Context.setFontSize(size); + let textLength; + try { + textLength = Context.measureText(text); // 官方文档说 App端自定义组件编译模式暂时不可用measureText方法 + } catch (e) { + //TODO handle the exception + textLength = {}; + } + _app.log('measureText计算文字长度, textLength:' + JSON.stringify(textLength)); + textLength = textLength && textLength.width ? textLength.width : 0; + if (!textLength) { + let l = 0; + for (let j = 0; j < text.length; j++) { + let t = text.substr(j, 1); + const countL = countStrLength(t); + _app.log('计算文字宽度系数:' + countL); + l += countL; + } + _app.log('文字宽度总系数:' + l); + textLength = l * size; + } + return textLength; +} + +//计算字符长度系数 +function countStrLength(t) { + let l; + if (/a/.test(t)) { + l = 0.552734375 + } else if (/b/.test(t)) { + l = 0.638671875 + } else if (/c/.test(t)) { + l = 0.50146484375 + } else if (/d/.test(t)) { + l = 0.6396484375 + } else if (/e/.test(t)) { + l = 0.5673828125 + } else if (/f/.test(t)) { + l = 0.3466796875 + } else if (/g/.test(t)) { + l = 0.6396484375 + } else if (/h/.test(t)) { + l = 0.61572265625 + } else if (/i/.test(t)) { + l = 0.26611328125 + } else if (/j/.test(t)) { + l = 0.26708984375 + } else if (/k/.test(t)) { + l = 0.54443359375 + } else if (/l/.test(t)) { + l = 0.26611328125 + } else if (/m/.test(t)) { + l = 0.93701171875 + } else if (/n/.test(t)) { + l = 0.6162109375 + } else if (/o/.test(t)) { + l = 0.6357421875 + } else if (/p/.test(t)) { + l = 0.638671875 + } else if (/q/.test(t)) { + l = 0.6396484375 + } else if (/r/.test(t)) { + l = 0.3818359375 + } else if (/s/.test(t)) { + l = 0.462890625 + } else if (/t/.test(t)) { + l = 0.37255859375 + } else if (/u/.test(t)) { + l = 0.6162109375 + } else if (/v/.test(t)) { + l = 0.52490234375 + } else if (/w/.test(t)) { + l = 0.78955078125 + } else if (/x/.test(t)) { + l = 0.5068359375 + } else if (/y/.test(t)) { + l = 0.529296875 + } else if (/z/.test(t)) { + l = 0.49169921875 + } else if (/A/.test(t)) { + l = 0.70361328125 + } else if (/B/.test(t)) { + l = 0.62744140625 + } else if (/C/.test(t)) { + l = 0.6689453125 + } else if (/D/.test(t)) { + l = 0.76171875 + } else if (/E/.test(t)) { + l = 0.5498046875 + } else if (/F/.test(t)) { + l = 0.53125 + } else if (/G/.test(t)) { + l = 0.74365234375 + } else if (/H/.test(t)) { + l = 0.7734375 + } else if (/I/.test(t)) { + l = 0.2939453125 + } else if (/J/.test(t)) { + l = 0.39599609375 + } else if (/K/.test(t)) { + l = 0.634765625 + } else if (/L/.test(t)) { + l = 0.51318359375 + } else if (/M/.test(t)) { + l = 0.97705078125 + } else if (/N/.test(t)) { + l = 0.81298828125 + } else if (/O/.test(t)) { + l = 0.81494140625 + } else if (/P/.test(t)) { + l = 0.61181640625 + } else if (/Q/.test(t)) { + l = 0.81494140625 + } else if (/R/.test(t)) { + l = 0.65283203125 + } else if (/S/.test(t)) { + l = 0.5771484375 + } else if (/T/.test(t)) { + l = 0.5732421875 + } else if (/U/.test(t)) { + l = 0.74658203125 + } else if (/V/.test(t)) { + l = 0.67626953125 + } else if (/W/.test(t)) { + l = 1.017578125 + } else if (/X/.test(t)) { + l = 0.64501953125 + } else if (/Y/.test(t)) { + l = 0.603515625 + } else if (/Z/.test(t)) { + l = 0.6201171875 + } else if (/[0-9]/.test(t)) { + l = 0.58642578125 + } else if (/[\u4e00-\u9fa5]/.test(t)) { + l = 1 + } else if (/ /.test(t)) { + l = 0.2958984375 + } else if (/\`/.test(t)) { + l = 0.294921875 + } else if (/\~/.test(t)) { + l = 0.74169921875 + } else if (/\!/.test(t)) { + l = 0.3125 + } else if (/\@/.test(t)) { + l = 1.03125 + } else if (/\#/.test(t)) { + l = 0.63818359375 + } else if (/\$/.test(t)) { + l = 0.58642578125 + } else if (/\%/.test(t)) { + l = 0.8896484375 + } else if (/\^/.test(t)) { + l = 0.74169921875 + } else if (/\&/.test(t)) { + l = 0.8701171875 + } else if (/\*/.test(t)) { + l = 0.455078125 + } else if (/\(/.test(t)) { + l = 0.333984375 + } else if (/\)/.test(t)) { + l = 0.333984375 + } else if (/\_/.test(t)) { + l = 0.4482421875 + } else if (/\-/.test(t)) { + l = 0.4326171875 + } else if (/\+/.test(t)) { + l = 0.74169921875 + } else if (/\=/.test(t)) { + l = 0.74169921875 + } else if (/\|/.test(t)) { + l = 0.26904296875 + } else if (/\\/.test(t)) { + l = 0.416015625 + } else if (/\[/.test(t)) { + l = 0.333984375 + } else if (/\]/.test(t)) { + l = 0.333984375 + } else if (/\;/.test(t)) { + l = 0.24072265625 + } else if (/\'/.test(t)) { + l = 0.25634765625 + } else if (/\,/.test(t)) { + l = 0.24072265625 + } else if (/\./.test(t)) { + l = 0.24072265625 + } else if (/\//.test(t)) { + l = 0.42724609375 + } else if (/\{/.test(t)) { + l = 0.333984375 + } else if (/\}/.test(t)) { + l = 0.333984375 + } else if (/\:/.test(t)) { + l = 0.24072265625 + } else if (/\"/.test(t)) { + l = 0.435546875 + } else if (/\/.test(t)) { + l = 0.74169921875 + } else if (/\?/.test(t)) { + l = 0.48291015625 + } else { + l = 1 + } + return l; +} + +// export +function setImage(images) { // 设置图片数据 + _app.log('进入设置图片数据方法'); + return new Promise(async (resolve, rejcet) => { + try { + if (images && _app.isArray(images)) { + _app.log('images是一个数组'); + for (let i = 0; i < images.length; i++) { + _app.log('设置图片数据循环中:' + i); + images[i] = await setImageFn(images[i]); + } + } else { + _app.log('images是一个对象'); + images = await setImageFn(images); + } + resolve(images); + } catch (e) { + //TODO handle the exception + rejcet(e); + } + }) +} + +function base64ToPathFn(path) { + var reg = + /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i; + if (!reg.test(path)) { + return Promise.resolve(path); + } + return base64ToPath(path); +} + +function setImageFn(image) { + return new Promise(async (resolve, reject) => { + if (image.url) { + image.url = (await base64ToPathFn(image.url)); + let imgUrl = image.url; + const oldImgUrl = imgUrl; + imgUrl = await _app.downloadFile_PromiseFc(imgUrl); + image.url = imgUrl; + const hasinfoCallBack = image.infoCallBack && typeof(image.infoCallBack) === 'function'; + let imageInfo = {}; + imageInfo = await _app.getImageInfo_PromiseFc(oldImgUrl); + if (hasinfoCallBack) { + image = { + ...image, + ...image.infoCallBack(imageInfo) + }; + } + image.dx = Number(image.dx) || 0; + image.dy = Number(image.dy) || 0; + image.dWidth = Number(image.dWidth || imageInfo.width); + image.dHeight = Number(image.dHeight || imageInfo.height); + image = { + ...image, + imageInfo + } + } + resolve(image); + }) +} + +// export +function drawText(Context, textArray, bgObj) { // 先遍历换行再绘制 + if (!_app.isArray(textArray)) { + _app.log('遍历文本方法, 不是数组'); + textArray = [textArray]; + } else { + _app.log('遍历文本方法, 是数组'); + } + _app.log('遍历文本方法, textArray:' + JSON.stringify(textArray)); + const newArr = textArray; + // if (textArray && textArray.length > 0) { + // for (let j = 0; j < textArray.length; j++) { + // const textItem = textArray[j]; + // if (textItem.text && textItem.lineFeed) { + // let lineNum = -1, + // maxWidth = bgObj.width, + // lineHeight = textItem.size, + // dx = textItem.dx; + // if (_app.isObject(textItem.lineFeed)) { + // const lineFeed = textItem.lineFeed; + // lineNum = (lineFeed.lineNum !== undefined && typeof(lineFeed.lineNum) === 'number') && lineFeed + // .lineNum >= 0 ? + // lineFeed.lineNum : lineNum; + // maxWidth = (lineFeed.maxWidth !== undefined && typeof(lineFeed.maxWidth) === 'number') ? lineFeed + // .maxWidth : + // maxWidth; + // lineHeight = (lineFeed.lineHeight !== undefined && typeof(lineFeed.lineHeight) === 'number') ? + // lineFeed.lineHeight : + // lineHeight; + // dx = (lineFeed.dx !== undefined && typeof(lineFeed.dx) === 'number') ? lineFeed.dx : dx; + // } + // const chr = (textItem.text).split(""); + // let temp = ""; + // const row = []; + // //循环出几行文字组成数组 + // for (let a = 0, len = chr.length; a < len; a++) { + // if (countTextLength(Context, { + // text: temp, + // size: textItem.size + // }) <= maxWidth && countTextLength(Context, { + // text: (temp + chr[a]), + // size: textItem.size + // }) <= maxWidth) { + // temp += chr[a]; + // if (a == (chr.length - 1)) { + // row.push(temp); + // } + // } else { + // row.push(temp); + // temp = chr[a]; + // if (a == chr.length - 1) row.push(chr[a]); + // } + // } + // _app.log('循环出的文本数组:' + JSON.stringify(row)); + // //只显示几行 变量间距lineHeight 变量行数lineNum + // let allNum = (lineNum >= 0 && lineNum < row.length) ? lineNum : row.length; + + // for (let i = 0; i < allNum; i++) { + // let str = row[i]; + // if (i == (allNum - 1) && allNum < row.length) { + // str = str.substring(0, str.length - 1) + '...'; + // } + // const obj = { + // ...textItem, + // text: str, + // dx: i === 0 ? textItem.dx : (dx >= 0 ? dx : textItem.dx), + // dy: textItem.dy + (i * lineHeight), + // textLength: countTextLength(Context, { + // text: str, + // size: textItem.size + // }) + // }; + // _app.log('重新组成的文本对象:' + JSON.stringify(obj)); + // newArr.push(obj); + // } + // } else { + // newArr.push(textItem); + // } + // } + // } + _app.log('绘制文本新数组:' + JSON.stringify(newArr)); + drawTexts(Context, newArr); +} + +function setFont(textItem = {}) { + if (textItem.font && typeof(textItem.font) === 'string') { + _app.log(textItem.font) + return textItem.font; + } else { + let fontStyle = 'normal'; + let fontVariant = 'normal'; + let fontWeight = 'normal'; + let fontSize = textItem.size || 10; + let fontFamily = 'sans-serif'; + fontSize = Math.ceil(Number(fontSize)); + if (textItem.fontStyle && typeof(textItem.fontStyle) === 'string') + fontStyle = textItem.fontStyle.trim(); + if (textItem.fontVariant && typeof(textItem.fontVariant) === 'string') + fontVariant = textItem.fontVariant.trim(); + if (textItem.fontWeight && (typeof(textItem.fontWeight) === 'string' || typeof(textItem.fontWeight) === + 'number')) + fontWeight = textItem.fontWeight.trim(); + if (textItem.fontFamily && typeof(textItem.fontFamily) === 'string') + fontFamily = textItem.fontFamily.trim(); + return fontStyle + ' ' + + fontVariant + ' ' + + fontWeight + ' ' + + fontSize + 'px' + ' ' + + fontFamily; + } +} + +function drawTexts(Context, texts) { // 绘制文本 + _app.log('准备绘制文本方法, texts:' + JSON.stringify(texts)); + if (texts && _app.isArray(texts)) { + _app.log('准备绘制文本方法, 是数组'); + if (texts.length > 0) { + for (let i = 0; i < texts.length; i++) { + drawTextFn(Context, texts[i]); + } + } + } else { + _app.log('准备绘制文本方法, 不是数组'); + drawTextFn(Context, texts); + } +} + +function drawTextFn(Context, textItem) { + _app.log('进入绘制文本方法, textItem:' + JSON.stringify(textItem)); + if (textItem && _app.isObject(textItem) && textItem.text) { + Context.font = setFont(textItem); + Context.setFillStyle(textItem.color); + Context.setGlobalAlpha(textItem.alpha); + Context.setTextAlign(textItem.textAlign); + Context.setTextBaseline(textItem.textBaseline); + Context.fillText(textItem.text, textItem.dx, textItem.dy); + if (textItem.lineThrough && _app.isObject(textItem.lineThrough)) { + _app.log('有删除线'); + let lineThrough = textItem.lineThrough; + lineThrough.alpha = lineThrough.alpha !== undefined ? lineThrough.alpha : textItem.alpha; + lineThrough.style = lineThrough.style || textItem.color; + lineThrough.width = lineThrough.width !== undefined ? lineThrough.width : textItem.size / 10; + lineThrough.cap = lineThrough.cap !== undefined ? lineThrough.cap : 'butt'; + _app.log('删除线对象:' + JSON.stringify(lineThrough)); + Context.setGlobalAlpha(lineThrough.alpha); + Context.setStrokeStyle(lineThrough.style); + Context.setLineWidth(lineThrough.width); + Context.setLineCap(lineThrough.cap); + let mx, my; + switch (textItem.textAlign) { + case 'left': + mx = textItem.dx; + break; + case 'center': + mx = textItem.dx - (textItem.textLength) / 2; + break; + default: + mx = textItem.dx - (textItem.textLength); + break; + } + switch (textItem.textBaseline) { + case 'top': + my = textItem.dy + (textItem.size * .5); + break; + case 'middle': + my = textItem.dy; + break; + default: + my = textItem.dy - (textItem.size * .5); + break; + } + Context.beginPath(); + Context.moveTo(mx, my); + Context.lineTo(mx + textItem.textLength, my); + Context.stroke(); + Context.closePath(); + _app.log('删除线完毕'); + } + Context.setGlobalAlpha(1); + Context.font = '10px sans-serif'; + } +} +// export +function drawImage(Context, images) { // 绘制图片 + _app.log('判断图片数据类型:' + JSON.stringify(images)) + if (images && _app.isArray(images)) { + if (images.length > 0) { + for (let i = 0; i < images.length; i++) { + readyDrawImageFn(Context, images[i]); + } + } + } else { + readyDrawImageFn(Context, images); + } + +} + +function readyDrawImageFn(Context, img) { + _app.log('判断绘制图片形状, img:' + JSON.stringify(img)); + if (img.url) { + if (img.circleSet) { + drawCircleImage(Context, img); + } else if (img.roundRectSet) { + drawRoundRectImage(Context, img); + } else { + drawImageFn(Context, img); + } + } +} + +const drawImageModes = { + scaleToFill(Context, img) { + _app.log('准备绘制mode为scaleToFill的图片') + Context.drawImage(img.url, Number(img.dx || 0), Number(img.dy || 0), + Number(img.dWidth) || false, Number(img.dHeight) || false); + _app.log('mode为scaleToFill的图片绘制完毕') + }, + aspectFit(Context, img) { + _app.log('准备绘制mode为aspectFit的图片') + const { + imageInfo, + dWidth, + dHeight + } = img; + const { + height, + width + } = imageInfo; + let drawWidth = dWidth; + let drawHeight = height / width * drawWidth; + if (drawHeight < dHeight) { + const diffHeight = (Number(dHeight) - Number(drawHeight)) / Number(dHeight) * height; + img.dy = Number(img.dy) + diffHeight / 2; + } else { + drawHeight = dHeight; + drawWidth = width / height * drawHeight; + const diffWidth = (Number(dWidth) - Number(drawWidth)) / Number(dWidth) * width; + img.dx = Number(img.dx) + diffWidth / 2; + } + Context.drawImage(img.url, 0, 0, width, height, img.dx, img.dy, drawWidth, drawHeight); + _app.log('mode为aspectFit的图片绘制完毕') + }, + aspectFill(Context, img) { + const dpr = uni.getSystemInfoSync().pixelRatio; + _app.log('准备绘制mode为aspectFill的图片') + const { + imageInfo, + dWidth, + dHeight + } = img; + const { + height, + width + } = imageInfo; + let sx = 0, + sy = 0, + sWidth = (width), + sHeight = (height); + let drawWidth = dWidth; + let drawHeight = height / width * drawWidth; + if (drawHeight < dHeight) { + _app.log('绘制高度 小于 预定高度') + drawHeight = dHeight; + drawWidth = width / height * drawHeight; + const diffWidth = ((Number(drawWidth) - Number(dWidth)) / Number(drawWidth)) * width; + sx = diffWidth / 2; + sWidth = width - diffWidth; + } else { + const diffHeight = ((Number(drawHeight) - Number(dHeight)) / Number(drawHeight)) * height; + sy = diffHeight / 2; + sHeight = (height - diffHeight); + } + _app.log( + `aspectFill 最终绘制: sx: ${sx}, sy: ${sy}, sWidth: ${sWidth}, sHeight: ${sHeight}, dx: ${img.dx}, dy: ${img.dy}, dWidth: ${dWidth}, dHeight: ${dHeight}` + ) + Context.drawImage(img.url, sx, sy, sWidth, sHeight, img.dx, img.dy, dWidth, dHeight); + _app.log('mode为aspectFill的图片绘制完毕') + } +} + +function drawImageFn(Context, img) { + _app.log('进入绘制默认图片方法, img:' + JSON.stringify(img)); + if (img.url) { + const hasAlpha = !_app.isUndef(img.alpha); + img.alpha = Number(!_app.isUndef(img.alpha) ? img.alpha : 1); + Context.setGlobalAlpha(img.alpha); + _app.log('绘制默认图片方法, 有url'); + if (img.dHeight === undefined) img.dHeight = img.imageInfo.height; + if (img.dWidth === undefined) img.dWidth = img.imageInfo.width; + const fn = drawImageModes[img.mode]; + if (fn) { + fn(Context, img); + } else { + if (img.dWidth && img.dHeight && img.sx && img.sy && img.sWidth && img.sHeight) { + _app.log('绘制默认图片方法, 绘制第一种方案'); + Context.drawImage(img.url, + Number(img.sx) || false, Number(img.sy) || false, + Number(img.sWidth) || false, Number(img.sHeight) || false, + Number(img.dx || 0), Number(img.dy || 0), + Number(img.dWidth) || false, Number(img.dHeight) || false, ); + } else if (img.dWidth && img.dHeight) { + _app.log('绘制默认图片方法, 绘制第二种方案'); + Context.drawImage(img.url, Number(img.dx || 0), Number(img.dy || 0), + Number(img.dWidth) || false, Number(img.dHeight) || false); + } else { + _app.log('绘制默认图片方法, 绘制第三种方案'); + Context.drawImage(img.url, Number(img.dx || 0), Number(img.dy || 0)); + } + } + if (hasAlpha) { + Context.setGlobalAlpha(1); + } + } + _app.log('绘制默认图片方法, 绘制完毕'); +} + +function drawCircleImage(Context, obj) { + _app.log('进入绘制圆形图片方法, obj:' + JSON.stringify(obj)); + let { + dx, + dy, + dWidth, + dHeight, + circleSet, + imageInfo + } = obj; + let x, y, r; + if (typeof circleSet === 'object') { + x = circleSet.x; + y = circleSet.y; + r = circleSet.r; + } + if (!r) { + let d; + d = dWidth > dHeight ? dHeight : dWidth; + r = d / 2; + } + + x = x ? dx + x : (dx || 0) + r; + y = y ? dy + y : (dy || 0) + r; + Context.save(); + Context.beginPath(); + Context.arc(x, y, r, 0, 2 * Math.PI, false); + Context.closePath(); + Context.setGlobalAlpha(0); + Context.fillStyle = '#FFFFFF'; + Context.fill(); + Context.setGlobalAlpha(1); + Context.clip(); + drawImageFn(Context, obj); + _app.log('默认图片绘制完毕'); + Context.restore(); +} + +function drawRoundRectImage(Context, obj) { // 绘制矩形 + _app.log('进入绘制矩形图片方法, obj:' + JSON.stringify(obj)); + Context.save(); + let { + dx, + dy, + dWidth, + dHeight, + roundRectSet, + imageInfo + } = obj; + let r; + if (typeof roundRectSet === 'object') { + r = roundRectSet.r; + } + r = r || dWidth * .1; + + if (dWidth < 2 * r) { + r = dWidth / 2; + } + if (dHeight < 2 * r) { + r = dHeight / 2; + } + Context.beginPath(); + + // Context.moveTo(dx + r, dy); + Context.arc(dx + r, dy + r, r, 1 * Math.PI, 1.5 * Math.PI); + Context.lineTo(dx + dWidth - r, dy); + Context.arc(dx + dWidth - r, dy + r, r, 1.5 * Math.PI, 0); + Context.lineTo(dx + dWidth, dy + dHeight - r); + Context.arc(dx + dWidth - r, dy + dHeight - r, r, 0, .5 * Math.PI); + Context.lineTo(dx + r, dy + dHeight); + Context.arc(dx + r, dy + dHeight - r, r, .5 * Math.PI, 1 * Math.PI); + Context.lineTo(dx, dy + r); + + // Context.arcTo(dx + dWidth, dy, dx + dWidth, dy + dHeight, r); + // Context.arcTo(dx + dWidth, dy + dHeight, dx, dy + dHeight, r); + // Context.arcTo(dx, dy + dHeight, dx, dy, r); + // Context.arcTo(dx, dy, dx + dWidth, dy, r); + Context.closePath(); + Context.setGlobalAlpha(0); + Context.fillStyle = '#FFFFFF'; + Context.fill(); + Context.setGlobalAlpha(1); + Context.clip(); + drawImageFn(Context, obj); + Context.restore(); + _app.log('进入绘制矩形图片方法, 绘制完毕'); +} + +// export +function drawQrCode(Context, qrCodeObj) { //生成二维码方法, 参考了 诗小柒 的二维码生成器代码 + _app.log('进入绘制二维码方法') + _app.showLoading('正在生成二维码'); + let qrcodeAlgObjCache = []; + let options = { + text: String(qrCodeObj.text || '') || '', // 生成内容 + size: Number(qrCodeObj.size || 0) || 200, // 二维码大小 + background: String(qrCodeObj.background || '') || '#ffffff', // 背景色 + foreground: String(qrCodeObj.foreground || '') || '#000000', // 前景色 + pdground: String(qrCodeObj.pdground || '') || '#000000', // 定位角点颜色 + correctLevel: Number(qrCodeObj.correctLevel || 0) || 3, // 容错级别 + image: String(qrCodeObj.image || '') || '', // 二维码图标 + imageSize: Number(qrCodeObj.imageSize || 0) || 40, // 二维码图标大小 + dx: Number(qrCodeObj.dx || 0) || 0, // x轴距离 + dy: Number(qrCodeObj.dy || 0) || 0 // y轴距离 + } + let qrCodeAlg = null; + let d = 0; + for (var i = 0, l = qrcodeAlgObjCache.length; i < l; i++) { + d = i; + if (qrcodeAlgObjCache[i].text == options.text && qrcodeAlgObjCache[i].text.correctLevel == options + .correctLevel) { + qrCodeAlg = qrcodeAlgObjCache[i].obj; + break; + } + } + if (d == l) { + qrCodeAlg = new QRCodeAlg(options.text, options.correctLevel); + qrcodeAlgObjCache.push({ + text: options.text, + correctLevel: options.correctLevel, + obj: qrCodeAlg + }); + } + let getForeGround = function(config) { + let options = config.options; + if (options.pdground && ( + (config.row > 1 && config.row < 5 && config.col > 1 && config.col < 5) || + (config.row > (config.count - 6) && config.row < (config.count - 2) && config.col > 1 && config + .col < 5) || + (config.row > 1 && config.row < 5 && config.col > (config.count - 6) && config.col < (config.count - + 2)) + )) { + return options.pdground; + } + return options.foreground; + } + let count = qrCodeAlg.getModuleCount(); + let ratioSize = options.size; + let ratioImgSize = options.imageSize; + //计算每个点的长宽 + let tileW = (ratioSize / count).toPrecision(4); + let tileH = (ratioSize / count).toPrecision(4); + //绘制 + for (let row = 0; row < count; row++) { + for (let col = 0; col < count; col++) { + let w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW)); + let h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW)); + let foreground = getForeGround({ + row: row, + col: col, + count: count, + options: options + }); + Context.setFillStyle(qrCodeAlg.modules[row][col] ? foreground : options.background); + Context.fillRect(options.dx + Math.round(col * tileW), options.dy + Math.round(row * tileH), w, h); + } + } + if (options.image) { + let x = options.dx + Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); + let y = options.dy + Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); + drawRoundedRect(Context, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true) + Context.drawImage(options.image, x, y, ratioImgSize, ratioImgSize); + // 画圆角矩形 + function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) { + ctxi.setLineWidth(lineWidth); + ctxi.setFillStyle(options.background); + ctxi.setStrokeStyle(options.background); + ctxi.beginPath(); // draw top and top right corner + ctxi.moveTo(x + r, y); + ctxi.arcTo(x + width, y, x + width, y + r, r); // draw right side and bottom right corner + ctxi.arcTo(x + width, y + height, x + width - r, y + height, r); // draw bottom and bottom left corner + ctxi.arcTo(x, y + height, x, y + height - r, r); // draw left and top left corner + ctxi.arcTo(x, y, x + r, y, r); + ctxi.closePath(); + if (fill) { + ctxi.fill(); + } + if (stroke) { + ctxi.stroke(); + } + } + } + _app.log('进入绘制二维码方法完毕') + _app.hideLoading(); +} + + +function getShreUserPosterBackground(objs) { //检查背景图是否存在于本地, 若存在直接返回, 否则调用getShreUserPosterBackgroundFc方法 + let { + backgroundImage, + type + } = objs; + return new Promise(async (resolve, reject) => { + try { + _app.showLoading('正在获取海报背景图'); + const savedFilePath = await getShreUserPosterBackgroundFc(objs) + _app.hideLoading(); + resolve(savedFilePath); + } catch (e) { + _app.hideLoading(); + _app.showToast('获取分享用户背景图失败:' + JSON.stringify(e)); + _app.log(JSON.stringify(e)); + reject(e); + } + }) +} + +function getPosterStorage(type) { + return _app.getStorageSync(getStorageKey(type)); +} + +function removePosterStorage(type) { + const ShreUserPosterBackgroundKey = getStorageKey(type); + const pbg = _app.getStorageSync(ShreUserPosterBackgroundKey); + if (pbg && pbg.path) { + _app.removeStorageSync(ShreUserPosterBackgroundKey); + } +} + +function setPosterStorage(type, data) { + _app.setStorage(getStorageKey(type), data); +} + +function getStorageKey(type) { + return ShreUserPosterBackgroundKey + (type || 'default'); +} + +function getShreUserPosterBackgroundFc(objs, upimage) { //下载并保存背景图方法 + let { + backgroundImage, + type + } = objs; + _app.log('获取分享背景图, 尝试清空本地数据'); + return new Promise(async (resolve, reject) => { + try { + _app.showLoading('正在下载海报背景图'); + _app.log('没有从后端获取的背景图片路径, 尝试从后端获取背景图片路径'); + let image = backgroundImage ? backgroundImage : (await _app.getPosterUrl(objs)); + image = (await base64ToPathFn(image)); + _app.log('尝试下载并保存背景图:' + image); + const savedFilePath = await _app.downLoadAndSaveFile_PromiseFc(image); + if (savedFilePath) { + _app.log('下载并保存背景图成功:' + savedFilePath); + const imageObj = await _app.getImageInfo_PromiseFc(image); + _app.log('获取图片信息成功'); + const returnObj = { + path: savedFilePath, + width: imageObj.width, + height: imageObj.height, + name: _app.fileNameInPath(image) + } + _app.log('拼接背景图信息对象成功:' + JSON.stringify(returnObj)); + + // #ifndef H5 + setPosterStorage(type, { + ...returnObj + }); + // #endif + + _app.hideLoading(); + _app.log('返回背景图信息对象'); + resolve({ + ...returnObj + }); + } else { + _app.hideLoading(); + reject('not find savedFilePath'); + } + } catch (e) { + //TODO handle the exception + reject(e); + } + }); +} + + +module.exports = { + getSharePoster, + setText, + setImage, + drawText, + drawImage, + drawQrCode, + drawFillRect, + drawStrokeRect, + drawRoundStrokeRect, + drawRoundFillRect +} diff --git a/src/components/QS-SharePoster/app.js b/src/components/QS-SharePoster/app.js new file mode 100644 index 0000000..c7ebd7d --- /dev/null +++ b/src/components/QS-SharePoster/app.js @@ -0,0 +1,565 @@ +let log = console.log; // 如果在项目的APP.vue文件中的onlaunch中设置 console.log = ()=> {} 则在此也不会有打印信息 +// log = ()=>{}; // 打开注释则该插件不会打印任何信息 +let _app = { + lineFeedTags: ['
', '
', '\r\n', '\n\t', '\r', '\n'], //换行符识别列表 + tagetLineFeedTag: `❤`, //将lineFeedTags列表中的字符串替换为该字符, 代表换行符, 只要找一个特殊符号就行,必须是单字符单字符单字符! + //交互控制 + log(t) { + log(t); + }, // 打印控制, + showLoading(msg, ifmask) { + // uni.showLoading({ + // title: msg, + // mask: ifmask || false + // }) + }, + hideLoading() { + // uni.hideLoading(); + }, + showToast(msg, icon) { + // uni.showToast({ + // title: msg, + // icon: icon || 'none' + // }) + }, + getPosterUrl(objs) { // 后端获取背景图的url路径方法 + let { + backgroundImage, + type, + formData + } = objs; + return new Promise((rs, rj) => { + let image; + if (backgroundImage) { + image = backgroundImage; + }else{ + switch (type) { //根据type获取背景图, 一般要改成request获取 + case 1: + image = ''; + break; + default: + image = '/static/1.png'; + break; + } + } + if (image) { + rs(image); // resolve图片的路径 + }else{ + rj('背景图片路径不存在'); + } + }) + }, + + + + + + + //下面一般不用动他 + shareTypeListSheetArray: { + array: [0, 1, 2, 3, 4, 5] + }, // 分享类型 0-图文链接 1-纯文字 2-纯图片 3-音乐 4-视频 5-小程序 + isArray(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; + }, + isObject(arg) { + return Object.prototype.toString.call(arg) === '[object Object]'; + }, + isPromise(obj) { + return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; + }, + isNull(arg) { + return arg === null; + }, + isUndefined(arg) { + return arg === undefined; + }, + isUndef(arg) { + return arg === undefined; + }, + isNotNull_string(arg) { + return arg !== null && arg !== undefined && arg !== ''; + }, + isFn(fn) { + return fn && typeof fn === 'function'; + }, + getStorage(key, scb, fcb) { + uni.getStorage({ + key, + success: function(res) { + if (res.data && res.data != "") { + if (scb) scb(res.data); + } else { + if (fcb) fcb(); + } + }, + fail: function() { + if (fcb) fcb(); + } + }) + }, + setStorage(key, data) { + log('设置缓存') + log('key:' + key) + log('data:' + JSON.stringify(data)); + uni.setStorage({ + key, + data + }) + }, + setStorageSync(key, data) { + uni.setStorageSync(key, data); + }, + getStorageSync(key) { + return uni.getStorageSync(key); + }, + clearStorageSync() { + uni.clearStorageSync(); + }, + removeStorageSync(key) { + uni.removeStorageSync(key); + }, + getImageInfo(url, cb, fcb) { + url = checkMPUrl(url); + uni.getImageInfo({ + src: url, + success(res) { + if (cb && typeof(cb) == 'function') cb(res); + }, + fail(err) { + if (fcb && typeof(fcb) == 'function') fcb(err); + } + }) + }, + downloadFile(url, cb) { + url = checkMPUrl(url); + uni.downloadFile({ + url, + success(res) { + if (cb && typeof(cb) == 'function') cb(res); + } + }) + }, + downloadFile_PromiseFc(url) { + return new Promise((rs, rj) => { + if (url.substring(0, 4) !== 'http') { + rs(url); + }else { + url = checkMPUrl(url); + log('url:' + url); + + uni.downloadFile({ + url, + success(res) { + if (res && res.tempFilePath) + rs(res.tempFilePath); + else + rj('not find tempFilePath'); + }, + fail(err) { + log(err) + rj(err); + } + }) + } + }); + }, + saveFile(url) { + uni.saveFile({ + tempFilePath: url, + success(res) { + log('保存成功:' + JSON.stringify(res)) + } + }) + }, + downLoadAndSaveFile_PromiseFc(url) { + return new Promise((rs, rj) => { + log('准备下载并保存图片:' + url); + if (url.substring(0, 4) === 'http') { + url = checkMPUrl(url); + uni.downloadFile({ + url, + success(d_res) { + log('下载背景图成功:' + JSON.stringify(d_res)); + if (d_res && d_res.tempFilePath) { + + // #ifdef H5 + rs(d_res.tempFilePath); + // #endif + + // #ifndef H5 + uni.saveFile({ + tempFilePath: d_res.tempFilePath, + success(s_res) { + log('保存背景图成功:' + JSON.stringify(s_res)); + if (s_res && s_res.savedFilePath) + rs(s_res.savedFilePath); + else + rs(d_res.tempFilePath); + }, + fail(err) { + rs(d_res.tempFilePath); + } + }) + // #endif + + } else { + rj('not find tempFilePath'); + } + }, + fail(err) { + rj(err); + } + }) + }else{ + rs(url); + } + }) + }, + checkFile_PromiseFc(url) { + return new Promise((rs, rj) => { + uni.getSavedFileList({ + success(res) { + let d = res.fileList; + let index = d.findIndex(item => { + return item.filePath === url; + }) + rs(index); + }, + fail(err) { + rj(err); + } + }) + }); + }, + removeSavedFile(path) { + uni.getSavedFileList({ + success(res) { + let d = res.fileList; + let index = d.findIndex(item => { + return item.filePath === path; + }); + if (index >= 0) + uni.removeSavedFile({ + filePath: path + }) + } + }) + }, + fileNameInPath(path) { + let s = path.split("/"); + return s[s.length - 1]; + }, + getImageInfo_PromiseFc(imgPath) { + return new Promise((rs, rj) => { + log('准备获取图片信息:' + imgPath); + imgPath = checkMPUrl(imgPath); + uni.getImageInfo({ + src: imgPath, + success: res => { + log('获取图片信息成功:' + JSON.stringify(res)); + rs(res); + }, + fail: err => { + log('获取图片信息失败:' + JSON.stringify(err)); + rj(err) + } + }) + }); + }, + previewImage(urls) { + if (typeof(urls) == 'string') + urls = [urls]; + uni.previewImage({ + urls, + }) + }, + actionSheet(obj, cb) { + let sheetArray = []; + for (let i = 0; i < obj.array.length; i++) { + switch (obj.array[i]) { + case 'sinaweibo': + sheetArray[i] = '新浪微博'; + break; + case 'qq': + sheetArray[i] = 'QQ'; + break; + case 'weixin': + sheetArray[i] = '微信'; + break; + case 'WXSceneSession': + sheetArray[i] = '微信好友'; + break; + case 'WXSenceTimeline': + sheetArray[i] = '微信朋友圈'; + break; + case 'WXSceneFavorite': + sheetArray[i] = '微信收藏'; + break; + case 0: + sheetArray[i] = '图文链接'; + break; + case 1: + sheetArray[i] = '纯文字'; + break; + case 2: + sheetArray[i] = '纯图片'; + break; + case 3: + sheetArray[i] = '音乐'; + break; + case 4: + sheetArray[i] = '视频'; + break; + case 5: + sheetArray[i] = '小程序'; + break; + default: + break; + } + } + this.showActionSheet(sheetArray, cb); + }, + showActionSheet(sheetArray, cb) { + uni.showActionSheet({ + itemList: sheetArray, + success: (e) => { + if (cb && typeof(cb) == 'function') cb(e.tapIndex); + } + }) + }, + getProvider(type, cb, sheet) { + let _this = this; + uni.getProvider({ + service: type, + success: function(res) { + if (sheet) { + let obj = {}; + obj.array = res.provider; + _this.actionSheet(obj, function(index) { + if (cb && typeof(cb) == "function") cb(res.provider[index]); + }); + } else { + if (type == 'payment') { + let providers = res.provider; + let payTypeArray = []; + for (let i = 0; i < providers.length; i++) { + if (providers[i] == 'wxpay') { + payTypeArray[i] = { + name: '微信支付', + value: providers[i], + img: '/static/image/wei.png' + }; + } else if (providers[i] == 'alipay') { + payTypeArray[i] = { + name: "支付宝支付", + value: providers[i], + img: '/static/image/ali.png' + }; + } + } + if (cb && typeof(cb) == "function") cb(payTypeArray); + } else { + if (cb && typeof(cb) == "function") cb(res); + } + } + }, + }) + }, + // #ifdef APP-PLUS + getShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb) { //miniProgram: {path: '', type: 0, webUrl: ''} + let _this = this; + if (typeof(shareType) == 'number' && !isNaN(shareType) && shareType >= 0) { + _this.readyShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, + fcb); + } else { + _this.actionSheet(_this.shareTypeListSheetArray, function(index) { + _this.readyShare(providerName, WXScene, _this.shareTypeListSheetArray.array[index], title, summary, href, + imageUrl, miniProgramObj, mediaUrl, scb, fcb); + }); + } + }, + readyShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb) { + let _this = this; + let shareObjData = {}; + switch (shareType) { + case 0: + shareObjData = { + href: href, + summary: summary, + imageUrl: imageUrl + }; + break; + case 1: + shareObjData = { + summary: summary, + href: href + }; + break; + case 2: + shareObjData = { + imageUrl: imageUrl + }; + break; + case 3: + if (mediaUrl) { + _this.showToast('暂不支持此分享类型'); + return; + }; + shareObjData = { + mediaUrl: mediaUrl + }; + break; + case 4: + if (mediaUrl) { + _this.showToast('暂不支持此分享类型'); + return; + }; + shareObjData = { + mediaUrl: mediaUrl + }; + break; + case 5: + shareObjData = { + miniProgram: { ...miniProgramObj, + id: miniProgramId, + type: miniProgramShareType + }, + imageUrl: imageUrl + }; + providerName = 'weixin'; + break; + default: + _this.showToast('分享参数-shareType错误'); + return; + break; + } + shareObjData.title = title; + _this.share(providerName, WXScene, shareType, shareObjData, function(res) { + if (scb && typeof(scb) == 'function') scb(res); + }, function(err) { + if (fcb && typeof(fcb) == 'function') fcb(err); + }); + }, + share(providerName, WXScene, shareType, data, scb, fcb) { + let _this = this; + let shareObj = { + provider: '', + success: Function, + fail: Function + }; + if (providerName && providerName != '') { + shareObj.provider = providerName; + if (providerName == 'weixin') { + _this.readyShareWXScene(WXScene, function(Scene) { + shareObj.scene = Scene; + _this.doingShare(shareObj, shareType, data, scb, fcb); + }); + } else { + _this.doingShare(shareObj, shareType, data, scb, fcb); + } + } else { + _this.getProvider('share', function(name) { + shareObj.provider = name; + if (name == 'weixin') { + _this.readyShareWXScene(WXScene, function(Scene) { + shareObj.scene = Scene; + _this.doingShare(shareObj, shareType, data, scb, fcb); + }); + } else { + _this.doingShare(shareObj, shareType, data, scb, fcb); + } + }, true); + } + }, + readyShareWXScene(WXScene, cb) { + let _this = this; + let WXScenetypelist = { + array: ['WXSceneSession', 'WXSenceTimeline', 'WXSceneFavorite'] + }; + if (WXScene && WXScene != "") { + if (cb && typeof(cb) == 'function') cb(WXScene); + } else { + _this.actionSheet(WXScenetypelist, function(index) { + if (cb && typeof(cb) == 'function') cb(WXScenetypelist.array[index]); + }); + } + }, + doingShare(shareObj, shareType, data, scb, fcb) { + shareObj.type = shareType; + if (data && data.title) shareObj.title = data.title; + switch (shareType) { + case 0: //图文链接 + shareObj.href = data.href; + shareObj.summary = data.summary; + shareObj.imageUrl = data.imageUrl; + break; + case 1: //纯文字 + shareObj.summary = data.summary; + shareObj.href = data.href; + break; + case 2: //纯图片 + shareObj.imageUrl = data.imageUrl; + break; + case 3: //音乐 + if (!data.mediaUrl) { + _this.showToast('暂不支持此分享类型'); + return; + }; + shareObj.mediaUrl = data.mediaUrl; + break; + case 4: //视频 + if (!data.mediaUrl) { + _this.showToast('暂不支持此分享类型'); + return; + }; + shareObj.mediaUrl = data.mediaUrl; + break; + case 5: //小程序 + if (miniProgramId == '') { + uni.showToast('未设置小程序ID, 请使用其他方式分享'); + return; + } + let mp = { + id: miniProgramId + }; + mp.path = data.miniProgram.path; + mp.type = data.miniProgram.type; + if (data.miniProgram.webUrl) mp.webUrl = data.miniProgram.webUrl; + shareObj.miniProgram = mp; + shareObj.imageUrl = data.imageUrl; + break; + default: + appJS.showToast('分享参数-shareType错误'); + break; + } + shareObj.success = function(res) { + if (scb && typeof(scb) == 'function') scb(res); + } + shareObj.fail = function(err) { + if (fcb && typeof(fcb) == 'function') fcb(err); + } + log(JSON.stringify(shareObj)); + uni.share(shareObj); + }, + // #endif +} + +function checkMPUrl(url) { + // #ifdef MP + // if(process.env.NODE_ENV !== 'development'){ + // if( + // url.substring(0, 4) === 'http' && + // url.substring(0, 5) !== 'https' && + // url.substring(0, 12) !== 'http://store' && + // url.substring(0, 10) !== 'http://tmp' && + // url.substring(0, 10) !== 'http://usr' + // ) { + // url = 'https' + url.substring(4, url.length); + // } + // } + // #endif + return url; +} + +module.exports = _app; diff --git a/src/components/QS-SharePoster/image-tools.js b/src/components/QS-SharePoster/image-tools.js new file mode 100644 index 0000000..b5f2a3c --- /dev/null +++ b/src/components/QS-SharePoster/image-tools.js @@ -0,0 +1,147 @@ +function getLocalFilePath(path) { + if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) { + return path + } + if (path.indexOf('file://') === 0) { + return path + } + if (path.indexOf('/storage/emulated/0/') === 0) { + return path + } + if (path.indexOf('/') === 0) { + var localFilePath = plus.io.convertAbsoluteFileSystem(path) + if (localFilePath !== path) { + return localFilePath + } else { + path = path.substr(1) + } + } + return '_www/' + path +} + +export function pathToBase64(path) { + return new Promise(function(resolve, reject) { + if (typeof window === 'object' && 'document' in window) { + if (typeof FileReader === 'function') { + var xhr = new XMLHttpRequest() + xhr.open('GET', path, true) + xhr.responseType = 'blob' + xhr.onload = function() { + if (this.status === 200) { + let fileReader = new FileReader() + fileReader.onload = function(e) { + resolve(e.target.result) + } + fileReader.onerror = reject + fileReader.readAsDataURL(this.response) + } + } + xhr.onerror = reject + xhr.send() + return + } + var canvas = document.createElement('canvas') + var c2x = canvas.getContext('2d') + var img = new Image + img.onload = function() { + canvas.width = img.width + canvas.height = img.height + c2x.drawImage(img, 0, 0) + resolve(canvas.toDataURL()) + canvas.height = canvas.width = 0 + } + img.onerror = reject + img.src = path + return + } + if (typeof plus === 'object') { + plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) { + entry.file(function(file) { + var fileReader = new plus.io.FileReader() + fileReader.onload = function(data) { + resolve(data.target.result) + } + fileReader.onerror = function(error) { + reject(error) + } + fileReader.readAsDataURL(file) + }, function(error) { + reject(error) + }) + }, function(error) { + reject(error) + }) + return + } + if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { + wx.getFileSystemManager().readFile({ + filePath: path, + encoding: 'base64', + success: function(res) { + resolve('data:image/png;base64,' + res.data) + }, + fail: function(error) { + reject(error) + } + }) + return + } + reject(new Error('not support')) + }) +} + +export function base64ToPath(base64) { + return new Promise(function(resolve, reject) { + if (typeof window === 'object' && 'document' in window) { + base64 = base64.split(',') + var type = base64[0].match(/:(.*?);/)[1] + var str = atob(base64[1]) + var n = str.length + var array = new Uint8Array(n) + while (n--) { + array[n] = str.charCodeAt(n) + } + return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { type: type }))) + } + var extName = base64.match(/data\:\S+\/(\S+);/) + if (extName) { + extName = extName[1] + } else { + reject(new Error('base64 error')) + } + var fileName = Date.now() + '.' + extName + if (typeof plus === 'object') { + var bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now()) + bitmap.loadBase64Data(base64, function() { + var filePath = '_doc/uniapp_temp/' + fileName + bitmap.save(filePath, {}, function() { + bitmap.clear() + resolve(filePath) + }, function(error) { + bitmap.clear() + reject(error) + }) + }, function(error) { + bitmap.clear() + reject(error) + }) + return + } + if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { + var filePath = wx.env.USER_DATA_PATH + '/' + fileName + wx.getFileSystemManager().writeFile({ + filePath: filePath, + data: base64.replace(/^data:\S+\/\S+;base64,/, ''), + encoding: 'base64', + success: function() { + resolve(filePath) + }, + fail: function(error) { + reject(error) + } + }) + return + } + reject(new Error('not support')) + }) +} \ No newline at end of file diff --git a/src/components/comment/comment.vue b/src/components/comment/comment.vue new file mode 100644 index 0000000..c33da28 --- /dev/null +++ b/src/components/comment/comment.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/components/coupon-list/coupon-list.vue b/src/components/coupon-list/coupon-list.vue new file mode 100644 index 0000000..266d69c --- /dev/null +++ b/src/components/coupon-list/coupon-list.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/components/cu-avatar/cu-avatar.vue b/src/components/cu-avatar/cu-avatar.vue new file mode 100644 index 0000000..21b8df7 --- /dev/null +++ b/src/components/cu-avatar/cu-avatar.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/src/components/cu-form-item/cu-form-item.vue b/src/components/cu-form-item/cu-form-item.vue new file mode 100644 index 0000000..ee513d2 --- /dev/null +++ b/src/components/cu-form-item/cu-form-item.vue @@ -0,0 +1,437 @@ + + + + + diff --git a/src/components/cu-form/cu-form.vue b/src/components/cu-form/cu-form.vue new file mode 100644 index 0000000..da06337 --- /dev/null +++ b/src/components/cu-form/cu-form.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/src/components/cu-image/cu-image.vue b/src/components/cu-image/cu-image.vue new file mode 100644 index 0000000..10714ce --- /dev/null +++ b/src/components/cu-image/cu-image.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/components/cu-modal/cu-modal.vue b/src/components/cu-modal/cu-modal.vue new file mode 100644 index 0000000..c91f10f --- /dev/null +++ b/src/components/cu-modal/cu-modal.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/src/components/cu-navbar/cu-navbar.vue b/src/components/cu-navbar/cu-navbar.vue new file mode 100644 index 0000000..136303d --- /dev/null +++ b/src/components/cu-navbar/cu-navbar.vue @@ -0,0 +1,323 @@ + + + + + diff --git a/src/components/cu-popup/cu-popup.vue b/src/components/cu-popup/cu-popup.vue new file mode 100644 index 0000000..f00911e --- /dev/null +++ b/src/components/cu-popup/cu-popup.vue @@ -0,0 +1,456 @@ + + + + + diff --git a/src/components/cu-select/cu-select.vue b/src/components/cu-select/cu-select.vue new file mode 100644 index 0000000..768b37d --- /dev/null +++ b/src/components/cu-select/cu-select.vue @@ -0,0 +1,417 @@ + + + + + diff --git a/src/components/cu-steps/cu-steps.vue b/src/components/cu-steps/cu-steps.vue new file mode 100644 index 0000000..5f27707 --- /dev/null +++ b/src/components/cu-steps/cu-steps.vue @@ -0,0 +1,261 @@ + + + + + + diff --git a/src/components/cu-swiper/cu-swiper.vue b/src/components/cu-swiper/cu-swiper.vue new file mode 100644 index 0000000..c303594 --- /dev/null +++ b/src/components/cu-swiper/cu-swiper.vue @@ -0,0 +1,381 @@ + + + + + diff --git a/src/components/goods-item/goods-item.vue b/src/components/goods-item/goods-item.vue new file mode 100644 index 0000000..6630f13 --- /dev/null +++ b/src/components/goods-item/goods-item.vue @@ -0,0 +1,62 @@ + + + + diff --git a/src/components/goods-list/goods-list.vue b/src/components/goods-list/goods-list.vue new file mode 100644 index 0000000..47baaa8 --- /dev/null +++ b/src/components/goods-list/goods-list.vue @@ -0,0 +1,43 @@ + + diff --git a/src/components/j-video/j-video.vue b/src/components/j-video/j-video.vue new file mode 100644 index 0000000..9de7623 --- /dev/null +++ b/src/components/j-video/j-video.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/components/loading-view/loading-view.vue b/src/components/loading-view/loading-view.vue new file mode 100644 index 0000000..e71a6ef --- /dev/null +++ b/src/components/loading-view/loading-view.vue @@ -0,0 +1,52 @@ + + + + \ No newline at end of file diff --git a/src/components/nav-shadow/nav-shadow.vue b/src/components/nav-shadow/nav-shadow.vue new file mode 100644 index 0000000..26cdbca --- /dev/null +++ b/src/components/nav-shadow/nav-shadow.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/components/password-popup/password-popup.vue b/src/components/password-popup/password-popup.vue new file mode 100644 index 0000000..2b1b821 --- /dev/null +++ b/src/components/password-popup/password-popup.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/components/price-format/price-format.vue b/src/components/price-format/price-format.vue new file mode 100644 index 0000000..9c67ce6 --- /dev/null +++ b/src/components/price-format/price-format.vue @@ -0,0 +1,82 @@ + + + + \ No newline at end of file diff --git a/src/components/product-swiper/product-swiper.vue b/src/components/product-swiper/product-swiper.vue new file mode 100644 index 0000000..f29c375 --- /dev/null +++ b/src/components/product-swiper/product-swiper.vue @@ -0,0 +1,136 @@ + + + + diff --git a/src/components/safe-view/safe-view.vue b/src/components/safe-view/safe-view.vue new file mode 100644 index 0000000..3b7f366 --- /dev/null +++ b/src/components/safe-view/safe-view.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/components/sms-input/sms-input.vue b/src/components/sms-input/sms-input.vue new file mode 100644 index 0000000..c6a0356 --- /dev/null +++ b/src/components/sms-input/sms-input.vue @@ -0,0 +1,78 @@ + + diff --git a/src/components/spec-popup/spec-popup.vue b/src/components/spec-popup/spec-popup.vue new file mode 100644 index 0000000..1806a36 --- /dev/null +++ b/src/components/spec-popup/spec-popup.vue @@ -0,0 +1,195 @@ + + + diff --git a/src/components/trigonometry/trigonometry.vue b/src/components/trigonometry/trigonometry.vue new file mode 100644 index 0000000..5242112 --- /dev/null +++ b/src/components/trigonometry/trigonometry.vue @@ -0,0 +1,55 @@ + + + + \ No newline at end of file diff --git a/src/components/upload/upload.vue b/src/components/upload/upload.vue new file mode 100644 index 0000000..be07c25 --- /dev/null +++ b/src/components/upload/upload.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..9fddfe7 --- /dev/null +++ b/src/main.js @@ -0,0 +1,36 @@ +import Vue from 'vue' +import App from './App' +import store from '@/store' + +import routeMixin from '@/mixin/router.mixin' +Vue.mixin(routeMixin) +import appMixin from '@/mixin/app.mixin' +Vue.mixin(appMixin) + +import uView from "uview-ui"; +Vue.use(uView); + +import * as filters from "@/utils/filters.js"; +// 注册全局实用程序过滤器. +Object.keys(filters).forEach(key => { + Vue.filter(key, filters[key]); +}); +import { http } from '@/utils/request' +Vue.config.productionTip = false +App.mpType = 'app' +Vue.prototype.$api = http + +// #ifdef H5 +if(process.env.NODE_ENV === 'development'){ + const vconsole = require('vconsole') + Vue.prototype.$vconsole = new vconsole() // 使用vconsole +} +// #endif + + +const app = new Vue({ + store, + ...App +}) + +app.$mount() diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..4d83b8d --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,205 @@ +{ + "name" : "商城", + "appid" : "__UNI__EC894CF", + "description" : "", + "versionName" : "1.3.4", + "versionCode" : 134, + "transformPx" : false, + "app-plus" : { + /* 5+App特有相关 */ + "usingComponents" : true, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + "privacy" : { + "prompt" : "template", + "template" : { + //prompt取值为template时有效,用于配置模板提示框上显示的内容 + "title" : "服务协议和隐私政策", + "message" : "请你务必审慎阅读、充分理解“服务协议”和“隐私协议”各条款,包括但不限于:为你提供商品购买等服务,我们需要收集你的设备信息等个人信息。你可以在“设置”中查看、变更、删除个人信息并管理你的授权。你可阅读《用户协议》《隐私政策》
了解详细信息。如你同意,请点击“同意”开始接受我们的服务", + "buttonAccept" : "同意", //继续下一步 + "buttonRefuse" : "暂不使用" //退出下载 + } + }, + "compatible" : { + "ignoreVersion" : true //true表示忽略版本检查提示框 + }, + "safearea" : { + //安全区域配置,仅iOS平台生效 + "bottom" : { + // 底部安全区域配置 + "offset" : "none" // 底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域,默认值为"none" + } + }, + "modules" : { + "Payment" : {}, + "iBeacon" : {}, + "SQLite" : {}, + "Push" : {}, + "Share" : {}, + "VideoPlayer" : {}, + "Maps" : {} + }, + /* 模块配置 */ + "distribute" : { + /* 应用发布信息 */ + "android" : { + /* android打包配置 */ + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ] + }, + "ios" : { + "capabilities" : { + "entitlements" : { + "com.apple.developer.associated-domains" : [ "applinks:static-639df241-3e40-451e-9e00-2cf3bf79ce41.bspapp.com" ] + } + }, + "privacyDescription" : { + "NSPhotoLibraryUsageDescription" : "因相关功能涉及图片的读取与写入,请在设置-子春生中开启相册权限", + "NSPhotoLibraryAddUsageDescription" : "因相关功能涉及图片的读取与写入,请在设置-子春生中开启相册权限", + "NSCameraUsageDescription" : "因相关功能涉及照相,请在设置-子春生中开启相机权限", + "NSLocationWhenInUseUsageDescription" : "用户能快速知道当前位置", + "NSSpeechRecognitionUsageDescription" : "语音播报" + }, + "idfa" : false + }, + /* ios打包配置 */ + "sdkConfigs" : { + "ad" : {}, + "maps" : { + "amap" : { + "appkey_ios" : "2fb25034076d2f0ab550ab3ab8616ce1", + "appkey_android" : "ab4fc873f9e4a3b4e9bd9c586ddb3a4e" + } + }, + "payment" : { + "weixin" : { + "__platform__" : [ "ios", "android" ], + "appid" : "wx5b38851d7f7aeede", + "UniversalLinks" : "https://ios.zichunsheng.cn/ulink/" + }, + "alipay" : { + "__platform__" : [ "ios", "android" ] + } + }, + "push" : { + "unipush" : {} + }, + "share" : { + "weixin" : { + "appid" : "wx5b38851d7f7aeede", + "UniversalLinks" : "https://ios.zichunsheng.cn/ulink/" + } + }, + "speech" : { + "baidu" : { + "appid" : "", + "apikey" : "", + "secretkey" : "" + } + } + }, + "icons" : { + "android" : { + "hdpi" : "unpackage/res/icons/72x72.png", + "xhdpi" : "unpackage/res/icons/96x96.png", + "xxhdpi" : "unpackage/res/icons/144x144.png", + "xxxhdpi" : "unpackage/res/icons/192x192.png" + }, + "ios" : { + "appstore" : "unpackage/res/icons/1024x1024.png", + "ipad" : { + "app" : "unpackage/res/icons/76x76.png", + "app@2x" : "unpackage/res/icons/152x152.png", + "notification" : "unpackage/res/icons/20x20.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "proapp@2x" : "unpackage/res/icons/167x167.png", + "settings" : "unpackage/res/icons/29x29.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "spotlight" : "unpackage/res/icons/40x40.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png" + }, + "iphone" : { + "app@2x" : "unpackage/res/icons/120x120.png", + "app@3x" : "unpackage/res/icons/180x180.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "notification@3x" : "unpackage/res/icons/60x60.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "settings@3x" : "unpackage/res/icons/87x87.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png", + "spotlight@3x" : "unpackage/res/icons/120x120.png" + } + } + }, + "splashscreen" : { + "iosStyle" : "common", + "androidStyle" : "common" + } + } + }, + /* SDK配置 */ + "quickapp" : {}, + /* 快应用特有相关 */ + "mp-weixin" : { + "appid" : "wx374270da1f0100da", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "optimization" : { + "subPackages" : true + } + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "mp-qq" : { + "usingComponents" : true + }, + "_spaceID" : "639df241-3e40-451e-9e00-2cf3bf79ce41", + "h5" : { + "template" : "", + "router" : { + "mode" : "history" + }, + "optimization" : { + "treeShaking" : { + "enable" : true + } + } + } +} diff --git a/src/mixin/app.mixin.js b/src/mixin/app.mixin.js new file mode 100644 index 0000000..43ccb89 --- /dev/null +++ b/src/mixin/app.mixin.js @@ -0,0 +1,13 @@ + +import { mapGetters } from 'vuex' +export default { + + onLoad(option) { + // #ifdef H5 + + // #endif + }, + computed: { + ...mapGetters(['isLogin', 'news_num']), + } +} diff --git a/src/mixin/router.mixin.js b/src/mixin/router.mixin.js new file mode 100644 index 0000000..6212547 --- /dev/null +++ b/src/mixin/router.mixin.js @@ -0,0 +1,29 @@ +import store from '@/store' + + +const whiteList = [ + '/pages/login/index' +] + +export default { + created() { + + // 登录判断跳转 + this.$u.routeAuth = (...args) => { + let url = args[0] + if (typeof url !== 'string' && typeof url.url === 'string') { + url = url.url + } + + if (store.getters.isLogin || whiteList.includes(url)) { + this.$u.route(...args) + } else { + this.$u.route('/pages/login/index') + } + } + + this.$u.routeLogin = (...args) => { + uni.$u.throttle(this.$u.route('/pages/login/index'), 1000) + } + } +} diff --git a/src/pageA/address/index.vue b/src/pageA/address/index.vue new file mode 100644 index 0000000..75ecd03 --- /dev/null +++ b/src/pageA/address/index.vue @@ -0,0 +1,163 @@ + + + + + + diff --git a/src/pageA/after_sale/index.vue b/src/pageA/after_sale/index.vue new file mode 100644 index 0000000..678d304 --- /dev/null +++ b/src/pageA/after_sale/index.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/pageA/after_sales_detail/index.vue b/src/pageA/after_sales_detail/index.vue new file mode 100644 index 0000000..2d900e9 --- /dev/null +++ b/src/pageA/after_sales_detail/index.vue @@ -0,0 +1,439 @@ + + + diff --git a/src/pageA/after_sales_logistics/index.vue b/src/pageA/after_sales_logistics/index.vue new file mode 100644 index 0000000..a2d7344 --- /dev/null +++ b/src/pageA/after_sales_logistics/index.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/pageA/balance_transfer/index.vue b/src/pageA/balance_transfer/index.vue new file mode 100644 index 0000000..630f311 --- /dev/null +++ b/src/pageA/balance_transfer/index.vue @@ -0,0 +1,149 @@ + + + diff --git a/src/pageA/balance_transfer_details/index.vue b/src/pageA/balance_transfer_details/index.vue new file mode 100644 index 0000000..8fc102c --- /dev/null +++ b/src/pageA/balance_transfer_details/index.vue @@ -0,0 +1,81 @@ + + + + diff --git a/src/pageA/bank_card/index.vue b/src/pageA/bank_card/index.vue new file mode 100644 index 0000000..ccb3bde --- /dev/null +++ b/src/pageA/bank_card/index.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/pageA/bank_details/index.vue b/src/pageA/bank_details/index.vue new file mode 100644 index 0000000..378882a --- /dev/null +++ b/src/pageA/bank_details/index.vue @@ -0,0 +1,126 @@ + + + + diff --git a/src/pageA/collection/index.vue b/src/pageA/collection/index.vue new file mode 100644 index 0000000..7401f65 --- /dev/null +++ b/src/pageA/collection/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/pageA/coupon/coupon.vue b/src/pageA/coupon/coupon.vue new file mode 100644 index 0000000..077dd6b --- /dev/null +++ b/src/pageA/coupon/coupon.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/pageA/fan_list/index.vue b/src/pageA/fan_list/index.vue new file mode 100644 index 0000000..84cd3cb --- /dev/null +++ b/src/pageA/fan_list/index.vue @@ -0,0 +1,185 @@ + + + + + \ No newline at end of file diff --git a/src/pageA/history/index.vue b/src/pageA/history/index.vue new file mode 100644 index 0000000..c364512 --- /dev/null +++ b/src/pageA/history/index.vue @@ -0,0 +1,90 @@ + + diff --git a/src/pageA/invite_friends/index.vue b/src/pageA/invite_friends/index.vue new file mode 100644 index 0000000..3a2fef6 --- /dev/null +++ b/src/pageA/invite_friends/index.vue @@ -0,0 +1,376 @@ + + + diff --git a/src/pageA/membership_interests/index.vue b/src/pageA/membership_interests/index.vue new file mode 100644 index 0000000..912c2b3 --- /dev/null +++ b/src/pageA/membership_interests/index.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/src/pageA/my_account/index.vue b/src/pageA/my_account/index.vue new file mode 100644 index 0000000..b2c1adc --- /dev/null +++ b/src/pageA/my_account/index.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/pageA/my_bank/index.vue b/src/pageA/my_bank/index.vue new file mode 100644 index 0000000..62f414d --- /dev/null +++ b/src/pageA/my_bank/index.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/pageA/new_address/index.vue b/src/pageA/new_address/index.vue new file mode 100644 index 0000000..48499f7 --- /dev/null +++ b/src/pageA/new_address/index.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/src/pageA/news/index.vue b/src/pageA/news/index.vue new file mode 100644 index 0000000..3de501a --- /dev/null +++ b/src/pageA/news/index.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/src/pageA/personal/personal.vue b/src/pageA/personal/personal.vue new file mode 100644 index 0000000..30eebc4 --- /dev/null +++ b/src/pageA/personal/personal.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/pageA/reset_password/index.vue b/src/pageA/reset_password/index.vue new file mode 100644 index 0000000..37e62ac --- /dev/null +++ b/src/pageA/reset_password/index.vue @@ -0,0 +1,21 @@ + + diff --git a/src/pageA/reset_password/login.vue b/src/pageA/reset_password/login.vue new file mode 100644 index 0000000..8156d07 --- /dev/null +++ b/src/pageA/reset_password/login.vue @@ -0,0 +1,183 @@ + + + diff --git a/src/pageA/reset_password/reset_security.vue b/src/pageA/reset_password/reset_security.vue new file mode 100644 index 0000000..de22ed2 --- /dev/null +++ b/src/pageA/reset_password/reset_security.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/pageA/reset_password/secure.vue b/src/pageA/reset_password/secure.vue new file mode 100644 index 0000000..de22ed2 --- /dev/null +++ b/src/pageA/reset_password/secure.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/pageA/special_area/index.vue b/src/pageA/special_area/index.vue new file mode 100644 index 0000000..7e17e9a --- /dev/null +++ b/src/pageA/special_area/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/pageA/user_order/conponents/order-item.vue b/src/pageA/user_order/conponents/order-item.vue new file mode 100644 index 0000000..93cdaf3 --- /dev/null +++ b/src/pageA/user_order/conponents/order-item.vue @@ -0,0 +1,121 @@ + + diff --git a/src/pageA/user_order/index.vue b/src/pageA/user_order/index.vue new file mode 100644 index 0000000..b2e5a4a --- /dev/null +++ b/src/pageA/user_order/index.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/pageA/user_sign/index.vue b/src/pageA/user_sign/index.vue new file mode 100644 index 0000000..31fd685 --- /dev/null +++ b/src/pageA/user_sign/index.vue @@ -0,0 +1,305 @@ + + + diff --git a/src/pageA/withdrawal_balance/index.vue b/src/pageA/withdrawal_balance/index.vue new file mode 100644 index 0000000..ae403e9 --- /dev/null +++ b/src/pageA/withdrawal_balance/index.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/pageA/withdrawal_details/index.vue b/src/pageA/withdrawal_details/index.vue new file mode 100644 index 0000000..af32872 --- /dev/null +++ b/src/pageA/withdrawal_details/index.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/pageB/code/index.vue b/src/pageB/code/index.vue new file mode 100644 index 0000000..3ff1573 --- /dev/null +++ b/src/pageB/code/index.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/pageB/index/index.vue b/src/pageB/index/index.vue new file mode 100644 index 0000000..944f7ab --- /dev/null +++ b/src/pageB/index/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/pageB/order_details/index.vue b/src/pageB/order_details/index.vue new file mode 100644 index 0000000..c867f29 --- /dev/null +++ b/src/pageB/order_details/index.vue @@ -0,0 +1,113 @@ + + + + diff --git a/src/pageB/select_product/components/goods-item.vue b/src/pageB/select_product/components/goods-item.vue new file mode 100644 index 0000000..414a0bd --- /dev/null +++ b/src/pageB/select_product/components/goods-item.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/pageB/select_product/index.vue b/src/pageB/select_product/index.vue new file mode 100644 index 0000000..e4bb900 --- /dev/null +++ b/src/pageB/select_product/index.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/pageB/select_store/index.vue b/src/pageB/select_store/index.vue new file mode 100644 index 0000000..9741a38 --- /dev/null +++ b/src/pageB/select_store/index.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/pageB/user_order/conponents/order-item.vue b/src/pageB/user_order/conponents/order-item.vue new file mode 100644 index 0000000..9a065d0 --- /dev/null +++ b/src/pageB/user_order/conponents/order-item.vue @@ -0,0 +1,35 @@ + + diff --git a/src/pageB/user_order/index.vue b/src/pageB/user_order/index.vue new file mode 100644 index 0000000..dd1ba3e --- /dev/null +++ b/src/pageB/user_order/index.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/pageB/user_select_pro/index.vue b/src/pageB/user_select_pro/index.vue new file mode 100644 index 0000000..7bec35b --- /dev/null +++ b/src/pageB/user_select_pro/index.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/pages.json b/src/pages.json new file mode 100644 index 0000000..c6bfe7d --- /dev/null +++ b/src/pages.json @@ -0,0 +1,626 @@ +{ + "pages": [ + //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + //#ifdef APP-PLUS + //启动页 + { + "path": "pages/guide/judge", + "style": { + "enablePullDownRefresh": false, + "onReachBottomDistance": 100, + "navigationStyle": "custom", + "app-plus": { + "contentAdjust": false, + "bounce": "none" + } + } + }, + { + "path": "pages/guide/guide", + "style": { + "enablePullDownRefresh": false, + "onReachBottomDistance": 100, + "navigationStyle": "custom", + "app-plus": { + "contentAdjust": false, + "bounce": "none" + } + } + }, + // #endif + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "首页" + } + }, + { + "path": "pages/upgrade_popup/index", + "style": { + "disableScroll": true, + "navigationStyle": "custom", + "app-plus": { + "animationType": "fade-in", + "background": "transparent", + "backgroundColor": "rgba(0,0,0,0)", + "popGesture": "none" + } + } + }, + { + "path": "pages/sort/index", + "style": { + "navigationBarTitleText": "分类" + } + }, + { + "path": "pages/search/search", + "style": { + "navigationBarTitleText": "搜索", + "enablePullDownRefresh": false, + "app-plus": { + "animationType": "slide-in-bottom", + "animationDuration": 300 + } + } + }, + { + "path": "pages/comment/comment", + "style": { + "navigationBarTitleText": "评论", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/confirm_order/confirm_order", + "style": { + "navigationBarTitleText": "确认订单", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/search/search_result", + "style": { + "navigationBarTitleText": "搜索结果", + "enablePullDownRefresh": false, + "app-plus": { + "animationType": "slide-in-bottom" + } + } + }, + { + "path": "pages/product_details/index", + "style": { + "navigationBarTitleText": "商品详情", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + + { + "path": "pages/shop_cart/index", + "style": { + "navigationBarTitleText": "购物车" + } + }, + { + "path": "pages/me/me", + "style": { + "navigationBarTitleText": "个人中心", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/login/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "登录" + } + }, + { + "path": "pages/register/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "注册" + } + }, + { + "path": "pages/confirm_payment/confirm_payment", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "确认支付" + } + }, + { + "path": "pages/payment_results/payment_results", + "style": { + "navigationBarTitleText": "支付结果", + "navigationStyle": "default", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/healthy/healthy", + "style": { + "navigationBarTitleText": "健康", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/article_details/article_details", + "style": { + "navigationBarTitleText": "文章详情", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/order_details/index", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "订单详情" + } + }, + { + "path": "pages/apply_refund/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "申请售后" + } + }, + { + "path": "pages/goods_logistics/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "物流信息" + } + }, + { + "path": "pages/publish_evaluation/index", + "style": { + "navigationBarTitleText": "发表评价", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/my_package/index", + "style": { + "navigationBarTitleText": "我的包裹", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/logistics_information/index", + "style": { + "navigationBarTitleText": "物流信息", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/about_us/index", + "style": { + "navigationBarTitleText": "关于我们", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/switch_account/index", + "style": { + "navigationBarTitleText": "切换账号", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/auxiliary_cart/index", + "style": { + "navigationBarTitleText": "购物车(非tabbar)", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/web_view/index", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/feedback/index", + "style": { + "navigationBarTitleText": "意见反馈", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/development/index", + "style": { + "navigationBarTitleText": "开发中", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/welcome/index", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/bargain/index", + "style": { + "navigationBarTitleText": "促销活动", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/bargain/invite", + "style": { + "navigationBarTitleText": "邀请砍价", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/healthy/index", + "style": { + "navigationBarTitleText": "健康首页", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/points/record", + "style": { + "navigationBarTitleText": "积分明细", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "pages/points/swap", + "style": { + "navigationBarTitleText": "积分兑换", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, + { + "path": "pages/points/swap-record", + "style": { + "navigationBarTitleText": "我的兑换", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + } + ], + "subPackages": [{ + "root": "pageA", + "pages": [{ + "path": "personal/personal", + "style": { + "navigationBarTitleText": "个人信息", + "navigationStyle": "default", + "enablePullDownRefresh": false + } + }, + { + "path": "news/index", + "style": { + "navigationBarTitleText": "消息", + "enablePullDownRefresh": false + } + }, + { + "path": "membership_interests/index", + "style": { + "navigationBarTitleText": "会员权益", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "special_area/index", + "style": { + "navigationBarTitleText": "直通车专区", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "user_order/index", + "style": { + "navigationBarTitleText": "订单列表" + } + }, + { + "path": "after_sale/index", + "style": { + "navigationBarTitleText": "售后", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "after_sales_detail/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "售后详情" + } + }, + { + "path": "after_sales_logistics/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "售后详情" + } + }, + { + "path": "user_sign/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "签到" + } + }, + { + "path": "collection/index", + "style": { + "navigationBarTitleText": "收藏", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "address/index", + "style": { + "navigationBarTitleText": "地址管理", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "new_address/index", + "style": { + "navigationBarTitleText": "新增地址", + "enablePullDownRefresh": false + } + }, + { + "path": "reset_password/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "密码设置" + } + }, + { + "path": "reset_password/login", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "密码修改" + } + }, + { + "path": "reset_password/secure", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "安全密码" + } + }, + { + "path": "reset_password/reset_security", + "style": { + "navigationBarTitleText": "重置安全密码", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "coupon/coupon", + "style": { + "navigationBarTitleText": "我的优惠卷", + "navigationStyle": "default", + "enablePullDownRefresh": false + } + }, + { + "path": "history/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "浏览记录" + } + }, + { + "path": "fan_list/index", + "style": { + "navigationBarTitleText": "粉丝列表", + "enablePullDownRefresh": false + } + }, + { + "path": "invite_friends/index", + "style": { + "navigationStyle": "default", + "navigationBarTitleText": "邀请好友" + } + }, + { + "path": "my_account/index", + "style": { + "navigationBarTitleText": "我的账户", + "enablePullDownRefresh": false + } + }, + { + "path": "balance_transfer/index", + "style": { + "navigationBarTitleText": "余额转账", + "enablePullDownRefresh": false + } + }, + { + "path": "balance_transfer_details/index", + "style": { + "navigationBarTitleText": "余额转账明细", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "withdrawal_balance/index", + "style": { + "navigationBarTitleText": "可提转余额", + "enablePullDownRefresh": false + } + }, + { + "path": "withdrawal_details/index", + "style": { + "navigationBarTitleText": "提现明细", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "bank_card/index", + "style": { + "navigationBarTitleText": "提现到银行卡", + "enablePullDownRefresh": false + } + }, + { + "path": "bank_details/index", + "style": { + "navigationBarTitleText": "提现记录", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "my_bank/index", + "style": { + "navigationBarTitleText": "我的银行卡", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + } + ] + }, + { + "root": "pageB", + "pages": [ + { + "path": "index/index", + "style": { + "navigationBarTitleText": "门店管理", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "select_store/index", + "style": { + "navigationBarTitleText": "选择门店", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "select_product/index", + "style": { + "navigationBarTitleText": "选择商品", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "code/index", + "style": { + "navigationBarTitleText": "二维码", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "user_order/index", + "style": { + "navigationBarTitleText": "用户提货", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "user_select_pro/index", + "style": { + "navigationBarTitleText": "选择商品", + "enablePullDownRefresh": false, + "navigationStyle": "default" + } + }, + { + "path": "order_details/index", + "style": { + "navigationBarTitleText": "订单详情", + "enablePullDownRefresh": false + } + } + ] + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#FFFFFF", + "backgroundColor": "#FFFFFF", + "navigationStyle": "custom", + "app-plus": { + "bounce": "none", + "scrollIndicator": "none" + } + }, + "tabBar": { + "backgroundColor": "#FFFFFF", + "color": "#A8A8A8", + "selectedColor": "#378264", + "borderStyle": "white", + "list": [{ + "iconPath": "static/tabbar/index.png", + "selectedIconPath": "static/tabbar/index_sel.png", + "pagePath": "pages/index/index", + "text": "主页" + }, + { + "iconPath": "static/tabbar/class.png", + "selectedIconPath": "static/tabbar/class_sel.png", + "pagePath": "pages/sort/index", + "text": "分类" + }, + { + "iconPath": "static/tabbar/cart.png", + "selectedIconPath": "static/tabbar/cart_sel.png", + "pagePath": "pages/shop_cart/index", + "text": "购物车" + }, + { + "iconPath": "static/tabbar/healthy.png", + "selectedIconPath": "static/tabbar/healthy_sel.png", + "pagePath": "pages/healthy/index", + "text": "健康" + }, + { + "iconPath": "static/tabbar/my.png", + "selectedIconPath": "static/tabbar/my_sel.png", + "pagePath": "pages/me/me", + "text": "我的" + } + ] + }, + "easycom": { + "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" + } +} diff --git a/src/pages/about_us/index.vue b/src/pages/about_us/index.vue new file mode 100644 index 0000000..2a26d8a --- /dev/null +++ b/src/pages/about_us/index.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/pages/apply_refund/index.vue b/src/pages/apply_refund/index.vue new file mode 100644 index 0000000..cd65b5e --- /dev/null +++ b/src/pages/apply_refund/index.vue @@ -0,0 +1,358 @@ + + + diff --git a/src/pages/article_details/article_details.vue b/src/pages/article_details/article_details.vue new file mode 100644 index 0000000..e41191d --- /dev/null +++ b/src/pages/article_details/article_details.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/pages/auxiliary_cart/index.vue b/src/pages/auxiliary_cart/index.vue new file mode 100644 index 0000000..e55db75 --- /dev/null +++ b/src/pages/auxiliary_cart/index.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/pages/bargain/components/goods.vue b/src/pages/bargain/components/goods.vue new file mode 100644 index 0000000..7a7896b --- /dev/null +++ b/src/pages/bargain/components/goods.vue @@ -0,0 +1,43 @@ + + + + diff --git a/src/pages/bargain/index.vue b/src/pages/bargain/index.vue new file mode 100644 index 0000000..bfb6b70 --- /dev/null +++ b/src/pages/bargain/index.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/pages/bargain/invite.vue b/src/pages/bargain/invite.vue new file mode 100644 index 0000000..a83b3d9 --- /dev/null +++ b/src/pages/bargain/invite.vue @@ -0,0 +1,380 @@ + + + diff --git a/src/pages/comment/comment.vue b/src/pages/comment/comment.vue new file mode 100644 index 0000000..4ddcb32 --- /dev/null +++ b/src/pages/comment/comment.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/pages/confirm_order/confirm_order.vue b/src/pages/confirm_order/confirm_order.vue new file mode 100644 index 0000000..577a5ed --- /dev/null +++ b/src/pages/confirm_order/confirm_order.vue @@ -0,0 +1,403 @@ + + + + + diff --git a/src/pages/confirm_payment/confirm_payment.vue b/src/pages/confirm_payment/confirm_payment.vue new file mode 100644 index 0000000..3c1bffb --- /dev/null +++ b/src/pages/confirm_payment/confirm_payment.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/pages/development/index.vue b/src/pages/development/index.vue new file mode 100644 index 0000000..4ecb7fa --- /dev/null +++ b/src/pages/development/index.vue @@ -0,0 +1,5 @@ + diff --git a/src/pages/feedback/index.vue b/src/pages/feedback/index.vue new file mode 100644 index 0000000..4e8e398 --- /dev/null +++ b/src/pages/feedback/index.vue @@ -0,0 +1,98 @@ + + + + + + diff --git a/src/pages/goods_logistics/index.vue b/src/pages/goods_logistics/index.vue new file mode 100644 index 0000000..eabee6b --- /dev/null +++ b/src/pages/goods_logistics/index.vue @@ -0,0 +1,76 @@ + + diff --git a/src/pages/guide/guide.vue b/src/pages/guide/guide.vue new file mode 100644 index 0000000..72abfd2 --- /dev/null +++ b/src/pages/guide/guide.vue @@ -0,0 +1,205 @@ + + + + + diff --git a/src/pages/guide/judge.vue b/src/pages/guide/judge.vue new file mode 100644 index 0000000..88b5b3c --- /dev/null +++ b/src/pages/guide/judge.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/pages/healthy/healthy.vue b/src/pages/healthy/healthy.vue new file mode 100644 index 0000000..92bbbc5 --- /dev/null +++ b/src/pages/healthy/healthy.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/src/pages/healthy/index.vue b/src/pages/healthy/index.vue new file mode 100644 index 0000000..13e27c1 --- /dev/null +++ b/src/pages/healthy/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/pages/index/components/popup-view.vue b/src/pages/index/components/popup-view.vue new file mode 100644 index 0000000..62ce475 --- /dev/null +++ b/src/pages/index/components/popup-view.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/pages/index/components/title.vue b/src/pages/index/components/title.vue new file mode 100644 index 0000000..d0a7077 --- /dev/null +++ b/src/pages/index/components/title.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue new file mode 100644 index 0000000..550a3e2 --- /dev/null +++ b/src/pages/index/index.vue @@ -0,0 +1,392 @@ + + + + + diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue new file mode 100644 index 0000000..ad81b35 --- /dev/null +++ b/src/pages/login/index.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/pages/logistics_information/index.vue b/src/pages/logistics_information/index.vue new file mode 100644 index 0000000..113da07 --- /dev/null +++ b/src/pages/logistics_information/index.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/pages/me/me.vue b/src/pages/me/me.vue new file mode 100644 index 0000000..f2f93e9 --- /dev/null +++ b/src/pages/me/me.vue @@ -0,0 +1,506 @@ + + + + + diff --git a/src/pages/my_package/index.vue b/src/pages/my_package/index.vue new file mode 100644 index 0000000..67ed663 --- /dev/null +++ b/src/pages/my_package/index.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/pages/order_details/index.vue b/src/pages/order_details/index.vue new file mode 100644 index 0000000..49a7f6b --- /dev/null +++ b/src/pages/order_details/index.vue @@ -0,0 +1,312 @@ + + + + diff --git a/src/pages/payment_results/payment_results.vue b/src/pages/payment_results/payment_results.vue new file mode 100644 index 0000000..5d0bb9d --- /dev/null +++ b/src/pages/payment_results/payment_results.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/pages/points/components/coupon-comp.vue b/src/pages/points/components/coupon-comp.vue new file mode 100644 index 0000000..9c1b187 --- /dev/null +++ b/src/pages/points/components/coupon-comp.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/pages/points/components/points-goods-comp.vue b/src/pages/points/components/points-goods-comp.vue new file mode 100644 index 0000000..6e03956 --- /dev/null +++ b/src/pages/points/components/points-goods-comp.vue @@ -0,0 +1,44 @@ + + diff --git a/src/pages/points/record.vue b/src/pages/points/record.vue new file mode 100644 index 0000000..0f4b8bb --- /dev/null +++ b/src/pages/points/record.vue @@ -0,0 +1,99 @@ + + + + diff --git a/src/pages/points/swap-record.vue b/src/pages/points/swap-record.vue new file mode 100644 index 0000000..c107182 --- /dev/null +++ b/src/pages/points/swap-record.vue @@ -0,0 +1,11 @@ + diff --git a/src/pages/points/swap.vue b/src/pages/points/swap.vue new file mode 100644 index 0000000..4d1c7f9 --- /dev/null +++ b/src/pages/points/swap.vue @@ -0,0 +1,180 @@ + + + diff --git a/src/pages/product_details/components/share-popup.vue b/src/pages/product_details/components/share-popup.vue new file mode 100644 index 0000000..47b8566 --- /dev/null +++ b/src/pages/product_details/components/share-popup.vue @@ -0,0 +1,278 @@ + + + + + diff --git a/src/pages/product_details/index.vue b/src/pages/product_details/index.vue new file mode 100644 index 0000000..51c3515 --- /dev/null +++ b/src/pages/product_details/index.vue @@ -0,0 +1,699 @@ + + + + + diff --git a/src/pages/publish_evaluation/index.vue b/src/pages/publish_evaluation/index.vue new file mode 100644 index 0000000..ae66b2a --- /dev/null +++ b/src/pages/publish_evaluation/index.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/pages/register/index.vue b/src/pages/register/index.vue new file mode 100644 index 0000000..58e49a2 --- /dev/null +++ b/src/pages/register/index.vue @@ -0,0 +1,209 @@ + + + + diff --git a/src/pages/search/search.vue b/src/pages/search/search.vue new file mode 100644 index 0000000..b74243d --- /dev/null +++ b/src/pages/search/search.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/pages/search/search_result.vue b/src/pages/search/search_result.vue new file mode 100644 index 0000000..7ef6f60 --- /dev/null +++ b/src/pages/search/search_result.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/pages/shop_cart/components/cart-goods-item.vue b/src/pages/shop_cart/components/cart-goods-item.vue new file mode 100644 index 0000000..127b739 --- /dev/null +++ b/src/pages/shop_cart/components/cart-goods-item.vue @@ -0,0 +1,85 @@ + + diff --git a/src/pages/shop_cart/index.vue b/src/pages/shop_cart/index.vue new file mode 100644 index 0000000..f6a1f1d --- /dev/null +++ b/src/pages/shop_cart/index.vue @@ -0,0 +1,316 @@ + + + diff --git a/src/pages/shop_cart/mixin/index.js b/src/pages/shop_cart/mixin/index.js new file mode 100644 index 0000000..e32c3df --- /dev/null +++ b/src/pages/shop_cart/mixin/index.js @@ -0,0 +1,37 @@ +import { mapGetters,mapActions } from 'vuex'; +export default { + computed: { + ...mapGetters(['cartList']) + }, + onShow() { + this.setTabBadge() + this.getCartList() + }, + methods: { + ...mapActions({ + getCartList: 'goods/getCartList', + }), + setTabBadge() { + const e = this.cartList + if (e.length > 0) { + uni.setTabBarBadge({ + index: 2, + text: e.length + '' + }) + } else { + uni.removeTabBarBadge({ + index: 2 + }) + } + } + }, + watch: { + cartList: { + immediate: true, + deep: true, + handler(e) { + this.setTabBadge() + } + } + }, +} diff --git a/src/pages/sort/index.vue b/src/pages/sort/index.vue new file mode 100644 index 0000000..4503018 --- /dev/null +++ b/src/pages/sort/index.vue @@ -0,0 +1,254 @@ + + + diff --git a/src/pages/switch_account/index.vue b/src/pages/switch_account/index.vue new file mode 100644 index 0000000..c6ccd18 --- /dev/null +++ b/src/pages/switch_account/index.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/pages/upgrade_popup/index.vue b/src/pages/upgrade_popup/index.vue new file mode 100644 index 0000000..a03184e --- /dev/null +++ b/src/pages/upgrade_popup/index.vue @@ -0,0 +1,522 @@ + + + + + diff --git a/src/pages/web_view/index.vue b/src/pages/web_view/index.vue new file mode 100644 index 0000000..c63ba53 --- /dev/null +++ b/src/pages/web_view/index.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/pages/welcome/index.vue b/src/pages/welcome/index.vue new file mode 100644 index 0000000..c740473 --- /dev/null +++ b/src/pages/welcome/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/static/images/app/app_update_close.png b/src/static/images/app/app_update_close.png new file mode 100644 index 0000000000000000000000000000000000000000..7fe1deca02877608aa32b6a97c161b234cef44b9 GIT binary patch literal 2378 zcmd6p`9BkmAIGOPN39u?MswR-$uT139&$9ZCqj1#;&xL+711BF{ zx#11;P9TGX-G!%zDZ5dlgwMWG-=Odd#H}6W^V5txYt74GSr1d$AXCJPs1e7K(WSPD zbI;aIAUFPsW3>prTn*n&~; z*hsw4IGb7T@MkCdcRD)uCp+#%W!vVFCjtqBJJM8}Q?FBcYbS<=TWSHDKE1aGKF#t@ zU9>&zcArhuMdRew-x!Nuka1oo(zeXnyS6kugR%%h-(mVwM8I;8vw=7{5 zI@DW=A1XzH@2xs*i~2fa5V9xV4-06x*h8-k64y^(hhhHNC#QA8{7FYrMo6qH^u`Hl z3y2#C_v$1~TLvcq!;oo@1W;LzY`rL3a*l+MU}-;H}7bjsB(X_`ZGPN zPjE5FNU=P?8NQet6dO-~=kinvkZaCPoMujErS$D@E4dk1NX0A>=);pDEC3 zVM?{0eu_HoT`*G?`KI||8cpVhy5#i2D#b1fr z*7Ljba6D@t>8!S$<|szzkZ}xWxu-+$fX;yaXX%kC}^!M8ept>eZwGtIR=#pK0Oh*N)U+QK(Pa-vAl=V}OCh zFhb?M@GXr>u_{x(4`tp}ySjd0fM(dB8pauNUcO_Y+6WaY$z4^^F9N8;tBxAeQZh)HhCkb`g&1= z$MmIHn3*EFf4vmD$HosJh^#U4l9T%>w&@PGgGYGTM12Uy5CBQySecE#xARODjkQ(1 z2hFpm^gOdQoh$qZcOk?4A4THx3sU(F^Je$LavVcCLGXO-Ir)!}EgE6V1fJipU{*@t zt1UI}$qVt0yEz^HxUQO{F0;cyLW0OeqlR+-S7@0dg2-N@7264HhsUGa3eO;GkzbR3 zT?E?|NAwd{Eg>ojZhPO1lqo#D9VClvHzHLv`)`iN+lo{}+9H1YlYGc(lb_7TT~tfK zk)7=1^Fj#TZbv2%wUtkvk5_}V|Fd>D-bth!vj3yW2(|vw8N+<-S^2iP-~}~coF=Y_D24Br-A_GE zd2L?lHVUGudSBWNKF*y#*0Te&`V%^Q?ckfcUvrVHdp>1+O+yEf^-snz7h6xiexdx@ zzdA^Oh@dJDwE)(qV)NEa4Wfd90AZju)I6PW_SH^UliBSFS%Fo_Exppe`n(jCWG>5= z?$%3NzMN=x_S<}Vj=t2EFtJ!Jz08ayuFLd+t!CWEO5TFKHRzfV(0XjxPnyO?xFe(! z!{6DLa`1zqRbJ-aTyO#Aam2xZ+uF~09|sTbKx8NhQ0+KXQS=t zedKGpQ=jL+oeyZr3|P86ZHWQHGij|%*wHfD%`(_@8SP9tthSsc#)3t%Xd^6`X$7sk z0w&C+1+igVHcekeg8qQEV|vp`;`7I*{K!nEPdusu!wGeW)){ET+1mHpXgjxhK(z8> zE;x7XZ_!29q>TeSl*zs|D~7Yb(A`yflPh{9EH|VpRtIYHW~{QL9}_g*Cw7omG)S#|4Fe?ZT;3r|6Yl$ZMTCbp||j z>U0q;)d_-InVmlY{%EM^D4dwm(azFQZ;y|Uy?Tl>@%0kHc0iD=cz})4=b-Gqrt}Wz zMNU9kdsRkvZAMR>Vzz%4u_3LaI<>7*GSuN^eo$≶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 literal 0 HcmV?d00001 diff --git a/src/static/images/app/devlop.png b/src/static/images/app/devlop.png new file mode 100644 index 0000000000000000000000000000000000000000..38e7a3f3dc6ce32e6c1671414d8765a70fea03d5 GIT binary patch literal 127386 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�aO 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�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 literal 0 HcmV?d00001 diff --git a/src/static/images/app/popup_bg.png b/src/static/images/app/popup_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..722e9b3aa46d32dd0aba654d5002d2b6b21c767d GIT binary patch literal 31500 zcmV)JK)b(*P)h&jcRHo%ZK#gsS1 zlQzGQE~R8Z$;_Dgu<0v#+hBpo?-Uepf|scILwnd%#QTeojJ>q zF-JRycfUSH;_1mB0xp%aJP0_4v`R$|g*qi3VfcDy<&!=j= zj8xdQc6+yoPOO9{rhPNCjV7XeFtm*}w2da9c_p5A_S&NJ*Pl4Qj5f24H@J*9yNvqj zxA4!D@63-RoOL+DjQHfQ_u;D}mT~UMizJzI@zR+2=CktEoA%zP_1vWF#)#{~ggC{F zImwIs?7Hl^cR9_A>Bfrw|Ni0no_x_frMi-*05yynf`x_PX-gT0el%AQ}QazKB*iZi;8O23k1 zzK+hRY+b&Pq`ZS}vxi}=f4aMXHKlyPyMD;JeI&DsZ?1npz?9Fre81DGZMcz=(6yYr zgiybc_UWH$yPB21k+Zviq|?5X#hpdJlUBcwMW=jNtA46?MYM)cj=hIZw2boNnYfHr z!j4nJ;??QWjM1iKzKcwSwyO@WZ@=z|W(m#FVUo zQFy_nQn`zV!kVSgr;%Sf(9D>Mvw_gnr+l-7Q@@Ml#)IL=kk`YC&B2Gr-nYH1bJyX$ zThNxY$dz~0n&`lEWSnrIuzHc8ZAO}Nwwh*rN-ukbS*fLMO{z8J0000vbW%=J00#{P z6ekQFF+yoPj~7OxR(-YHDeKEMAN^BOb(-h&!sl<)aK^UQqKk~Jz^vHU&a&au@a*bR z<;dcb)Bpf?f=NU{RCwC#+e>KEa2&vK;olcj=DF>fmHYC)I*V8sNlCwKM}@<*_2E?+<9U*mJxs56=wad?x}a^e91%Y_+5 zDkq10g#50qKL5~;d_I{>=JVxrsZ`qJqr_X1N2jLZ{H_s~)3-jADwWnds4yDju&u3B^&$X!C<=PAEE!|S|I0jxYuzmL@L@5R zlSkYxyWQ^cZAz!pekzQH8`8O>vUBaa;o)^#xABT(0-M|HCFGZWeE5OU%*@Q}1~2+@ zf-tu~lgZF6Ny824&6m91KFqsj5I3X&Z0^!V2l<7w*OmwK7!Vs+-3Pv$Hk-|f!X#;s zjxZV?!Ac&l+wF3>+-@*7h`tP9mv;3L@{{p3GCKpb=CKWZeFiUw!(j;9tg3b@jOMTn zE~It>4ag42`qm8L00UsqNJk;WxibI&G`*^F7NQV?E@QzVJHzpn`=`gDTp~ESdWeI)e1(~pz5T+dOiTwUoB(-ST!|0 z?O6}Xj5WCtaA9-#{LskO?ZLqJwhw!q#NpE_1vM&S+t%QE1cpCeJ2;2@6c`PFxppG3 z0sw|B}e6@m^H|TQGLp}|5S^p2f zYUvF0@%{Uo@7@`}%GoTx2pFSlsjSK{e4O8C9=|MbeLkm+0;3U|-92akD>ZZ zG%a0A;)XPU6_l|+s~{KGrqhb9^HaOlt+D#Th|6cAzG#gd=^iqGr5eD{7pA4Nc^qKn zY@tvoL;}r5RaRS=mK61j{sz7s*t*({2e9^t-RFb*9`sQWjSz?3JG^yAwoqvSlN3xU z7b@kvg1{>2YN@#dM_sPJ}q&y)c)9`s(orA-2BN z!y5(y7+58)LRm6_rSysVXfQabPcD3^alq^K{l~YjUfA30!k$%t%`t` z)pJF72P_fgRYhu~FtNjdAl!|0+US1l#R%C3w3cm5t>OqXfbsD-qv~+PFMzKM(3#?s zrODGX^E3LCRP)p%PN>VWTn|riilk|p!o?!3D@{a3U(4^kh~wb ztiUPdOuAM}Yp^kODdYKa`r^Der+GZ7jF!yn9H-}{&!1IZh@A{9(RPZg$082faijf* zmnRmC#A4An&+s^zj53*Y%CoSrP)qAVrBYt_;z`xgX}leaf9kI~ctvDRimX>64(IXX zXW=aqIhrrC1G!`6 zS8o9@j?FfrPJwlCR$${|!UD{^hy-6zUE(5vWjh&V01|Kb zvH~-G9Su=nJ(CrfycihEqAvheEXsl^j0QS377-YTW0v!kI1r-1dZ(WQV~qg@$znJh z2?nfLjYS#GY_Ts^-WQ_4dME%k{zE4$z!IWp+}{ev;O50x;Fk)XoG_3vjat4=he8xs zFJ%Bb-u7kLkmk*Y*jZB`JQe?yjvYLB?DVUs+V0Cd-tU92<}V7Y%d<={*?Ptg-+Xd! zycHS?{sh+nl!INreC@@DH#Zx;wVN)mqQGdKfZ;V{Ls-2&jwr0atj3zSC@|X3fXN~P16%!d##J!Zg8W5x-(g3;Ik7(Pc&;zk=_ogSfp{om;b7~LXidI_+T7BRj9 z^9Tj3H^M0SXMn{p!w$fxY4@LparuS{&j)vh!L(sBU>J5tSFo7Pfay&sWA+CxIFK51 zNPafMg?`IF%V;qJ7Q@8|N6aEN0A_1bx&r=k7`Gq^b>yE-vixjF_0N)fXFWc@KNt*# zLP5U|d}nQdVK%=uz_5FyO@P_ol$za0!#D#KDPNNPvl*~A%Klk$dF}84md)fL!Ckpx zt~lam>|Mc*S;Y7b%p*Er_BW-35gwF=MKJ*e?b4j82dxJC7_y_=&O!M;3HU?DF!F-> zMw-p0o3R(Llep0aSm#G{!0c~I2_w8>X;iB09UB`POd&m}B5w>Z1nS0}1w{*50(B6Y zb#SNcDwp>=nBH8$>~BiH1wsUvyE+mWKnVXvF*q^tJwKK3ksI2 z9tF(yru5IoNp{G9)bI6rAjm))()6?QmLF}#i9XcNJfy2_pf_|9Uy7uKOPEfM1z)$WR|+VFs;(dKRUCyv8nB4C++0pb3|gF#s0pG}-}+ z;f9@n+254jd_kfP+LaS){~*>PBVW!}FTEG30hC3WYU65X1DzX3#m5aJv{3KG>r{ zm!lU~uH?AZrp3QF>v>GuhY4$0cOyNBxG+u z5jQfeTF`;s+#ge8-ZjmHsFt=Zx_BFZQ{thTb2Aqg(>fe+i`WAgzG?FZ|C>#z|CCtY zI8bSk>nZNWT6O*zayPc98`+8SYl#Q5-U{3k?lI50Y@KZdEUFDbs<2B>6u>69{Ets* z9k3{NoU(`!Fw7$W*m|2rpsE|~kLIQnFcN*E%d>sBq09A<^ML1t*(|sltBq_0{zp<{w$bhLX;x743Ko4PN)4_q16GI2@biMOsv#D) z$f@JFVFv8T_;?%zT?O0;Fh`#^{A*1UtM`vYTB>SIssFS)TCxdkhipO{7xZaYu=d9ZsqgM7inGFxaFWz`ArtT&!t)Q%z(uNQJkH6ihkr$ zs;8#dssO78Al3yivK8!b`q9~2@Jcm+OQRuF+4Cx3devWT`trlgh1RN$ZAw$>4Ww>h9xN;@e0uQt?)5}|A6Ogx z9*1rPH3N30A&Pvm1b`JvOEciT0>FTUAB*XA0tR#~zFlD<8Nj6qNnGTM@U`|Ai~K3K z%c)f*Z@SzsH=X_d>8sups;(q5{Jwob|2FEU#Kw%4mMD*=S5coOxCG3*&_M1+B%lH@ zXttbv*kqUZrXp^vFQt;xtmXI39w5wsg_SEXZ)okmsbFTe0h{!4`Asl zH{Yk;p(H16p2ReBCWbfQU8>zxLPDQ+cf>)$3D)=P$;*)6BnyFh`FUUC78wQLak&-+l3Nw-k zv}su5Nb0gtVp=bQ)+%LvkqWYHU{ktfH-=U!iWC%N18!EOTP^OcTifdYJLgPhGBfe^ z*!nv&Np`zS`%QoOzLU9qMr~q_ZFW`HVNV@3qf#ADq{3>Wo770;Die*IsixM}u+4LD zj=DBV&fYDTxk{wMp($AV93Or$!H{t_Wu-HJE!gODGq`;)cC;U7r)%Z&Nm&vkDnwZd z`VccaMH*$1eq6{^x*KIg8jq(`lOjdGq@*IXV7-t)*Z-3F^ly}yT`nYA(Px7-Z`9dV ztu*MPJoP?nHjjRMtX^q$Q-4}aaLS97@?kk>GIQcmcr)rUBG8|xmfS6GQh7|Ne(hVMI$`k1dB3(*QocbVHjBPA%3pe>@J7R<>jTtW)oW-n>|MuiPV`6ji_$C zol9m5hAG%$y)@9zNrp|MO|UQ0@_!NR`_ILBTEa5?bJB}Jbg>?rxw zCYX|dJcSOeDwY0)JVJFw+AvZJcBHBvZgoh~i&0hAlKz(QgO_`LN`|)>GD;e>ITp0D zznsjHJPW+>#>Yojjt>{AwOlHn*Egp|rvibU3fef*w3q)6dyX{s>u(645 zRdzDDnQIeltV0s(=$CTzV`dlzQ;hUtehm_qVWwF~vv#Obn_S84uz#eP&8Yy7G&(Fg z2vP&CA_6UdC@hO99VFYc)BY|tfJ-od-g*+BRm8IKlxVxbwmNTpR<0JH*T#jfCF$!o zp9}1i3-LT*wLNq6bWz#154J(SV+li%Yt6Z(e#HWU&CX74LNMVMaejatagU%c_<8YD zLNKNn3_B}3)7Kyd`|e5nU=YmNsuE2q;}ocGq<>7$uuzX6(lEuz11%QeR}1PN7?Zu4 z4erIOd7+j&gLxgp8#)E(rq81F8OshUnDR%5bu$$doSxYv9XW(s_il*<2E&N7Uv3!m8R#mLU0C5MjQIHVS&_f+Rjf3) zVHs5=!7RsQG^qq+SbL;pM4H+7K(aXfhfy5PVo;z(B(Q=YQ4sO6{(-TW%*!U-hw-V4 zFWGBzv99(E*2M&STr3uNiweSgyIZZ#GT84Eb+tZQ-(ZdP;;sbd?HR=G2YufoLa4?> z4O8dweyPRO0a9$!nZd@!UL26z1ThBfl?|z6>P#@f>FL=+ygXv1XEE@N!w$jL*4XWb zd7vy=J0ne)n&c#QxM=lv;|0GJNb2-TAvk-Xwr5IICsd(5j_ez zB(U)CLr+`(g!IA#6O3>0-EWzwiZpDy+=6N8^spy^Wx;SNo^)3nr)7YtrX<4|+c3+o zcnoIQf(b=3NMKyB8aHfi4#%Q*e*5hR43i&+UIg=NygnWax)Hx|y`EcKo;OvU*SW(# zu<}SJ)cE_Qn8suF49uCp5Ggfz3x^b6xrQWVNWmiv12NP})2SHuD+aHyh(WjV>FOf0 zcKb}9hi2P_fyF0-Y4oNRegQT!fpKAcDKvns+{v=G)_P}B8*P3KI{dN)Q|7&bHRwc* z>gMKevN8b0tOQ0UmumhyzY>N~tt}Y|d@rDXGR@0l04To5NMJ6(tdGkSdz!vV`vM&> ztrR>#F1$B2jorZd>93*j_~5Fs3~ z1b(w;;Arp?I5Inpu4igS^gJWAXpmrHw>xT^S1{76OjNgurLptpxnS@M|IQ5hV47xi zVmW7G7DPgatn%n9m_&YQCGJ;9RLB&EUcE8R-4mhOdXZe@6kb3qzMMFCa0J}*`|R}Q zg$M;ImHXpQ$1-Lf5*r#$n_xP5(GF? z@JzZ-v^gUjg3-RKMXzAua57F>s8q&9h2(-Q)??n&xYR^-Vy%>=ddp4AYfR15!YVO^@&`t%JOnsnN-bqw0pZ*q0^jSG&hh$ht3{?U8BGjOt#UY znWQW~#t;>fK%@bIcpKRRc`OuzS2Sd}#pOE42LZ9}7c2eIE!kemU@o=)hi+*p>#g42-gD=E<(wlJZAfOTM%seWZcLNsuzBo|EkiK)#RQwfUm&ej8e7fnxdM)VnmfM- zJdA$%`b_^oGNNVp`Kg&uKL;7Colpp7StH^B*_{k)OIt`)ADueIeR|@F2Oj9{d*zk= z#4Cck@UrjIU(cO-0fIRU+l?vAJ}`vUoxi|85=_JJ5Q=cSgk%_^TzUi(YQZgEB6XKw z*y%vW`d}Epx*7*9tJR97;qo$`niI|K?gTD0F{|A>JAb_Y{&%aV!RmJ(yuShXBo3-F zxwL_P2XLw#D}!M=;F1dikA&q`ORcA$e4@9vkCb}GVjr#h_C31~kM!qP`kp*@hg~AO zcIgzK@YKfZE@#{T?)drV_4QQvF9g%Hh(99&k;!O?jOIus4|>${QmVQHi>fL&ELZ0r zG(nB7B7t=PXyOA@a`Y;{nUdRup*u?`mff3b`l7zYlVtkEx1>=4( z+V#R}!SdEGr%pjFW>(++{deCBiSF9x;918@3|RKSEtjKAFm~w+9m zDEN=i%9ddySRzViX27sx2D?5HROy1UQmUlpD&du*IAL|AoMC$5-zPHRwY4nH?MjuX zBIe4l)Ks;kV%K3s=6+!bxe1V6_qYTDnuAwAf?F>?`2@=0{<|R-srC0f`+VOm*L8ti zKLc~t$IGwj-G8r(yJ_9OzweuG-hSt`H@}}bdG^i#K6^7rFi|WpoE#kCqs4=?(j!%! z!20Ux;6Eo;sMvz38QNQ-n&Wj`K86EGRrZ%^w2*5wx7T07Ws1>yxdFYZR>CW(QMkn~ z%+#Tl7a^HfupaU&z#iMHqecU)pZ)&Vm#HT9u?=?@*!K^4zVGT?ox%R(?o3~1isCq) z`;N%Iy`uaThDpp=^Fp?Wnn_5!FoZ%qmL!w17P6Ktydg@KEFolhB~mCvWKYP>_j~TS z^PQP<@7#-ra=-V^oiWcmPdPr%_xJmqbAN|xU~O7=&X;H5H!zp!o57Pb3y05H{_35r z1GgZ*K!w!1-_UtdZ4$PMGTHC&MT>BPHC!nIwuF;NujOFznmN}H0+tq*idaj=AF2eN zo;>-6KC&6(o3NY2`4iu|pLhuN5LGGm`JdVTD&j{AvO2&f5ikQ6Rcl}7^5($@(go|v zf-Nf&mWZ;#td1=!bft5mm3%2aw&^esS!w;)aKJLY3~IAx;Zg=_FtveO9wTxxY}T6C zL^v1~FlI0dAR}M9$NC!L*hvfoQ`nohl3BXV)!7DX@WQP9_R{uiSI`oE{v`fL!niz6 zkuzpp#VI3Wem>?cY8az`nK>B&HqSD4`|t;*^TQAq1HAhF3Sbz|a%FGD~Fv11QcpYwnrr9B4?AZA{Op91NS87h2iBz5U zhAxEg!es5RC)_c%aeHa`^zGL#UpRaI;kPFUkYsQ>i%xvpUz=w?MyW~7Ofitr!iW}5 zs)Coi3xSbz0WS%oluR7NwkfY8YnF$)^+NHJ2_K5E_b6j&nCLmWW8LBRx8GR2s7uhQ zRX8c3h6h5T=O}Ap>$;%s8mhjc-bAMo3^%xxTJGLrWv2sC^LD8qnEHA3{ME$=Faxy?hzN{== zHZp=PS(n6-;g!n70ye8lR}6fLOG*5Vl;O9{6R-&X;)Tz$v*69@keSQh*|84ck`5-V zvZRf|MSxNB^#Ehx3E4>YCXz1VMY>FD4}})%<)!UQPhzuzCfF0~YuSw({+$os5g`E> zfh1l5UluSBW@Y++2RAUYTkDUT93Rs%^e;rl38V|5(V;7OiZ2K2QpxgDmxSrwRjaNY z%N(-M>`TUGfbyRuOBxZ&X0!RNh?lqL5G{#>;W7${^%G!@hK#5+k--zEo2JAj(^^gY z3i$Fj-kH8~>6wi)rXyC)UGez=XFkwp&2{aMCo$W_zF^99{)(?^zV_YX%=9S zjM2JY79j#w7atE)I6AQXG z?^ldWiUG_NmLo^ZY${6hFaSov0>G?)VeVle68*UWUfQ-`&1Y-~hi`*|-f|gOC}6fv za{-#ACeEBW1#qFi-)LER*tj^lBnPf!fThjBf*2{lIC5c#Id3V=(2&+E$Gm^QRxtLg z4l-mkQGlswA3)RqW(gBuz#ij|n7Ul^K1P22ExE&G8W{EQT-0Z?x?{UfL?U zGO_BLRQN^g(9H|zN?{$TSynk16g?n%5m2YF5GFE~AAn#H+_KKn|Hi56Do3zzH z7r+KW<@U*y%W(o@fT=7A*w99RF=aBUH?UwDj5=4GjMQsN!UfEkCF@a>Ljejf1u8LBJx0CR3l`*NkZ*$O`3hcEEmAmUsI^JJ>`Q zFa<~gW^@kwPEVfqE9>MV!IVX$rmIIV6?FGd02>nc`ZAaBa(cD zMH!hxRwBl7<@~^5tjDfK0JeB>6kw)?G+Ms6h#g20vn3xx?~vpMNZ-DSC?Ed}Fy*T; zl;sK?+W{|SVJW*Wtk%FWb;uTkQs`8eMN2Pn{tjc=tB=?~ z?H+D~)Eot6_P4=I|DR~^%+ktezNQQs|EGY7uQ;Gey0y&}vf|4j z%&{`*ml3;qD%Qa2Cc!AYIe#oaHsntj<5mWXE>ygY&c*tusXsH zeA>5+EV$pmTVa#PY)fwxAk(K_*to!cwVEuRawoBKFg9))Z z)c!BXTG*#L1LL8Y)|kNf_W)Z?z(m+R6Bru;CdP({F%^r#r1l5}Okbq*nwMtH!30=` zPF_VWSxWbL{tvsogaf0jn=Q|DY>C5Z1Q#!> z_$Qb-rElp6dE>E_YtA z?xJ}e@AuXv_ZEzc+d7IYvjZUg|kYoE>vFc20g^4|{{DUy(doy;sPW#@1~ z$spy99C?_;%gK>L4kHD?5IPx`4_HWd|CxhDYp{(XU=Cz>NKVEf8mE^+jMZS{sH{jB zHPL{{ITGre84*OlsMiRXQgObd^L6uhu^?d1U{XM=;SiRtml#*lyO^-)TrOfXW~0Hy zRz)o=9VmB$Pdp1?w@H%^SY&4a)^Xq*yCI(rMlnx@M7GG-3-rh6U3eTGQnS8ywYbQ) z8(<{$!8!rvnAcf5*lnVNVJ%&;6q(IvVNx+B8yOixkQwXOyWCcaU*4MsHNVQXtyd${ z`66ekp-qo~-KNQV^XT3kYp}S5sk~ZWt=^4Bqv>!m7<-H%hDEwq@e7Fc>RpFs+Ef!S zbXo~mXTlV;H!Z^D1GbA#A;5O+(`x|?cg3kZ%d(;dimWi74gHTc?k}-YnR8sE=BzVb|S)*0%KN6ZS$`eyUVVn+*VKOLZZ@UN}X92~|gR z3cwJp0NHk%n~Yg%%C2V9;b1vV$d=5POkXDS)U9X5g^*-k%f)asTdj-yTV7@=T9|%J zE%61i%)EK64yGUimXI$&P!uqzCJcg&S;lHFn@;Af*^&l^^&W~b8Y8VTmKojZYdp|w zU1{UW)iG^+WbvV; z3&lzC5^YP)jDz93)mp=~t$(xW;o)Om0wd+>i8P0J_lXCEL_UwPW)53e#cyiAhgC1 zj>gM^#UNMp>vSvF91fwOeI5^hU~>`x)?{xvBs6~E_m5jBT8dNYM`sGub@l#uH-#nMO7#X zFodJZdsbrr%w{wMOx|_~u$}a(=TDL33p1jie*(;{@O8kN9f#E?Dui$H%Zv4DI*dxY&Pu)?Ya%q7h1 z_QV((WUR(y7XvLF+zTOg6AsF*s<2{4S4IM0XoRJYA(guj`(7qGTgo^XX`;9-02bE{ zfc>TJY;qenf+!4RXTyg7C$qBypJF&+?2$+WF#;r*F(3n42tI;OVQ7;J=m0)U7PHTI znPm=QWub`LTz@|Ow4rPb&khe$Ra>0SV=-WFh6cChhwOpdQA3z#)9W?&0N%)7!s{>$x7 zLU4Y3*hflJbuBP4{)+CEkBvy{k8##HZGlKcLII`mfHefnG$UurySDzy-frt$1PrQ` zFH!SK0UJ@a5LOjB7*l-5m$(B7>ndSGnCsyDcFoBVld-IcO_%MH?!{)KmLyQ`l7Fo6 zA1w&;e6iJQEUW`;R?lC+z_>dI7=QZvD+G)|Dx>PFlY9%<0%D#Iz+%F{XLP=vb$xP> zb1_^Q1;+>EWP2MGuhXOB?|9BkCfE^RQIO;$9T~u=ak#2v?nS^f|56A0by|jjUrV%o z2Q#Gc{y)mWxDBz253ESoj20HZusQFTAa=-n-#}L4U|IK~c`aSBK5lntFGENe|4AB{ z0jzv5#Yl25ia-Zt4zM4`FG;|DoWA@wfMKzK6&P3*0CumN>?UG_bP52|6oWFaBaE%j zfEZ+^6=wAzKQ+$iu|dRZG4rhs1DJMhh5IMS@kKYwM=!t3<# zV0nj*Y*RJy9i;>ekBB`i04!a~$4|;eNZa9so-_@TTL$b?nam#_eY60E_Yj-cJk>in zJQlBIq1DuWk09kY17-MwIJBt0=;Q1{=m zHf%!Va-o1(V=o*=F(+RHto9p?)0gc5R%Bo)z{Vc!LuA}mv4D+*Nb6t&!0M(4jBY$^xiv?ewK<_P>~vjJgs z^X1h!SohX&<(o{fR%I=WvJM9MHl%ehHH86Sj6OgYj;@5$R z9Umr6@L;O>dHd?|+Bra3BH>*XmMmbJ=w|>cPx1+JE(_ycdEJ2Nmqc!>Bw$rlTBl%$ zlnX=TC}55-W0@ugBVzOOgKxo?Tq!e7HI9-oUTiq(5W=~B(wQb5n~^h(ksdIJfZY+W zBEqtKvHsP6Gytq`MSdK=qyYOkec7Ia%^|ykO?|x_FjZfrP{5R}yA)tC(dNuA8x-AUnDp$NL}L#2ndjsSKahe+^6!0t?pj7Ns?wTPBa^?}&BMVyR0 zj5!!fVk!I5+zYW0N6c1{>{}*asvfXmSJ7tqm;kK1n`}I02xC@14BZVZY@2}HzPN+k z0A!P9leeCvJRG=7U#5cFAjb-2F8!S z>!{CMnEDl+Pten!N$3|N`WA0K@*0E37Y=Rt^7K$tC4Fa^8e zLEW-MfYrEo#G&}_S2j$dJ$bQXOJU6J6aJ;{C3vCT=$T67-Gq%fm=BU1wPPJD+gFrr zKUNvQ%y>g&5n5<{b%6P=se{U^50zBm1Oo2E83M+B$U7&kgNd|ZrZLh0=Fq}b?SPVb zI*;}T#R@8yf9(UWRyeRprQYMWDQZTB$3nrv280o?s*EpOt?U@qFhssez=FQW{%!SU zf~%>w7KcctV4V4+1B}hcAVxw2%+&HNVGr%ax5I;S>0s&eI$kVq+Gc!y2ogrXV#0jF zSO6Gfq$SykJDzfAIlNvcU~n*f3o6!Mx-0qm3c%QgoOJJ6G@fvnOTKm!*?8Epa3D}3}%kAy;yd{GV6OS= z^T>{fcvKP*D>?YKs+-C?82gEQil0cr8f7djL>G*-Tk!=%<%vG_7;yG_8Z#c)3KOSiJy3BdS7vj|{KAm3iGfa#}h zl&$37>(132xu3CV1TZyD8zR$qDPrdglQb{~9JPOVA$T=pYYH)Xw$7aWE1F7rXY0+>f^PZVE6w$Sk*b0s-?b5{xj-3joGMVcI{vrEg4evy=*k#lCZ@fSDwBmV$v1%MZwp7U z@(49M!lGf4zcs)tA-u!8nGk6gtRn}jy@#=nLNvh_76Vwr5b5XCp?}fB2v|D>m|U}x z5!Gs9mMut16AJ`KlXF`!4WNgyyPFnf0LwWT_fuk!A*(?_>lMIT$v58Q(jYU==$U+htk|vq2I_Oq|;dVRDaz4ItY; zx>&T)IGPFbVy&Iyy){H)O$W0%*kBgTYN7$jnRD27kHDjvtpZkt-{>E|CSI}r{1OAk zR6jkswVvdws@sh>Ft#C0h`eKnjM6XyW^%A91DFsdos(e_MoIG3u8Eh)iAI}~X~0OB z;z+=l26B&b&P`DNG)oKoQJ$^|ta6NrdJR(0bn+5dV`qi}qj3J7lG8pX^tKhtA z0$9U3KC7(I9mPVJQ==M&NCIY5g=cV?!&kb{9s|~=U>r$N4j5E+ zhH(D?45yy$?GHwP$#`g2SRE9lN($r2a;$`XA7)_TD7(_tIZ02UL*=n(RyWLWR&51g#(^Ru&qQ&#b@ z>|6+5bAy*roo!0mQa%BTVbn$mS@Frbs&sZ0q zdi@c4>7MkzzWD#Wr%XR;4nO3?)5$cf05BUO!P@{Za-FG#FkX7Ps>R>hp%LZNoW*dxAQ_DBKTIMld{vuvvOSk;3VSv9j z;#1l0{bD`o7BB|Nc%)A3UiG+x%^F5X0(LhBm>-;iPjao!!AizYg7%?Zij#4YFk@h*lpi`+E<}>9Rdx2}U{?d9HL%m8 z%d@kyxtN^qPas)Ee9^-4fH6qouVw(NjL4UlKbpf&oI6p z7VQ-OP!k;CEv;q;8177sq_9&pu>Gh^8RKdgV_u(w&3M?dCS!4&smMPJM0X6Z=WLF zV) z*o>111b~?%yY1V65*Zl#fN5O1bSv^DfZgJfzPg(PVA*GczxWk;>3InhF!tm&1T3uQ zKRgIpoAvYa^Si6}j;zn3KZg4Jw806wZ+gItgXI8Y%PaznnODoR%w%UdBwZX$0me4M zSQ?`oUST1BSji8MNbdo=dt5G>{zVuBso=goQ8Ta}F}ZjJY+)&KFxrv@tU%iZtX055 z3-hI#mC!ZYRKnH|zc}54E(nNqtAMe4IVXVwOrC4YV9N+FTc^O2EM1$EJxS|ToS1@q znF(1#Nk(?EsR&uAeX-DL>lBQUF7Mg^FaVM)Iq0+&>-E}k$G*nkhW$cBEY^&GjqCpi zn2D15)A8 z5(=m8cyk6+|8XIoW2P-&Bn*QoFqcXb<_-5xe$KQG5BJm>t)#iFsfJxdjE@YF+L!QJ z0qfn%+rQGauA9voaCtevuoDerf5_$Y)4gc6Xb70)OXUHB%skG_>(Aa`VnZr9lR1R7 z-!#HhnY%!2l|pQyq@dLnOIXtbHd{&#cC&fsG~*$6hk z7e&CjmwmN>i8!jRseOa7Zj>%c0K>P`Lq@`68+6HM1;CKe8UwQyHsC8fACTmIt{eMp zNSB?rX?SM8{=Pjha(`#{0e*S*bt|c#Y{Pr3&BPo61uLbPqf(vIff4Mo*30RAjdKcVF=(>OR z!&N8(CWS>ZcCT=OuDWh-7Q&DZk>0?V-TB0SB4dX(?;Ky$5AWZ7zj2T~_(`HjSzKgg3MYWc z_1H`aIg}>EMQ~LBVfb}jmC|Ay>~oZ&lf*z+0|CBt0lVVD_Rh}_aH=f z)kFxQMbBC#qIauCv_xN>XuEn#v|tfEi0C9*NFJZ>@A>2T{qy{D=FYtC%)HNg&g;&d zId{$tnENBhwIqJur}GP|Hb+MPgbGOeWGTp*HQvw64{iw)#%c~)l2&xhX!T6Z1n&Z8 z6I#FFioFy+uh-fB!O(x9Sayq7&h#Mn*&->Nkw#ZXOD&!`jF7!gH@qr5ZOwEDMqT_B z8^h?%=jR53zB|fYy!h=sTH?p61S(-G7hx~Eez=Qo`X7) z56lF!BAR4~xBy?nEnw#7cerxav8Xi-#g>G(1ErR`yZCZh-#`1UIs4u@dU6<-m^^Gb zc`?Nj$!lAmh6me;{m#CKS8w^A^if@vW?=ln+~(;wRSOEUTp5PBPI>*Su$&5b2!Ua{w?gu$bS_$@GH zP4YxO)dTchiheT_pYG!Wxh~7)_)onn51PQXMe6&58`GFi+;>wY*@UW6ygXXooECd7 z>wHQ-7L9u2#YEJ*Kobqu9`HKol3n~*#ZU2}a6RxeYK)20K3{g=5e;>Dw%a6{!~F_`rJYAJgwoTXY_tuLzR@kBSK zbafz>)Z=TE$G6}D@x$!xu?`=XGRN-b6>-@~gszEI z;n}APC;Xn~t^vn)@~a@kpyE`YR}cXqPGg_0AMn`OCtz?Ryf@ZSaoXlji8ks7TQ^KX zmL6fcf~B-S6uOnH7106S-%``zvPFw%AMg^>UiotjYV*|CDYa&X3AXw^!u8(?`{M*{ zk~H7CYFp+vMI{H~^3$6kasm7W$#5=CUL${ond8#5uwK-k*T-QSya+!Fvs~CQ6ZL2_ z(Sc{3Dafql{LoJDklFNO%u2dvy>jH4bEaNiOsF(pRpYV;E(Laq`c+#QVXDd> z<}X4NyqZUGcC%KWDN;d<8;ik;_PRAQ2VKT177+_r!RC1UXfV-_==gTA%&<6G(B)?6 zlqtcyth`?Bh|=w*M^}^#rr>Q^ob$GbE`yZejD?oC;|{4m#Q^sM0(3O71qrVAv*L`1 zni(F$ayDXzpjok!!WNH~x>jtiyC|F=<4ZA+9<7bq{n)@Zg3)@EEG7%{nAwCsck3~U zn94tS!QUNVJkfKXmPJ&^wg+Zda@j*vb*xub{}U2KyC?(mFd#DVx-`}d8xL3`l8?)J z9Bf|U^!i$WAOeL96icNgQXBTtXM)iPct~Zf*sPpUQe;*=uOZ+u)a?5@+$ThBknbjUw7f2PT^*5KvSZ(dEo zJq0iDVf|l?YW@Ysh|LfIHFdT@?SWF#uEH6AFFAqK4U@2KbQPO6rTB=kSeZRIK4i_we_K34Q{HhjZQ67BW_tC= zJYX8}@_dyLbLYkK7fRgJxd`z?XFyr6pBTsL$#RjS`5nq>cdd0TmXd(DtR5n^z`gK= zzrHxTr0;NO^kJ-}D>seueGS*rJTp#~P|5R+5oRZX89oaM7ZT)1h&NSnxnpRM)FtzG zcd%uA6IlJAoaFZk4UZS?c#2p2YV$EUdOo*9g^~;4eHau#0u-t$q(sx{T?j~BH|PjD zI@PZo&t!;+p%GCpEC}Ly?wCEy(-}Aklf#EmiEr4Isi5Qoh+w^3`=cHKE_RbVoGCXu zX=$qLXTzSJ@(k$?t94RAjrm_iDGx5si3T;_jFz(Vj7;>ncse}wg5yj1gczk%?O}}` zXyC)ty3!-)pKq`-x&}*Z&CDM7iZNB{_4xanTs`5jJqxICZQg(wcBM={@IXlh_zr1Dt$= zG}YZ<#yOj#Hw%Ut;YQAwfy+<#OEa9-_YWw{=E>{gak6h5-&~Kzgr4}63$D!eC;yNG z)n)7U#Uk2Ttd5P^t?|o%Io2#w0Ga(ATD(+6~t_z_?lkvGz-8o8-3(GSG zkGUx@WEuJ&N1AfABkKv{{YYte5%l%w;T#VQ2e}Vm-AzEQ^K15#rBu<<`>=n{ogGwQ zJtaKu@ny}zKZFjBFKGIdP~GGj^^-#a91S8aT$|mVcB+`ae^+TYY&Ac;>B;IDRXB2; z?7@Sb2A7?CH~U-~;5R>_HU?!56O2{oe_J$RnAP_Zje&)gCNd`^8TLBad&=pcYID0b;^o@Y^R~BunG17NUOs=mP}3!-kTj zD0aGR-OtLoEJ_`3Y?H4lv!T?kxz!01b{SDe9k4b&MGT?Zu-KC19(O4hk|^E= zW+NxNhZxnmB!E6$3-hOxCWOuT12TZo^d8?nsJOdMbR6ruCTFhiD|Er|YJ=C?&^+0u z-u<}u?G}5^B8}^cRD- z#cSec5*K9BlRgUMz*|b}c*AT-;l!KQP&E9Sj6{{({T;&S#R#3x(9;*T47U8yBRdWT z1ddcBVDjZtIZ^ANjCxKN-ArMHkhA-EEUe6b9DdFiDcDKX<(0iPhdrk=UD)oxrx4o& z9+SYEP*(T%p4%^A*sTay8c5~?+SoPa^fSUGb+!kQOrtBAVy!TJbxt0tKWl{e z%@1V>ZJ)`W9PZwGRjw!+tv=AZw?GD4EzmGxHrlc)%9!Eqe}Ia3urxSvDZ@8M-RGNG zE4Swq%eN$~=P$%!uK3pUir(PlgNCe{<{#j@NOK35i%Q?Br$^ zAwStc0*p?3DrH$u9mHfPJp6Wl=nLMX^n$hDDLG!s%WoQnD4LmTqQ#!&IT@6Zk9qpj z>s(qNiOsj#Sec(oaq~ex+Ut!gX=17ZsYPu@U#*}80=BN>3LBNGS}UL1*MGLyOIYKG zcB-NW3O__yKN};pBdzrq32vz`92cqijsNWFG3i`y+JlThDP6)X=e{9qV}$x}zFW8g zJ)1b%)`U<4wi40O|JEk(dA7Nuj=;~J70PKg2zJI%DBDZ`mlp3@}eCO(m|0hh-0HH4Hjc4ttjddBg+>!`I4F0v>qd%h$4 z>A|NM)b&!=+olg=BGf1B0~ka2c#m367MTQD3YDW11I7tKORFs zw(#Jc`274=sOtt~eI6)kpp}Q3aH{CJnpF|9PIWZmU z_dS2it%t{wBfe0j$CFl>z@xN2VBCd2_AT|VK^xor0OpsM)k5co zZqJ5Nc@4Do@OVQ~>f)%#M`u#ftxJ46g@2~jmErDL+>jT>F$_d=Ynn;w5c^QL`0nn% zaEdxY*@&Zs#n2xmffF@%w`Y2B&me0>61H3?lct}h?!pI4 z8~GCwLd|LUSsWbSbW~2Sd3}|>Z8DA_I=xSrrExJS&FQrRwIlxuGfFl7ZP>SVE>vXG zIHoFme?V-FbaYTRQ;8|;U)r&-h5tt;krPRpZ9W1(1haS%>o&riV<2?D5#-w_4 z$be2~01HSwa+8AhljDo_q!}WxShNj^$tda_vVaqYSBqF4m9cUP#Y+pG~SLKs~zRc)C( zAGFraVx6!|u!jx8JZO!darMze*AO}M*GG}Oop&h+@zt&q`zBb_tPLbGhFfd_zv>02YUTB?7XZL}H9(vL)#D_NAt5AHR2!bA&W@NY+j8FZ@kU<#? zlwb@oUXJb^q#cD7ZuXhnQOw_|Oc2ALL<;;_9h5OauksX01gon%rgd`!s%AT)UmbY3 zFWXv9%;T4FIR#cIJYDl3MR)Y}{!YQ6?3xjQ+V1Jux+09C5Jqa2$@!44edEt=S1SUM zBa3s7m{m)v3{Kzdf{5H!qODhIbA{OnSR~&rRm(TA3V>8&4eL=p&n?c^0|S1aZI+BM z5Q?y{B#FvNJ%_T;r`=~5{BB{u!lvg?g0ENV=+B(MQ=+24vt6^-9YqnuN06_ zV(>`M0yE5MODHJ~6W^V>@IjvUOlj(-1b^&g6PK#S@$P9xr^L;|&mWddxYv96qsEJH zx@eO2fW2c$l6K55eo`k{g5e^;JIdo;W>s=K8ggeH?$zHPbbsfPMDEbBTuV;}>+!FI z$jZvTyb>(MNr!3m`NmM8Pt(NXrJb;Ns2NencH9Jfmi59qf#Vw}kw zvgDg||BQK(i<0N=DZc2?S`I$4oDUGQ8ESx{7MC4NWQZ2L=8~s5XYZf=*_azxy-bln zne*F3)IG5t`PAGWUwQLn?DM;ik9N(Y-h)*?8C?gz>s(llA#n#eg~pKaffAjJIB2aI8Fvj zs#9d&V7@R_@eMoax9FkrHP!u)1Cb?hqMRTC%g%jCDH&SZf9d=oKH5Hbiw#%=M%~MB z{=1d2!F0yYEpkGi8f(|hopst5(=vOIPu~|O-r+fh&vV;P^)0-htZcY)^?CY&%c|>4 z5062tyl!-QtuY1F+spg52K%kLk5$@Tg>K0Vvd7~S&WOhf3JyYI#t1F-2Huh0kW~Mp zucV$mX?ogNGQjOvMk7w6%H!g(#ZAs2f}H@5N@{mJwu#=~%%dLz1M-HHuWK({9YM{W zj`ny7BysN ziTVuRQ657msdTZq0V2DnW+5a|)Cwf{+JlHZA6`f!f{+{I8;TiE$1Tpy9Zbxatca?L#I?UNQ3I?ej`S3LH} z_nWstdGTKrzQi=_0O}rw^%Z)cWKd61{fdJc|1_GT{c1L$KJ|;(As3Tspdv`BtYa9! zBjBvhc>Gmuad&L$F`m$4dk9pI`pLOi|C~F%`@^?HWbQ|zPGe-_sxPUj%Nm0nIgLj# zCo!~x!+@h+6_)#1SX`-GzU93Far0As{@$#b9N>5pc3aiyEyR6xS4?X*;6ql`oEYgw zC7qme=HQE+EJoaYMFT_vJOvS@9+{E)`gPc}fY2;ZZWb+S6t-3yzDa^s+{>%;=z&v3 zN68wMKXvoJ6n?1~S_mvj+i6+bFZ~=x`)M8P8IOQGF#T95+z(bD|ltv7{ zM6XTHzolXvUPh+eJ;Q!wO1kUdB3Ap#n&V~gzwe9AFXgy>;z^{sNisQumxn122FPB` zb|=5T==j(3`cF{Ue#!dW$CN@lX>2ODG5Sv39!Few9ii1(O!rUC?v4THf`V>k?3Ofk zirW~zJUB#C5S?GRG_%XHY!g~2%(x3oj@7E8$!f@X&4oHXKZ*ra@~*r~t8w-#nEWO6 zK>(E=tHR|>qTFZ<*W&q*AfF>(gT?z*{?JRn6g$7hRu$7y*%Cp$Msao$+WiG4H)yRr zeE<*GbTx8ULPUOX@XvsvJ zk`9~$5bvP22VM5*WW~M^+8%nn7#dh9@p^_;b-kIFjsUb6F_fwDBi}Cdr@_FWGBP1V z5e5>|y7&5F)Z<#trusti3dbF8f&B6p6D*q`wWtp)f2bXZB;7xr)42=u-Cra&vx^3d z;(Pc4ppHxM&PpvFAsGd#JA`itc?o+d@B9dgn|Ft5?Ui4)KWZ+!}lkJSyPS z7BbbdASXUH@=gQXkh{$-b9l}YIDBY0`1(`pKk6u2lA)wGZ|vSL3zB+__2JZ!oxtR~ zE|(7Ei$EkK(UKw#+-_rq=4K+zI(t?}Jt?)ee`8)#Ip-$AesW)KU1M#D^e7d6 zLv^x3+Dz9CyxJu;OPx-q#pZYu&gIymnSE5a%v(4m^@d_pdeq?g-1(nos&-fO(5p1q zgIO9O`OoHP31_%!&X#ynlb!2=w~}|hV4X`SCD(z86L)H;NG=ZL*d~&@O+oX}dS4D_ zoQsTORqZyT(Sz$26mg#|iZ{eWA)Q@=e(56U$6&MZWEe5FOm2~ma8j}X~n6rUD%i>c3k3SQizZq)HPvWkZc(QHKdN+;kc-o|j z_q2lTVkC)zwl`G>#ZInalM?lX=3UI1#G~Y`Y01K%pr8y~q{YEaN{LvL^*8NbH-6xM zq^%vtBxgy)XDv_kD6x_l#}|`=1w9nG0*MLsD{UV76v@sCh97LcI#T=mzyx*) zS9Lw>7vz^&4e?%swATXVIiYLGMVOxVBj2J;E!95Q0XEj;)JTt)O49aK8|`tb^RXSk z>+!*Pu$5=lm|1G;$MR$0l&TWr+KS9VhEKDIL92eyAcEZxx(SkACf~7%O}k zfvd(U+@H<+n?t^2hxZ^(YyXJabAh60{uk1#MT}K84v8=)!T09MO7g9rm9kZi!8@CG5)=(jcIpYRB4|$?obJlncx>O-+nQY z$b0lJV#xvxCXhz1h0P>*KTVqZ+$s@OuK{-|f^^VwKTpryO8!Du$?Ml$?TYms5yoDV z_`kyD9Dv1;YkO2n)S3UX0pjNg;s6gjgzuDR<9o(V7dDmOL-p7G6`u$ejr+j;if-?6 zsrY^^aOqI@tdTKJ{k4%M&fz6<5+j5mz)^bSv8VU1)~pJ*0Og-UwvumOrAx>4L&GyG zY3g4UR*#Q;nSAboE$9SVn7+{F$#Ud)%&y}oC(zv-DC(vi2(1MBWM^tVcYTrck5GvU zZn$3jXd{5zmed&IgfU?Y?pmQm8%TI+e?h9Xu! z;*TqPd3b;B`hG3)C|P+c^>v}N?qyHbsh{LpyNSm>LW1e_W^0DE#Z<1N0eX9oVQh)B)AiDb)3!nSUO_E}YZ-=tk_KEI+pl;95yeZCx6oIXch<_IYRbZ^m- z?XA2D8SHB4{6X#G7)1lJD z;i@58lV(qG5W2;*4mm~2!))Q>h8MJB&@-(7>_gQKz!pu^3*D*x{MS1Pn(!MNxx2 z(5)`OE&O2!xPivx2-zlxlhy8lUlaA-#)CDzLpYsbJp7CA&nvhzgq9;Y_AYJYgRkwI zRFNA#SyM2PQ0_N0b!OdcyDOwdkI z^VN>jpHz}G>#~)p!bISz1~i((iF!?xtB$U_?3X~LaZsbITXOY~m|*4|KhL$I;MjB3nVs=bZ!1+bKixuw*Y~UoMK6%rSrV7l`8Tv zzR9mlL?XuSJUE2>;b36|%gx(gd(0R25nt-iK9Z4`9Qr5F2_%vod!E;Bh!wn* zhE%BM75W2}Q1so4ReF)f=;!ms)U@n(!)pf((5R3YpzVtTcg4l$)3>x^>BjE?vo>3F z8#s<>XoVH&1P=~TpVt@-h!Mmph+XsFyKb(^38>S=I^fkrlE&TImN4o%RtC#Z8f6gt z;gxatv!1M_MX&*0vzgc1FM7U4ROZ-8b72q^t*a64ribHyrfObr!KKaU0IkK-iC?tQMV*f}^w z-Y_Ebb>j$;^v7kVb@ zmm!9!Bi^XQycUWcP4_DPhxih`+K;=#dQITKINf>mvqa(2=`ycp{?);siLH_kANVrP z%YT?@<-zswr}0V7F3PJ|HPI|2%-%kIYWp5>Nl@P=n z?|{`T9gT&s^^53{DVHNbUGxyO&^yMxy01vTM0Rs^PBp{7>7;!bI_?gr(mFYRyK+7K zkuv;7)f85ZvPPPChVUHEt6Oi=T)XC4IeMqEp{Sq=UkkneM;)~#igPT7?6T^^amG7$ zxnb1$rGnJL2I|cK@5U2$3TnMyoay!0F0GnmV4B!H{Ref71v=sfs}Z_Ir?etBi)L?s zxQLJS%9H+4Ms}wvWS1i-2GH7#qZ3=t1nSz9=oP&JYLFm?J+BHH>Y=-izjVTiA86=( z=C;reimiAZ2&GnLzxAmDuxHp9*L3tpq`DfrhE+(RfX%c9Ni?V%P^Tu7&smqL5TIb( z8^nE2b0AI-2Xi&v4X6F{3hQ-&f(Rx9_SKfvB=9;&@W8o6z>Xn9S!s1Q%R6m&LuZt- zZUAg|gE)`us)w=ypR6EUK-{dCzoP8$3o>5|o#Vvude`Oa>!d+Rgw))kR~qLEu1s=^W1l$@!tzS?HY_hN z3z{ehn3Km-GFEk=8Y$`G?a=td{yeU4gRH1(W8Oc#xXPik=4bF59h7WBVUQ9FGrQaLWgyh=04j}X21LJ9> z=!=BkbUidek4hWBxz?8+UTxc(57(fC?$|pD8T31Ix_^;2K}zFCrM%^rZmq9se+o~n z(&Gy=@5w1rMGCxkYZWpL(|y82vQz({e7ZS0YlGN7B^4YFZ9HN~v(jM$3Nn49CO%T+Hiln+iI)k(-o~3N zFKe{)J%xnX$-j##1TL<`xCb)A0qi3>mj)-%gbN%H&!-- zCQ`vYkW@sp4}UG7D_p__dyomdvp_!tL(6wu<5EyDFwPvb609npZ{b9`UWwieQ;9 zp=av#cV4_qKzS2zu09z+AG+Nddz*h{<#5ie3Hm9+_jQoq8v?z+7Njo37=J4i`x=Zk-w{}lHa_YxtF z-gN&TiGVmZuQJ9%1Zjm}j=jh_fG6UAC1YIXX%Ioqr~ga1w>kgI-P`8)U-I|P=CBk2@D+p8QK9< z#tS7hFU2#d5=DnrFaxeoj6X)=+zQPG_X9T*lrf=eF$@@ELR5|r?kNBT_*o!0eDg1a zpk};GNz7L#EM6rY5DOwSufsDj8HX&ERe&;^h}{YF*uq~lh36wm_sHEV$@joQ&MnG_ ze8i?Z6~G5*6X?BAfB_lx|EpPzXOc^Ki$MtG5E`CuGJ`j23HHwj8vm1*loilt9Rh8i$VxTZXuole-fM zInE)4o5J@IrS5cq93aC2#!;Bh;+dpD2&#+`{Dd%|A74*jo^cOVL1;e9i6(&Gs!}Zi z5CNn&L0Afm1i=|Sj_rT+QT(U1KhZ6TLboL)pfVVMpohZ$$1&tT=$-%R-i)^gL2ZRW z&+u;<=){{Q`#(J}>_O4=|25+d5ppiZvjXWd{|EY=<$o9dqmL6k_*fEC&%n3`LdoI> z@&z;Tui#DNXDrq%13<#-go0U(R~ns}RA-Gve$pIfSU^KKShfWryd4 z{zQ5!o)DA{0+dM)FrQ-abVrcoxAa(m%Ea#ODPqDvyErs3$lsJDim@~cX9G>gV-kmN zi`^DjaAHh2Q9$1cR7L|JoFS-z5I82a9;mnlZH90iBO(wgx5pZoJV*FdZf`hCol%M+Endzv=bfY#n)z z5|x_KLj8|Eh>~~PZV>}Br)oP0G-dIrZn<*JO#tgOoPJI6UTocqBW<1YVg3rovC5@lxJLM4m7=u z3pN^)>6?Lx#?1Pr+)6VZI5U(N%`J?+$3=tP{T4XUZQoj{dx2IFhSPV%k02jwWQYNRDrKT2Un4H;59eXq&2X?X{@5$r9!`$S@>DQ6CpbT|6%Qx(0 z;zZJs=P$(EbQ{D?gMjii@h&Ea=EHv8$zyamweA|rQG$LpoxSOZ{Ugd+GIqPCSl^)I z?9#}KUOiik`oLHlVVN2-@#SWoIu;<$o;>=#M5p(@QgC|$Dk|jm;p}0$E&Q4b$ByY+ zQ97)3E^&x@JJcSFwY<7K$yrN6n%b{*rSp{>S+Hcc;13VK|C{dolUR;A{2a|ZEE8w^ zHgCgQ-`|_Skm5d=OVt`I_vVfb&xbQlR!O5J8#>WQO*BDPQ;U%M;)94Q<@axuD|9U? z^4>C^@WbXbL!#RJcsI!_9#sAMb`M`{bU6gqWLD60MYYooMyR{WFN$|Ud0Eo~XOFyz zL($y>Oby|lzNBYk0JI&*cmMr@#kIG^j4JIcKW{lo0OhmIsa^!T#f8pxVulxMTT|y8r@dJ;i9PyREsq=p6oL}wBW3;`w|J} z8l)rV&x6pW_}MB(hIO6R3Eg3w!E%g!cIeYYKMB6wQva2Zw_`hbgXp(cXd^Dx2$<``~$wtNd+3G{B(j}f>@O;rCcCZa&$AS zWd1wHA(9>}aL-p|QsUJ&Mzjg!^f&ohVd#$I4+@qS;g$XFRg5v#wziYv5q{7A#t_Ly zzU)JFTx~Ut3{M2|$!^p3KYRK`=7G*76icW5O!v)qvdnDf%@I!A0w;-1=1$B5*HM`1 zNEPrWSusK?viX;cZ#lQEr+-?MTo^qmaeBP$K{?P4+$U9RKVW3dc%oToV3`&K3iEiD z-Bv_q@hARG7nIk}X&xe;jz=Lm>Udxfz*v5zHu|^&v_RD+CA3;K5 zEKMp|HjxTQHi&o&*)+v~M{e+(%5RHEuGa$1tZyv&lQ|!=C`5;>1YHzfsIUaD))Qy`X2%76k@@@yMfvmq)5?g^ucu_FU^K*`eK^X$=PO*mD80 zzx>$SfR8+)-`P5$TbFa;*P+%fWJUOi5~J`m3(^YVS9AlZ9Te{X9Og$L6x7ga{Z{}0xfewl8rg4~fuf_`3OT1RcTp*=wwmMox+b7>k1pP>}(3;Wv6kB3P zJdidCUMwZ>{`G~a(P~c|6A{9ul0);rkQVJtc zop#o&z@C2M^bE2MhB$8dPGTOnQaj@cuBlpKL18? zFcvHxa?NVZ!w|0p;8&^xW8ZF*J|y++q|!tjpUt8NWSGM_!%3un3|*$y zVh!fYLU<=6(_~TM3DD^a)Y<_{;wOtWYz@uiY9Q9`_0)BVL|R6*oz#9?eB1ga-lClIEREz zx0jdRmocRz@!$X9W{4Y!z~FZgyWI(m`5I0hS^bI1yk~G|faA@O3|NY;c_A88)rGc;bF2&kh^#_;J%jm`s71GHFOqmPG zMvob#G~fbiufIygZ=ye{LnEMWNNTv|P$1bIXk{Q3PS-V>o3GjUXfd~o9j%z@dHk6s zGd=31!|&q2$u8cynJmEaNjTLTZiY<0fs7fCNMBnVBgK$Va~M&ytQ-}ttBS77E^7wa zr~W6k0rrq)cF}lM>nA_c1>VZ9HcHXYhBiq_E$8*Bv2a*@ z`Vp;mTKS-5cj)gZZb94U&)ct@W-JylysbepK8i*&J7o)42@=lXpLEXi*Fg+!sze7* zJSPuI+n_(wue5D4zmzw`Zd9aI81@DKe6>@39C4)=Ds&?d%F#u$^6{`wZk;@cT;Wlz z2jfa<_~zY5*V1)ya{JIz*~&9Ny;I9VQD4z3=1;kdL7xtUm*<=<<^p*{uZt@x=d=?- zjiA3E&-dLXUimyQt7>X#Urw7Y`>Z+mXMu(6Pp-j|9((}i7%w&e^BJ|PNfnH0Z#(C? R{iQFSwz`2@jS7JLe*k6pk0Ag6 literal 0 HcmV?d00001 diff --git a/src/static/images/app/update-img.png b/src/static/images/app/update-img.png new file mode 100644 index 0000000000000000000000000000000000000000..47c75b3a9773386ef5688c6dbefc2a4cf6df6c64 GIT binary patch literal 11832 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 E04_OZ)c^nh literal 0 HcmV?d00001 diff --git a/src/static/images/cart/empty-cart.png b/src/static/images/cart/empty-cart.png new file mode 100644 index 0000000000000000000000000000000000000000..288e806e280b14c19382dd99591e7954413fae4f GIT binary patch literal 11728 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 literal 0 HcmV?d00001 diff --git a/src/static/images/cart/short-cart.png b/src/static/images/cart/short-cart.png new file mode 100644 index 0000000000000000000000000000000000000000..a19ef2a24f4fae55cacdcf548756d6f0600ed18a GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s69RlfT!HkU0*4hllz|S?FA4Gs zW@xzhZ9>8Orw{Z6*4t>PyuNj2|CW;YKwl3>p4CfcRAi;ZMi?tdi?ICJIlsG&-Qv>v zqbC^{7^6I0978;gpS^N&Qj>v5>qG7p3R+y-n7TeUB>#W^zbtl*lCx9bRqp*y8$%8~ zY^qr<&#r!_JmNvn39GjO5nk+dY}qd#@dQt_*|tT@G1Kv#qXH+}_T0>)vPqE%B@_5< zUwGGT+2Sw6k(5Udo-9%+5MQi$qWwYJce8f^mXppTXs{WcS#7F%tg>O=l`Nwh z2iA#vS*Xq?xMXPpr}D+i92<+sEQ`D?%3u9$7SXYWn)U z*9GcaGv9tSN_f?sQEfVXNfqzb{KU1(_FsAJHRW~X9KB!H)ViI{Gaggw-Mj4CXTyG* z=|W#?uErfV*>v?mXjLfpok){Bp#^!8>(h e?_87i`>**E7~Fn2JaOg(r5I0FKbLh*2~7apWYjhQ literal 0 HcmV?d00001 diff --git a/src/static/images/coupon/coupon.png b/src/static/images/coupon/coupon.png new file mode 100644 index 0000000000000000000000000000000000000000..c538a5c69f715e85f18a00afc7c716f9bdc7e1be GIT binary patch literal 1542 zcmZXU3rtg29L8?}DHg#gGAO24C4|x17kxjpEi2HX0$vJ;K+DXCoAZIQE{d;~j4>aS zcC)^wuGLN~VVaTY&>-t{3Udh}PBTDI#U>}?UI5n>tSsYYR=8A2gGC-lwI1g0mY49->M{KV~@3-FH9w0U1tw@lWy=nQBE|+o19l17G|F% z-hXdgMV9qhm?mc=ZRZ0p5^9`LkrAaUvMe-L+b~L@?R??|>%ml6^chuS?~_VuM+9xW zw&p$sC@GU;knQ#Q(k;m}-{#AOn+?^fix=pQM0YzFyfe3JcI$NH=-@{mmd|(0Dd?ub zItxC_>|hdJiZLxY90ZD)w!19~tDsA))Q3={t@- z%{?|Wt~JKO<>eb}d)5s7RC9I744Utok8f>k)Weg)hnt^q+%sq0_g;zZ|1QD=jP3(a zwq!Fh`*PR6ud2&v@~z#ihhJ)s#znigQC=Wv;6ww){`L`i;_dUF|4i|?Yh{mt_lM1Q z2h4tE#8JSuR>jCvs(B4Y@AEjC&vkCKyA_npcAe6ksa1j+P8FRfitO)> zdDslRNdSQR-XW~Plthwog!Dx=C=J$;j)Q%t6j1p49>4ez)zcc{`;MxP9Ij%`rP0XE z>rbA%ae7_G!Nd(Vt0`mDbQdJ#*LfkcxxlD}6YYj0Osy$>EpNU?+FWTjyokr7^vFH4 zDIqM~FfYZHT6Sly`^40MOop!5w(~8oWgZ&qoBwL==GsP#&ZfKhd3AYHNT1zr^(RjP zfy-U{El&oVH!`QhBi`fo5r%3+E4QBg~-6>%hdg5 zsP{+z7iw+#xvP>t)qavsILKGt-fD5B4X*(C2xo6QQ=9&AkgWa^wp~ZWe`F6J?VTg< Qf*%*8%PG*D$*!*d7l{g{&Hw-a literal 0 HcmV?d00001 diff --git a/src/static/images/coupon/coupon_no.png b/src/static/images/coupon/coupon_no.png new file mode 100644 index 0000000000000000000000000000000000000000..cc497a25ec77679e32ed32bfdb997285a0024f75 GIT binary patch literal 667 zcmeAS@N?(olHy`uVBq!ia0y~yVA=;{pI~7Il7D>vZw69w0X`wFK>Gdr_fMWYdH($Q z)2C0LJ$nXZ0|Aiz|Nnofh2|ze6&xi&e!&a^1`hKVy#H`zgMu2+I2BJ9$B>F!Z*K+) zG8yu?USw((U!uUs>EXa6R?yvc=1H#g-OWPhj+^b2ywAMve&zmy)Ai%`)%^VQH2Q1p z$KGFY_BE6DJw9mus`|O~*S#QtAD_O~KX_ehJU@3w{GOj`we!Cv*S16S=>B^3`r*&; z`0e{&^4EMd{tGnfKl}UHKYQ}8*DYM{Ui-Bart<0TY3qNxR_rg>zd`=Bb_;>aC+x%b5@qc~(KRtc@|H0pBc8_mw zjeqevFupbxrt;^yr?2Y-@9E#se{=j7Uwmy*-}-&$uK#ab|NU&uw#Ri3>jb}+?!Qp} zS-zPV({%h&)+5ZlN+h4B#3G~{BeKXJhD0?gZtLjR4{B@F5#_!AixhuZq zJNI|)-y8QG4xc~g@#^)Tp&|BmNBoX>m)g7fUu3~Se0uw<)$7}z$JgHdx6J;-)$?C~ zA^%r?PyRFGeX+k=_sM;|di^U@<@EPa``(E^{Cnu{p}IBiKU`IR{^QkapyD4@_s^tT szY~8a9vJ_f8y384iI0fW-(Bv@t5^oSWjyWg08B#+p00i_>zopr0Nq1~g8%>k literal 0 HcmV?d00001 diff --git a/src/static/images/coupon/select-red.png b/src/static/images/coupon/select-red.png new file mode 100644 index 0000000000000000000000000000000000000000..7948aab0a60f00b253d05a2f38d216312a7de7e7 GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*Fy#v;dzFS0MeL_9!ZJY8ucc#gZVu zV1|z`-byH}?fY@X>i2;q^Q%*IIG7(ky{)bsV9sY~Z)tK`&#|(Pfq_xm)5S5w;`H3B zuP-$z2sAuoWnuXoFz?c@SGRxfKgo8s(IMs4-@iP*tJi!8T%ElzVxF;T)?FtZJx!~? zljV_NqAx;2B40=~Sx-EcJY7h6s`&N0eiCm>iq9GA>Ajt)Di@Zw?x4%rYCRR!lU7T) zCWjvT_~?a>=CqTu(^dFoY?*a}n6`X5k;{HjtmIIvwkS#N&t?ia zQW}1JA=9)nH8xAVzvqMB@7`=Yp{CjRz>Ub`_s<=AyIlRb{38L2lm&BUemuC#+S#0y zNp>dhvDAgmiR|azxvjctYumo{Gsn%#9*K9}SYLVP?I^dwO!)rAZ;wrt>$|I2_?Ffd zuD!BQdq=(KC(dOT61Nub^mtNKTO50t`@!j{lj4Hx*X;eG9PR+1G5q)AIJn&NIH6pa13W(*72p$@=JL zW^LD;8#5Q0dwxrPJtNlomrlu2843MI6Z|h;VSG^=72-1eNi{?4ua0Sq8Ot_l`|=u0 zQMR_;QIQe!sJyaneU*Yn?F6<1@4fvCmI%8ZE3VhGe-Xl8XIp*mhWD@i?;i=g3=(|z z-j|JKSKxsU*4!3*o3B1hw~|%5tF`F%H^$yOhc7AQzx4@O$l2&2v6M|OVPVg_RacZJ zx35n!FK}7aEbNxG@!CP|sG zf9gx3ZdihmWOr?3&&8yjV#emjTWlNpE^b@ZvF>-q=JsWpeft?A+=Tc4^78@30)wZk KpUXO@geCxq9M&EH literal 0 HcmV?d00001 diff --git a/src/static/images/del.png b/src/static/images/del.png new file mode 100644 index 0000000000000000000000000000000000000000..a05fdeba65bb2f80f4903cae11d3032dd33b89cd GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/src/static/images/logistics/complete.png b/src/static/images/logistics/complete.png new file mode 100644 index 0000000000000000000000000000000000000000..4f2d2411ab45c2913afc337451b964bdedb889d4 GIT binary patch literal 1566 zcmV+(2I2XMP)Px#1am@3R0s$N2z&@+hyVZu$Vo&&RA_5sH7#GwBm;rF(34UAjob9T1b;L zRYdCxF5A_l#%?KMqpi)%bNnzb`y?}&d7jD4i1`1MInO!g{toxv$(?f__>D^%l{jjh zh~h5K4PvH7Y-*wr~~ty(kf2`8=*u2ovh^o~pbvX7_!x(6MVSpv^wI z+?YjM!0iONrnW443e1q}&h(AhH>PUI5V(Mjq;sRHt`lUf!XIlHbgmTsE$AT;Ie2V) z>a!rRfeL6(bUA{&0JH`o^slpuJ~J90O!*D)RY24_5e!>^%{8M1(<{b=cMm_mce0ve zsG38&-Ef;2(+fCtLGz~$)$EF^*4+Bv$@GV(D>+u2f!sz79|mryE1rLS?z)+~DsAw2 zXCP{wh?r0x5NiaPPqm7KB9S$#MkdoIekkWqwt&?=J&Vj`u0@)YfQwArN#o8ql{D1iM%Jcn|8&~EaS`0Ns`$6& zSpiQ0YPi2)i1RBCZ!-mhAXWFEm({xm?x{0eHI=|e6VA&D_xXq|vI^wZ{{=Jg9dKp+ zIm<|OUnU&t9e-}%TL7#zQS;3Xkmr47IM?DvmZh!D7=WL{Q_E-)yak0zYWD)a`oDw%721qpvY z7Eg7L#8VH7@Dy-1z>sf>8{X<&^X&=eSzuRy97PqFb2Fgkg1;#KQ~2}P_S7DPC-5^9 zB1c=?#T$>=y{8JMXu{bnuoDQ+A6SVc$7~?ixA7GuY>C+?mli&bY)=g-`q#=aajUs1}+pF%Tx?@0C(yAh-D!Ph~y0zZ`*<*h7P z#|z()=zbbVE(G4oYyd8O?VbV7`H2(N^;vb}9WOk7O~E!2-?uvtb;;v8L^hi^zJ31} z1w%C1y-7vmz)}{bb9v@m0pkM$Gr*Yu2_Dgz%r5VlWF($?5!eP4*8E>a?17X2hj%(r z-Hmej0^tG9HidCeMV3yzL@e$9nfy{6eXELv#A@iPMoa?PExGF-Tke5GzUh z#SQNm?HxE-%`?y?Uo_$T4S0@)ABX4DG_W&&vh}6F*R1V!!)+K@E3gh^z6AvYnYc6G?z;!L zj``0(8Q?46eQ|kr36Z1TE=4VB$jct9ZBOfBX!XAAaS6_j+kqf$nBRwf0r3e8_dZ0K QRsaA107*qoM6N<$f{nB8_y7O^ literal 0 HcmV?d00001 diff --git a/src/static/images/logs/logs.png b/src/static/images/logs/logs.png new file mode 100644 index 0000000000000000000000000000000000000000..2c43ac89c30d6ea38604ab8c0152ed9c656016fe GIT binary patch literal 11388 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 literal 0 HcmV?d00001 diff --git a/src/static/images/member/add.png b/src/static/images/member/add.png new file mode 100644 index 0000000000000000000000000000000000000000..a54b6666ab5ad365d24d833a0cdba82ed00cc592 GIT binary patch literal 650 zcmV;50(Jd~P)3l;QuV)E@yTNB-*NS^QtsJp_p(y#;BxcEV(j2@^u1d3xL5bGQ|jJv?$T-N-Er^L zYWBKV^2K27-*N5OZ1K-$^|w~<#$oN+ZuG)l@XKWK#$oZyW%spI^SfB@&}j6)UH7q4 zcUw8_*lqT=R`AVc^2A^6)obnCZ|~4&^TA#7zg+dYSntzm^t@W}%4G7#VfV9C^u1f` z-*K~(PPC9svzAe{j7pVuM9{Zh)uU0BcSO^zShbH!mUcsZ$$PN?001O(QchCV4f1tjLMQr>Llt;`&u65Y^NTpXvsr^L^DbzFnRED5Qc_@q)>4H6&^ZR;3Z3LKW9( z+Gt%S8^@TU$9#%XO6)VSNhG$KAUYCg6VW>vvi0alkPS-*w$14(=dhOp{FTCR%aU3> kX$TetzrGea`p+NBH*3xjXB4N<;{X5v07*qoM6N<$f=t^;4*&oF literal 0 HcmV?d00001 diff --git a/src/static/images/member/member_1.png b/src/static/images/member/member_1.png new file mode 100644 index 0000000000000000000000000000000000000000..427d1c6622d479c7493604da7d692a44994f530d GIT binary patch literal 14744 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 literal 0 HcmV?d00001 diff --git a/src/static/images/member/member_top.png b/src/static/images/member/member_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb819772e67e0f6d160f770f470d9134cb7f1c1 GIT binary patch literal 21534 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%0A5Vd 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 VN3$_&*MI;3002ovPDHLkV1kNWk=6hJ literal 0 HcmV?d00001 diff --git a/src/static/images/member/red.png b/src/static/images/member/red.png new file mode 100644 index 0000000000000000000000000000000000000000..9a2a228a3a00e4f324eea6919dba4aed0a0be2aa GIT binary patch literal 1808 zcmZuye>9VO7+2g_`-zr`GM5xAuY2I!v)!pWX zN-INkLie5u9n{w|DC;%Bkj}*h@p44GHt3uQNNTA1XgHDFlt=K!F z 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 literal 0 HcmV?d00001 diff --git a/src/static/images/share.png b/src/static/images/share.png new file mode 100644 index 0000000000000000000000000000000000000000..be2b5ebd54284e384ac299b815c8b49034fa1026 GIT binary patch literal 2223 zcmdUx`#TegAIHbUjMaus({b5FiIvzsJ^iaoq`vZs;v`2QHXxPZ8~H$H^wcmV)j@Amq%v$2xtfTN%JB06$H`Fm|K zW~vPGXJ{Z&wzGxhY^<3deaq(*u=mYXTULqVLbnP1n{ks~Vo;!$k2J#tHbxuJ8O%DUNoKH;WD z^-%s`(u_uO`U1gr$*sso9%v)SLHgv9#{ng}bYLdmd)STI$`#x8uI2f(sfV@%V9YsvK zcZFLb?E_>d*Du$No)GaG>FI;)PtKnHLe4F*rIhc3p+8Vv|1Psm>U(8BuR}<={faM% zSXaD$|9?dX1|C?)URzl6me0ofl$$pDxM^>RLDhU8GxwcMS5)>k&S7Vx3_l@%P14Qx zlLKgrC#@^|Jo@=Y3#C<79(MROlBubGmZV>XqZD=3!a?JsYag);*up2Kw7?XFqf!ww znerWfT2>+3;1#-a`x;}ghzg;5Ipi^{ypB(p2q-u!opppiU`!hpXyGxWXM{Eex$#XNg;qs?{>^g z#21x@ih`jkHTr|(0DN4f>#%tuN4dsf{mnZ1NpPbEeBm=x*)u$1=tp0h_81pk%}j&N zSbWg4n*mp5*VR2f%4MpI@o83buJycF%%tqxNh zI*Y<|Oso;~<-#Lh6w_jpIMd?aN<<3dE=IK4|3G1$-jTe9` zONKp0p|F~&Z#`w;^DTokNf;Ei{?=&4f)8J!Qy@x&Fw9~F1vn8zr!>gQqXv~io3wY# zak|4MwxIVV<);O`q$S%h6bgIQIkiG?zO~3x6vyNkm~6DOqvc$}WwA_SVsGqS-bo?| zWN=bs{BUi9&3g-#Cgi8khO8#5s=_O@v^rLuUFdC}@AGEB(gdHwE;kPSq|!oNp-}4J zX|*$)Fy35D3}-cm7cS#mh*p51!f9}*5U3u&f!6prd5EF*iAQ>&u#`ul*u{KN3LNoS)5yp=uDWM$9ae)u1`joBP2 zxYwonbWRDGqMYfE<+>IX$LjfGy@`|o0sJ*As1Wn2-NY1TSU11*=)e9b?pUc;?2qJBdzAb%=f=UG0eH9er}LZ)_>Q}Ch^J?6BFZn*gN!;ooPrZz_BNG&4Gc@~Z#o<2uH_?N5BXK~GH zw{DPh*V`5hrqUE)p;|#hrNBaV2(VZ8&>LY>0F!;ZCS)Ys98_;xIXjjnbDa9uPgV@O z{^l@5UG@@pQr+2uZM^&3#)Dly@ioR!fVjS;8TE{ei2W5q@l8HQPEt5lL!~JdlIe+8 z)ah8N>Rpze;Q*sb0FQ*VKd^YI6?8^pGLgSnd5;b?`1$e8AbA-eh)x!0$es@aEDb3`A3>E)98P9+ouD%m`^ zpaXUD4X$O()Rrm4@bCNxR~2;?QH?Oc_KdMO-_=M=Fw+w(VCzWdU|?pF1O4Yb_iu*h zuu$o(%19zUT#X9f2)y#?(6(yL@$CmmfycuxXE#3*9_*(#-RyGRd|~iB_eE7!&|}49 zy+&YHl-FzrOL6a5;yH^9YF^J;Q>{t;$&3ruJ$;jDZJyiWU-C$gw#T1mPg7lQ^4ud1|qE-dp)COKFJL&^MMpXx24o)7M zHd`s2@ba2nx=WZuJ)JhAY+rxG9OHWf1;28sDpm(hrypMVazxXLNGAlu?Ed?9 NoFzMwDhXHa{{ttAyQ2UA literal 0 HcmV?d00001 diff --git a/src/static/images/share/album.png b/src/static/images/share/album.png new file mode 100644 index 0000000000000000000000000000000000000000..580c6b2ae8b3166df571b9c6c5a29ff64ffc96d4 GIT binary patch literal 4823 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 W9;~g!lcU^*6+p0bz|~s#lK%?@aG&o0 literal 0 HcmV?d00001 diff --git a/src/static/images/share/code.png b/src/static/images/share/code.png new file mode 100644 index 0000000000000000000000000000000000000000..24695f187109d79a3b2f27c4479e195927eaebc4 GIT binary patch literal 5660 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 literal 0 HcmV?d00001 diff --git a/src/static/images/share/logs.png b/src/static/images/share/logs.png new file mode 100644 index 0000000000000000000000000000000000000000..5def3751f9d1e81b92a67931b0ad113a8af42353 GIT binary patch literal 2927 zcmV-#3y}1QP)EQ~OYzUTXAckn{_wyB;bPSko0FGey@9`0tZ~%~EFQ2R<@E2< z?B%ZA&!E@FmD0e7%(#Zkwu8#GX}_gWwUfh?;q}a%u)x?j`yk)(kTe+P;t&KOQgh`cu9HxCTi*YH7 zZYYLn6MtU-aY+CC{`UCyzv|rC+}yp>&8XYUxXZ<*(!`X{zO2Q*p}e$Lw3bwvg(j?n zGM#-Top~LWaTk?u0(VjXdP4wjH2ClG>GbjG@b2>K?#$!d(BRw0;@ZX9)VOrj}Eoicyq+BY z?(XjH?(XjH?$&>N@8G85K%D5KK79V!1$)2T-TU62`DDxJ^QUC@DN5$}V|;uB*q@Tt z8}r7zF-P8*H|C9bW8T>JyfJU=?~hTKh#;Jw7SXiGb1@0#uO?N2l*8eOM4f@gB$Qqt z&`aEkMJPx|LN&$xu1u~k%u$O**Qh;yx}dNPV;hLE!Vpo4fH2|f*TUVx=04dmj%P~yT8&XufDm${o7>2e_TNphX z(=ddMoN^H}e-pd63RwB_Ohc!pEi9F<6l=|JfR*{Wl(NZpB9Y+kVs(JwJ7?(dW&m9+ zq?)5r1iFaDZ-3XoZtJ3?t+N0bJCLl%P7rEoIaW-;0|3W%4=iVsG_|h`U6{Bxpjh)7 z-MZC6_qc4g8l383Di^UpMO7Pd)geR91q1S8&;YiDQ8|29mqu1U0Dz`XO4~K>$4v%n zb4W=ptIKsJvmvJE9}P&6ON08^Z-r(Oq=eREm{jQGfzH*sv8aiJjldeW%;IZbM?~(3 zrxhwx=>7=Mtm|HZcf4U?Lc$nB0HFKH5+%ls8;(wI8drid?sb1RVzmE$0C;$5@PKWU z{RT6I{VP?f6tm(4K;^e9D%r(+6bNV;nF|1B4jx>r*xx25TuON39b;CZnc&$R4qU9Reir?=^2W+fccjf&N zz{**-Zrz-KtQxTrZB8KLgRY&tK7$krg<5SefGG$Ua+nCGF>x<&W_XT%+ovpA^8P5W zcXxSGQqrwuXb~P*G;qZSrSvDM^7(ym8=)ua&E#P}~aHp}{3-a;0bh(ReQkUf2wF;u4c5*O$Zvu&n*u^np z&d_-$ z9azhrvD1x=FBwTmWMZ?B!!K&1eb+3eB(7o-nVKYVtrE>MdyE%J2vMwQ`yK6BH%_rJ zA%+lyA6j~xD)ZP^k6+uoc3}kJDyG?DYTl#vn0hFt{x*hju`iNi3Pmk&q7mKDRjlOH zocxrw%H4}GOcQXTkn31r&~xB)nK}(~h#9*9K#5HySes{}?eRuiY*tPuX3>nx+1P(! z_wHlYZ+>%ARng&$e88DCYt|MUT#U8i;@Gic&*tWiV^^l+Nzs%mSftBXMaA+;F)@R* z{ZPyC)b)V_%lX=D+Z7WNvy=M_MHzBCVW23NF)EV#J1fJ!N5wB*9FI}9?Y``XD1N45 zDT@53{y+1^yfKb9=8bt{|9wnOAT-S|3I)T^v6st4_J?fyM z-e04dPI5<8{(6!8*JGl>)6KX!5t|ej-Zr#liymdGo0QE)6-P!jQ+BOhwnvMWZSsa+ zm_!+bxK1oU$yCKCkwA>=G!e0RThH#=v>v!ruSv+dR`p{iCkk<~K}7vjjFJn4MorP! z(AlO!@Dmz`)NT{r$6(YM2+FM(C851Zd-cmn+H`&2N`4is$FI%ZdYXfh%cT#GtI+qKzvK(6y+AHsl9htq7qm z#M3eKkm9r!rrT_lMI}w-$E>^snrU^DJsnd@f}yqAV$fJ3S}f4ThYu zzZZLkw*i1=v3{Xo7wXq5*nXmUc>Rec0OkDf>dL&mI002ovPDHLkV1nP6>YD%n literal 0 HcmV?d00001 diff --git a/src/static/images/share/wechat-friends.png b/src/static/images/share/wechat-friends.png new file mode 100644 index 0000000000000000000000000000000000000000..d814340fafe6ff1fbd754dce291fd34c790c8092 GIT binary patch literal 2273 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 FV1iY|!&CqO literal 0 HcmV?d00001 diff --git a/src/static/images/user/address_management.png b/src/static/images/user/address_management.png new file mode 100644 index 0000000000000000000000000000000000000000..a82386fea1bffc34e9a02ff065abe1d1ec5ee445 GIT binary patch literal 776 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s53?#3m?vesha{_!qT!Hi-eV_k^UVrs{{u%j# zNCTh02EJg@`>z3n3nhWFe+|5TTKWOS;Zi`sKVa@}psaon$OMQXKx1`%|7rtOdP7AF zy#MHV|JV2Wuj&HP{zu>UkG?n1E+G1&=kv?J>z{$|A48vCh9L7lz9~2lbf0lakY6x^ zo#GGSrJn;X%nx~Td;hGe1ePhymwP)J(#&|DA6=cJA%6e#`hqAKj@P?=JYR0}HMqK0 zKWa}LF9QSP3r`ov5Rc<~r`;@CY#`toon-8mw)LRIo8(>8~>Yv=X6V6{7GpE#oU@=Td+TZ`vU<2KmP`8KV9Nx3_H_RofS zop-cMI^*^-S_dvN->qyB87}p6WgIhW-_v!^9F}$*nk~`C{e$n~^{gMwtDMT0pIEZ% z#**DPmK;7b;UIq^Po41m&(mrz6uq-|3|0(q<})i-G&n zwYHweyty6frAnr2`_5JkF`UW!tGsL0-*-uq^%mEP&U{_|EN4!-uhj96Pv-vURXg3E dQ_D8>zvV}xP_c%9WMGnE@O1TaS?83{1OS!GY+3*S literal 0 HcmV?d00001 diff --git a/src/static/images/user/avatar.png b/src/static/images/user/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..532b568180690d982e9f599f4d24f7912e8adb31 GIT binary patch literal 3782 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 literal 0 HcmV?d00001 diff --git a/src/static/images/user/browse_records.png b/src/static/images/user/browse_records.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9c44018efa0294f69ebf9edcb9a3eb9825436d GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s53?#3m?vesh?EyX^u0UFNv%l~*f01ngAhZ=k z3Ty|GJ`fRx{SFHI9YEq>DWIS*2m#gm3vUPM5(X;X>L;`XXow$B3MeAF6|7)8RHf+l zKvAH2AQxn;zv%u@VW3eUc7W&(AR`dS=>E~i|yt_G=Ct>$y_t{-Xo6j>aFvWYiIEHu}zkBuOv{eQI ztQU;VOy*hCx$67jmib?cOI2ra(sID(E6ru?L1kV2RZZCz0v(}&+M z)uFG~w3tY{JKz1X#@62I_~(A^1wK!Mzg&HzkXmkAbTBM*(N2C570cS`U;T0!!d4$t z%w)`T?vhbne0Xl;&b{xxoxVJMPESnOj5P{BwIm&kzLmbq%r6jMscs^9ug~H3%z1Xc z?)@e6H|^9u_&vSC{VI?3{1l7LhpH`kjHfMm!l4>IJ0nW?Ij6?TSCbs|r%YY?J@eF} zg}S@ijAZ@T#Z3L|?bHru7FK>e@aLi4E2(_p?`P$1TvHQ_3V$l<%VJ;jRcF0-&-xse zw7DyI-lr{jD^Z?wadoaha>SHrkGuQpl@EL{n;){WcUM*O*>84HNd?Ay66bt9pC@lf zJT6tN5NmhOD5YKVbFTcd9@&R;j=w+GU$E-H)AIk4_P3}0+-cP`bK)^$`*5$v4Vj*i zJSW>E`pYAK|9Rj3E-L=1Y`0tTMs{)AjmoQKqqp<@|NdX+LUFswW7jn&pO($MdRRAH z&i2ZbibXjuIyZd!*bv|PC1$qh28~VA;<(N2q6>vD&2GAJ^0=R6p~L>kZ0)C?3M~1O b{)d@E@hRV94c5uPB+B6F>gTe~DWM4f0hfzW literal 0 HcmV?d00001 diff --git a/src/static/images/user/camera.png b/src/static/images/user/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..00862caa6208e3fcb4e5aed07260a5c99dbd7539 GIT binary patch literal 840 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!CI|S0xB}_(=g*%#dlpEZJ9qBj z!Gl2d$&)9~fB{4bC<2rMl0X0yhA<%P)2B}ZMS!w!09ODJfhYsA;kqE~Lx&DQ6adwq zI&})73nG>AK-U-OEQ69DzhDN1`vO0hKgfjH@_czUqxfjO^N#g?I^yT|?~aQ)vt{MH ziZrvEm;1UjI36#`GGM(l`AW#?YYYrbCY~;iArXh)P7BX_Y#`v!t`)X^+S7Z{N!8`g z|1FOW+!E^Jro{S0{lssT1MQhof^}MIibtgCs?9%dNSN|2kz=xE*qNdLwfN-bxALh6 z`J!)}YATHu&#vEyq-X>YE zdBI2E!$Gt6&r>J*$VE!r&I`U^e=3J}X=g}tjibEIdW-F<);%jvs%~)VDVZRekg)IW zeUa~{clcEAzO+T-#4c8g>(L+AcfFeWeX^n5PRqOArJ~QK&VQHM9CnS@bj^?I_mQvb z6684wr)}R7kIuZXw{T@%gmn^^KikqUxtlta8 z4y=hk5Y!=*v@txlY|-Pev#+EqchsL<7ME)EKWOuI^|#*7+N}cD^?sT#g*Pau_lO0% zDqqf&#VXc@S4Bm37Cc_rQEB+Px#1am@3R0s$N2z&@+hyVZu(@8`@RCt{2o84~|RTzhVXJ&WX-4;s4XbTM=wL(iv zl~iL9qG^Pn6jR+LM7s5&*WP$T;)Q>N7e;SQ>|#<_1cNA{@}Isw#sX3bwb+(^ z?QXl6J5F5b4rdx6O(MiaV_Dl(=pW*t+kRjFb>AG5F&k|)}|^saw_qj zHQ~6HjcN_5lBtY$t%=3Gd>M^bDqUBVOfvLM>%ws-5~M@Q*VQ0oy=Bq36bh=ihk2~{ zu&HriXpmrb3P>fb_yqR&OMndWMSR=@f0W?J&lp8#d|Kg)KE z4x67Nm*kk93GUu<=PEV?r87#GbEI(i&az+}#?4-R3rY6kd!_3+Rx&wfC?XdUpVimz zcw5Pc(sfnI;h;ZaEF||a7uW7XK&RE(v^Kt}JmXojP|y$6+Hy(`hXUp7!*M02!lBYH z)EYHYI6}x(meIJ8a42vrSG%U<_MpE7K;F+9tQ|;?Ru5f=k#H#Br4&Dy56EQ@d=w7( z4{CMOUAyQw8aMy|k!a#)0L>;sb3BsA^YZaFU!UIohL3BJ?%0cvlFx<0?`kfxUQ14xJ{ozO&*LzdC z=h@TXMcoeNHFNUJoZFUc<@NM&d}VXJ|>x@wkXW!!WNQ?d<1VFDuU0O|6!zRlZ^JD zU$JfUpA0Vl#Qz;P?)T*FTV#Ze6dMw(Ma46c>OVjs;VyaaON`%4RDf`Pt%bYfLQu0^ z97ZfB&iP3)?ve{3U}ThU_Q759Hy5oftlJ@1=AOb)nk_|^mq~bTn+%U<^)8hyT`Dsh zql!oK$?5DNg?HTouz}K!=`64=CX=En;zs=y_*I{XdRa$xcT|E&xKZE@;1*(L%B=GAGQ8W+B-IbuMcOht^#& zGv2)9H1?UE!{wNk96lEK1t6cZ2*#d}*GcB<%48-M zldL2XO$-94VLfjlNu@KDoyST?SPx#1am@3R0s$N2z&@+hyVZtxk*GpRA_L^zU(CO?% zam3*KyE)l^y&QaHGcb48+llZZ{=MsqlM==hI64wdohp^LWCMQLy1^s3gMsG&R60zb zVDKBalrb@88R2KX|7v{K^joa`GlYh`O7kZAoD%$v(8%_$h%Iuc7I7mEq2 z#DI(hms>ml5NMBC%+de}Ra<^Ju3$ROEDeB#uk2FX!F0@78z8=~>{7}MO9P7O4$L;C z!TJf@IZOc<05It^(RvUQX51>$2GN&F@MGCnvJna)06#cMw=}@)xHNEzab?WDkn2gE z0f4MbPQqbzuzar&(U4EA@-M7P1M!x<031!-%QHxchI~fF_Ov`aHGe4(kL(6;z$C-8 z^e*KIOc;vS3&m?eG~^&}z-P>E{jd1e1b|-i6gC};r5H$^lc}+@GBx2dDz4rt0KiD>z3&vTpMlebINt&xmWd{#XM0cl1pxlnn;%k~PY}?qDIN^|-j#vb zym8UKb97%>R~4QApNsY7Smk#B7zgO(Y&4lDGy}qN=UpQ2c^`}&y5a#q8RkzwV?z_k zfl;r))0K@S56=Gy%cjbOgVisas)eWGgp2*fR5q5p+bpOt3(*IfM6b;)L;!$=;y1;c zLqd2{?lwn!%qnVYz<_ZYz$FbPA3#09cx2bYi@`)BEFcm99@Xfh2+a7xD(XgZaFSHq&s0 zaxY68d8Np2bsjViN41boRXh)ZZKq|xn>ykFhXxAeg4zkj8F#ugzW0l6L(85yNHpeYlNVcp|f+mS8O}FId4S&XshVBG z`+9$NqoHhHXhO2BR(aG>FoK#XX{D%3ceXLZ5_}_T-NK9xfFDQkp}`D5rPx#1am@3R0s$N2z&@+hyVZssYygZRA_fdEG(o+7Fft)%7U_(vY9fASx6QnQIzo~A*_fr#bSmTnfx7Q3XMFAbFTY4 zZ|=MAp8L+5r@T+y-nsXl-|zQ5f9^fMb03r_@qbfRK;PBCN?m>g3>Gk!bDDt>AgzxP zprxpaEJ$IB_m1yCUGZc^=M=u^0pN)^?=GUQNK^n{@C7#l^_ZiOD3-V=?8g^-8`U6y zE8_ZLmjNfabOvk^meYM?m)eb(CO_ ze#Vc&KgA-T55I@E2Gm)Hno?=tJ+NZJ)J5PBzW5tJd6s&YM7{P2Q5Jy&@Csj8TS(nz z%r&Aa-{4`nP!;MuUWv+UX6kYZB|4$6%ibOa=IP%cDo~BB7T12E@}yyX^aG>7Cw+Ys zxQ|6HRgSru+8o;>_-_KnV)*VR`_wczXz6$i^@fQe-eU`JHAX{@XF3X+La%^YUA~DL zx_{`YG@sEaycBpZ}IXx#knAbnM>v5 zf-rbTaT`&G*`YmAjMf7$h0#l3Z-E4c(E>adItGAkQH^(F=J6kaBknb3=S1JRTj9Q_;i?|O6PE8`Q0=S6zDmw!#$Wv$#vw_nYv91DZ@^xH^ z`CzAkhd4+B1PS0yMvNXE+X>TA)91Gca1J*clQN(SQ+x+*JLoTMn5(CYPbE#5;*UA- z8A^u;*6zSxtMJ!lYaC}sRw2qivet@+^_-8>fO=8xjbWe38&O{9z+Wiyfp4hc{sh!G z@Hqpu2k@rRQX6C25oiFW>he>}-iym;?aQN}4Ok+|&n#`jkPTR7V`$reRib=1q+SZ> zL?vJ!P;ZyokoxyUd9|gc$RzOR>QBrMS01x~qnMj~?|6-R?amFbt3f4<-m{f+(-McZ zLd@fU`@2wE%Us*STfm+G`Xlo^_&g^KoX7k+As5Jk ztj025@isX7Fh8fK_4&R4`&QKRAnT5xJ|dI@I|%L|XLO1HJ*XZI>ea9$EUCq1+C2g8 ziF50eA`06B0((avu+hR-BWe}T=C9e6=u9#{c#Q!kF!Q6RR4{(`mDVvL6X$Q%2GnQ_ tqjqcg{(V}7n*T}QGUlRIqC|-t`~eHTX956ePksOZ002ovPDHLkV1h1^({%s< literal 0 HcmV?d00001 diff --git a/src/static/images/user/empty.png b/src/static/images/user/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..63f1a0a40a4046f64d43bf610b9f18505745460c GIT binary patch literal 4493 zcmV;85pwQ{P))GAv)7a+1$kx`|=-1ro)7a+R;OyJq>x-GH*xl;c-Rj%l z>(trj+TQEh-|O4u@4Lj(*xu*b-Rr~4*VWqR+TQBb*yGsV>&DL8+TQBg-s;@o?AqV! z*4yaO*5ujV>e}7v+1~5j;qKhu?AqMt;^^|)-Rs=p>c7X;Mn`~^uiNJ9^xEF)+~Dgh zX2a9i;KIq)W{}gb!QNjr1-Bk^ z+2iQ)eTbfXiJn7t$l~Ym#?9Jrl+jg#&V-}bs=eU4$Ki&PrsV1K_t(SX=%vdi`ZF(&Ee+pzQoeX z(cjkB;lj+{zQxbL$I-{o<-*9(hLfdof0pyt!H1Nkhm@vjmD+ip+FOg+bAOhHl%+TZH8z|IyIUF`1g%hKJ^*yHuv$JX27 zwZ6>T;O4^0*y!u=*4*dW-sAZA`t$Vn&(+_#!qCdl+41o5#mm%;n5xIl+pM<4nWMD) z{QRb`zIC46@ZQlWXvv_ex|XxwhN#}&*ws^o)joLBD{Ib?ov(O>o95=};N$4{=GjwW zdf({x>*3rB+ivWFGq7-noll@Z;P2`1Z-azObyTj3E^2-ptF%!?LV} zTlwfF-G#k{nprkaSrtq3j%dJr#aP!Q2eDTs&_Z!Ty-Xw`#)itE9BMN||wR0Ksq5$DU8!=%Z~ z1hdwZwrX3EB6tuN^q?ZBpl9Eh#BbV6=FN+fmm!_sQRw0Q^S*B$5}{TcYCC(G6a|mA z-RvMG?QLyG1ElfokH_P?TS>vuI8_SL5vSTo!&?zIlz#cPICaz%Cw`VRyuj`_wTTp* zHUIF3;?#c9_&SVpmL`4^4RUh@DQIn@BeI!{0-M`6;?8Sr?+D_MbhNh;pU>y>`FuW~ z&*$^`d_LbOw{hd<*3s~v=9Nr6v2))eYVVQ*hgTijbaDk5O#)YUZr>1zM4BF%?b^5G z;Hr!CVgyNJn{|B0hINqwOn@5uV$8TSW^3W}HVGQ`V$3};X4~S3ft8>UFGldh&h678 zh>@VdE=J%g9sCG#lAwVu#`NPmaPVu80PR|`eFE_qW9`k4pjsxlac0^U09ZggV=5hd zTzj=naOU))5d0MyM?4^S71y4C1lLcmUkhmEWKvi7-Vu}F&0yCx7-1QylOUOn?;Rlt z`d`NKP^NzCU_t0wK9zhL5tN|+RU!rD>bVZ)grGpvGrdor*EYe6Xi^0`&2?A@!7VV1 zs^@!?&ufw3#o&MjWjwGBmV+fNpK^F5njG#v9m;rP9ZUi{s)N~RV(&gF56*>V5}_tH z1DmSZt;;6X?o+{zE@fjHm^IHJA}s?4?AK)z|L#Llyp#I$rMGVDU^Vc(Kxv!_@D{{jgxaoyS!=;n znp8@VQF#YpPcgwu7@>R}cylfb(jw3u}Q_9);LKu3r@Pj*O3mI>ISAX_>TAi@RatX{rFg=*!ciU~5R z^C3XXNL`GPx{@iqnht8LECK3f7x2O?6cZS#>Ch{cCt#0)2C|I>L^Mpm-$9ow6WBfy zwOl4A+j>aE!UX&s)GkJXZj1BNf0gY$UPy$(1pFORl63;4mz|$#kr~brp)dh=2Tfum zpj146xTv@ay|oT70au3s2MIFx`xoV8w#So+K$w8HLtbJgpmLyf6UWh4GC+MXKlxOz4P%&H~EJD^{w36(UY7=}@sI-FwcL@YmT(vLB)8D4+^Dp<@ zn-Cik^!8;R$R*h2V^*A*;NknHIaO6Z$R)VSEIBa2P)|l3^@&dKfPNM@Ex}M$<#O79 z56A>3iF4qz1U+i44|D?hVdU5Z+5W+MYEB}-$tbht%mjVc-<4lI%WB(zN^oZvc_TV7 zLEqh5pI<-8j2#6c!O6>v;=ly`cYAYc)hEjW>r#y5zy!L?jn^4fXPMv%qd77`&$CzM zclUCtuC=~EZ%l%R&&z}TS+!#5uJ$)SeDh{Y{m8=p1ig>-|9|e`>(94dYNw&7415$N zILl}bOi+>OA1pt=_g<|SQ52VuGi)Uumy`r|Ou3qAQK$KMvQ7|1Dok zr!O&@0~6dX58ltHhD=XE;Y!7k0nOK9DXlxlXbwz}&GGsBv>)2$6|=PFpH5IWzvhBs z^7j8oV9c-iB23VnUEn%ya{^<2?uA8yYpkJMsrJya$V|Hv81r+A$s3;Fz_M`rbQf!c zsHb!Be5kNFL2q?_t|U&d8Z?ovPR}A{r$q}xNif)ufK(JGI01%4c;O^w2cL(J-?Ri@ zg?Hi#(D4kOC>vL)w#5+uXnKMHVS+Va7U`NjosAFI+|C4OS|LF}cpNst$=f^8r$C;V3xriUu?w@`vF!US9W0OAVE|8V`cCBcH*VcVn{>6a}kbGmdim!Afj)R4PCWEKTS@Y+8cvf&_=r&;gd_kP%$%F(3*A zam=PIOC~ou!GK^DY{e??1R_G4%W?@Ofhyp|T1Tev42?)oFs%Z9A#h$GB*cp`8U|7a zn$4TZGuWOWuW-B5+)k{~0hDQikCUDlkOIgN8Ei>#LE%pG0&B2N04Q@7vY)v^AR&kv zQHE6;>`ky|-_ackw{tW9gn)H|KnwerNwf1{aOZl60F~M6cI1hoC7>;+J@Xj zpe-{UhDiyK;YZr0EwUNp6Rcmk5l0E!+Ongg>8WTBb zVl?rni5@i``~pT#eh5zcrThv`f$o$=EYs4`{oM$s=g-XaPl50-h`>Jq&*?j5wtYZ# zkk5hr2{MkrUKBr(GsvA%JL3GPptsJ}+kaUMCJ>i_E*TaahES@dyd30Z zH+lst=ZPXv5Ms!HEeFX=;dJ0cQz{AYars^uR%S^eXrT?f2M4B=q}pM21}BR(sieWm zWO?ThRv!2f+=VzS16^_2g;WU3C`6fyGr8%HF2IJn;Rq(NBWRA%mWm6h5=a;%jhbnS zqA1IpkB;k;W%7(^*2vs+@GWycf?1G| z`R7LvRDoqNm?vHWVf88Go`37?BdpzKk6_e6|Hq#|&b?SgK#Rc{FzEJCw0_P*n2`u3 zmk-z?=o$sI7k&Ua=69pJ5Gn@mVNX*Y?eA3gAg?Cj2qt?+V7X(&rqavne(<}|O9&MM z*h5#j8TX6mIrK6d!JPgeC55k|69ryxL*Dq^Xny%1G6K)#i-?MsLeAF0dlJDJ1SXUF zuv?qXpUl|K)w%F0h~WEhIQ;(Q_palxYj+ChaLR_8o5k?v&mRGZ&lfA7U|ZYimC@nV z6(<)b!`mlMBp`+tE5BfqH&DhY{;6cW=QiPZZhXDC`11US4?H-E z@AQS=;!W*-8D*$Ja;QSqJ`Y!}tb+DHHBJlY7|Oh&k32XcZ{#X`868`h@2P{P1=(s2 zR5E-4Px#1am@3R0s$N2z&@+hyVZvAW1|)RCt{2oKI{NRUF4Zzt=yMwqiMnNfSw|rUrNs z$t1bAFeiybsyb@(Q&ZE_vNj>j{UH6Q-4C*-hOJ#dOcFGS-cL$Aey3I~)xNX(ZCcvYrIOIKOy7CPs@Kk!bW*C6!cUnhuS=3idd{ zE0xsaDI!0RVp3+K=gO|4+zT~4GKw+|Y%8}8-%zdtlQJ`Xs+`M9HcdmJjkLCp0pq~t zavBW?cYsNZJt?P8FP3s)Nv7$WBTv)BIKn$6$qP19NNQ4IvH4;zDB3g)g*s_%{|uLqqXCNhC)RR>xzq~THD7!4^<>A@aQ48 zuP#VI)6_a}5U10B6c~5!H!pcj({N-T$QbqgD_IJgLB^c>&P`6!G!p4T^(0=$VZs@Z zmuZoW7<&g0^|XE1hU!U;M7naFkbBtU42^ngp(+nCiA@i$`+Nl$RcqunaM(i~z3%;w zW-HA4r0MYRcAT-Kmn_gCN3xc*$T6U(aG;8WT^};Y{(9O?NAZ5}eKprWTB6b0sQ%=! zo@Q)0nynziGz~`vK!>xOTU&%b^OsBh@|qySjvwiynWhI1J_cG;tl|Ur{b^Rm9ADN* zf6|t0D41_x!3CEHqm=z-T$Kk!mddehwYt?hznT5!K=nubSS2ex`GXB8o5ToeF$ zTz`PHCr$jAHL4@l{4wB8ZebG4ujI^w~D$#=`_$VtwcHvL7ASbmp%u69L_opb{C_(=&_>gq|8-=S-$AE4wp8x=@T6o$b1c* z#VElD!p-tU0nqTs&nUb7)&n@}UsXRt%uQ^zAo?~i;I}LQgo_fJe!=-xZO$SAF-_?M z=|k1Sjg>`Wa~4+S2#n16DyCj=eR51&T1 zNXej_iQZV1WLX~~&0qN%5~&utu*OxK${P$ zE=hbkZSpB|p|UdJnVfWf%w`yX`{bSXR*p*+KQc^{ndvz2y%&1Y8^)8I8YObx^&^e! zOX5}DtGS$vHrc6>NY>ZSJ??#c=U5%vTCw|&7^z3c`0r?wy`IH zsY(?EoGJG{3)0Az0JX`M03eCP0{01nd|JM`Kr#iX(P9mQMh2MLXMkBxBiB&5Z8x%7 zl}96gS_Q1j)Heh)Rjb}A5v)vo57Nj9SpjMt2!nitKXVTAs2rD>XtWlU*EY{>DD*fR z+WS1ubGvkRP7;Z#r)piHkx{t}d|NG1&$+w*2ZX62OI-CE=>Px#07*qoM6N<$f}a=> A8UO$Q literal 0 HcmV?d00001 diff --git a/src/static/images/user/evaluated.png b/src/static/images/user/evaluated.png new file mode 100644 index 0000000000000000000000000000000000000000..4cbc4b213d4347ce2ce0cbbd2fd838f4693632dd GIT binary patch literal 1002 zcmVPx#1am@3R0s$N2z&@+hyVZslu1NERA_Zd^X~2U?VEY?2lUa${|$<&G)=Q2rCcPU>&!fq(RYiPpF57@ zBpC@IszkH`U;@A{Ge345=UdvBgaim7s+y*KVdjh7a}ME`ZQB>(8cow2mQrp381q%P z0ZiGpy`AO-TCjqMRth5DX6Dy%jWOf_paS5%VHgu>UJ{CcVHiIFi~s-;nM$dz={cXG zTCMIi8jXXfwg~cV0I!Hh_$NJI%>@7cEP$T5-!G32Lg+ulxUi}M%iLVgG#szs3Y zP^;C(rIc$pCD>x-1&^R*S$hKm19zGEgWFyK@J0wxkMo%*ph(newQ*)%0&vrlxgdEDwry|gx_%qL zj$1WKL@#D$W-bS9OOHU7ehnOVCtcUC5z($&Rnc{QHE36=fUM*_SeCV?lzQovnfX%C zrZfS0$pgUb?Ccm3J@m>%^do3fih!cXE2Xvo40}GLl=DHm!qaG{RG9`sh)Jc?Do)9_ zn0aAiV)JA{Hb!zahz^b z^#&IaeK!o_chEO8kNC=&@_Z*`7QoC+0FT^a#r?&h6!JihF)%ndxJ*P10J4MW4iVib zgFKKU0`9TloqD}KzrVjf9A$HKbkyG5+zfWDLXjvy2vO~HHslIv6-lZaoY~1-S?CMs zHU3Ef{y|&l@p=}Rrs>acp^O%lg+9aG^0P#0QXU*BQot2mCt-v9|b%707*qoM6N<$f*?n{i2wiq literal 0 HcmV?d00001 diff --git a/src/static/images/user/fan_list.png b/src/static/images/user/fan_list.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf5151f7e212cc0bd9f0d5a3bfe7617142150e2 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s53?#3m?veshIRQQ)u0VSC>+AcUUpLvEVzEEL zY;TI$z7$h131pbbKQeZL_&NkhfYzkDfKhExoKrKwnPqqQ=Qz{Aa3ubUoa8USt^5E`m7LqI+-#_2nu)06Y%ScU_ zhvV5i7hQph@>MpU*@3DbdAc};cpQIw<#b-Nfk5j+=4VMwJ6SR~Onh(s_S8JVO5&rPvRO>rl>o+}N)N9^< zovlJ!Ue?`Rzk2zLCsS|DTsZZ*6lYaU=t|X$XIHJBUH4nc>UeQ=$@vTXzR!f6vsYgb zmgtH+w`09!*YqUiwT!Myw?6sh9nE?&c+XU)e{M_f%70L4)ij^9+`#O_L!PFtSNEoK z?|T{)$$WR7*q_g{LY@f}&CID?a58k-zmjU7B@^AGUJ8GibV8~nOxaq=?K@}UiTy{M Tg5M+neaqnK>gTe~DWM4fvZ}_u literal 0 HcmV?d00001 diff --git a/src/static/images/user/fan_title_bg.png b/src/static/images/user/fan_title_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..75db33b2a4f70c491162ab4d76dd7ac83c44016e GIT binary patch literal 2006 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 JPDHLkV1h$c8r%Q? literal 0 HcmV?d00001 diff --git a/src/static/images/user/my_bg.png b/src/static/images/user/my_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..49ac8b070232bd418b87cbb46181051c603cdbc2 GIT binary patch literal 2428 zcmd^AX;)KM6ul7;oJuPeQxK@7R0R}*DN_gt4I(H6WmaSqDgvTqj2S>Mt5rhLs<0}O zK&iySf}ns1A%Ie1T}Y4>6T+-jg31sfBq3(%)zzQSeyDw4?tAy1ch}zM?6c4L;2^&Z zYt7aI05k+S>niSE(v%i#&})fb-}_chpv+j-(@ad^WCzU{th-%U6NoIce= z|I>rs!Sz);3ai3`am9OVwpQO(Jh?BftBK1Nt8(YA|64z~&khSKXrU5EM&29O&(*0f=koBFFG=N0qzio?A`( z0GRU|o56T{ZlmED8;cVFkT(-(x3b05=KCvIo2*3qOYk4JJG|(Iyf0{Yzr~g-?>C%t zhHdv^Z-tPW){z1X;4LOnWFkjP^hskOK|vT=Oz?E%ip-e!VuvU>4uB^6L|RA)X4WKp zI{=YU5KV0k-DfKe0V0zOnK^PA6$Lel;fgo#-wKoS^G-FCb5?9P zPaoglH>E;9eSKFUW>ee-2EJ#O3{)C(R3i+@Tmy^Ti#E&5DS>nlx#L7dOIJJP8$nA~ zYm`7wr#{k+)y~A^%j}pauGq;?9~68$#wwj^Ug<4L9bTY#rKf4z&PpQL>~{oC3#KFT zNaoPCgbd3LU5~|s1@~D^HbldXav|#?+GN~_&g9Nl*M@iAJ_Pw|ohXz!UZ2APM|FKO z&mA?Ht-^LowE60!MV?ESpbG^;r5;`t_>+fQnLb#%bQJfoy~l3^`h#vOjN1a~R0G3; zE$vj$9JDVnc;)`(vWS@BBQe>Pv1m{hFDSgE@%1{oh1(s39hF$Q3h@%F6&<|)U|UC0Sd5Ahbx?& zU4&&=IEL-{9vw+%NQoLD%GAZ42uE0C86j0AJSaPxk-sQv3W5n)d(AI3maOn&{aojK z$GP;*#3h?Ss6}GN(2)Cch+m`>Nb8ajc_vMT8%v_N%iX0+C| p6Vh8E$LMWc1QoN3(oa=C%?BO95qbsXF>TPVfxmAMuF)s1@Grawd=dZv literal 0 HcmV?d00001 diff --git a/src/static/images/user/my_collection.png b/src/static/images/user/my_collection.png new file mode 100644 index 0000000000000000000000000000000000000000..48ef4bccd63d7c2119abed170b43e1c3d01a1cc0 GIT binary patch literal 2331 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 BS)u>{ literal 0 HcmV?d00001 diff --git a/src/static/images/user/my_coupon.png b/src/static/images/user/my_coupon.png new file mode 100644 index 0000000000000000000000000000000000000000..bea5ffb5c58e1fd870319e90b10b9dc65b300337 GIT binary patch literal 766 zcmVADL-L_O6PI4+nLH7QRTHXa|Efg)szm;(L;a~k_M<`(s%HPG zLlLQE5U6DOr$P~@Wc#N>`KCh=Z$uEPWm&3R5vpc0sbT!7L;R>i5U6DlsALbJWAvm# z-jFx{szhh1SrMvc|EfeKs$>7EMG>iH5vpb8sYm{*L`11y5vgVVsYL#%ME$5k5vgSn zsbvwUX8Wf@`=>+tra};0|NsALs##mb zmY3SR;`HoDzKS=vejBW3eyUdc{{5-o$fDlEkJq*L(i(9X@o#H^>Lp_zqxa8gc2L?{ag2LuOgu>b%8R7pfZ zR7l6|)YoppFcg4cH;XJFX(*IEO84G-#VMsg_a5*698J>Vlv+r~?hTdr??36t@;PYO zAa#78lq?Qc&#cX0j7^P=om%CDiND%qaN4*silf${E;g2o4wXZ6iC%@c~X5UxLk>Y zLvOF{Iq99}HCuf2+Vi{%K6>uc28`;C%}$Li9R&$RR{FAtzRRZAXy*ghQ8$T&KJ_f# zVGd5)?>(x^IDP$f79BW!#&e~86tx1Uvt(8> zFO<5~pHg37q4R1aYZBW>lxp1{oG!3_|3W1jNHxc^ueSP^Rj26<|AA>;dQF3mx(|)^ w|GNHgs@ptrS_lt>!9g7qCXO&CqG7;30c-vUv_u519smFU07*qoM6N<$f~h8LdH?_b literal 0 HcmV?d00001 diff --git a/src/static/images/user/password_modification.png b/src/static/images/user/password_modification.png new file mode 100644 index 0000000000000000000000000000000000000000..1c302882061242b40b9124add92a0eb044643d61 GIT binary patch literal 681 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 FV1i7W7gzuQ literal 0 HcmV?d00001 diff --git a/src/static/images/user/pending_payment.png b/src/static/images/user/pending_payment.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e8f57e515702419ced5117e18eb10dd2f3f749 GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^hCpnF?l)`iYMSyH%aR?h|CJ;c_KBmXrfHo4l%N-7a9ZHLaI#XLnChv2WCOxT^dhnunRU<>;?J z*H6Fpdw=E9l!$QgM9GXF%Zd|Nu8L-FY;G|5`>Db(Ro8@DBc(3#)KR>! zvHm6~Wcw*%Kbu9n_>=8huhpGwf5UuzU82nn=hX92Is4T2z4~&_?!5n81s?`^&40`j q6u-EnEZ+U~@q!0il_y^R!F-e>Uf;ZY=P_V(GI+ZBxvXPx%X-PyuR7gv`mpzCRQ4q)fvynt&s)G3Mn%QY!XstBTNlR`+E?V_Ye z(uEYkA|!#3I$$GL`f-BGi6G|%(E}C43l@T)_)+-5DW^|n-IcvPb9t9rcVL^{nfblh znKy49K|+KO3V_1^4goj-U=BdYGW`zVBY-ym#sJoc=+`v2w4H(wVlRNx08Ro3PjhB{ z{{~-um=WkU8v(dUM8f%D z6WD^D2axm#YP)$3;JOp;2IoACbW7w!bi;o67i{H}qy3-4QJXn8!B+L^yC@{t#d5** zxY}*-JOF8oBC9!Emf5G{@pzxE>t~9^;%Yvhe>>wUd7ocp@DTu-jFV=wd9+%s zUgXZCs_Nr@zi%WG33jwoxyE2_5~pM=8;!=XdcA(Z)(wS1>zbzB>-Bmo;c$3rn{+T9 zGWZgJgR_8bn`kupzEY_ymdoWe89xACGx!RC{W1pbh}|~HWb$RZ-CoROG9RY+`^w-N zfIVJ-*@vPiKQ&D=hQr~5ZG3Kc4rW+7oqjqRjTWYXJ^R&>NaS;=RJz-0wN@2{kMN0N z{_0&9S0E7B$Y!(4gTdf_JRbickv6lqX5LQRZBwb#i*C1jM^)8N52w|igTYOQyW|4?v`khOLim43 zSYRIN{67{gI1hLJ4gz*=gb@CZK33G6bN`1u2i)KB*0~*gALw0h|F1Bv1$cgG`way} V5tL?+ewhFO002ovPDHLkV1mjzIEMfL literal 0 HcmV?d00001 diff --git a/src/static/images/user/pre_income.png b/src/static/images/user/pre_income.png new file mode 100644 index 0000000000000000000000000000000000000000..4054c89e9acea86ea4da2ec6b7ac6fab159a89e3 GIT binary patch literal 1447 zcmV;Y1z7rtP)Px#1am@3R0s$N2z&@+hyVZuQAtEWRCt{2on1^ERTRhncZO2XXh6v!^a6|>X7p{}|&R5Q7f8+;jv*Vaj` zfd{)Pj@g}-C%LI(8+2WlmY+8^qBY7o=4fhN9#w(?pyjCLCsK}NZSg}=@`{ATWmuh( zBbhPzH(U`M_TOW6m|pVn2rap>eFJp;Ebqjg#K2w{!3t>FvpmDv_sK^(ieg6af21N9?BE&DUUGn) zd zbjiELYp_2r`;OzR#qTQKa}Q+U{YUTo7CzU18o!KZIPUpS(Nc03`t8vc+-{^a+|mFyaJijk@C5+liq$JpH+j#q@epfY$gzQRQ)_T%WJF_dgIx`K29tpj>c5q?} z2fhorla(AY$>X!L$ouSc$aeqlI-Xy>%26NOGdzmaHfL`nHKcv=h0$?z5B(Lg-F(sS ztzR3m{ouqD3XgR~TAnb-Z+x3hbvwSI?fU3jc=-yx1=(a|*UEHkO--5mzir@8RA;6| z9JlB1Q8bnmVq|&-O&2erXLvN?n7k1#`HRvLl+KgOo4V{3bAQ+WJK=FVixh?M?n0zs zD_&W*nmnf+LM0!_m-7Y7%LTbo@>(HO@{JG^kXS*eM>FnVyl7*9xJMCj)Y} zZzi{%kdoI5;Ws|k;z!q&tD@5YxcR0&cH#_z9@}|JGEUyo`L&~V!!>0{ieF@U&TGT6 zaPY)ZXSAav6QCp$AiPh0AwLIi6+IYn94CuK05EWU0$E2pBhKfFMY`$2iSR3#hv0C? zygTu>^$b#;su(gmEL8HwWlKbcx1_P8P)c4fW;%8hD!C>rU1WG~p|Ni*Pl?R?QqRvK z!+VGR^Cz*h+;YYxRI;o!gdE?ObjgC~#leHKc1?tjE;8CXadz7#q~Db&Iu!um)gStB z@!ECqi5Tm{)8)T9X)0XuA2%kD(e7+W<;iJvh=({iK}|*oP?8Byk_k|f2~d&=P?8By zk_k|f3GkHU!;-cTh{jWr-|RKtCI6L!?Y3UVQ<8@!r%d;1Y(CX3p&EXWZJl*W;zyt3 z@%xryf8HwmIC3p2mPs z2RqM8Fc3;|S=kg4rsDt>OMUdm*j-t~GobUIqWI9a8ycE;CifV9h|{aEv-|?@z~TSi zM~goPMsOnxWbrOW4#qh=vz_~csTB%^LZOIR{s9h2I{RI#Px#1am@3R0s$N2z&@+hyVZsS4l)cRA_Z5FpA&@h=G|! zu$wGmXR0&zbTN}A1ZnQO^PXvSew(@PzH`s{|L5I%-@G?4U}MQ;nf!nq8QM|Y8!c4k zT3OYQG?Nvrjc%IyxQIE4>fu$VTEI8J)!JnFgEVWVW?*=_^rVU#2YKqQfyy;e-l^Jh zC5^hN7&v&oG%n~{K-}y40%Q)+8cGc8LpY4GzjuBKIFrWJ=-WVHx^xV2mq8u?uB+>UvuT&Rvd*8s4x_Xp#0 zx;=Dk8U{9$``$pJ8`<#r(<5MxDf$@5R^UOP4cZ7Szq{910G2?0MD)Yjx$?)}8GHi^ zua_oJeKV21a9*iRmM{7Q`b{Bg4bGkFOHv~A8Q(}R0|%Jjfykrbf|4Qy-$*Y5e|H~9 z?n&R8Ymzt(= z4LF{5tt_TcD|Y#pS9esbZ5yW(8Pv+cfG+&gTZYZ-noqx$r-2r%`?g^P87jOn`uN)3 zTeBg=(dz!c0O2 zQ>csJ?(A?*C6nC_{sT9%Y^D(4SozjPB(pzKGP|^bJX^GO2Iixd=+hc-EB7HY13 P00000NkvXXu0mjfr2)kI literal 0 HcmV?d00001 diff --git a/src/static/images/user/received.png b/src/static/images/user/received.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0f08ec27c54d73df5b43e7514fdc418771f5c5 GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0vp^MnG)9!3-o*G;ekQsfqxf5LX}_7#J7;13-3AP!NO% zWWxbOBqSsRA`%%H36}ygfU^Gn{(gRb5J8{`a5h{SPz{g`R0fm|FA4Gs zX4vnL&~SdfLclMpkmm*25+`P{UElTQ{t^@A-gZqv?oWr;Rzw;4%Isa3Q^UZ(7~tvR z7~*mK>eQ3dnhXS7n;S|FDHtm~xKsQ8KmTrVIo2yGZ*J{=HqRI5o4+oFU+3^pAs{HXzUb&1zko!Z${v~|Jsh0K1}S>JA#oWOdl zQ}xw8#l8c2=6pMy+qO%wp17ejea7s?N)|0-r8BzG4<@@{8qv8J@UpJXS>)x{@5|6$1ScW{Qh~y zq~?wJ3r?t;_gpD9eUmjIt1AA?iO+Aseo1H?UjA-d=kkMZkM4giuBGQ?_S1Q`H846D NJYD@<);T3K0RXX?@nHY} literal 0 HcmV?d00001 diff --git a/src/static/images/user/registered_account.png b/src/static/images/user/registered_account.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8eff877a4c6acc1eb4a0f0db081b03a2529649 GIT binary patch literal 1024 zcmV+b1poVqP)Px#1am@3R0s$N2z&@+hyVZss!2paR9J=OmQQFLbri=x@8=|RC9s>VfgFMuG@GKA zf(rG|VT2wkiLf(qz~I63Akjnc;zfF~odM3K;qJNv#bVJGk#FPfo0UrCQU}`^5xEG2s`_#e1lPLpo308) z-i^Ntoty&%L9hf|0xV<9d)>HG2>`|cRP}NyLSvQzq9`i#EWoyH3wR|K@Ld|hX0v$( zKtx{cSwNvs5a4#)eKr-LF;4@i>dl@7luD(Ygvc1vF82QgRee6TzunEYs{jBIS&xa& z#7FW-c%C=FZYZLvKOTyJFbqEf?gGaL2M6c7*nSQ?1KhGKYaxw*RGH9q-M3ZMkGrcP z@?p7LzLU&PO-&t(qG%DY0aW#kAPB05CIG;3oR5Kd;7IJ`PZ9Y8$R%SyLsjR3Aow~h z?-OZ^T-QAzBGbSaarzdKeqeyT>0Cra3WdVW&CShU(r|a&0oQd$fG<_G*fM+_SOfkN zkv>&@5*P(uV0SkXtcGEDdSzwh?tuh2j`KR;1H-_55xEdW(fJ?6O1uO0aSIk?R?U( zZQD}S`PlfZ@B6>?>O2h|#&ABLw_}x!TrPK^7gEP@eBdPjRm}s4$VZOjBt^>QN~QAt z9s#O488^!ZxpWEQ%Vz^m?VHN+Po6lH3_d&p5qT|cUOlLD0N?lTS(Y`bs-toF{uO|# zevyo2v)Qr4zI6w(0LGY9g+wlBzRTWyF;P?0000Px#1am@3R0s$N2z&@+hyVZr<4Ht8R9J=WmrsZsMHt0@ueKM$64)gO&LKh~9%jwK zTmoxQ*js|kp}N<}ULq3A(Sw45L37J3{<|n%L;{ixY%*O!1U+~Vln5FOA+Swy*~1=! zEUuAUmKplXAwBCb(=)S~8TMk{rK{`v>b=)rR~1$8e}|qV*?WHos7X2@scL2w07>`F zEHkqoopYhlXlzW>K$0ZK%hm5XW&1SON9}ElJn&Jii9~ zGCe)L3D9gdp8;NR&Mlc)4Tyk;lFl?5jjJOY@ZP^8>9gWBD+qrZG$u)s1vC2wr~;VT zyCHy!S^X{a)}L?p~s06{rD`r0e5~1B4K6 z0at)1&vV}$?=c|h1VFLWCWY@ixd$2mo&%Vgn)-8s2JRHkgS#j=D6xQ!*% zi@rC<5#J4O)NYvB3jiU6P&fxTIX(p64$X&D-6vy;=pQ0L<*>o*PJ#z(qj1mQ8pCbcc3HkY6x^ z{QfT-LAS)`HKe}X`@#=yX& z;pyTS;&FUw==HMI1_B}-aX##qdwRX+ocaI%zUYJ-D-PJI&t&J`Vx5$3y6MFFM3&Iq zHd6{0L`P0zKc{+Ev4%lU+N(XO^|$1;r z_U1UPPx%oACcJreyax&5d^EmMzU$xKd<++D!)!$>w+; z=09_nZ5O=2A@$1orlWW2)88HpE4&T(UTvRoGT`a$iTf|jbKCM~VOYb;ERL|xnyimP z1E;NeyS($`x$V2Yhpn_YNy3U{>h6zumTz8YZ2fLC)4A2T?3*G_slWH;GkMr& zn7Uu`z)tts0SwQ7HWrJ`<#cx_+s3(L)A<>CW-JanXO(>66r1pJ(Tg&{w*_K_suzQz z_3vDFuaDlcJ12(g$?M(=YI8yteLgDHF84+4Rk!G({4ck4!Vd^HuWNe1c(z~c^bh-k zC*tnDY>eoLOL6)WXU@2&um9f46{|ltK7X|(u2Vq#{50k->!%Aj1-`2PK2iJT_ivwU z<$pZV(>Zv8Nr;OjMt!T)hwiggHPh~MT|3LjbBcTEZl)DEFCX|{uGBeuyO94t<$8UK z-M=>MEIEH`=jmh0YIC|io)hZ%9WlpXq5MfPAMX1f;-4R?nj|Zc=DhRs<$~|qW(o6c kofkOkzopr09QU>?f?J) literal 0 HcmV?d00001 diff --git a/src/static/images/user/share_friends.png b/src/static/images/user/share_friends.png new file mode 100644 index 0000000000000000000000000000000000000000..676e050fa25f752f0cd12e4c54a00d729f985e40 GIT binary patch literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s53?#3m?veshT>(BJu0Z;Kc=-Q_2oM4?AndTP z|B;bU5r{aD1PTHXgbR^{O92^J5!^sbS)df$G_Y*c)Egit>Xrog1v7kld55jP#^2_< zcx3SP)w9YS&A1nIKi=SBp}#mKp{OM6Hv=3KT_ydB*64g&)qw7_4oR{)12CVD1H0z_gr7$X(SHUWXRdje0}7YeITP z;-eR{6hfQMCMqnq)AX{uO?JAa8Ron#pw%b1fVzVrE;;LBTtugv;cV{x>fGl2bbk4%_9>FPjGA7YlQ}T`!iDzU#0Q26+Md&|EPiVD(vqn{cAKkvypjv!cVFs^!g;_x2)x5>w^0D!ggwEUz@#& zd%3%p2DZPz|CGFa;No05aYlh$5a_G3o! pjFd?4!tJ-0s)ekMS7DRg|Hh(IwOaVqUSK+6@O1TaS?83{1OS<~cZ~o5 literal 0 HcmV?d00001 diff --git a/src/static/images/user/shipped.png b/src/static/images/user/shipped.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2ac122d3336c2efba804a7a25585ead5e48d94 GIT binary patch literal 1290 zcmV+l1@-!gP)Px#1am@3R0s$N2z&@+hyVZtv`IukRA_=y31Ah#BLGAvwnFd#faga>M(z{}g`eEYj-FV( zUY7u(rZ~^ccRI1>hY%vd%x3_^0K5!f-fip10U~;cnE?P=>(@K66@+cuqs%M;40`K( zJ?uTF@4&sLQwQQ*Q4s=WZrRs?7I8M4jh0HK*O+<2R22@atV7yzAeBm4@p$}=a=Cn# zh`hVOr7r6VO(+M9@E3&;?=tgao~BJ^e#dc~h2F>uW?u)!$Hxbv(da1vrvNr_Z9*@r~EG$&^zk7$!Qz(mYrP+ZW0Bkg0L_|aG>lCHbXbUI2iT@gWqFEw} zG4lyi90joAZ8sUAEBZEoR%z_6oIF&7HZ?VMA`*$X`N4{1S(CY3ZW{n>+a6-(RWwGd zYFXC9&56HDHk*x>%jLh&n2uY_{G{VJ8=kftfC=MlCZEq=4bm1m#FSEgOGNI%+63Sb zQPjM%cc0qlTI*K>?3^PaZ{F0#AOjdJ`=79$Xr#S`*hQhf@@T3^|`F?+IIZ zgIQOKzb(1qNMjks2`ZDmXT+V1^g|8g(FsAGCVcL7qn+Nf+aVC$ z037xxC8#_9XZndbS9m5_1VxtwFJq!pkLxB@5ekP4_1h=qQ$n@+Hm?xJYSy0$D^_GA zpvrJMW32q&J);iIE+@zAxAMzFOye79x0VKrE?ZxukK{Uwd_U@AKV#1R_(!W*C@paG zVa6F59BYs+-4^SVGtUw7LKFrkGid|o0{(Ul=2d$(M+BcAJ~+>|qmN0RnT?WjCy(y3&Jy6@?Eav=oVcwo?++XM#p2d4;`j-FUj3&T)ocHH~aAt&tAjPndv^A5wFktOX=ELDB}< zY0%PgnbN`k?g)O9yig37MB{T+RoL`@ik+`iqp1gVaLJ? zJ&SeoEQ=CjFWGEFsmgbQu;=u~VfZkoU)kZ**OU#bH@2p%-19({SM}*-q+9iz5^SxD zv_^>hE3Wj4<4*Ad7dPHQebVf794W;v;qwvWhmd`UlQlL8?OC=UZhx;~i&_!iS<7=? zFw*OJw4Jpy!83}Q&Z~oUn`XPj$uiW=_gCbrV$~W_T6q=h+fF3aQj(L^daoKAk**~Q?_l|xz(lV{i zOI~GQZCh4d&HW(A$baW>=HhC=9hv2nc{d@}aj=gyav@@YZ!HQb$_st^CyM30Ml*A( zu|(da|KK511s>uu=^ap_PkT~x6{(y#ZeJid-I><74I#}W?U+t2OT?eOG(!DkXRp_O zd!{q<+Tre-e&%l_Zmvmqsuk_U4g3R!#NqZ0s{1=558LirRO?&cS}gX)NR4_CEMGLG+MpQ$L=DoqtWz4D~cSyeCNCqdCO zsfiyHu}=C{{z_?l(GN- literal 0 HcmV?d00001 diff --git a/src/static/images/user/smile.png b/src/static/images/user/smile.png new file mode 100644 index 0000000000000000000000000000000000000000..24811d31b2ff331c0c84fcc57237d6938df886db GIT binary patch literal 1251 zcmV<91RVQ`P)Px#1am@3R0s$N2z&@+hyVZtjY&j7R9J=Omr-aGR}_Z7e`Yp`l7~Dfrp;=`R!SaP zNNEC!(B#3Ff-O1rL9^j zbkr3s`XE$nvb!^<54%Y>yIEbUeeyi*%zw`PzdLv5-ZSv5haM-{hFjvfD7M-WU6{o| z@uHGJ%0$N5n3MZP{WmjD6(E=Py9GOd?xNvc;0oe);gV+1GN8GrpD{ETO9bOj1Yo=U z<}hTmU~Km#?F+@py8htYT>05Szuk3ht)UMvn!wJuPQLG9Poye9KHa+3&{n|;VASA1 zEi(eJRO^aR+6?q!oX26r+ZG(F86Z3CFLxq44G=-1E^%#NEyfk&r2Sq;j9}Ji*c-9L z^)rtIC_eTJV2z=vvwk4B@?XrS4s=V}H!l$crAgsX>mFBJ z4(shkcGu#LYUbHpi#x)4Zn@%eIOL~iLG<6uSY&(6XfFkv0mwzM)c~P5SurcLsW?od z>$z`N11M?@g&N*3*F%NJ3Z~Xm0pN%(u)9?@neiEzh_lrI%Czxvy&;jgD!3wPWd#7R z2=wb*1G|%KK+(o13_HDn;6yb5Zy-1kg<&U(HoB8+m=h9y7c88qnf@W;IfI|(DpE3- z1iq?fTpD$s+?W6+swT*8o9VUb%Zh#Ae~)PP?l%Jv8MlB%<@xzRe|vls zY})Uw5Tr#B+^PVO!=FG~MZRMz9oe4AbbMK@=9B68G6(j%*vfKE*b9O?6#x;O1DbQ` zC96sca)h4)czD}u1@Pp3TC5!|y`SCXFE{j(Vc%B(#FRS@;7DDiMTJ*K2Z7#NmLeST zM=;h49V|b1a99r1MW*A^w`QG&`LzEXqTN;QmC`1{l6YZ#>$jj)z>ys6EZ;3{xFsH1 zY!AkI;FLQRtWlEujQ-j43&LFNvZRc=EqJvWz+1p5aMYce|DKYUvj0LXYz!ObAI8)J zOakM=t^!!09qR@fkd3*M5Bik6bAQ&@DgO(^7L0ejf#C3*05eYkx+CbTO9V&C_3WVE z?zr^JtfOcQ5FpM)A;WdsgNqeork3;|=WApW-nMI1%JBq0T?5>&i zhRTmsyj~^wj(Mvc*>=zZWD|J{H&n}iB*1j!Q~sNB*kML{p~!wQl!4-h2{a3f8+sW) z;-W?DeAvnPSOC*8mGavhtVg0tC~jCBDKE2(p^TaR5TUWB(ab(O@egJI=-QMYam)Y! N002ovPDHLkV1mFSR!{%{ literal 0 HcmV?d00001 diff --git a/src/static/images/user/sms-icon.png b/src/static/images/user/sms-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcd98043ed70c405f98efa475d0bf123e301175 GIT binary patch literal 1211 zcmV;s1VsCZP)Px#1am@3R0s$N2z&@+hyVZtWl2OqRA_D93XpzCj zZ7iCJgufC(PB5#?T~a??lamY9_?iK<^@Sx7dI9{eQ|9O#^FXJ1ZnqGDPC#Y&$;y!lM%_fZ1A z-cl1+=u?1(?0&Hw05fi-bmK(=YXCBv>gLWOfJ3Gp?_%b^?K)W204)^$n9>si#1sS} zy?KuIFyp*p?l5)Zqg6fJ=LdM$GE>p`$IQOtAbhsbk`CM=;GG&)-It?@Z;N&IRIt+e z2h*)GI46XE4nPlp`f@F8VWdDfle%};z2LdxUY3);0XP+ih3CNB1EMF^CFum?90+Gj z-MCUpTFF({)QxcxqKAMBrRF;D3p3u#u;?yT9U=di%9jT-LV>>U^F=RMbQdb261T-dA!d$PLP-F#9@7`C zMTrQ_Brx1Ak2bg^G27p)lGi{WdiXg4owbB!@2X5^y{g>>;B(hxLW)%8DN~Q1WJaGw zu6ao;pDWb`C~*qyjfI|t&o_kJ+MyW`dalXIg`^x?tXG*sMD#X*Ukg%i0u+NlM@mj! z2Y{M7^)3U3rOzvY{;&oI%AP{)GFZn%qW}l;XJyUQjIXkXNjZ5ZrNsxaqFx0s1>g>V zDXgdtQ;$c@UgP&{-|yd=_-nhWjR2U*J3w#k54~V_eWxju--U=4z)tegza-`d!PsLt z<$$RrY^RLbH}M^Sq6;%A#})(qM|!|&7{HSN`~oz%uP^lPbU_tf_p1Z|{NtOC063OY zCwwRrM!e(}!_>yVVa5o+w^vV&rxl6Fp8ms+d&w_4fVNoZHDa8wgf4>B$h1uSxjyCl zNk@$YF3JP|!)*Wcj@P*c9m*E33VC8gZ5Ps_9xzff4I0q(ZzTdWe#664qvIsV7S zYr3<{nNffyETKBPez`(Mj5&sN&I15;GSL@-Sa>rWJ>XDTLAe*l+!IjXi<|DVapZQw z+<&7tE?rGOa$t7@fM+VAPx#1am@3R0s$N2z&@+hyVZs(Md!>R9J=0mrZC~RTRg6=gu9NMKB3gs2__gB2-8r zYATT`20>_`8QvQm2{emTYQYl8!Vd%+bmKn3+PY9W3!y@oH`hr(s1`$wn9_=^6zn34 zQe8w0%?xHyoHy^d$Qwyx<}0b_*<9Xz|8xGoIdkXUJMbTev?ETZ(*wqsL&lgVRdoPB zM6N_p^n)?x>mUf0{uO{sCi7qvMJGh$HQ@d_vOh%ROcX_DoO3tt89+9h-CM0z=i*Pi zE+W&adMOOUrDQUhilS&hL=FNIKnl2CtycYFvADczfZ^fc`%W{6OZ;GWj_o*EN08hk4e%b-RwRqgWV*piM2N015+I1I^THQZ) z3;^7U$9?SrsOn=e$gO7DMgZT&57cYQK8zhI1+$>;NPtr*v0c6N3JnBF?y(b4gch&%)ImCNP#fp=g_2YlcE5;z2` zgkiXUZfz_r*jO0la(OC#@o_VA01?UU5&#kDwE(43=}i&o0T$QR)}|U}#SsL-(cJ<-ya+{P zGJgJ`)g8?9ydj`xH|8R;Y(3BG2lfEpt7<#{Y@ERv))>>PssPv8*+QLjIp6mu zfqvk+h_rlh-4x&1O&7Hf#U@002ovPDHLkV1mQI^8Nq- literal 0 HcmV?d00001 diff --git a/src/static/images/user/thumbs_up.png b/src/static/images/user/thumbs_up.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc4669d1a966b06031ed4e3672d7c2f6447e76b GIT binary patch literal 859 zcmV-h1El#)S_$;nHm>M6o zl3>n;9axwG$c&fRna8;P&9V=y_g}6#4C+T#4^}Yjc})08zB~Ll;EY#$CaD#`6YJIN zdyO_Zqh-xRJ2@yu+kouHjkE1X{YVbOQpF84ipvf*M&=%FtzaaQVgd`#i`R#LmLifA zW4MdJjOe}>Q z&KDSphUuKFZS?{7#1aLa&SVbdf51fV$!oO(@ zIuKOa{L0w~cPMuoZvwXQ7HNRNJq!dGg5#0={&-jMkQshb)!_p9s3{9V58c22c%YO{ lum6Oh_3;x(636}<{{#F&cdj{uD}ew2002ovPDHLkV1gl!oOJ*I literal 0 HcmV?d00001 diff --git a/src/static/images/user/user-icon.png b/src/static/images/user/user-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fedf4d2250b34c6545d08b594476dccc2380e9d2 GIT binary patch literal 1046 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%0DA2O)99${xV;Dt4|Dm3(OU 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 A=Kufz literal 0 HcmV?d00001 diff --git a/src/static/images/user/user_sign-des-icon.png b/src/static/images/user/user_sign-des-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f5065623959ce31a0c8f0eb071b9bf06519997a1 GIT binary patch literal 1222 zcmV;%1UdVOP)Px#1am@3R0s$N2z&@+hyVZta7jc#RA_@>RB6M_J{*4WONbf zb=RM-Ba`=Vd1Vks>AZ8BntLA1CYSa2?f;;zwooJhpn(Ke40hG7%qFK9kRm!qjlqmPkW|M~h)C|%u2{PgOZhF=9!Rv;zQ?U@Ic|-&C3kCk@>ps_ z2-%$c_&5|xkqrwIh9TX?rD_9~q;?R}n*10iBDq?&r%xV45oA;tvs~Gr>??oNkSZA! z_y)?)9NR}NTVm}*L`)_Hkr>vYjNSVED&I@hFEguo1on($gb-(}oghMxF`qh%xsXwT z(ecy z+lH5Lvtb?F|W`_hO((T^v1!r@YSC`smj%sE{ALN3jhGurLVE$%t50j;cx1Qr&y_b zgi@DLrSD%n2>>Yh*qM<80QCL-JxV{BBGUQGmqyJ2ly)XRD#}4TQOPHgqXEpI8!H77 z5)2ot&Z`&EKtNHlQV$9TH{%7tcu&WE{+yka&qyh7baiG?sFc#swtCAiO+fX zY9S*-qx3*F5&+|6XukK1)}BZQ(+kmmYSaQCFJxFq00#dsV10L!&0MnRFV=Z_Fz35V z3$E?ySG~;90{34yBzJ39dhweXl)C)Qolo0g^o;L+!9oc>n+a07*qoM6N<$g7P6j9{>OV literal 0 HcmV?d00001 diff --git a/src/static/images/user/user_sign-des-title.png b/src/static/images/user/user_sign-des-title.png new file mode 100644 index 0000000000000000000000000000000000000000..bd16008e26dbcab188039296d17a82e586f77d10 GIT binary patch literal 4483 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 O01#bcotAsf3I72x?tIe# literal 0 HcmV?d00001 diff --git a/src/static/images/user/user_sign-rule.png b/src/static/images/user/user_sign-rule.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cafdd4c0cd550971704da904e0af630cf32b17 GIT binary patch literal 5191 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 literal 0 HcmV?d00001 diff --git a/src/static/images/user/user_sign-sign-icon.png b/src/static/images/user/user_sign-sign-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc7e2e9ac8fce69fd2a27267bd4f15bfb82130c GIT binary patch literal 622 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 M07*qoM6N<$f>H4t(EtDd literal 0 HcmV?d00001 diff --git a/src/static/images/user/user_sign-title.png b/src/static/images/user/user_sign-title.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0568755b1a035f1c966edee5377db68c8d7b34 GIT binary patch literal 20342 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 literal 0 HcmV?d00001 diff --git a/src/static/images/user/white_left_arrow.png b/src/static/images/user/white_left_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..9dff4a7b31a74bc7b69826809fbec11d261be443 GIT binary patch literal 262 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 literal 0 HcmV?d00001 diff --git a/src/static/svg/add_acc.svg b/src/static/svg/add_acc.svg new file mode 100644 index 0000000..5a1407d --- /dev/null +++ b/src/static/svg/add_acc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/svg/del.svg b/src/static/svg/del.svg new file mode 100644 index 0000000..46fbf3d --- /dev/null +++ b/src/static/svg/del.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/svg/down_arrow.svg b/src/static/svg/down_arrow.svg new file mode 100644 index 0000000..4e06a11 --- /dev/null +++ b/src/static/svg/down_arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/svg/down_arrow_sel.svg b/src/static/svg/down_arrow_sel.svg new file mode 100644 index 0000000..c2f1e3f --- /dev/null +++ b/src/static/svg/down_arrow_sel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/svg/svip.svg b/src/static/svg/svip.svg new file mode 100644 index 0000000..decae09 --- /dev/null +++ b/src/static/svg/svip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/svg/up_arrow.svg b/src/static/svg/up_arrow.svg new file mode 100644 index 0000000..547f196 --- /dev/null +++ b/src/static/svg/up_arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/svg/up_arrow_sel.svg b/src/static/svg/up_arrow_sel.svg new file mode 100644 index 0000000..ce7c3a6 --- /dev/null +++ b/src/static/svg/up_arrow_sel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/tabbar/cart.png b/src/static/tabbar/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9059d572917a10bb51fcbb22df583cb3cd1139 GIT binary patch literal 1086 zcmV-E1i|}>P)s?7=@l#ETeZ zU7janFk}jX!|dQeVTXZJ!3@l_N;8V|Q0ar@`F+iJ0_*D1Hd`Nh+3Ur9_ec!2+wHK| z>n)kttfW-Z<%NZXiySgB6vy$Bqz1RU=$w1KTCHw!NE}1n`zw-Gx!p@w1ZN2c|f98)o)J6h)u0O~?pA z5d7x7=cX*no&l~&dKY+&f=D`*B*}}lT5Xx3kP)&h>qz>5Lo9;aAykYgA1dVLk>GGJz9 ziZw^B!#0k+b;*?}$occ-czDM*^86-f`1`;~1Rdyv#6S3Yy*%rS~F z$B=Wb!#0jRc<-+>B&kdRBvr_5W?9x@8^_+d+)}0(bL2Wv6#d0Ej=gn(i~;A|F%DR} z-41~l$X#cLkUd0E^hc5;UEnxS<}S6{?Qm^vZPt4~?VOvIbQGBC^?I)YN6CG~4k7zs zX4fSh2g(dJ8jb0RiHQ@Erp#;xm;t6F9RntSqreO>1FsK@y2%b9`{11Gni&Jf&YnH{81T3Eev1Fw1lECd zU{lhnnWbj-C$I^uo7sk>4KrJlltxk1Wfvj)U}o3JIWsFSEG+!Kva<3-5Co3{-5?0k zYPGsX0Ydh{%zl={O<9&b#z4JZUjQ?BLj^t*x#1B&|@K8SX%gDURbZQ09Q8X?kUOd3l2! zLdFyXLE7*4XPt8!rBdnZ`T6-iccIm4o%G(%0+*sF>N0|349#ZqN$>qH&biaTg&Q|+ zT;MLWTCI=G>>Ei9Nx#H#{1PKL#t;O-o4_8Z%cWAO^etmpTwMG~(m8JFXIb_!BZx62N%FLr zoszV%wYBxh^73-ZnA+`j*z5I{%xo6;GK!+h+*gqQ05=7OATjjoRsaA107*qoM6N<$ Ef>ihjQvd(} literal 0 HcmV?d00001 diff --git a/src/static/tabbar/cart_sel.png b/src/static/tabbar/cart_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..2ae8c8df02bb313c32486a30caa8a2180ff50297 GIT binary patch literal 1109 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 literal 0 HcmV?d00001 diff --git a/src/static/tabbar/healthy_sel.png b/src/static/tabbar/healthy_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..b05cb5b8b13672517378f748de94797fed94587e GIT binary patch literal 1218 zcmV;z1U>tSP)&1*2GbShG zA)*?LaC-+%UcxBnZ^CEAe*Rl=)f5j|kCoPFc0zZ1VTRRhEapWkX8jQHx z=MXuFQ4f>>Wk4CmjwA!mF$wR20~qx{8BhjPV74A{7nf?o7P2^UG{T+Tm_(S^l_CnS zFbVHD3Jh|;Kt!5rbxRo;0&*q1Ovuc(&f>|=xN3?i>ea(%fq8`LbYr=91??F1K#}2B z11*Fcxho;H*bds8I+L0kt?B}wDKC=w1EGBI9X0ekbW{aawOi4 zkrv=w>$C4hpJEzno1(9Qtm7U_c>cUZ21kzOJXUnvpq+8X>QR%%x(|02lZTq7%`Y14 z!t8P27ZDEk>PO#`!I7ggZ?@jWtOb$J8E3Z5hKF~NqZ-}(w1_nVi%4ruydCQziz5#` z8v71!hkzT5F{H6(U&98bs7lwDfbBA41@}m-*n(yz;K)E;zo z!J|^xh_HcsQB3pYtiiusj-8#LjhK_&mxFT&X(AMA;1+c0C6 zYQq*0X(ug-`DNYOnW)_tZ8c*%Y5jNYk0pKDHN+G+GI)F?ArayU?Tla6Be%>r#{J68 z*q(Hw#|ialtOJoQ(uxpwszw`jo3Wj=;ZbvI`m}3^DH1X)(S|A~@(pQ8F~3r9gC?9b zsN?~>+2US}^)V)*+h&hQ>LO4@HnUf|HFkm=I5PBVtPi+FT9Jvn;Dwt8m82!T1@nq+ z{v!zI2{~LPp}4jUi@7zx5Sc_i=+@W?a^%Qn{&ir837FZ=UTqtUtENB(2njwQLqa=# zz~l`=0@sWEyglT>k)>NZ6PRCwNEgr#42j5TGh5Z8u@0t47#$#FVn4@KQ{*9F0^Qm< z0KCpLj3Psh>2o~f91l51o&=JFJQR_o04pIRNRm7`^5nf;B_z%*CyPfa2pMvnJUQ}I zz-SyuG0tpl&A#Y?YK@jMrdAv3MdTeq=KWXXNtlM(rs!US{Y=K}6Zh-vEti{{N613~ z(=ZUfdU4?k)uq5Qfa5-r@C2K>-)kKrPX$cVz=f-47DN`G!?_Zm5O4@zW3(1Cf9oYZ g_!~23%=rKO1!J_yZHicuTmS$707*qoM6N<$f(7O=mH+?% literal 0 HcmV?d00001 diff --git a/src/static/tabbar/index.png b/src/static/tabbar/index.png new file mode 100644 index 0000000000000000000000000000000000000000..b5078a83c0cd4461740897a0102763427906d545 GIT binary patch literal 1108 zcmV-a1grarP)i?P;JJ=me&L8`j#-f*|;sO%OJrSS&g-Gc#v^Hvxy*CRO!>@B6>e0HHx+V`CkT z<9r2lvt&v{egpQYYB!J~v1qM*I|zbv)JbSS7>2JJW4-{|NX)A0N#FM;sEXrwpSAWZ z;ISlcj5*=D?mae0sKfa9_-m^ zZ&Wqw`~EfR6vy!{RUNd}W<+EU6(VxkT089f{xxb4RuRYXE^F<1z+=hhb8~Yi)9Lg) zn-E3OArXmyeI!aizvp@1vVu^<=;-JpsZ{DCRXtAP7LfHkZ-gd^ock;BQsk1Eg8OP=l(zz>+sy z*S*3P2!deN_x*Q)??}AF3Wjye&(D|GdQ&8vTrStjGKOu=&}3m4w$VfmO%R4*S4&IF zd%%8G?a1fz_e5l}TrPjv-roL6PfyPx4Ki#}6h)_uF~6(oQC00Au}f7C7-P=P%*^}{ z$8jeOGHgN=MMp*C43Hvm9XKZ<6F`Z?erxTeVzKDZ0EY&JVb~@jpORPvPI{hqfvT~w zv5p-(c0{Ur0C;A4diot;h&mY>BqE1^HWD9uo_B#|`uh6rEG#VeK#2+wIYI*rjq9e$ zT6>uq`uh6r0GCNT9!1fk)XC5wW6aZ31wrsLt5DV3BpwD@sFR^Vsya`dthKGw$*|2C zwmCy>tyHDc=@K=FNQ%TFYg?qs7*nFQR;tqJbctmQHHgSfstSd|L26LdQD9y~F0ckw zodBjqH?h9wc%5;>C*(v5Z3v<#PGDF^2zGYYzh7vx4V&c_7a^f*|+4#V&OTOgOqrFQPzIRdnixW)>?DxxSlDk7Ii zECLhO+FwMZL=zZeo>0}pKqrYCd-v{rwx_3Ok!6H68!dF9C+6PDH*2ZUM6Z2be9w*5bg@zq`Y2tz<~ZLYdwEf)PCl6q3}7x-}8o)Iv&` z-7(vk_z{#1+#{UMcb)36J>JI{`N%-!o|;FB)-2g0hIfFOB#6kzB4$^lF7y>?dcv3c zo?bcQvq4k%r@}J=4+Hb#GFbN5s?uBC;kI8H17VEHZE%UAwTNscsUM|2{t!po_J(dS zie)yqR)n3vDiRc~8>GIquHhK>A&i0lK=nE>wV=yMx+Z9SYh7a_W8}A03q^c872U=V zRaENL=N^sjZ|YzKK1MOmzC7ir=a%mREUyQP9EG@OcLWB=UimOr+wGB1 z8txLV|8)4|ZPFM##bImXq!C8pe>34wzTU`jp^VQk-y>0jn55gD)taWbFJ>Q2GkOOxxSKDl;mj@o0cwU0000EaAq`qc@y{)l3>{i@aB#4Y7DS~&t>`cB3&9dxy0qXR9UQbEIH8j`(vl>}MpnS&#J_?MY|O9mxF zk|Z~H>~)skep1awqj7}{LI>XaAAzkvLsegN&ed23<#Ktqs$Qo>L~e|YjqM?W(m|3W zACT%#lH@~{K^(_}s(PAK)69<2fzm+`1Ye5C=cGdK{V|pxj^p7ZNj?HzCUq_h!#i}K zbl{wOXlAE?I;oSDO63GSGPC!9!=&!0>Iu3~x(LJYc9JA}fI2NAa@>3WX&lERc(+c{Tb351+3T)41iXlUr5h#Um=(b;bza#2Js zI_K`w17Qig_cOpK-Q8BzozA&BIVnBz-tPrQNi{`eDoK)8RrNXG72sW9j?{KDJ5LXU z9+XO@wF3hKznEDOXqws1D2i_KAD1p&Dh5F?1B{T0!Z7sYp!A?nDC{+}BB?V`6y2na z@$vDhnMFX8)M0W`deGO`w}r>9&_NVM--*aqq&8o>cCA1TN)OCz8>zW441b^tGy9d) z=GocVVRBGmY#OKoKW*Bysm9Y#DwX=lA&%og{*V3vJ=RM3<2SaP00000 LNkvXXu0mjfvAxxH literal 0 HcmV?d00001 diff --git a/src/static/tabbar/my_sel.png b/src/static/tabbar/my_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2106b8fd07cde74443bc724622a67985ccb1cd GIT binary patch literal 774 zcmV+h1Nr=kP)hs^`_%R|kdF$Z!tfv|+Fg3Ts^B3MX;irNTfMo1n021rVrs1r*kra2i*0baOP4 zQConVl>SJj70?W zytm^S*w0ewk1iSXvz_u0gX#G z=9w;#MQ&vFL1SmdA)Jn*$vsrgJ;URU#%rK)wFBtitLkXHGr2f3oH!_BZD;C`B|lqB zh+f4ZajE@0$|pcL;ZiA;q1iEq@D?cCH4^J}VsL3H3>nQtjZ@L>qz6@9b*CCk!|5ZZcdNP1oE;kGA13Y_}KG(SB>3_fYxZIxrU^6*(d(+29tuR|I z(4B;nSm-6ZzIb8Y1BDwdQD5AAjIqYcLooe>%S=-82RW5?^Df!8Z2$lO07*qoM6N<$ Ef~2@%4FCWD literal 0 HcmV?d00001 diff --git a/src/store/getters.js b/src/store/getters.js new file mode 100644 index 0000000..13222d4 --- /dev/null +++ b/src/store/getters.js @@ -0,0 +1,17 @@ +const getters = { + isLogin: state => !!state.user.token, + token: state => state.user.token, + user:state => state.user.user, + allaccounts:state => state.user.allaccounts, + news_num:state=>state.user.news_num, + order_count:state=>state.user.order_count, + history:state=>state.user.history, + platform: state => state.app.platform, + system: state => state.app.system, + article:state=>state.app.article, + cartList:state => state.goods.cartList, + selectedCart:state => state.goods.selectedCart, + hiddenConfig:state => state.app.hiddenConfig, + config:state => state.app.config, +} +export default getters diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..df2d4e7 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,20 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import getters from './getters' + +import user from './modules/user' +import app from './modules/app' +import goods from './modules/goods' + +Vue.use(Vuex) + +const store = new Vuex.Store({ + modules: { + user, + app, + goods + }, + getters +}) + +export default store diff --git a/src/store/modules/app.js b/src/store/modules/app.js new file mode 100644 index 0000000..2a3365c --- /dev/null +++ b/src/store/modules/app.js @@ -0,0 +1,79 @@ + +import { + http +} from '@/utils/request' + +const getDefaultState = () => { + return { + platform: '', + system: '', + article: '',//隐私协议相关 + hiddenConfig: {}, + config:{} + } +} + + +const state = getDefaultState() + +const mutations = { + SET_PLATFORM(state, value) { + state.platform = value + }, + SET_SYSTEM(state, value) { + state.system = value + }, + SET_HEIGHT(state, value) { + state.screenHeight = value + }, + //协议 + SET_ARTICLE(state, value) { + state.article = value + }, + SET_HIDDENCONFIG(state, value) { + state.hiddenConfig = value + }, + SET_CONFIG(state, value) { + state.config = value + } +} + +const actions = { + getSys({ commit }) { + const { platform, system, screenHeight } = uni.getSystemInfoSync() + commit('SET_PLATFORM', platform) + commit('SET_SYSTEM', system) + }, + + //获取协议 + getArticle({ commit }) { + return new Promise((resolve, reject) => { + http.get('/v1/article-config').then(res => { + commit('SET_ARTICLE', res) + resolve(res) + }).catch(err => { + reject(err) + }) + }) + }, + + async getConfit({ commit }) { + const resData = await http.get('/v1/configs') + // #ifdef APP-PLUS + const { platform } = uni.getSystemInfoSync() + const data = resData[platform] + if (process.env.VUE_APP_VERSION_CODE >= data.v) { + commit('SET_HIDDENCONFIG', data) + } + // #endif + commit('SET_CONFIG', resData) + } + +} + +export default { + namespaced: true, + state, + mutations, + actions +} diff --git a/src/store/modules/goods.js b/src/store/modules/goods.js new file mode 100644 index 0000000..c255695 --- /dev/null +++ b/src/store/modules/goods.js @@ -0,0 +1,66 @@ + +import { + http +} from '@/utils/request' + +const SELECT_CART = 'app_select_CART' + +const getDefaultState = () => { + return { + cartList: [], + selectedCart: uni.getStorageSync(SELECT_CART) || [] + } +} + + +const state = getDefaultState() + +const mutations = { + SET_CARTLIST(state, value) { + state.cartList = value + }, + SET_SELECTED_CART(state, value) { + state.selectedCart = value + } +} + +const actions = { + //添加购物车 + addCart({ dispatch,state }, params, custom) { + const { skuId, number } = params; + return new Promise((resolve, reject) => { + http.post('/v1/shopping-cart-items', { sku_id: skuId, quantity: number }, custom).then(resData => { + resolve(resData) + dispatch('setSelectedCart',[...state.selectedCart,resData.id]) + dispatch('getCartList') + }).catch(err => { + reject(err) + }) + }) + }, + //获取购物车列表 + getCartList({ commit, rootGetters,state,dispatch }) { + if (!rootGetters.isLogin) return commit('SET_CARTLIST', []) + return new Promise((resolve, reject) => { + http.get('/v1/shopping-cart-items').then(resData => { + commit('SET_CARTLIST', resData) + dispatch('setSelectedCart',resData.filter(item=>state.selectedCart.findIndex(e=>e==item.id)>=0).map(e=>e.id)) + resolve(resData) + }).catch(err => { + reject(err) + }) + }) + }, + setSelectedCart({commit},value){ + const arr = Array.from(new Set(value)) + uni.setStorageSync(SELECT_CART, arr) + commit('SET_SELECTED_CART',arr) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} diff --git a/src/store/modules/user.js b/src/store/modules/user.js new file mode 100644 index 0000000..2717ad9 --- /dev/null +++ b/src/store/modules/user.js @@ -0,0 +1,244 @@ +import { + http +} from '@/utils/request' + +const TOKEN = 'app_token' +// const USER = 'app_user' +// const NEWSNUM='app_news_num' +const HISTORY = "app_history" +const ALLACCOUNTS = "app_accounts" +const getDefaultState = () => { + return { + token: uni.getStorageSync(TOKEN), + user: null,//用户信息 + news_num: 0,//消息数 + order_count: null,//订单数量 + history: uni.getStorageSync(HISTORY) || [],//历史搜索 + allaccounts: uni.getStorageSync(ALLACCOUNTS) || [],//所有账号 + } +} + + +const state = getDefaultState() + +const mutations = { + RESET_STATE: (state) => { + Object.assign(state, getDefaultState()) + }, + LOGIN(state, value) { + this.commit('user/SET_TOKEN',value) + this.dispatch('user/getUserInfo',false) + }, + LOGOUT(){ + return this.dispatch('user/resetToken') + }, + // 登录 + SET_TOKEN(state, value) { + state.token = value + uni.setStorageSync(TOKEN, value); + }, + //获取用户信息 + SET_USERINFO(state, value) { + state.user = value + // uni.setStorageSync(USER, value); + }, + //获取消息未读数 + SET_NEWS(state, value) { + state.news_num = value + // uni.setStorageSync(NEWSNUM, value); + }, + //添加历史记录 + SET_HISTORY(state, value) { + if (state.history.length == 0) { + state.history.unshift(value) + } else { + let Index = state.history.findIndex(item => { return item == value }) + if (Index == -1) { + state.history.unshift(value) + } + } + uni.setStorageSync(HISTORY, state.history); + }, + //删除历史记录 + DEL_HISTORY(state) { + uni.removeStorageSync(HISTORY); + state.history = [] + }, + //保存所有账号 + SET_ACCOUNTS(state, value) { + state.allaccounts = value + uni.setStorageSync(ALLACCOUNTS, value); + }, + //修改资料后改变用户信息 + SET_REFRESH(state, value) { + let Index = state.allaccounts.findIndex(item => { return item.phone == value.phone }) + if (Index != -1) { + state.allaccounts[Index].phone = value.phone + state.allaccounts[Index].avatar = value.avatar + state.allaccounts[Index].nickname = value.nickname + uni.setStorageSync(ALLACCOUNTS, state.allaccounts); + } + }, + // //删除账号 + // DEL_ACCOUNTS(state, value) { + // let Index = state.allaccounts.findIndex(item => { return item.phone == value }) + // state.allaccounts.splice(Index, 1) + // uni.setStorageSync(ALLACCOUNTS, state.allaccounts); + // }, + //获取订单数量 + SET_ORDERNUM(state, value) { + state.order_count = value + } +} + +const actions = { + //登录 + async login({ + commit, + state, + dispatch + }, { form, switchAllaccounts }) { + return new Promise((resolve, reject) => { + + http.post('/v1/login', form, { + custom: { + loading: true + } + }).then(({ + token + }) => { + if(switchAllaccounts && state.allaccounts.length==0){ + const tempUserInfo = { + ...Object.assign({},state.user), + token:state.token, + } + dispatch('getAccounts', { info:tempUserInfo, switchAllaccounts }) + } + resolve(token) + commit('SET_TOKEN', token) + dispatch('getUserInfo', switchAllaccounts) + dispatch('getNewsNum') + }).catch(err => { + reject(err) + }); + + }) + }, + //退出登录 + async logout({ + commit + }) { + /* #ifdef MP-WEIXIN */ + await http.post('/v1/socialite/unbind-user/wechat-mini') + /* #endif */ + return new Promise((resolve, reject) => { + http.post('/v1/logout', {}, { + custom: { + loading: true + } + }).then(() => { + // console.log(token) + uni.removeStorageSync(TOKEN); + commit('SET_TOKEN') + commit('SET_USERINFO', {}) + commit('SET_NEWS', 0) + resolve() + }).catch(err => { + reject(err) + }); + }) + }, + + //获取用户信息 + getUserInfo({ commit, state, dispatch }, switchAllaccounts) { + + return new Promise((resolve, reject) => { + if (!state.token) return + http.get('/v1/me', {}, { + custom: { + silence: true + } + }).then(({ phone, user_info, is_vip, wallet, balance }) => { + let user = user_info + user.phone = phone + user.is_vip = is_vip + user.wallet = wallet + user.balance = balance + commit('SET_USERINFO', user) + dispatch('bindCid') + dispatch('getAccounts', { info: { ...user, token: state.token }, switchAllaccounts }) + resolve(user) + }).catch(err => { + reject(err) + }) + }) + }, + + getAccounts({ commit, state }, { info, switchAllaccounts = false }) { + + const obj = { + avatar: info.avatar, + birthday: info.birthday, + code: info.code, + gender: info.gender, + nickname: info.nickname, + phone: info.phone, + token: info.token, + } + let all = state.allaccounts + const index = all.findIndex(e => e.phone == obj.phone) + if (index >= 0) all[index] = Object.assign({}, state.allaccounts[index], obj) + else { + if (switchAllaccounts) all = [...all, obj] + } + commit('SET_ACCOUNTS', all) + }, + resetToken({ commit }) { + return new Promise(resolve => { + uni.removeStorageSync(TOKEN); + commit('RESET_STATE') + resolve() + }) + }, + bindCid() { + // #ifdef APP-PLUS + const cid = plus.push.getClientInfo()?.clientid + http.post('/v1/push-bind-uni', { cid }, { custom: { toast: false } }) + // #endif + }, + + //异步获取消息未读数 + getNewsNum({ commit, state }) { + return new Promise((resolve, reject) => { + if (!state.token) return + http.get('/v1/messages/wait-read-num', {}, { + custom: { + silence: true + } + }).then(({ num }) => { + commit('SET_NEWS', num) + resolve(num) + }).catch(err => { + reject(err) + }) + }) + }, + //获取订单数量 + getOrderNum({ commit, state }) { + return new Promise((resolve, reject) => { + if (!state.token) return + http.get('/v1/order/statistics').then(res => { + commit('SET_ORDERNUM', res) + }).catch(err => { + reject(err) + }) + }) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} diff --git a/src/style/index.scss b/src/style/index.scss new file mode 100644 index 0000000..6dc25c3 --- /dev/null +++ b/src/style/index.scss @@ -0,0 +1,231 @@ +page { + background: #f5f5f5; +} + +.shdow { + background-color: rgba(255, 255, 255, 1); + box-shadow: 0px 4rpx 12rpx rgba(0, 0, 0, 0.12); + border-radius: 15rpx; +} + +.login-btn { + @apply h-80rpx leading-80rpx bg-primary text-center text-white rounded-full text-lg; +} + +.cu-btn { + position: relative; + border:none; + align-items: center; + justify-content: center; + box-sizing: border-box; + text-align: center; + text-decoration: none; + margin-left: initial; + transform: translate(0upx, 0upx); + margin-right: initial; + appearance: none; +} + +.shadow-down { + box-shadow: 0px 2rpx 4rpx rgba(0, 0, 0, 0.13); +} +.scroll { + white-space: nowrap; +} +.scroll-item { + display: inline-block; +} +.one-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.two-ellipsis { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + word-break: break-all; + white-space: normal !important; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} +.three-ellipsis { + lines: 3; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + word-break: break-all; + white-space: normal !important; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; +} +.overflow { + overflow: hidden; +} +.slot-wrap { + display: flex; + align-items: center; + justify-content: space-between; + /* 如果您想让slot内容占满整个导航栏的宽度 */ + /* flex: 1; */ + /* 如果您想让slot内容与导航栏左右有空隙 */ + padding: 0 30rpx; +} +.cu-tabs { + .u-tab-item { + &:not(:nth-last-child(2)){ + &::after { + content: ''; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + height: 30rpx; + width: 1px; + background: #e4e4e7; + } + } + } + .u-tab-bar { + background-color: theme('colors.primary') !important; + opacity: 0.7 !important; + // bottom: 12px !important; + border-radius: 8rpx; + } +} + +.cu-navbar { + .u-navbar-content-title { + .u-title { + color: theme('colors.txBase') !important; + font-size: 36rpx !important; + } + } +} + +.u-checkbox__icon-wrap--checked { + background-color: theme('colors.warning'); +} + +.uni-scroll-view::-webkit-scrollbar { + display: none; +} + +//文本溢出 +.line-1 { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.line-2 { + overflow: hidden; + -webkit-line-clamp: 2; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; +} + +.shadow-up { + box-shadow: 0px -4rpx 8rpx rgba(0, 0, 0, 0.13); +} +.scroll { + white-space: nowrap; +} +.scroll-item { + display: inline-block; +} +.one-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.two-ellipsis { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + word-break: break-all; + white-space: normal !important; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} +.three-ellipsis { + lines: 3; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + word-break: break-all; + white-space: normal !important; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; +} +.overflow { + overflow: hidden; +} +.slot-wrap { + display: flex; + align-items: center; + justify-content: space-between; + /* 如果您想让slot内容占满整个导航栏的宽度 */ + /* flex: 1; */ + /* 如果您想让slot内容与导航栏左右有空隙 */ + padding: 0 30rpx; +} + +.btn[disabled] { + opacity: 0.6; + pointer-events: none; +} + +.translate-y-0 { + transform: translateY(0); +} + +.translate-center { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} + +.translate-bottom-center { + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +[type='search'] { + -webkit-appearance: none !important; +} +.border-b{ + border-bottom: 1rpx solid #E5E5E5; +} +.border{ + border: 1px solid !important; +} +.inputHeight { + border: 1rpx solid; + @apply h-80rpx flex-1 border border-txBorder px-base ml-40rpx text-lg text-txBase; + +} + + + + +.cu-bar.tabbar { + padding: 0; + height: calc(100upx + env(safe-area-inset-bottom) / 2); + padding-bottom: calc(env(safe-area-inset-bottom) / 2); +} + button::after{ border: none; } + image{ + height: auto; + } \ No newline at end of file diff --git a/src/uni.scss b/src/uni.scss new file mode 100644 index 0000000..3606c33 --- /dev/null +++ b/src/uni.scss @@ -0,0 +1,81 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ +@import 'uview-ui/theme.scss'; + +/* UView颜色变量 */ +$u-type-primary: theme("colors.primary"); +$u-type-warning : theme("colors.warning"); + +/* 行为相关颜色 */ +$uni-color-primary: theme("colors.primary"); +$uni-color-success: theme("colors.success"); +$uni-color-warning: theme("colors.warning"); +$uni-color-error: theme("colors.error"); + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:24rpx; +$uni-font-size-base:28rpx; +$uni-font-size-lg:32rpx; + +/* 图片尺寸 */ +$uni-img-size-sm:40rpx; +$uni-img-size-base:52rpx; +$uni-img-size-lg:80rpx; + +/* Border Radius */ +$uni-border-radius-sm: 4rpx; +$uni-border-radius-base: 6rpx; +$uni-border-radius-lg: 12rpx; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 10px; +$uni-spacing-row-base: 20rpx; +$uni-spacing-row-lg: 30rpx; + +/* 垂直间距 */ +$uni-spacing-col-sm: 8rpx; +$uni-spacing-col-base: 16rpx; +$uni-spacing-col-lg: 24rpx; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:40rpx; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:36rpx; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:30rpx; diff --git a/src/uni_modules/mescroll-uni/changelog.md b/src/uni_modules/mescroll-uni/changelog.md new file mode 100644 index 0000000..d7992a7 --- /dev/null +++ b/src/uni_modules/mescroll-uni/changelog.md @@ -0,0 +1,6 @@ +## 1.3.7(2021-04-13) +1. 新增`mescroll-swiper-sticky.vue`的示例, 轮播吸顶菜单导航 +2. 新增`mescroll-empty.vue`的示例, 单独使用空布局组件 +3. 简化tabs在具体项目中的使用,并简化对应的示例 +4. mescroll-uni 支持动态禁止滚动的属性 disableScroll (注: mescroll-body不支持) +-by 小瑾同学 diff --git a/src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.css b/src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.css new file mode 100644 index 0000000..1107710 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.css @@ -0,0 +1,19 @@ +.mescroll-body { + position: relative; /* 下拉刷新区域相对自身定位 */ + height: auto; /* 不可固定高度,否则overflow:hidden导致无法滑动; 同时使设置的最小高生效,实现列表不满屏仍可下拉*/ + overflow: hidden; /* 当有元素写在mescroll-body标签前面时,可遮住下拉刷新区域 */ + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} + +/* 使sticky生效: 父元素不能overflow:hidden或者overflow:auto属性 */ +.mescroll-body.mescorll-sticky{ + overflow: unset !important +} + +/* 适配 iPhoneX */ +@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) { + .mescroll-safearea { + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + } +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.vue b/src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.vue new file mode 100644 index 0000000..270a216 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.vue @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.css b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.css new file mode 100644 index 0000000..dcefe2d --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.css @@ -0,0 +1,47 @@ +/*下拉刷新--标语*/ +.mescroll-downwarp .downwarp-slogan{ + display: block; + width: 420rpx; + height: 168rpx; + margin: auto; +} +/*下拉刷新--向下进度动画*/ +.mescroll-downwarp .downwarp-progress{ + display: inline-block; + width: 40rpx; + height: 40rpx; + border: none; + margin: auto; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + background-image: url(https://www.mescroll.com/img/beibei/mescroll-progress.png); + transition: all 300ms; +} +/*下拉刷新--进度条*/ +.mescroll-downwarp .downwarp-loading{ + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid #FF8095; + border-bottom-color: transparent; +} +/*下拉刷新--吉祥物*/ +.mescroll-downwarp .downwarp-mascot{ + position: absolute; + right: 16rpx; + bottom: 0; + width: 100rpx; + height: 100rpx; + background-size: contain; + background-repeat: no-repeat; + animation: animMascot .6s steps(1,end) infinite; +} +@keyframes animMascot { + 0% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb1.png)} + 25% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb2.png)} + 50% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb3.png)} + 75% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb4.png)} + 100% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb1.png)} +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.vue new file mode 100644 index 0000000..ee1d321 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-body.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-body.vue new file mode 100644 index 0000000..3e567f7 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-body.vue @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni-option.js b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni-option.js new file mode 100644 index 0000000..9d938cb --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni-option.js @@ -0,0 +1,49 @@ +// mescroll-uni和mescroll-body 的全局配置 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + offset: uni.upx2px(140), // 在列表顶部,下拉大于140upx,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + offset: 150, // 距底部多远时,触发upCallback + toTop: { + // 回到顶部按钮,需配置src才显示 + src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: "/static/images/user/empty.png" // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '-- END --', // 没有更多数据的提示文本 + empty: { + tip: '~ 暂无相关数据 ~' // 空提示 + } + } + }, + // 英文 + en: { + up: { + textLoading: 'loading ...', + textNoMore: '-- END --', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni.vue new file mode 100644 index 0000000..c835bed --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni.vue @@ -0,0 +1,437 @@ + + + + + + + + + + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.css b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.css new file mode 100644 index 0000000..b62ed40 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.css @@ -0,0 +1,44 @@ +/*下拉刷新--上下箭头*/ +.mescroll-downwarp .downwarp-arrow { + display: inline-block; + width: 20px; + height: 20px; + margin: 10px; + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-arrow.png); + background-size: contain; + vertical-align: middle; + transition: all 300ms; +} + +/*下拉刷新--旋转进度条*/ +.mescroll-downwarp .downwarp-progress{ + width: 36px; + height: 36px; + border: none; + margin: auto; + background-size: contain; + animation: progressRotate 0.6s steps(6, start) infinite; +} +@keyframes progressRotate { + 0% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } + 16% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress2.png); + } + 32% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress3.png); + } + 48% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress4.png); + } + 64% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress5.png); + } + 80% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress6.png); + } + 100% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.vue new file mode 100644 index 0000000..745d903 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.vue @@ -0,0 +1,53 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.css b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.css new file mode 100644 index 0000000..abf51f1 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.css @@ -0,0 +1,32 @@ +/*上拉加载--旋转进度条*/ +.mescroll-upwarp .upwarp-progress { + width: 36px; + height: 36px; + border: none; + margin: auto; + background-size: contain; + animation: progressRotate 0.6s steps(6, start) infinite; +} +@keyframes progressRotate { + 0% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } + 16% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress2.png); + } + 32% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress3.png); + } + 48% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress4.png); + } + 64% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress5.png); + } + 80% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress6.png); + } + 100% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.vue new file mode 100644 index 0000000..31bd42a --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.vue @@ -0,0 +1,40 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-body.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-body.vue new file mode 100644 index 0000000..61e8e36 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-body.vue @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni-option.js b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni-option.js new file mode 100644 index 0000000..f6a3084 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni-option.js @@ -0,0 +1,64 @@ +// 全局配置 +// mescroll-body 和 mescroll-uni 通用 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance ) + toTop: { + // 回到顶部按钮,需配置src才显示 + src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: "/static/images/user/empty.png" // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + down: { + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + textSuccess: '加载成功', // 加载成功的文本 + textErr: '加载失败', // 加载失败的文本 + }, + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '-- END --', // 没有更多数据的提示文本 + empty: { + tip: '~ 空空如也 ~' // 空提示 + } + } + }, + // 英文 + en: { + down: { + textInOffset: 'drop down refresh', + textOutOffset: 'release updates', + textLoading: 'loading ...', + textSuccess: 'loaded successfully', + textErr: 'loading failed' + }, + up: { + textLoading: 'loading ...', + textNoMore: '-- END --', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni.vue b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni.vue new file mode 100644 index 0000000..51cce82 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni.vue @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-empty/mescroll-empty.vue b/src/uni_modules/mescroll-uni/components/mescroll-empty/mescroll-empty.vue new file mode 100644 index 0000000..1c5e009 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-empty/mescroll-empty.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.css b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.css new file mode 100644 index 0000000..72bf106 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.css @@ -0,0 +1,55 @@ +/* 下拉刷新区域 */ +.mescroll-downwarp { + position: absolute; + top: -100%; + left: 0; + width: 100%; + height: 100%; + text-align: center; +} + +/* 下拉刷新--内容区,定位于区域底部 */ +.mescroll-downwarp .downwarp-content { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + min-height: 60rpx; + padding: 20rpx 0; + text-align: center; +} + +/* 下拉刷新--提示文本 */ +.mescroll-downwarp .downwarp-tip { + display: inline-block; + font-size: 28rpx; + vertical-align: middle; + margin-left: 16rpx; + /* color: gray; 已在style设置color,此处删去*/ +} + +/* 下拉刷新--旋转进度条 */ +.mescroll-downwarp .downwarp-progress { + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid gray; + border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ + vertical-align: middle; +} + +/* 旋转动画 */ +.mescroll-downwarp .mescroll-rotate { + animation: mescrollDownRotate 0.6s linear infinite; +} + +@keyframes mescrollDownRotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.vue b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.vue new file mode 100644 index 0000000..9fd1567 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.vue @@ -0,0 +1,47 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-top.vue b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-top.vue new file mode 100644 index 0000000..8028071 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-top.vue @@ -0,0 +1,83 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.css b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.css new file mode 100644 index 0000000..cbf48cd --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.css @@ -0,0 +1,47 @@ +/* 上拉加载区域 */ +.mescroll-upwarp { + box-sizing: border-box; + min-height: 110rpx; + padding: 30rpx 0; + text-align: center; + clear: both; +} + +/*提示文本 */ +.mescroll-upwarp .upwarp-tip, +.mescroll-upwarp .upwarp-nodata { + display: inline-block; + font-size: 28rpx; + vertical-align: middle; + /* color: gray; 已在style设置color,此处删去*/ +} + +.mescroll-upwarp .upwarp-tip { + margin-left: 16rpx; +} + +/*旋转进度条 */ +.mescroll-upwarp .upwarp-progress { + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid gray; + border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ + vertical-align: middle; +} + +/* 旋转动画 */ +.mescroll-upwarp .mescroll-rotate { + animation: mescrollUpRotate 0.6s linear infinite; +} + +@keyframes mescrollUpRotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.vue b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.vue new file mode 100644 index 0000000..11c2e1f --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-i18n.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-i18n.js new file mode 100644 index 0000000..2b6a50f --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-i18n.js @@ -0,0 +1,15 @@ +// 国际化工具类 +const mescrollI18n = { + // 默认语言 + def: "zh", + // 获取当前语言类型 + getType(){ + return uni.getStorageSync("mescroll-i18n") || this.def + }, + // 设置当前语言类型 + setType(type){ + uni.setStorageSync("mescroll-i18n", type) + } +} + +export default mescrollI18n diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js new file mode 100644 index 0000000..bf3714a --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js @@ -0,0 +1,57 @@ +// mescroll-body 和 mescroll-uni 通用 +const MescrollMixin = { + data() { + return { + mescroll: null //mescroll实例对象 + } + }, + // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + onPullDownRefresh(){ + this.mescroll && this.mescroll.onPullDownRefresh(); + }, + // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onPageScroll(e) { + this.mescroll && this.mescroll.onPageScroll(e); + }, + // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onReachBottom() { + this.mescroll && this.mescroll.onReachBottom(); + }, + methods: { + // mescroll组件初始化的回调,可获取到mescroll对象 + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef(); // 兼容字节跳动小程序 + }, + // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序) + mescrollInitByRef() { + if(!this.mescroll || !this.mescroll.resetUpScroll){ + let mescrollRef = this.$refs.mescrollRef; + if(mescrollRef) this.mescroll = mescrollRef.mescroll + } + }, + // 下拉刷新的回调 (mixin默认resetUpScroll) + downCallback() { + if(this.mescroll.optUp.use){ + this.mescroll.resetUpScroll() + }else{ + setTimeout(()=>{ + this.mescroll.endSuccess(); + }, 500) + } + }, + // 上拉加载的回调 + upCallback() { + // mixin默认延时500自动结束加载 + setTimeout(()=>{ + this.mescroll.endErr(); + }, 500) + } + }, + mounted() { + this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况 + } + +} + +export default MescrollMixin; diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni-option.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni-option.js new file mode 100644 index 0000000..df166cb --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni-option.js @@ -0,0 +1,64 @@ +// 全局配置 +// mescroll-body 和 mescroll-uni 通用 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance ) + toTop: { + // 回到顶部按钮,需配置src才显示 + src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: "/static/images/user/empty.png" // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + down: { + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + textSuccess: '加载成功', // 加载成功的文本 + textErr: '加载失败', // 加载失败的文本 + }, + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '-- 没有更多数据 --', // 没有更多数据的提示文本 + empty: { + tip: '~ 空空如也 ~' // 空提示 + } + } + }, + // 英文 + en: { + down: { + textInOffset: 'drop down refresh', + textOutOffset: 'release updates', + textLoading: 'loading ...', + textSuccess: 'loaded successfully', + textErr: 'loading failed' + }, + up: { + textLoading: 'loading ...', + textNoMore: '-- END --', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.css b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.css new file mode 100644 index 0000000..39438cd --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.css @@ -0,0 +1,36 @@ +.mescroll-uni-warp{ + height: 100%; +} + +.mescroll-uni-content{ + height: 100%; +} + +.mescroll-uni { + position: relative; + width: 100%; + height: 100%; + min-height: 200rpx; + overflow-y: auto; + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} + +/* 定位的方式固定高度 */ +.mescroll-uni-fixed{ + z-index: 1; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: auto; /* 使right生效 */ + height: auto; /* 使bottom生效 */ +} + +/* 适配 iPhoneX */ +@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) { + .mescroll-safearea { + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + } +} diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.js new file mode 100644 index 0000000..3bfdac1 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.js @@ -0,0 +1,799 @@ +/* mescroll + * version 1.3.7 + * 2021-04-12 wenju + * https://www.mescroll.com + */ + +export default function MeScroll(options, isScrollBody) { + let me = this; + me.version = '1.3.7'; // mescroll版本号 + me.options = options || {}; // 配置 + me.isScrollBody = isScrollBody || false; // 滚动区域是否为原生页面滚动; 默认为scroll-view + + me.isDownScrolling = false; // 是否在执行下拉刷新的回调 + me.isUpScrolling = false; // 是否在执行上拉加载的回调 + let hasDownCallback = me.options.down && me.options.down.callback; // 是否配置了down的callback + + // 初始化下拉刷新 + me.initDownScroll(); + // 初始化上拉加载,则初始化 + me.initUpScroll(); + + // 自动加载 + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + // 自动触发下拉刷新 (只有配置了down的callback才自动触发下拉刷新) + if ((me.optDown.use || me.optDown.native) && me.optDown.auto && hasDownCallback) { + if (me.optDown.autoShowLoading) { + me.triggerDownScroll(); // 显示下拉进度,执行下拉回调 + } else { + me.optDown.callback && me.optDown.callback(me); // 不显示下拉进度,直接执行下拉回调 + } + } + // 自动触发上拉加载 + if(!me.isUpAutoLoad){ // 部分小程序(头条小程序)emit是异步, 会导致isUpAutoLoad判断有误, 先延时确保先执行down的callback,再执行up的callback + setTimeout(function(){ + me.optUp.use && me.optUp.auto && !me.isUpAutoLoad && me.triggerUpScroll(); + },100) + } + }, 30); // 需让me.optDown.inited和me.optUp.inited先执行 +} + +/* 配置参数:下拉刷新 */ +MeScroll.prototype.extendDownScroll = function(optDown) { + // 下拉刷新的配置 + MeScroll.extend(optDown, { + use: true, // 是否启用下拉刷新; 默认true + auto: true, // 是否在初始化完毕之后自动执行下拉刷新的回调; 默认true + native: false, // 是否使用系统自带的下拉刷新; 默认false; 仅mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + autoShowLoading: false, // 如果设置auto=true(在初始化完毕之后自动执行下拉刷新的回调),那么是否显示下拉刷新的进度; 默认false + isLock: false, // 是否锁定下拉刷新,默认false; + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + startTop: 100, // scroll-view快速滚动到顶部时,此时的scroll-top可能大于0, 此值用于控制最大的误差 + inOffsetRate: 1, // 在列表顶部,下拉的距离小于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉 + outOffsetRate: 0.2, // 在列表顶部,下拉的距离大于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉 + bottomOffset: 20, // 当手指touchmove位置在距离body底部20px范围内的时候结束上拉刷新,避免Webview嵌套导致touchend事件不执行 + minAngle: 45, // 向下滑动最少偏移的角度,取值区间 [0,90];默认45度,即向下滑动的角度大于45度则触发下拉;而小于45度,将不触发下拉,避免与左右滑动的轮播等组件冲突; + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + textSuccess: '加载成功', // 加载成功的文本 + textErr: '加载失败', // 加载失败的文本 + beforeEndDelay: 0, // 延时结束的时长 (显示加载成功/失败的时长, android小程序设置此项结束下拉会卡顿, 配置后请注意测试) + bgColor: "transparent", // 背景颜色 (建议在pages.json中再设置一下backgroundColorTop) + textColor: "gray", // 文本颜色 (当bgColor配置了颜色,而textColor未配置时,则textColor会默认为白色) + inited: null, // 下拉刷新初始化完毕的回调 + inOffset: null, // 下拉的距离进入offset范围内那一刻的回调 + outOffset: null, // 下拉的距离大于offset那一刻的回调 + onMoving: null, // 下拉过程中的回调,滑动过程一直在执行; rate下拉区域当前高度与指定距离的比值(inOffset: rate<1; outOffset: rate>=1); downHight当前下拉区域的高度 + beforeLoading: null, // 准备触发下拉刷新的回调: 如果return true,将不触发showLoading和callback回调; 常用来完全自定义下拉刷新, 参考案例【淘宝 v6.8.0】 + showLoading: null, // 显示下拉刷新进度的回调 + afterLoading: null, // 显示下拉刷新进度的回调之后,马上要执行的代码 (如: 在wxs中使用) + beforeEndDownScroll: null, // 准备结束下拉的回调. 返回结束下拉的延时执行时间,默认0ms; 常用于结束下拉之前再显示另外一小段动画,才去隐藏下拉刷新的场景, 参考案例【dotJump】 + endDownScroll: null, // 结束下拉刷新的回调 + afterEndDownScroll: null, // 结束下拉刷新的回调,马上要执行的代码 (如: 在wxs中使用) + callback: function(mescroll) { + // 下拉刷新的回调;默认重置上拉加载列表为第一页 + mescroll.resetUpScroll(); + } + }) +} + +/* 配置参数:上拉加载 */ +MeScroll.prototype.extendUpScroll = function(optUp) { + // 上拉加载的配置 + MeScroll.extend(optUp, { + use: true, // 是否启用上拉加载; 默认true + auto: true, // 是否在初始化完毕之后自动执行上拉加载的回调; 默认true + isLock: false, // 是否锁定上拉加载,默认false; + isBoth: true, // 上拉加载时,如果滑动到列表顶部是否可以同时触发下拉刷新;默认true,两者可同时触发; + callback: null, // 上拉加载的回调;function(page,mescroll){ } + page: { + num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始 + size: 10, // 每页数据的数量 + time: null // 加载第一页数据服务器返回的时间; 防止用户翻页时,后台新增了数据从而导致下一页数据重复; + }, + noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看 + offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance ) + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '-- END --', // 没有更多数据的提示文本 + bgColor: "transparent", // 背景颜色 (建议在pages.json中再设置一下backgroundColorBottom) + textColor: "gray", // 文本颜色 (当bgColor配置了颜色,而textColor未配置时,则textColor会默认为白色) + inited: null, // 初始化完毕的回调 + showLoading: null, // 显示加载中的回调 + showNoMore: null, // 显示无更多数据的回调 + hideUpScroll: null, // 隐藏上拉加载的回调 + errDistance: 60, // endErr的时候需往上滑动一段距离,使其往下滑动时再次触发onReachBottom,仅mescroll-body生效 + toTop: { + // 回到顶部按钮,需配置src才显示 + src: null, // 图片路径,默认null (绝对路径或网络图) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000 + duration: 300, // 回到顶部的动画时长,默认300ms (当值为0或300则使用系统自带回到顶部,更流畅; 其他值则通过step模拟,部分机型可能不够流畅,所以非特殊情况不建议修改此项) + btnClick: null, // 点击按钮的回调 + onShow: null, // 是否显示的回调 + zIndex: 9990, // fixed定位z-index值 + left: null, // 到左边的距离, 默认null. 此项有值时,right不生效. (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + right: 20, // 到右边的距离, 默认20 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + safearea: false, // bottom的偏移量是否加上底部安全区的距离, 默认false, 需要适配iPhoneX时使用 (具体的界面如果不配置此项,则取本vue的safearea值) + width: 72, // 回到顶部图标的宽度, 默认72 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + radius: "50%" // 圆角, 默认"50%" (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: null, // 图标路径 + tip: '~ 暂无相关数据 ~', // 提示 + btnText: '', // 按钮 + btnClick: null, // 点击按钮的回调 + onShow: null, // 是否显示的回调 + fixed: false, // 是否使用fixed定位,默认false; 配置fixed为true,以下的top和zIndex才生效 (transform会使fixed失效,最终会降级为absolute) + top: "100rpx", // fixed定位的top值 (完整的单位值,如 "10%"; "100rpx") + zIndex: 99 // fixed定位z-index值 + }, + onScroll: false // 是否监听滚动事件 + }) +} + +/* 配置参数 */ +MeScroll.extend = function(userOption, defaultOption) { + if (!userOption) return defaultOption; + for (let key in defaultOption) { + if (userOption[key] == null) { + let def = defaultOption[key]; + if (def != null && typeof def === 'object') { + userOption[key] = MeScroll.extend({}, def); // 深度匹配 + } else { + userOption[key] = def; + } + } else if (typeof userOption[key] === 'object') { + MeScroll.extend(userOption[key], defaultOption[key]); // 深度匹配 + } + } + return userOption; +} + +/* 简单判断是否配置了颜色 (非透明,非白色) */ +MeScroll.prototype.hasColor = function(color) { + if(!color) return false; + let c = color.toLowerCase(); + return c != "#fff" && c != "#ffffff" && c != "transparent" && c != "white" +} + +/* -------初始化下拉刷新------- */ +MeScroll.prototype.initDownScroll = function() { + let me = this; + // 配置参数 + me.optDown = me.options.down || {}; + if(!me.optDown.textColor && me.hasColor(me.optDown.bgColor)) me.optDown.textColor = "#fff"; // 当bgColor有值且textColor未设置,则textColor默认白色 + me.extendDownScroll(me.optDown); + + // 如果是mescroll-body且配置了native,则禁止自定义的下拉刷新 + if(me.isScrollBody && me.optDown.native){ + me.optDown.use = false + }else{ + me.optDown.native = false // 仅mescroll-body支持,mescroll-uni不支持 + } + + me.downHight = 0; // 下拉区域的高度 + + // 在页面中加入下拉布局 + if (me.optDown.use && me.optDown.inited) { + // 初始化完毕的回调 + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + me.optDown.inited(me); + }, 0) + } +} + +/* 列表touchstart事件 */ +MeScroll.prototype.touchstartEvent = function(e) { + if (!this.optDown.use) return; + + this.startPoint = this.getPoint(e); // 记录起点 + this.startTop = this.getScrollTop(); // 记录此时的滚动条位置 + this.startAngle = 0; // 初始角度 + this.lastPoint = this.startPoint; // 重置上次move的点 + this.maxTouchmoveY = this.getBodyHeight() - this.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况) + this.inTouchend = false; // 标记不是touchend +} + +/* 列表touchmove事件 */ +MeScroll.prototype.touchmoveEvent = function(e) { + if (!this.optDown.use) return; + let me = this; + + let scrollTop = me.getScrollTop(); // 当前滚动条的距离 + let curPoint = me.getPoint(e); // 当前点 + + let moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + + // 向下拉 && 在顶部 + // mescroll-body,直接判定在顶部即可 + // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove + // scroll-view滚动到顶部时,scrollTop不一定为0,也有可能大于0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等 + if (moveY > 0 && ( + (me.isScrollBody && scrollTop <= 0) + || + (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)) ) + )) { + // 可下拉的条件 + if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && + me.optUp.isBoth))) { + + // 下拉的初始角度是否在配置的范围内 + if(!me.startAngle) me.startAngle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90] + if (me.startAngle < me.optDown.minAngle) return; // 如果小于配置的角度,则不往下执行下拉刷新 + + // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发 + if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) { + me.inTouchend = true; // 标记执行touchend + me.touchendEvent(); // 提前触发touchend + return; + } + + me.preventDefault(e); // 阻止默认事件 + + let diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上) + + // 下拉距离 < 指定距离 + if (me.downHight < me.optDown.offset) { + if (me.movetype !== 1) { + me.movetype = 1; // 加入标记,保证只执行一次 + me.isDownEndSuccess = null; // 重置是否加载成功的状态 (wxs执行的是wxs.wxs) + me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次 + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小 + + // 指定距离 <= 下拉距离 + } else { + if (me.movetype !== 2) { + me.movetype = 2; // 加入标记,保证只执行一次 + me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次 + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + if (diff > 0) { // 向下拉 + me.downHight += diff * me.optDown.outOffsetRate; // 越往下,高度变化越小 + } else { // 向上收 + me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度 + } + } + + me.downHight = Math.round(me.downHight) // 取整 + let rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值 + me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行 + } + } + + me.lastPoint = curPoint; // 记录本次移动的点 +} + +/* 列表touchend事件 */ +MeScroll.prototype.touchendEvent = function(e) { + if (!this.optDown.use) return; + // 如果下拉区域高度已改变,则需重置回来 + if (this.isMoveDown) { + if (this.downHight >= this.optDown.offset) { + // 符合触发刷新的条件 + this.triggerDownScroll(); + } else { + // 不符合的话 则重置 + this.downHight = 0; + this.endDownScrollCall(this); + } + this.movetype = 0; + this.isMoveDown = false; + } else if (!this.isScrollBody && this.getScrollTop() === this.startTop) { // scroll-view到顶/左/右/底的滑动事件 + let isScrollUp = this.getPoint(e).y - this.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 上滑 + if (isScrollUp) { + // 需检查滑动的角度 + let angle = this.getAngle(this.getPoint(e), this.startPoint); // 两点之间的角度,区间 [0,90] + if (angle > 80) { + // 检查并触发上拉 + this.triggerUpScroll(true); + } + } + } +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +MeScroll.prototype.getPoint = function(e) { + if (!e) { + return { + x: 0, + y: 0 + } + } + if (e.touches && e.touches[0]) { + return { + x: e.touches[0].pageX, + y: e.touches[0].pageY + } + } else if (e.changedTouches && e.changedTouches[0]) { + return { + x: e.changedTouches[0].pageX, + y: e.changedTouches[0].pageY + } + } else { + return { + x: e.clientX, + y: e.clientY + } + } +} + +/* 计算两点之间的角度: 区间 [0,90]*/ +MeScroll.prototype.getAngle = function(p1, p2) { + let x = Math.abs(p1.x - p2.x); + let y = Math.abs(p1.y - p2.y); + let z = Math.sqrt(x * x + y * y); + let angle = 0; + if (z !== 0) { + angle = Math.asin(y / z) / Math.PI * 180; + } + return angle +} + +/* 触发下拉刷新 */ +MeScroll.prototype.triggerDownScroll = function() { + if (this.optDown.beforeLoading && this.optDown.beforeLoading(this)) { + //return true则处于完全自定义状态 + } else { + this.showDownScroll(); // 下拉刷新中... + !this.optDown.native && this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据 + } +} + +/* 显示下拉进度布局 */ +MeScroll.prototype.showDownScroll = function() { + this.isDownScrolling = true; // 标记下拉中 + if (this.optDown.native) { + uni.startPullDownRefresh(); // 系统自带的下拉刷新 + this.showDownLoadingCall(0); // 仍触发showLoading,因为上拉加载用到 + } else{ + this.downHight = this.optDown.offset; // 更新下拉区域高度 + this.showDownLoadingCall(this.downHight); // 下拉刷新中... + } +} + +MeScroll.prototype.showDownLoadingCall = function(downHight) { + this.optDown.showLoading && this.optDown.showLoading(this, downHight); // 下拉刷新中... + this.optDown.afterLoading && this.optDown.afterLoading(this, downHight); // 下拉刷新中...触发之后马上要执行的代码 +} + +/* 显示系统自带的下拉刷新时需要处理的业务 */ +MeScroll.prototype.onPullDownRefresh = function() { + this.isDownScrolling = true; // 标记下拉中 + this.showDownLoadingCall(0); // 仍触发showLoading,因为上拉加载用到 + this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据 +} + +/* 结束下拉刷新 */ +MeScroll.prototype.endDownScroll = function() { + if (this.optDown.native) { // 结束原生下拉刷新 + this.isDownScrolling = false; + this.endDownScrollCall(this); + uni.stopPullDownRefresh(); + return + } + let me = this; + // 结束下拉刷新的方法 + let endScroll = function() { + me.downHight = 0; + me.isDownScrolling = false; + me.endDownScrollCall(me); + if(!me.isScrollBody){ + me.setScrollHeight(0) // scroll-view重置滚动区域,使数据不满屏时仍可检查触发翻页 + me.scrollTo(0,0) // scroll-view需重置滚动条到顶部,避免startTop大于0时,对下拉刷新的影响 + } + } + // 结束下拉刷新时的回调 + let delay = 0; + if (me.optDown.beforeEndDownScroll) { + delay = me.optDown.beforeEndDownScroll(me); // 结束下拉刷新的延时,单位ms + if(me.isDownEndSuccess == null) delay = 0; // 没有执行加载中,则不延时 + } + if (typeof delay === 'number' && delay > 0) { + setTimeout(endScroll, delay); + } else { + endScroll(); + } +} + +MeScroll.prototype.endDownScrollCall = function() { + this.optDown.endDownScroll && this.optDown.endDownScroll(this); + this.optDown.afterEndDownScroll && this.optDown.afterEndDownScroll(this); +} + +/* 锁定下拉刷新:isLock=ture,null锁定;isLock=false解锁 */ +MeScroll.prototype.lockDownScroll = function(isLock) { + if (isLock == null) isLock = true; + this.optDown.isLock = isLock; +} + +/* 锁定上拉加载:isLock=ture,null锁定;isLock=false解锁 */ +MeScroll.prototype.lockUpScroll = function(isLock) { + if (isLock == null) isLock = true; + this.optUp.isLock = isLock; +} + +/* -------初始化上拉加载------- */ +MeScroll.prototype.initUpScroll = function() { + let me = this; + // 配置参数 + me.optUp = me.options.up || {use: false} + if(!me.optUp.textColor && me.hasColor(me.optUp.bgColor)) me.optUp.textColor = "#fff"; // 当bgColor有值且textColor未设置,则textColor默认白色 + me.extendUpScroll(me.optUp); + + if (me.optUp.use === false) return; // 配置不使用上拉加载时,则不初始化上拉布局 + me.optUp.hasNext = true; // 如果使用上拉,则默认有下一页 + me.startNum = me.optUp.page.num + 1; // 记录page开始的页码 + + // 初始化完毕的回调 + if (me.optUp.inited) { + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + me.optUp.inited(me); + }, 0) + } +} + +/*滚动到底部的事件 (仅mescroll-body生效)*/ +MeScroll.prototype.onReachBottom = function() { + if (this.isScrollBody && !this.isUpScrolling) { // 只能支持下拉刷新的时候同时可以触发上拉加载,否则滚动到底部就需要上滑一点才能触发onReachBottom + if (!this.optUp.isLock && this.optUp.hasNext) { + this.triggerUpScroll(); + } + } +} + +/*列表滚动事件 (仅mescroll-body生效)*/ +MeScroll.prototype.onPageScroll = function(e) { + if (!this.isScrollBody) return; + + // 更新滚动条的位置 (主要用于判断下拉刷新时,滚动条是否在顶部) + this.setScrollTop(e.scrollTop); + + // 顶部按钮的显示隐藏 + if (e.scrollTop >= this.optUp.toTop.offset) { + this.showTopBtn(); + } else { + this.hideTopBtn(); + } +} + +/*列表滚动事件*/ +MeScroll.prototype.scroll = function(e, onScroll) { + // 更新滚动条的位置 + this.setScrollTop(e.scrollTop); + // 更新滚动内容高度 + this.setScrollHeight(e.scrollHeight); + + // 向上滑还是向下滑动 + if (this.preScrollY == null) this.preScrollY = 0; + this.isScrollUp = e.scrollTop - this.preScrollY > 0; + this.preScrollY = e.scrollTop; + + // 上滑 && 检查并触发上拉 + this.isScrollUp && this.triggerUpScroll(true); + + // 顶部按钮的显示隐藏 + if (e.scrollTop >= this.optUp.toTop.offset) { + this.showTopBtn(); + } else { + this.hideTopBtn(); + } + + // 滑动监听 + this.optUp.onScroll && onScroll && onScroll() +} + +/* 触发上拉加载 */ +MeScroll.prototype.triggerUpScroll = function(isCheck) { + if (!this.isUpScrolling && this.optUp.use && this.optUp.callback) { + // 是否校验在底部; 默认不校验 + if (isCheck === true) { + let canUp = false; + // 还有下一页 && 没有锁定 && 不在下拉中 + if (this.optUp.hasNext && !this.optUp.isLock && !this.isDownScrolling) { + if (this.getScrollBottom() <= this.optUp.offset) { // 到底部 + canUp = true; // 标记可上拉 + } + } + if (canUp === false) return; + } + this.showUpScroll(); // 上拉加载中... + this.optUp.page.num++; // 预先加一页,如果失败则减回 + this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调 + this.num = this.optUp.page.num; // 把最新的页数赋值在mescroll上,避免对page的影响 + this.size = this.optUp.page.size; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.time = this.optUp.page.time; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.optUp.callback(this); // 执行回调,联网加载数据 + } +} + +/* 显示上拉加载中 */ +MeScroll.prototype.showUpScroll = function() { + this.isUpScrolling = true; // 标记上拉加载中 + this.optUp.showLoading && this.optUp.showLoading(this); // 回调 +} + +/* 显示上拉无更多数据 */ +MeScroll.prototype.showNoMore = function() { + this.optUp.hasNext = false; // 标记无更多数据 + this.optUp.showNoMore && this.optUp.showNoMore(this); // 回调 +} + +/* 隐藏上拉区域**/ +MeScroll.prototype.hideUpScroll = function() { + this.optUp.hideUpScroll && this.optUp.hideUpScroll(this); // 回调 +} + +/* 结束上拉加载 */ +MeScroll.prototype.endUpScroll = function(isShowNoMore) { + if (isShowNoMore != null) { // isShowNoMore=null,不处理下拉状态,下拉刷新的时候调用 + if (isShowNoMore) { + this.showNoMore(); // isShowNoMore=true,显示无更多数据 + } else { + this.hideUpScroll(); // isShowNoMore=false,隐藏上拉加载 + } + } + this.isUpScrolling = false; // 标记结束上拉加载 +} + +/* 重置上拉加载列表为第一页 + *isShowLoading 是否显示进度布局; + * 1.默认null,不传参,则显示上拉加载的进度布局 + * 2.传参true, 则显示下拉刷新的进度布局 + * 3.传参false,则不显示上拉和下拉的进度 (常用于静默更新列表数据) + */ +MeScroll.prototype.resetUpScroll = function(isShowLoading) { + if (this.optUp && this.optUp.use) { + let page = this.optUp.page; + this.prePageNum = page.num; // 缓存重置前的页码,加载失败可退回 + this.prePageTime = page.time; // 缓存重置前的时间,加载失败可退回 + page.num = this.startNum; // 重置为第一页 + page.time = null; // 重置时间为空 + if (!this.isDownScrolling && isShowLoading !== false) { // 如果不是下拉刷新触发的resetUpScroll并且不配置列表静默更新,则显示进度; + if (isShowLoading == null) { + this.removeEmpty(); // 移除空布局 + this.showUpScroll(); // 不传参,默认显示上拉加载的进度布局 + } else { + this.showDownScroll(); // 传true,显示下拉刷新的进度布局,不清空列表 + } + } + this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调 + this.num = page.num; // 把最新的页数赋值在mescroll上,避免对page的影响 + this.size = page.size; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.time = page.time; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.optUp.callback && this.optUp.callback(this); // 执行上拉回调 + } +} + +/* 设置page.num的值 */ +MeScroll.prototype.setPageNum = function(num) { + this.optUp.page.num = num - 1; +} + +/* 设置page.size的值 */ +MeScroll.prototype.setPageSize = function(size) { + this.optUp.page.size = size; +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据量(必传) + * totalPage: 总页数(必传) + * systime: 服务器时间 (可空) + */ +MeScroll.prototype.endByPage = function(dataSize, totalPage, systime) { + let hasNext; + if (this.optUp.use && totalPage != null) hasNext = this.optUp.page.num < totalPage; // 是否还有下一页 + this.endSuccess(dataSize, hasNext, systime); +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据量(必传) + * totalSize: 列表所有数据总数量(必传) + * systime: 服务器时间 (可空) + */ +MeScroll.prototype.endBySize = function(dataSize, totalSize, systime) { + let hasNext; + if (this.optUp.use && totalSize != null) { + let loadSize = (this.optUp.page.num - 1) * this.optUp.page.size + dataSize; // 已加载的数据总数 + hasNext = loadSize < totalSize; // 是否还有下一页 + } + this.endSuccess(dataSize, hasNext, systime); +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据个数(不是所有页的数据总和),用于上拉加载判断是否还有下一页.如果不传,则会判断还有下一页 + * hasNext: 是否还有下一页,布尔类型;用来解决这个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据dataSize判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据. + * systime: 服务器时间(可空);用来解决这个小问题:当准备翻下一页时,数据库新增了几条记录,此时翻下一页,前面的几条数据会和上一页的重复;这里传入了systime,那么upCallback的page.time就会有值,把page.time传给服务器,让后台过滤新加入的那几条记录 + */ +MeScroll.prototype.endSuccess = function(dataSize, hasNext, systime) { + let me = this; + // 结束下拉刷新 + if (me.isDownScrolling) { + me.isDownEndSuccess = true + me.endDownScroll(); + } + + // 结束上拉加载 + if (me.optUp.use) { + let isShowNoMore; // 是否已无更多数据 + if (dataSize != null) { + let pageNum = me.optUp.page.num; // 当前页码 + let pageSize = me.optUp.page.size; // 每页长度 + // 如果是第一页 + if (pageNum === 1) { + if (systime) me.optUp.page.time = systime; // 设置加载列表数据第一页的时间 + } + if (dataSize < pageSize || hasNext === false) { + // 返回的数据不满一页时,则说明已无更多数据 + me.optUp.hasNext = false; + if (dataSize === 0 && pageNum === 1) { + // 如果第一页无任何数据且配置了空布局 + isShowNoMore = false; + me.showEmpty(); + } else { + // 总列表数少于配置的数量,则不显示无更多数据 + let allDataSize = (pageNum - 1) * pageSize + dataSize; + if (allDataSize < me.optUp.noMoreSize) { + isShowNoMore = false; + } else { + isShowNoMore = true; + } + me.removeEmpty(); // 移除空布局 + } + } else { + // 还有下一页 + isShowNoMore = false; + me.optUp.hasNext = true; + me.removeEmpty(); // 移除空布局 + } + } + + // 隐藏上拉 + me.endUpScroll(isShowNoMore); + } +} + +/* 回调失败,结束下拉刷新和上拉加载 */ +MeScroll.prototype.endErr = function(errDistance) { + // 结束下拉,回调失败重置回原来的页码和时间 + if (this.isDownScrolling) { + this.isDownEndSuccess = false + let page = this.optUp.page; + if (page && this.prePageNum) { + page.num = this.prePageNum; + page.time = this.prePageTime; + } + this.endDownScroll(); + } + // 结束上拉,回调失败重置回原来的页码 + if (this.isUpScrolling) { + this.optUp.page.num--; + this.endUpScroll(false); + // 如果是mescroll-body,则需往回滚一定距离 + if(this.isScrollBody && errDistance !== 0){ // 不处理0 + if(!errDistance) errDistance = this.optUp.errDistance; // 不传,则取默认 + this.scrollTo(this.getScrollTop() - errDistance, 0) // 往上回滚的距离 + } + } +} + +/* 显示空布局 */ +MeScroll.prototype.showEmpty = function() { + this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(true) +} + +/* 移除空布局 */ +MeScroll.prototype.removeEmpty = function() { + this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(false) +} + +/* 显示回到顶部的按钮 */ +MeScroll.prototype.showTopBtn = function() { + if (!this.topBtnShow) { + this.topBtnShow = true; + this.optUp.toTop.onShow && this.optUp.toTop.onShow(true); + } +} + +/* 隐藏回到顶部的按钮 */ +MeScroll.prototype.hideTopBtn = function() { + if (this.topBtnShow) { + this.topBtnShow = false; + this.optUp.toTop.onShow && this.optUp.toTop.onShow(false); + } +} + +/* 获取滚动条的位置 */ +MeScroll.prototype.getScrollTop = function() { + return this.scrollTop || 0 +} + +/* 记录滚动条的位置 */ +MeScroll.prototype.setScrollTop = function(y) { + this.scrollTop = y; +} + +/* 滚动到指定位置 */ +MeScroll.prototype.scrollTo = function(y, t) { + this.myScrollTo && this.myScrollTo(y, t) // scrollview需自定义回到顶部方法 +} + +/* 自定义scrollTo */ +MeScroll.prototype.resetScrollTo = function(myScrollTo) { + this.myScrollTo = myScrollTo +} + +/* 滚动条到底部的距离 */ +MeScroll.prototype.getScrollBottom = function() { + return this.getScrollHeight() - this.getClientHeight() - this.getScrollTop() +} + +/* 计步器 + star: 开始值 + end: 结束值 + callback(step,timer): 回调step值,计步器timer,可自行通过window.clearInterval(timer)结束计步器; + t: 计步时长,传0则直接回调end值;不传则默认300ms + rate: 周期;不传则默认30ms计步一次 + * */ +MeScroll.prototype.getStep = function(star, end, callback, t, rate) { + let diff = end - star; // 差值 + if (t === 0 || diff === 0) { + callback && callback(end); + return; + } + t = t || 300; // 时长 300ms + rate = rate || 30; // 周期 30ms + let count = t / rate; // 次数 + let step = diff / count; // 步长 + let i = 0; // 计数 + let timer = setInterval(function() { + if (i < count - 1) { + star += step; + callback && callback(star, timer); + i++; + } else { + callback && callback(end, timer); // 最后一次直接设置end,避免计算误差 + clearInterval(timer); + } + }, rate); +} + +/* 滚动容器的高度 */ +MeScroll.prototype.getClientHeight = function(isReal) { + let h = this.clientHeight || 0 + if (h === 0 && isReal !== true) { // 未获取到容器的高度,可临时取body的高度 (可能会有误差) + h = this.getBodyHeight() + } + return h +} +MeScroll.prototype.setClientHeight = function(h) { + this.clientHeight = h; +} + +/* 滚动内容的高度 */ +MeScroll.prototype.getScrollHeight = function() { + return this.scrollHeight || 0; +} +MeScroll.prototype.setScrollHeight = function(h) { + this.scrollHeight = h; +} + +/* body的高度 */ +MeScroll.prototype.getBodyHeight = function() { + return this.bodyHeight || 0; +} +MeScroll.prototype.setBodyHeight = function(h) { + this.bodyHeight = h; +} + +/* 阻止浏览器默认滚动事件 */ +MeScroll.prototype.preventDefault = function(e) { + // 小程序不支持e.preventDefault, 已在wxs中禁止 + // app的bounce只能通过配置pages.json的style.app-plus.bounce为"none"来禁止, 或使用renderjs禁止 + // cancelable:是否可以被禁用; defaultPrevented:是否已经被禁用 + if (e && e.cancelable && !e.defaultPrevented) e.preventDefault() +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.vue b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.vue new file mode 100644 index 0000000..503ed2f --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.vue @@ -0,0 +1,477 @@ + + + + + + + + + + + + + + + diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-comp.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-comp.js new file mode 100644 index 0000000..abe7cd7 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-comp.js @@ -0,0 +1,47 @@ +/** + * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期 + */ +const MescrollCompMixin = { + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 (一级) + onPageScroll(e) { + this.handlePageScroll(e) + }, + onReachBottom() { + this.handleReachBottom() + }, + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh(){ + this.handlePullDownRefresh() + }, + data() { + return { + mescroll: { // mescroll-body写在子子子...组件的情况 (多级) + onPageScroll: e=>{ + this.handlePageScroll(e) + }, + onReachBottom: ()=>{ + this.handleReachBottom() + }, + onPullDownRefresh: ()=>{ + this.handlePullDownRefresh() + } + } + } + }, + methods:{ + handlePageScroll(e){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onPageScroll(e); + }, + handleReachBottom(){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onReachBottom(); + }, + handlePullDownRefresh(){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onPullDownRefresh(); + } + } +} + +export default MescrollCompMixin; diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js new file mode 100644 index 0000000..102dd39 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js @@ -0,0 +1,66 @@ +/** + * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例) + */ +const MescrollMoreItemMixin = { + // 支付宝小程序不支持props的mixin,需写在具体的页面中 + // #ifndef MP-ALIPAY || MP-DINGTALK + props:{ + i: Number, // 每个tab页的专属下标 + index: { // 当前tab的下标 + type: Number, + default(){ + return 0 + } + } + }, + // #endif + data() { + return { + downOption:{ + auto:false // 不自动加载 + }, + upOption:{ + auto:false // 不自动加载 + }, + isInit: false // 当前tab是否已初始化 + } + }, + watch:{ + // 监听下标的变化 + index(val){ + if (this.i === val && !this.isInit) this.mescrollTrigger() + } + }, + methods: { + // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序) + mescrollInitByRef() { + if(!this.mescroll || !this.mescroll.resetUpScroll){ + // 字节跳动小程序编辑器不支持一个页面存在相同的ref, 多mescroll的ref需动态生成, 格式为'mescrollRef下标' + let mescrollRef = this.$refs.mescrollRef || this.$refs['mescrollRef'+this.i]; + if(mescrollRef) this.mescroll = mescrollRef.mescroll + } + }, + // mescroll组件初始化的回调,可获取到mescroll对象 (覆盖mescroll-mixins.js的mescrollInit, 为了标记isInit) + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序 + // 自动加载当前tab的数据 + if(this.i === this.index){ + this.mescrollTrigger() + } + }, + // 主动触发加载 + mescrollTrigger(){ + this.isInit = true; // 标记为true + if (this.mescroll) { + if (this.mescroll.optDown.use) { + this.mescroll.triggerDownScroll(); + } else{ + this.mescroll.triggerUpScroll(); + } + } + } + } +} + +export default MescrollMoreItemMixin; diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js new file mode 100644 index 0000000..76c8e6c --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js @@ -0,0 +1,74 @@ +/** + * mescroll-body写在子组件时, 需通过mescroll的mixins补充子组件缺少的生命周期 + */ +const MescrollMoreMixin = { + data() { + return { + tabIndex: 0, // 当前tab下标 + mescroll: { // mescroll-body写在子子子...组件的情况 (多级) + onPageScroll: e=>{ + this.handlePageScroll(e) + }, + onReachBottom: ()=>{ + this.handleReachBottom() + }, + onPullDownRefresh: ()=>{ + this.handlePullDownRefresh() + } + } + } + }, + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll(e) { + this.handlePageScroll(e) + }, + onReachBottom() { + this.handleReachBottom() + }, + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh(){ + this.handlePullDownRefresh() + }, + methods:{ + handlePageScroll(e){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onPageScroll(e); + }, + handleReachBottom(){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onReachBottom(); + }, + handlePullDownRefresh(){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onPullDownRefresh(); + }, + // 根据下标获取对应子组件的mescroll + getMescroll(i){ + if(!this.mescrollItems) this.mescrollItems = []; + if(!this.mescrollItems[i]) { + // v-for中的refs + let vForItem = this.$refs["mescrollItem"]; + if(vForItem){ + this.mescrollItems[i] = vForItem[i] + }else{ + // 普通的refs,不可重复 + this.mescrollItems[i] = this.$refs["mescrollItem"+i]; + } + } + let item = this.mescrollItems[i] + return item ? item.mescroll : null + }, + // 切换tab,恢复滚动条位置 + tabChange(i){ + let mescroll = this.getMescroll(i); + if(mescroll){ + // 延时(比$nextTick靠谱一些),确保元素已渲染 + setTimeout(()=>{ + mescroll.scrollTo(mescroll.getScrollTop(),0) + },30) + } + } + } +} + +export default MescrollMoreMixin; diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/mixins.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/mixins.js new file mode 100644 index 0000000..34ffa3c --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/mixins.js @@ -0,0 +1,109 @@ +// 定义在wxs (含renderjs) 逻辑层的数据和方法, 与视图层相互通信 +const WxsMixin = { + data() { + return { + // 传入wxs视图层的数据 (响应式) + wxsProp: { + optDown:{}, // 下拉刷新的配置 + scrollTop:0, // 滚动条的距离 + bodyHeight:0, // body的高度 + isDownScrolling:false, // 是否正在下拉刷新中 + isUpScrolling:false, // 是否正在上拉加载中 + isScrollBody:true, // 是否为mescroll-body滚动 + isUpBoth:true, // 上拉加载时,是否同时可以下拉刷新 + t: 0 // 数据更新的标记 (只有数据更新了,才会触发wxs的Observer) + }, + + // 标记调用wxs视图层的方法 + callProp: { + callType: '', // 方法名 + t: 0 // 数据更新的标记 (只有数据更新了,才会触发wxs的Observer) + }, + + // 不用wxs的平台使用此处的wxsBiz对象,抹平wxs的写法 (微信小程序和APP使用的wxsBiz对象是./wxs/wxs.wxs) + // #ifndef MP-WEIXIN || MP-QQ || APP-PLUS || H5 + wxsBiz: { + //注册列表touchstart事件,用于下拉刷新 + touchstartEvent: e=> { + this.mescroll.touchstartEvent(e); + }, + //注册列表touchmove事件,用于下拉刷新 + touchmoveEvent: e=> { + this.mescroll.touchmoveEvent(e); + }, + //注册列表touchend事件,用于下拉刷新 + touchendEvent: e=> { + this.mescroll.touchendEvent(e); + }, + propObserver(){}, // 抹平wxs的写法 + callObserver(){} // 抹平wxs的写法 + }, + // #endif + + // 不用renderjs的平台使用此处的renderBiz对象,抹平renderjs的写法 (app 和 h5 使用的renderBiz对象是./wxs/renderjs.js) + // #ifndef APP-PLUS || H5 + renderBiz: { + propObserver(){} // 抹平renderjs的写法 + } + // #endif + } + }, + methods: { + // wxs视图层调用逻辑层的回调 + wxsCall(msg){ + if(msg.type === 'setWxsProp'){ + // 更新wxsProp数据 (值改变才触发更新) + this.wxsProp = { + optDown: this.mescroll.optDown, + scrollTop: this.mescroll.getScrollTop(), + bodyHeight: this.mescroll.getBodyHeight(), + isDownScrolling: this.mescroll.isDownScrolling, + isUpScrolling: this.mescroll.isUpScrolling, + isUpBoth: this.mescroll.optUp.isBoth, + isScrollBody:this.mescroll.isScrollBody, + t: Date.now() + } + }else if(msg.type === 'setLoadType'){ + // 设置inOffset,outOffset的状态 + this.downLoadType = msg.downLoadType + // 状态挂载到mescroll对象, 以便在其他组件中使用, 比如中 + this.$set(this.mescroll, 'downLoadType', this.downLoadType) + // 重置是否加载成功的状态 + this.$set(this.mescroll, 'isDownEndSuccess', null) + }else if(msg.type === 'triggerDownScroll'){ + // 主动触发下拉刷新 + this.mescroll.triggerDownScroll(); + }else if(msg.type === 'endDownScroll'){ + // 结束下拉刷新 + this.mescroll.endDownScroll(); + }else if(msg.type === 'triggerUpScroll'){ + // 主动触发上拉加载 + this.mescroll.triggerUpScroll(true); + } + } + }, + mounted() { + // #ifdef MP-WEIXIN || MP-QQ || APP-PLUS || H5 + // 配置主动触发wxs显示加载进度的回调 + this.mescroll.optDown.afterLoading = ()=>{ + this.callProp = {callType: "showLoading", t: Date.now()} // 触发wxs的方法 (值改变才触发更新) + } + // 配置主动触发wxs隐藏加载进度的回调 + this.mescroll.optDown.afterEndDownScroll = ()=>{ + this.callProp = {callType: "endDownScroll", t: Date.now()} // 触发wxs的方法 (值改变才触发更新) + let delay = 300 + (this.mescroll.optDown.beforeEndDelay || 0) + setTimeout(()=>{ + if(this.downLoadType === 4 || this.downLoadType === 0){ + this.callProp = {callType: "clearTransform", t: Date.now()} // 触发wxs的方法 (值改变才触发更新) + } + // 状态挂载到mescroll对象, 以便在其他组件中使用, 比如中 + this.$set(this.mescroll, 'downLoadType', this.downLoadType) + }, delay) + } + // 初始化wxs的数据 + this.wxsCall({type: 'setWxsProp'}) + // #endif + } +} + +export default WxsMixin; diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/renderjs.js b/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/renderjs.js new file mode 100644 index 0000000..207f388 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/renderjs.js @@ -0,0 +1,92 @@ +// 使用renderjs直接操作window对象,实现动态控制app和h5的bounce +// bounce: iOS橡皮筋,Android半月弧,h5浏览器下拉背景等效果 (下拉刷新时禁止) +// https://uniapp.dcloud.io/frame?id=renderjs + +// 与wxs的me实例一致 +var me = {} + +// 初始化window对象的touch事件 (仅初始化一次) +if(window && !window.$mescrollRenderInit){ + window.$mescrollRenderInit = true + + + window.addEventListener('touchstart', function(e){ + if (me.disabled()) return; + me.startPoint = me.getPoint(e); // 记录起点 + }, {passive: true}) + + + window.addEventListener('touchmove', function(e){ + if (me.disabled()) return; + if (me.getScrollTop() > 0) return; // 需在顶部下拉,才禁止bounce + + var curPoint = me.getPoint(e); // 当前点 + var moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 向下拉 + if (moveY > 0) { + // 可下拉的条件 + if (!me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && me.isUpBoth))) { + + // 只有touch在mescroll的view上面,才禁止bounce + var el = e.target; + var isMescrollTouch = false; + while (el && el.tagName && el.tagName !== 'UNI-PAGE-BODY' && el.tagName != "BODY") { + var cls = el.classList; + if (cls && cls.contains('mescroll-render-touch')) { + isMescrollTouch = true + break; + } + el = el.parentNode; // 继续检查其父元素 + } + // 禁止bounce (不会对swiper和iOS侧滑返回造成影响) + if (isMescrollTouch && e.cancelable && !e.defaultPrevented) e.preventDefault(); + } + } + }, {passive: false}) +} + +/* 获取滚动条的位置 */ +me.getScrollTop = function() { + return me.scrollTop || 0 +} + +/* 是否禁用下拉刷新 */ +me.disabled = function(){ + return !me.optDown || !me.optDown.use || me.optDown.native +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +me.getPoint = function(e) { + if (!e) { + return {x: 0,y: 0} + } + if (e.touches && e.touches[0]) { + return {x: e.touches[0].pageX,y: e.touches[0].pageY} + } else if (e.changedTouches && e.changedTouches[0]) { + return {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY} + } else { + return {x: e.clientX,y: e.clientY} + } +} + +/** + * 监听逻辑层数据的变化 (实时更新数据) + */ +function propObserver(wxsProp) { + me.optDown = wxsProp.optDown + me.scrollTop = wxsProp.scrollTop + me.isDownScrolling = wxsProp.isDownScrolling + me.isUpScrolling = wxsProp.isUpScrolling + me.isUpBoth = wxsProp.isUpBoth +} + +/* 导出模块 */ +const renderBiz = { + data() { + return { + propObserver: propObserver, + } + } +} + +export default renderBiz; \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/wxs.wxs b/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/wxs.wxs new file mode 100644 index 0000000..3fb4ad9 --- /dev/null +++ b/src/uni_modules/mescroll-uni/components/mescroll-uni/wxs/wxs.wxs @@ -0,0 +1,268 @@ +// 使用wxs处理交互动画, 提高性能, 同时避免小程序bounce对下拉刷新的影响 +// https://uniapp.dcloud.io/frame?id=wxs +// https://developers.weixin.qq.com/miniprogram/dev/framework/view/interactive-animation.html + +// 模拟mescroll实例, 与mescroll.js的写法尽量保持一致 +var me = {} + +// ------ 自定义下拉刷新动画 start ------ + +/* 下拉过程中的回调,滑动过程一直在执行 (rate<1为inOffset; rate>1为outOffset) */ +me.onMoving = function (ins, rate, downHight){ + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': 'transform', // 可解决下拉过程中, image和swiper脱离文档流的问题 + 'transform': 'translateY(' + downHight + 'px)', + 'transition': '' + }) + // 环形进度条 + var progress = ins.selectComponent('.mescroll-wxs-progress') + progress && progress.setStyle({transform: 'rotate(' + 360 * rate + 'deg)'}) + }) +} + +/* 显示下拉刷新进度 */ +me.showLoading = function (ins){ + me.downHight = me.optDown.offset + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': 'auto', + 'transform': 'translateY(' + me.downHight + 'px)', + 'transition': 'transform 300ms' + }) + }) +} + +/* 结束下拉 */ +me.endDownScroll = function (ins){ + me.downHight = 0; + me.isDownScrolling = false; + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': 'auto', + 'transform': 'translateY(0)', // 不可以写空串,否则scroll-view渲染不完整 (延时350ms会调clearTransform置空) + 'transition': 'transform 300ms' + }) + }) +} + +/* 结束下拉动画执行完毕后, 清除transform和transition, 避免对列表内容样式造成影响, 如: h5的list-msg示例下拉进度条漏出来等 */ +me.clearTransform = function (ins){ + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': '', + 'transform': '', + 'transition': '' + }) + }) +} + +// ------ 自定义下拉刷新动画 end ------ + +/** + * 监听逻辑层数据的变化 (实时更新数据) + */ +function propObserver(wxsProp) { + me.optDown = wxsProp.optDown + me.scrollTop = wxsProp.scrollTop + me.bodyHeight = wxsProp.bodyHeight + me.isDownScrolling = wxsProp.isDownScrolling + me.isUpScrolling = wxsProp.isUpScrolling + me.isUpBoth = wxsProp.isUpBoth + me.isScrollBody = wxsProp.isScrollBody + me.startTop = wxsProp.scrollTop // 及时更新touchstart触发的startTop, 避免scroll-view快速惯性滚动到顶部取值不准确 +} + +/** + * 监听逻辑层数据的变化 (调用wxs的方法) + */ +function callObserver(callProp, oldValue, ins) { + if (me.disabled()) return; + if(callProp.callType){ + // 逻辑层(App Service)的style已失效,需在视图层(Webview)设置style + if(callProp.callType === 'showLoading'){ + me.showLoading(ins) + }else if(callProp.callType === 'endDownScroll'){ + me.endDownScroll(ins) + }else if(callProp.callType === 'clearTransform'){ + me.clearTransform(ins) + } + } +} + +/** + * touch事件 + */ +function touchstartEvent(e, ins) { + me.downHight = 0; // 下拉的距离 + me.startPoint = me.getPoint(e); // 记录起点 + me.startTop = me.getScrollTop(); // 记录此时的滚动条位置 + me.startAngle = 0; // 初始角度 + me.lastPoint = me.startPoint; // 重置上次move的点 + me.maxTouchmoveY = me.getBodyHeight() - me.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况) + me.inTouchend = false; // 标记不是touchend + + me.callMethod(ins, {type: 'setWxsProp'}) // 同步更新wxsProp的数据 (小程序是异步的,可能touchmove先执行,才到propObserver; h5和app是同步) +} + +function touchmoveEvent(e, ins) { + var isPrevent = true // false表示不往上冒泡,相当于调用了同时调用了stopPropagation和preventDefault (对小程序生效, h5和app无效) + + if (me.disabled()) return isPrevent; + + var scrollTop = me.getScrollTop(); // 当前滚动条的距离 + var curPoint = me.getPoint(e); // 当前点 + + var moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + + // 向下拉 && 在顶部 + // mescroll-body,直接判定在顶部即可 + // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove + // scroll-view滚动到顶部时,scrollTop不一定为0,也有可能大于0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等 + if (moveY > 0 && ( + (me.isScrollBody && scrollTop <= 0) + || + (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)) ) + )) { + // 可下拉的条件 + if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && + me.isUpBoth))) { + + // 下拉的角度是否在配置的范围内 + if(!me.startAngle) me.startAngle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90] + if (me.startAngle < me.optDown.minAngle) return isPrevent; // 如果小于配置的角度,则不往下执行下拉刷新 + + // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发 + if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) { + me.inTouchend = true; // 标记执行touchend + touchendEvent(e, ins); // 提前触发touchend + return isPrevent; + } + + isPrevent = false // 小程序是return false + + var diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上) + + // 下拉距离 < 指定距离 + if (me.downHight < me.optDown.offset) { + if (me.movetype !== 1) { + me.movetype = 1; // 加入标记,保证只执行一次 + // me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次 + me.callMethod(ins, {type: 'setLoadType', downLoadType: 1}) + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小 + + // 指定距离 <= 下拉距离 + } else { + if (me.movetype !== 2) { + me.movetype = 2; // 加入标记,保证只执行一次 + // me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次 + me.callMethod(ins, {type: 'setLoadType', downLoadType: 2}) + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + if (diff > 0) { // 向下拉 + me.downHight += diff * me.optDown.outOffsetRate; // 越往下,高度变化越小 + } else { // 向上收 + me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度 + } + } + + me.downHight = Math.round(me.downHight) // 取整 + var rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值 + // me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行 + me.onMoving(ins, rate, me.downHight) + } + } + + me.lastPoint = curPoint; // 记录本次移动的点 + + return isPrevent // false表示不往上冒泡,相当于调用了同时调用了stopPropagation和preventDefault (对小程序生效, h5和app无效) +} + +function touchendEvent(e, ins) { + // 如果下拉区域高度已改变,则需重置回来 + if (me.isMoveDown) { + if (me.downHight >= me.optDown.offset) { + // 符合触发刷新的条件 + me.downHight = me.optDown.offset; // 更新下拉区域高度 + // me.triggerDownScroll(); + me.callMethod(ins, {type: 'triggerDownScroll'}) + } else { + // 不符合的话 则重置 + me.downHight = 0; + // me.optDown.endDownScroll && me.optDown.endDownScroll(me); + me.callMethod(ins, {type: 'endDownScroll'}) + } + me.movetype = 0; + me.isMoveDown = false; + } else if (!me.isScrollBody && me.getScrollTop() === me.startTop) { // scroll-view到顶/左/右/底的滑动事件 + var isScrollUp = me.getPoint(e).y - me.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 上滑 + if (isScrollUp) { + // 需检查滑动的角度 + var angle = me.getAngle(me.getPoint(e), me.startPoint); // 两点之间的角度,区间 [0,90] + if (angle > 80) { + // 检查并触发上拉 + // me.triggerUpScroll(true); + me.callMethod(ins, {type: 'triggerUpScroll'}) + } + } + } + me.callMethod(ins, {type: 'setWxsProp'}) // 同步更新wxsProp的数据 (小程序是异步的,可能touchmove先执行,才到propObserver; h5和app是同步) +} + +/* 是否禁用下拉刷新 */ +me.disabled = function(){ + return !me.optDown || !me.optDown.use || me.optDown.native +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +me.getPoint = function(e) { + if (!e) { + return {x: 0,y: 0} + } + if (e.touches && e.touches[0]) { + return {x: e.touches[0].pageX,y: e.touches[0].pageY} + } else if (e.changedTouches && e.changedTouches[0]) { + return {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY} + } else { + return {x: e.clientX,y: e.clientY} + } +} + +/* 计算两点之间的角度: 区间 [0,90]*/ +me.getAngle = function (p1, p2) { + var x = Math.abs(p1.x - p2.x); + var y = Math.abs(p1.y - p2.y); + var z = Math.sqrt(x * x + y * y); + var angle = 0; + if (z !== 0) { + angle = Math.asin(y / z) / Math.PI * 180; + } + return angle +} + +/* 获取滚动条的位置 */ +me.getScrollTop = function() { + return me.scrollTop || 0 +} + +/* 获取body的高度 */ +me.getBodyHeight = function() { + return me.bodyHeight || 0; +} + +/* 调用逻辑层的方法 */ +me.callMethod = function(ins, param) { + if(ins) ins.callMethod('wxsCall', param) +} + +/* 导出模块 */ +module.exports = { + propObserver: propObserver, + callObserver: callObserver, + touchstartEvent: touchstartEvent, + touchmoveEvent: touchmoveEvent, + touchendEvent: touchendEvent +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/package.json b/src/uni_modules/mescroll-uni/package.json new file mode 100644 index 0000000..819c1bf --- /dev/null +++ b/src/uni_modules/mescroll-uni/package.json @@ -0,0 +1,80 @@ +{ + "id": "mescroll-uni", + "displayName": "【wxs+renderjs实现】高性能的下拉刷新上拉加载组件", + "version": "1.3.7", + "description": "支持uni-app的下拉刷新和上拉加载的组件,支持原生页面和局部区域滚动,支持国际化", + "keywords": [ + "下拉刷新", + "上拉加载", + "翻页", + "分页", + "wxs" +], + "repository": "https://github.com/mescroll/mescroll", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/mescroll-uni" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/src/uni_modules/mescroll-uni/readme.md b/src/uni_modules/mescroll-uni/readme.md new file mode 100644 index 0000000..79f3ff8 --- /dev/null +++ b/src/uni_modules/mescroll-uni/readme.md @@ -0,0 +1,45 @@ +## mescroll --【wxs+renderjs实现】高性能的下拉刷新上拉加载组件 +1. mescroll的uni版本 是专门用在uni-app的下拉刷新和上拉加载的组件 + +2. mescroll的uni版本 继承了mescroll.js的实用功能: 自动处理分页, 自动控制无数据, 空布局提示, 回到顶部按钮 .. + +3. mescroll的uni版本 丰富的案例, 自由灵活的api, 超详细的注释, 可让您快速自定义真正属于自己的下拉上拉组件 + +
+ + +## 最新文档(1.3.7版本):
https://www.mescroll.com/uni.html +2021-04-13 by 小瑾同学 (文档可能会有缓存,建议打开时刷新一下) + + +## 1.3.5版本已调整为[uni_modules](https://uniapp.dcloud.io/uni_modules) +uni_modules版本的mescroll-body 和 mescroll-empty 支持 [easycom规范](https://uniapp.dcloud.io/collocation/pages?id=easycom) +所以 main.js 无需再为mescroll-body注册全局组件 +所以个别页面要单独使用 mescroll-empty , 也无需手动注册 +#### 1.3.5以前的用户升级为uni_modules版本: +``` +1. 删除原来的 @/components/mescroll-uni 组件 +2. 删除 main.js 注册的 mescroll 组件 +3. 从插件市场导入最新mescroll组件 (1.3.5+uni_modules版本) +4. 全局搜索 '@/components/mescroll-uni/' 替换为 '@/uni_modules/mescroll-uni/components/mescroll-uni/' +5. mescroll-empty遵循easycom规范, 若某些页面单独使用 'mescroll-empty.vue', 可删除手动导入的代码 +``` + +## 近期已更新优化的内容: +1. 微信小程序, app, h5使用高性能wxs和renderjs, 下拉刷新更流畅丝滑, 尤其能明显解决Android小程序下拉卡顿的问题 +2. 新增`入门极简`示例, 国际化`mescroll-i18n.vue`示例, 轮播吸顶菜单`mescroll-swiper-sticky.vue`示例 +3. 新增 "局部区域滚动" 的案例: mescroll-body-part.vue 和 mescroll-uni-part.vue +4. 新增 me-video 视频组件, 解决APP端视频下拉悬浮错位的问题, 参考 mescroll-options.vue 示例 +5. 新增 me-tabs 组件,tabs支持水平滑动; 优化mescroll-more和mescroll-swiper的案例, 顶部tab支持水平滑动 +6. 吸顶悬浮提供了原生sticky和监听滚动条实现的示例: sticky.vue 和 sticky-scroll.vue (推荐使用sticky样式实现) +7. mescroll.scrollTo(y)的y支持css选择器, 包括跨自定义组件的后代选择器, 支持滚动到子组件的view (参考 mescroll-options.vue) +8. topbar 顶部是否预留状态栏的高度, 默认false; 还可支持设置状态栏背景: 如 '#ffff00', 'url(xxx) 0 0/100% 100%', 'linear-gradient(xx)' +9. down.bgColor 和 up.bgColor 加载区域的背景,不仅支持色值, 而且还是支持背景图和渐变: 如 'url(xxx) 0 0/100% 100%', 'linear-gradient(xx)' +10. topbar,bgColor支持一行代码定义background: [https://www.runoob.com/cssref/css3-pr-background.html](https://www.runoob.com/cssref/css3-pr-background.html) +
+
+查看更多 ... + +
+ +#### mescroll不支持nvue,也暂无支持的计划哈,so sorry~ \ No newline at end of file diff --git a/src/utils/address_parse.js b/src/utils/address_parse.js new file mode 100644 index 0000000..367bebe --- /dev/null +++ b/src/utils/address_parse.js @@ -0,0 +1,497 @@ +import { getTreeData } from '@/utils' +// import sss from './sss' +const zipCode = [] + + + + +var addressList = []; //地址列表 +var zipCodeList = []; //邮编列表 + + + +/** + * 地址数据处理 + * @param addressList-各级数据对象 + * @param index-对应的省/市/县区/街道 + * @param province-只有直辖市会处理为 北京市北京市 + * @returns + */ +function formatAddresList(addressList, index, province) { + if (index === 1) { + //省 + addressList.province = addressList.name; + addressList.type = "province"; + } + if (index === 2) { + //市 + if (addressList.name == "市辖区") { + addressList.name = province.name; + } + addressList.city = addressList.name; + addressList.type = "city"; + } + if (index === 3) { + //区或者县 + addressList.area = addressList.name; + // addressList.type = "county"; + addressList.type = "area"; + } + if (index === 4) { + //街道 + addressList.street = addressList.name; + addressList.type = "street"; + } + if (addressList.children) { + index++; + addressList.children?.forEach((res) => { + formatAddresList(res, index, addressList); + }); + } +} +/** + * 解析邮编 + * @param + * @returns + */ +function zipCodeFormat(zipCode) { + let list = []; + zipCode.forEach((el) => { + if (el.child) { + el.child.forEach((event) => { + if (event.child) { + event.child.forEach((element) => { + list.push(element.zipcode); + }); + } + }); + } + }); + return list; +} + +var smartObj = {}; +/** + * 解析邮编 + * @param event识别的地址 + * @returns + */ +function smart(event,address=[]) { + + let pcassCode = address + + addressList = pcassCode; + addressList.forEach((item) => { + formatAddresList(item, 1, ""); + }); + + zipCodeList = zipCodeFormat(zipCode); + + event = stripscript(event); //过滤特殊字符 + + let obj = {}; + let copyaddress = JSON.parse(JSON.stringify(event)); + copyaddress = copyaddress.split(" "); + + copyaddress.forEach((res, index) => { + if (res) { + if (res.length == 1) { + res += "XX"; // 过滤掉一位的名字或者地址 + } + let addressObj = smatrAddress(res); + obj = Object.assign(obj, addressObj); + if (JSON.stringify(addressObj) === "{}") { + obj.name = res.replace("XX", ""); + } + } + }); + return obj; +} + +function smatrAddress(event) { + smartObj = {}; + let address = event; + //address= event.replace(/\s/g, ''); //去除空格 + address = stripscript(address); //过滤特殊字符 + //身份证号匹配 + if (IdentityCodeValid(address)) { + smartObj.idCard = address; + address = address.replace(address, ""); + } + + //电话匹配 + let phone = address.match( + /(86-[1][0-9]{10}) | (86[1][0-9]{10})|([1][0-9]{10})/g + ); + if (phone) { + smartObj.phone = phone[0]; + address = address.replace(phone[0], ""); + } + + //邮编匹配 + zipCodeList.forEach((res) => { + if (address.indexOf(res) != -1) { + let num = address.indexOf(res); + let code = address.slice(num, num + 6); + smartObj.zipCode = code; + address = address.replace(code, ""); + } + }); + + let matchAddress = ""; + //省匹配 比如输入北京市朝阳区,会用北 北京 北京市 北京市朝 以此类推在addressList里的province中做匹配,会得到北京市 河北省 天津市等等; + let matchProvince = []; //粗略匹配上的省份 + matchAddress = ""; + + for (let endIndex = 0; endIndex < address.length; endIndex++) { + matchAddress = address.slice(0, endIndex + 2); + + addressList.forEach((res) => { + if (res["province"].indexOf(matchAddress) != -1) { + matchProvince.push({ + province: res.province, + provinceCode: res.code, + matchValue: matchAddress, + }); + } + }); + } + + //统计筛选初略统计出的省份 + matchProvince.forEach((res) => { + res.index = 0; + matchProvince.forEach((el) => { + if (res.province == el.province) { + el.index++; + if (res.matchValue.length > el.matchValue.length) { + el.matchValue = res.matchValue; + } + } + }); + }); + + + if (matchProvince.length != 0) { + let province = matchProvince.reduce((p, v) => (p.index < v.index ? v : p)); + smartObj.province = province.province; + smartObj.provinceCode = province.provinceCode; + address = address.replace(province.matchValue, ""); + } + + matchAddress = ""; + for (let endIndex = 0; endIndex < address.length; endIndex++) { + matchAddress = address.slice(0, endIndex + 2); + //重庆市渝北区121 替换渝北区121 + if(matchAddress == smartObj.province){ + address = address.replace(matchAddress, ""); + break; + } + } + + //市查找 + let matchCity = []; //粗略匹配上的市 + matchAddress = ""; + + for (let endIndex = 0; endIndex < address.length; endIndex++) { + matchAddress = address.slice(0, endIndex + 2); + addressList.forEach((el) => { + if (el.code == smartObj.provinceCode || !smartObj.provinceCode) { + if ( + smartObj.province == "北京市" || + smartObj.province == "天津市" || + smartObj.province == "上海市" || + smartObj.province == "重庆市" + ) { + + el.children?.forEach((item) => { + + item.children?.forEach((res) => { + if (res["area"].indexOf(matchAddress) != -1) { + matchCity.push({ + area: res.area, + areaCode: res.code, + city: item.city, + cityCode: item.code, + matchValue: matchAddress, + province: el.province, + provinceCode: el.code, + }); + } + }); + }); + } else { + el.children?.forEach((res) => { + if (res["city"].indexOf(matchAddress) != -1) { + + matchCity.push({ + city: res.city, + cityCode: res.code, + matchValue: matchAddress, + province: el.province, + provinceCode: el.code, + }); + } + }); + } + } + // } + }); + } + + //统计筛选初略统计出的市 + matchCity.forEach((res) => { + res.index = 0; + matchCity.forEach((el) => { + if (res.city == el.city) { + el.index++; + if (res.matchValue.length > el.matchValue.length) { + el.matchValue = res.matchValue; + } + } + }); + }); + if (matchCity.length != 0) { + let city = matchCity.reduce((p, v) => (p.index < v.index ? v : p)); + smartObj.city = city.city; + smartObj.cityCode = city.cityCode; + smartObj.area = city.area; + smartObj.areaCode = city.areaCode; + if (!smartObj.province) { + smartObj.province = city.province; + smartObj.provinceCode = city.provinceCode; + } + address = address.replace(city.matchValue, ""); + } + + //区县查找 + let matchCounty = []; //粗略匹配上的区县 + matchAddress = ""; + for (let endIndex = 0; endIndex < address.length; endIndex++) { + matchAddress = address.slice(0, endIndex + 2); + addressList.forEach((el) => { + // if (el.name == smartObj.province) { + if ( + smartObj.province == "北京市" || + smartObj.province == "天津市" || + smartObj.province == "上海市" || + smartObj.province == "重庆市" + ) { + //nothing + } else { + el.children?.forEach((item) => { + // if (item.name == smartObj.city) { + item.children?.forEach((res) => { + if (res["area"].indexOf(matchAddress) != -1) { + if (smartObj.province) { + if (res.parent_id == smartObj.cityCode) { + matchCounty.push({ + area: res.area, + areaCode: res.code, + city: item.city, + cityCode: item.code, + matchValue: matchAddress, + province: el.province, + provinceCode: el.code, + }); + } + } else if (!smartObj.province && !smartObj.city) { + matchCounty.push({ + area: res.area, + areaCode: res.code, + city: item.city, + cityCode: item.code, + matchValue: matchAddress, + province: el.province, + provinceCode: el.code, + }); + } + } + }); + // } + }); + } + // } + }); + } + //统计筛选初略统计出的区县 + matchCounty.forEach((res) => { + res.index = 0; + matchCounty.forEach((el) => { + if (res.city == el.city) { + el.index++; + if (res.matchValue.length > el.matchValue.length) { + el.matchValue = res.matchValue; + } + } + }); + }); + if (matchCounty.length != 0) { + let city = matchCounty.reduce((p, v) => (p.index < v.index ? v : p)); + smartObj.area = city.area; + smartObj.areaCode = city.areaCode; + if (!smartObj.province) { + smartObj.province = city.province; + smartObj.provinceCode = city.provinceCode; + } + if (!smartObj.city) { + smartObj.city = city.city; + smartObj.cityCode = city.cityCode; + } + address = address.replace(city.matchValue, ""); + } + + //街道查找 + let matchStreet = []; //粗略匹配上的街道查 + matchAddress = ""; + for (let endIndex = 0; endIndex < address.length; endIndex++) { + matchAddress = address.slice(0, endIndex + 3); + addressList.forEach((el) => { + if (el.name == smartObj.province) { + if ( + smartObj.province == "北京市" || + smartObj.province == "天津市" || + smartObj.province == "上海市" || + smartObj.province == "重庆市" + ) { + //nothing + } else { + el.children.forEach((element) => { + if (element.name == smartObj.city) { + element.children?.forEach((item) => { + if (item.name == smartObj.area) { + item.children?.forEach((res) => { + if (res["street"].indexOf(matchAddress) != -1) { + matchStreet.push({ + street: res.street, + streetCode: res.code, + matchValue: matchAddress, + }); + } + }); + } + }); + } + }); + } + } + }); + } + + //统计筛选初略统计出的区县 + matchStreet.forEach((res) => { + res.index = 0; + matchStreet.forEach((el) => { + if (res.city == el.city) { + el.index++; + if (res.matchValue.length > el.matchValue.length) { + el.matchValue = res.matchValue; + } + } + }); + }); + + if (matchStreet.length != 0) { + let city = matchStreet.reduce((p, v) => (p.index < v.index ? v : p)); + smartObj.street = city.street; + smartObj.streetCode = city.streetCode; + address = address.replace(city.matchValue, ""); + } + //姓名查找 + if (smartObj.province) { + smartObj.address = address; + } + + return smartObj; +} +////过滤特殊字符 +function stripscript(s) { + return s + s = s.replace(/(\d{3})-(\d{4})-(\d{4})/g, "$1$2$3"); + s = s.replace(/(\d{3}) (\d{4}) (\d{4})/g, "$1$2$3"); + var pattern = new RegExp( + "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“’。,、?-]" + ); + var rs = ""; + for (var i = 0; i < s.length; i++) { + rs = rs + s.substr(i, 1).replace(pattern, " "); + } + rs = rs.replace(/[\r\n]/g, ""); + return rs; +} + +function IdentityCodeValid(code) { + let pass; + var city = { + 11: "北京", + 12: "天津", + 13: "河北", + 14: "山西", + 15: "内蒙古", + 21: "辽宁", + 22: "吉林", + 23: "黑龙江 ", + 31: "上海", + 32: "江苏", + 33: "浙江", + 34: "安徽", + 35: "福建", + 36: "江西", + 37: "山东", + 41: "河南", + 42: "湖北 ", + 43: "湖南", + 44: "广东", + 45: "广西", + 46: "海南", + 50: "重庆", + 51: "四川", + 52: "贵州", + 53: "云南", + 54: "西藏 ", + 61: "陕西", + 62: "甘肃", + 63: "青海", + 64: "宁夏", + 65: "新疆", + 71: "台湾", + 81: "香港", + 82: "澳门", + 91: "国外 ", + }; + var tip = ""; + pass = true; + + if (!code || !/^\d{17}(\d|X)$/i.test(code)) { + tip = "身份证号格式错误"; + pass = false; + } else if (!city[code.substr(0, 2)]) { + tip = "地址编码错误"; + pass = false; + } else { + //18位身份证需要验证最后一位校验位 + if (code.length == 18) { + code = code.split(""); + //∑(ai×Wi)(mod 11) + //加权因子 + var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + //校验位 + var parity = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2]; + var sum = 0; + var ai = 0; + var wi = 0; + for (var i = 0; i < 17; i++) { + ai = code[i]; + wi = factor[i]; + sum += ai * wi; + } + var last = parity[sum % 11]; + if (parity[sum % 11] != code[17]) { + tip = "校验位错误"; + pass = false; + } + } + } + return pass; +} + +export default smart; diff --git a/src/utils/async-validator.js b/src/utils/async-validator.js new file mode 100644 index 0000000..2af02cf --- /dev/null +++ b/src/utils/async-validator.js @@ -0,0 +1,1343 @@ +function _extends() { + _extends = Object.assign || function (target) { + for (let i = 1; i < arguments.length; i++) { + const source = arguments[i] + + for (const key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key] + } + } + } + + return target + } + + return _extends.apply(this, arguments) +} + +/* eslint no-console:0 */ +const formatRegExp = /%[sdj%]/g +let warning = function warning() {} // don't print warning message when in production env or node runtime + +if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window + !== 'undefined' && typeof document !== 'undefined') { + warning = function warning(type, errors) { + if (typeof console !== 'undefined' && console.warn) { + if (errors.every((e) => typeof e === 'string')) { + console.warn(type, errors) + } + } + } +} + +function convertFieldsError(errors) { + if (!errors || !errors.length) return null + const fields = {} + errors.forEach((error) => { + const { field } = error + fields[field] = fields[field] || [] + fields[field].push(error) + }) + return fields +} + +function format() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key] + } + + let i = 1 + const f = args[0] + const len = args.length + + if (typeof f === 'function') { + return f.apply(null, args.slice(1)) + } + + if (typeof f === 'string') { + let str = String(f).replace(formatRegExp, (x) => { + if (x === '%%') { + return '%' + } + + if (i >= len) { + return x + } + + switch (x) { + case '%s': + return String(args[i++]) + + case '%d': + return Number(args[i++]) + + case '%j': + try { + return JSON.stringify(args[i++]) + } catch (_) { + return '[Circular]' + } + + break + + default: + return x + } + }) + + for (let arg = args[i]; i < len; arg = args[++i]) { + str += ` ${arg}` + } + + return str + } + + return f +} + +function isNativeStringType(type) { + return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern' +} + +function isEmptyValue(value, type) { + if (value === undefined || value === null) { + return true + } + + if (type === 'array' && Array.isArray(value) && !value.length) { + return true + } + + if (isNativeStringType(type) && typeof value === 'string' && !value) { + return true + } + + return false +} + +function asyncParallelArray(arr, func, callback) { + const results = [] + let total = 0 + const arrLength = arr.length + + function count(errors) { + results.push.apply(results, errors) + total++ + + if (total === arrLength) { + callback(results) + } + } + + arr.forEach((a) => { + func(a, count) + }) +} + +function asyncSerialArray(arr, func, callback) { + let index = 0 + const arrLength = arr.length + + function next(errors) { + if (errors && errors.length) { + callback(errors) + return + } + + const original = index + index += 1 + + if (original < arrLength) { + func(arr[original], next) + } else { + callback([]) + } + } + + next([]) +} + +function flattenObjArr(objArr) { + const ret = [] + Object.keys(objArr).forEach((k) => { + ret.push.apply(ret, objArr[k]) + }) + return ret +} + +function asyncMap(objArr, option, func, callback) { + if (option.first) { + const _pending = new Promise((resolve, reject) => { + const next = function next(errors) { + callback(errors) + return errors.length ? reject({ + errors, + fields: convertFieldsError(errors) + }) : resolve() + } + + const flattenArr = flattenObjArr(objArr) + asyncSerialArray(flattenArr, func, next) + }) + + _pending.catch((e) => e) + + return _pending + } + + let firstFields = option.firstFields || [] + + if (firstFields === true) { + firstFields = Object.keys(objArr) + } + + const objArrKeys = Object.keys(objArr) + const objArrLength = objArrKeys.length + let total = 0 + const results = [] + const pending = new Promise((resolve, reject) => { + const next = function next(errors) { + results.push.apply(results, errors) + total++ + + if (total === objArrLength) { + callback(results) + return results.length ? reject({ + errors: results, + fields: convertFieldsError(results) + }) : resolve() + } + } + + if (!objArrKeys.length) { + callback(results) + resolve() + } + + objArrKeys.forEach((key) => { + const arr = objArr[key] + + if (firstFields.indexOf(key) !== -1) { + asyncSerialArray(arr, func, next) + } else { + asyncParallelArray(arr, func, next) + } + }) + }) + pending.catch((e) => e) + return pending +} + +function complementError(rule) { + return function (oe) { + if (oe && oe.message) { + oe.field = oe.field || rule.fullField + return oe + } + + return { + message: typeof oe === 'function' ? oe() : oe, + field: oe.field || rule.fullField + } + } +} + +function deepMerge(target, source) { + if (source) { + for (const s in source) { + if (source.hasOwnProperty(s)) { + const value = source[s] + + if (typeof value === 'object' && typeof target[s] === 'object') { + target[s] = { ...target[s], ...value } + } else { + target[s] = value + } + } + } + } + + return target +} + +/** + * Rule for validating required fields. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function required(rule, value, source, errors, options, type) { + if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) { + errors.push(format(options.messages.required, rule.fullField)) + } +} + +/** + * Rule for validating whitespace. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function whitespace(rule, value, source, errors, options) { + if (/^\s+$/.test(value) || value === '') { + errors.push(format(options.messages.whitespace, rule.fullField)) + } +} + +/* eslint max-len:0 */ + +const pattern = { + // http://emailregex.com/ + email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + url: new RegExp( + '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', + 'i' + ), + hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i +} +var types = { + integer: function integer(value) { + return types.number(value) && parseInt(value, 10) === value + }, + float: function float(value) { + return types.number(value) && !types.integer(value) + }, + array: function array(value) { + return Array.isArray(value) + }, + regexp: function regexp(value) { + if (value instanceof RegExp) { + return true + } + + try { + return !!new RegExp(value) + } catch (e) { + return false + } + }, + date: function date(value) { + return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear + === 'function' + }, + number: function number(value) { + if (isNaN(value)) { + return false + } + + // 修改源码,将字符串数值先转为数值 + return typeof +value === 'number' + }, + object: function object(value) { + return typeof value === 'object' && !types.array(value) + }, + method: function method(value) { + return typeof value === 'function' + }, + email: function email(value) { + return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255 + }, + url: function url(value) { + return typeof value === 'string' && !!value.match(pattern.url) + }, + hex: function hex(value) { + return typeof value === 'string' && !!value.match(pattern.hex) + } +} +/** + * Rule for validating the type of a value. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function type(rule, value, source, errors, options) { + if (rule.required && value === undefined) { + required(rule, value, source, errors, options) + return + } + + const custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'] + const ruleType = rule.type + + if (custom.indexOf(ruleType) > -1) { + if (!types[ruleType](value)) { + errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)) + } // straight typeof check + } else if (ruleType && typeof value !== rule.type) { + errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)) + } +} + +/** + * Rule for validating minimum and maximum allowed values. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function range(rule, value, source, errors, options) { + const len = typeof rule.len === 'number' + const min = typeof rule.min === 'number' + const max = typeof rule.max === 'number' // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane) + + const spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g + let val = value + let key = null + const num = typeof value === 'number' + const str = typeof value === 'string' + const arr = Array.isArray(value) + + if (num) { + key = 'number' + } else if (str) { + key = 'string' + } else if (arr) { + key = 'array' + } // if the value is not of a supported type for range validation + // the validation rule rule should use the + // type property to also test for a particular type + + if (!key) { + return false + } + + if (arr) { + val = value.length + } + + if (str) { + // 处理码点大于U+010000的文字length属性不准确的bug,如"𠮷𠮷𠮷".lenght !== 3 + val = value.replace(spRegexp, '_').length + } + + if (len) { + if (val !== rule.len) { + errors.push(format(options.messages[key].len, rule.fullField, rule.len)) + } + } else if (min && !max && val < rule.min) { + errors.push(format(options.messages[key].min, rule.fullField, rule.min)) + } else if (max && !min && val > rule.max) { + errors.push(format(options.messages[key].max, rule.fullField, rule.max)) + } else if (min && max && (val < rule.min || val > rule.max)) { + errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max)) + } +} + +const ENUM = 'enum' +/** + * Rule for validating a value exists in an enumerable list. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function enumerable(rule, value, source, errors, options) { + rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [] + + if (rule[ENUM].indexOf(value) === -1) { + errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', '))) + } +} + +/** + * Rule for validating a regular expression pattern. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function pattern$1(rule, value, source, errors, options) { + if (rule.pattern) { + if (rule.pattern instanceof RegExp) { + // if a RegExp instance is passed, reset `lastIndex` in case its `global` + // flag is accidentally set to `true`, which in a validation scenario + // is not necessary and the result might be misleading + rule.pattern.lastIndex = 0 + + if (!rule.pattern.test(value)) { + errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)) + } + } else if (typeof rule.pattern === 'string') { + const _pattern = new RegExp(rule.pattern) + + if (!_pattern.test(value)) { + errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)) + } + } + } +} + +const rules = { + required, + whitespace, + type, + range, + enum: enumerable, + pattern: pattern$1 +} + +/** + * Performs validation for string types. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function string(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value, 'string') && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options, 'string') + + if (!isEmptyValue(value, 'string')) { + rules.type(rule, value, source, errors, options) + rules.range(rule, value, source, errors, options) + rules.pattern(rule, value, source, errors, options) + + if (rule.whitespace === true) { + rules.whitespace(rule, value, source, errors, options) + } + } + } + + callback(errors) +} + +/** + * Validates a function. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function method(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules.type(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates a number. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function number(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (value === '') { + value = undefined + } + + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules.type(rule, value, source, errors, options) + rules.range(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates a boolean. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function _boolean(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules.type(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates the regular expression type. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function regexp(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (!isEmptyValue(value)) { + rules.type(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates a number is an integer. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function integer(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules.type(rule, value, source, errors, options) + rules.range(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates a number is a floating point number. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function floatFn(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules.type(rule, value, source, errors, options) + rules.range(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates an array. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function array(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value, 'array') && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options, 'array') + + if (!isEmptyValue(value, 'array')) { + rules.type(rule, value, source, errors, options) + rules.range(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates an object. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function object(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules.type(rule, value, source, errors, options) + } + } + + callback(errors) +} + +const ENUM$1 = 'enum' +/** + * Validates an enumerable list. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function enumerable$1(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (value !== undefined) { + rules[ENUM$1](rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Validates a regular expression pattern. + * + * Performs validation when a rule only contains + * a pattern property but is not declared as a string type. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function pattern$2(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value, 'string') && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (!isEmptyValue(value, 'string')) { + rules.pattern(rule, value, source, errors, options) + } + } + + callback(errors) +} + +function date(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + + if (!isEmptyValue(value)) { + let dateObject + + if (typeof value === 'number') { + dateObject = new Date(value) + } else { + dateObject = value + } + + rules.type(rule, dateObject, source, errors, options) + + if (dateObject) { + rules.range(rule, dateObject.getTime(), source, errors, options) + } + } + } + + callback(errors) +} + +function required$1(rule, value, callback, source, options) { + const errors = [] + const type = Array.isArray(value) ? 'array' : typeof value + rules.required(rule, value, source, errors, options, type) + callback(errors) +} + +function type$1(rule, value, callback, source, options) { + const ruleType = rule.type + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value, ruleType) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options, ruleType) + + if (!isEmptyValue(value, ruleType)) { + rules.type(rule, value, source, errors, options) + } + } + + callback(errors) +} + +/** + * Performs validation for any type. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param callback The callback function. + * @param source The source object being validated. + * @param options The validation options. + * @param options.messages The validation messages. + */ + +function any(rule, value, callback, source, options) { + const errors = [] + const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field) + + if (validate) { + if (isEmptyValue(value) && !rule.required) { + return callback() + } + + rules.required(rule, value, source, errors, options) + } + + callback(errors) +} + +const validators = { + string, + method, + number, + boolean: _boolean, + regexp, + integer, + float: floatFn, + array, + object, + enum: enumerable$1, + pattern: pattern$2, + date, + url: type$1, + hex: type$1, + email: type$1, + required: required$1, + any +} + +function newMessages() { + return { + default: 'Validation error on field %s', + required: '%s is required', + enum: '%s must be one of %s', + whitespace: '%s cannot be empty', + date: { + format: '%s date %s is invalid for format %s', + parse: '%s date could not be parsed, %s is invalid ', + invalid: '%s date %s is invalid' + }, + types: { + string: '%s is not a %s', + method: '%s is not a %s (function)', + array: '%s is not an %s', + object: '%s is not an %s', + number: '%s is not a %s', + date: '%s is not a %s', + boolean: '%s is not a %s', + integer: '%s is not an %s', + float: '%s is not a %s', + regexp: '%s is not a valid %s', + email: '%s is not a valid %s', + url: '%s is not a valid %s', + hex: '%s is not a valid %s' + }, + string: { + len: '%s must be exactly %s characters', + min: '%s must be at least %s characters', + max: '%s cannot be longer than %s characters', + range: '%s must be between %s and %s characters' + }, + number: { + len: '%s must equal %s', + min: '%s cannot be less than %s', + max: '%s cannot be greater than %s', + range: '%s must be between %s and %s' + }, + array: { + len: '%s must be exactly %s in length', + min: '%s cannot be less than %s in length', + max: '%s cannot be greater than %s in length', + range: '%s must be between %s and %s in length' + }, + pattern: { + mismatch: '%s value %s does not match pattern %s' + }, + clone: function clone() { + const cloned = JSON.parse(JSON.stringify(this)) + cloned.clone = this.clone + return cloned + } + } +} +const messages = newMessages() + +/** + * Encapsulates a validation schema. + * + * @param descriptor An object declaring validation rules + * for this schema. + */ + +function Schema(descriptor) { + this.rules = null + this._messages = messages + this.define(descriptor) +} + +Schema.prototype = { + messages: function messages(_messages) { + if (_messages) { + this._messages = deepMerge(newMessages(), _messages) + } + + return this._messages + }, + define: function define(rules) { + if (!rules) { + throw new Error('Cannot configure a schema with no rules') + } + + if (typeof rules !== 'object' || Array.isArray(rules)) { + throw new Error('Rules must be an object') + } + + this.rules = {} + let z + let item + + for (z in rules) { + if (rules.hasOwnProperty(z)) { + item = rules[z] + this.rules[z] = Array.isArray(item) ? item : [item] + } + } + }, + validate: function validate(source_, o, oc) { + const _this = this + + if (o === void 0) { + o = {} + } + + if (oc === void 0) { + oc = function oc() {} + } + + let source = source_ + let options = o + let callback = oc + + if (typeof options === 'function') { + callback = options + options = {} + } + + if (!this.rules || Object.keys(this.rules).length === 0) { + if (callback) { + callback() + } + + return Promise.resolve() + } + + function complete(results) { + let i + let errors = [] + let fields = {} + + function add(e) { + if (Array.isArray(e)) { + let _errors + + errors = (_errors = errors).concat.apply(_errors, e) + } else { + errors.push(e) + } + } + + for (i = 0; i < results.length; i++) { + add(results[i]) + } + + if (!errors.length) { + errors = null + fields = null + } else { + fields = convertFieldsError(errors) + } + + callback(errors, fields) + } + + if (options.messages) { + let messages$1 = this.messages() + + if (messages$1 === messages) { + messages$1 = newMessages() + } + + deepMerge(messages$1, options.messages) + options.messages = messages$1 + } else { + options.messages = this.messages() + } + + let arr + let value + const series = {} + const keys = options.keys || Object.keys(this.rules) + keys.forEach((z) => { + arr = _this.rules[z] + value = source[z] + arr.forEach((r) => { + let rule = r + + if (typeof rule.transform === 'function') { + if (source === source_) { + source = { ...source } + } + + value = source[z] = rule.transform(value) + } + + if (typeof rule === 'function') { + rule = { + validator: rule + } + } else { + rule = { ...rule } + } + + rule.validator = _this.getValidationMethod(rule) + rule.field = z + rule.fullField = rule.fullField || z + rule.type = _this.getType(rule) + + if (!rule.validator) { + return + } + + series[z] = series[z] || [] + series[z].push({ + rule, + value, + source, + field: z + }) + }) + }) + const errorFields = {} + return asyncMap(series, options, (data, doIt) => { + const { rule } = data + let deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField + === 'object') + deep = deep && (rule.required || !rule.required && data.value) + rule.field = data.field + + function addFullfield(key, schema) { + return { ...schema, fullField: `${rule.fullField}.${key}` } + } + + function cb(e) { + if (e === void 0) { + e = [] + } + + let errors = e + + if (!Array.isArray(errors)) { + errors = [errors] + } + + if (!options.suppressWarning && errors.length) { + Schema.warning('async-validator:', errors) + } + + if (errors.length && rule.message) { + errors = [].concat(rule.message) + } + + errors = errors.map(complementError(rule)) + + if (options.first && errors.length) { + errorFields[rule.field] = 1 + return doIt(errors) + } + + if (!deep) { + doIt(errors) + } else { + // if rule is required but the target object + // does not exist fail at the rule level and don't + // go deeper + if (rule.required && !data.value) { + if (rule.message) { + errors = [].concat(rule.message).map(complementError(rule)) + } else if (options.error) { + errors = [options.error(rule, format(options.messages.required, rule.field))] + } else { + errors = [] + } + + return doIt(errors) + } + + let fieldsSchema = {} + + if (rule.defaultField) { + for (const k in data.value) { + if (data.value.hasOwnProperty(k)) { + fieldsSchema[k] = rule.defaultField + } + } + } + + fieldsSchema = { ...fieldsSchema, ...data.rule.fields } + + for (const f in fieldsSchema) { + if (fieldsSchema.hasOwnProperty(f)) { + const fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]] + fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f)) + } + } + + const schema = new Schema(fieldsSchema) + schema.messages(options.messages) + + if (data.rule.options) { + data.rule.options.messages = options.messages + data.rule.options.error = options.error + } + + schema.validate(data.value, data.rule.options || options, (errs) => { + const finalErrors = [] + + if (errors && errors.length) { + finalErrors.push.apply(finalErrors, errors) + } + + if (errs && errs.length) { + finalErrors.push.apply(finalErrors, errs) + } + + doIt(finalErrors.length ? finalErrors : null) + }) + } + } + + let res + + if (rule.asyncValidator) { + res = rule.asyncValidator(rule, data.value, cb, data.source, options) + } else if (rule.validator) { + res = rule.validator(rule, data.value, cb, data.source, options) + + if (res === true) { + cb() + } else if (res === false) { + cb(rule.message || `${rule.field} fails`) + } else if (res instanceof Array) { + cb(res) + } else if (res instanceof Error) { + cb(res.message) + } + } + + if (res && res.then) { + res.then(() => cb(), (e) => cb(e)) + } + }, (results) => { + complete(results) + }) + }, + getType: function getType(rule) { + if (rule.type === undefined && rule.pattern instanceof RegExp) { + rule.type = 'pattern' + } + + if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) { + throw new Error(format('Unknown rule type %s', rule.type)) + } + + return rule.type || 'string' + }, + getValidationMethod: function getValidationMethod(rule) { + if (typeof rule.validator === 'function') { + return rule.validator + } + + const keys = Object.keys(rule) + const messageIndex = keys.indexOf('message') + + if (messageIndex !== -1) { + keys.splice(messageIndex, 1) + } + + if (keys.length === 1 && keys[0] === 'required') { + return validators.required + } + + return validators[this.getType(rule)] || false + } +} + +Schema.register = function register(type, validator) { + if (typeof validator !== 'function') { + throw new Error('Cannot register a validator by type, validator is not a function') + } + + validators[type] = validator +} + +Schema.warning = warning +Schema.messages = messages + +export default Schema +// # sourceMappingURL=index.js.map diff --git a/src/utils/author.js b/src/utils/author.js new file mode 100644 index 0000000..73caac2 --- /dev/null +++ b/src/utils/author.js @@ -0,0 +1,59 @@ +import permision from "@/utils/permission.js" + +const {platform} = uni.getSystemInfoSync() + +//判断相册是否开启 + async function album(){ + if (platform == 'ios') { + var result = await permision.judgeIosPermission('photoLibrary') + } else { + var result = await permision.requestAndroidPermission('android.permission.WRITE_EXTERNAL_STORAGE') + } + if (result == true || result == 1) { + return true + } else { + if (result === 0) { + // await permision.gotoAppPermissionSetting() + } else { + uni.showModal({ + content: '相册权限未开启,是否去授权', + success: async (res) => { + if (res.confirm) { + await permision.gotoAppPermissionSetting() + } + } + }); + } + return false + } +} + +//判断摄像头是否开启 + async function camera(){ + if (platform == 'ios') { + var result = await permision.judgeIosPermission('camera') + } else { + var result = await permision.requestAndroidPermission('android.permission.CAMERA') + } + if (result == true || result == 1) { + return true + } else { + if (result === 0) { + // await permision.gotoAppPermissionSetting() + } else { + uni.showModal({ + content: '摄像头权限未开启,是否去授权', + success: async (res) => { + if (res.confirm) { + await permision.gotoAppPermissionSetting() + } + } + }); + } + return false + } +} +module.exports = { + album, + camera +} diff --git a/src/utils/check-update.js b/src/utils/check-update.js new file mode 100644 index 0000000..f0a3e7d --- /dev/null +++ b/src/utils/check-update.js @@ -0,0 +1,121 @@ +import { + http +} from '@/utils/request' + +const PACKAGE_INFO_KEY = '__package_info__' + +export function callCheckVersion() { + return new Promise((resolve, reject) => { + // #ifdef APP-PLUS + const { + platform + } = uni.getSystemInfoSync() + plus.runtime.getProperty(plus.runtime.appid, widgetInfo => { + // console.log("==========plus"); + // console.log(plus.runtime); + // console.log("==========widget"); + // console.log(widgetInfo); + + http.get('/v1/app-version', { + params: { + cate: platform, + // v:plus.runtime.versionCode, + v: process.env.VUE_APP_VERSION_CODE + }, + custom: { + toast: false + } + }).then(resData => { + resolve({ + ...resData, + platform + }) + }) + }) + // #endif + // #ifndef APP-PLUS + reject({ + message: '请在App中使用' + }) + // #endif + }) +} + +export function checkUpdate() { + // #ifdef APP-PLUS + return new Promise((resolve, reject) => { + callCheckVersion().then(e => { + if (!e) return; + // if (e.v > plus.runtime.versionCode) { + // uni.showModal({ + // title: '提示', + // content: `${e.v}:${e.name}======${process.env.VUE_APP_VERSION_CODE}:${process.env.VUE_APP_VERSION}`, + // success: function(res) { + // if (res.confirm) { + // console.log('用户点击确定'); + // } else if (res.cancel) { + // console.log('用户点击取消'); + // } + // } + // }); + + if (e.v > process.env.VUE_APP_VERSION_CODE) { + const point = e.link.lastIndexOf('.') + 1 + const pp = e.link.substr(point) + const result = { + is_silently: pp == 'wgt', + url: e.link, + platform: e.platform, + type: pp == 'wgt' ? 'wgt' : e.platform, + version: e.v, + is_mandatory: e.is_force, + ...e + } + + resolve(result) + + uni.setStorageSync(PACKAGE_INFO_KEY, result) + + // 静默更新,只有wgt有 + if (result.is_silently) { + uni.downloadFile({ + url: result.url, + success: res => { + if (res.statusCode == 200) { + // 下载好直接安装,下次启动生效 + plus.runtime.install(res.tempFilePath, { + force: true + }, () => { + console.log("热更成功"); + uni.navigateTo({ + url: `/pages/upgrade_popup/index?local_storage_key=${PACKAGE_INFO_KEY}`, + fail: (err) => { + uni.removeStorageSync(PACKAGE_INFO_KEY) + } + }) + }, (e) => { + console.log("热更失败"); + console.log(e); + }); + + } + } + }); + + return; + } + + + uni.navigateTo({ + url: `/pages/upgrade_popup/index?local_storage_key=${PACKAGE_INFO_KEY}`, + fail: (err) => { + uni.removeStorageSync(PACKAGE_INFO_KEY) + } + }) + } + }).catch(err => { + reject(err) + }) + }) + // // #endif +} diff --git a/src/utils/filters.js b/src/utils/filters.js new file mode 100644 index 0000000..b699c38 --- /dev/null +++ b/src/utils/filters.js @@ -0,0 +1,217 @@ + +import { division } from './index' + +export function payStatusText(value) { + const status = [{ + value: -1, + label: '其它' + }, { + value: 0, + label: '待付款' + }, { + value: 1, + label: '待发货' + }, { + value: 2, + label: '发货中' + }, , { + value: 3, + label: '已发货' + }, { + value: 9, + label: '已完成' + }, { + value: 10, + label: '已取消' + }] + const obj = status.find((e) => e?.value == value) ?? {} + return obj?.label ?? value +} + +//售后提示文字 +export function saleText(value) { + const status = [ + { + value: 1, + label: '待补充资料' + }, + { + value: 2, + label: '待客服审核中' + }, + { + value: 3, + label: '待客户确认中' + }, + { + value: 4, + label: '待处理' + }, + { + value: 5, + label: '已完成' + }, + { + value: 7, + label: '已取消' + }, + ] + const obj = status.find((e) => e?.value == value) ?? {} + return obj?.label ?? value +} +//物流状态 +export function LogisticsText(value) { + const status = [ + { + value: 0, + label: '在途' + }, + { + value: 1, + label: '揽收' + }, + { + value: 2, + label: '疑难' + }, + { + value: 3, + label: '签收' + }, + { + value: 4, + label: '退签' + }, + { + value: 5, + label: '派件' + }, + { + value: 6, + label: '拒签' + }, + { + value: 10, + label: '未知' + }, + { + value: 11, + label: '签收' + }, + ] + const obj = status.find((e) => e?.value == value) ?? {} + return obj?.label ?? value +} +export function typeList(value) { + let status = [ + { + value: 1, + label: '退款退货', + }, + { + value: 2, + label: '退款', + }, + { + value: 3, + label: '换货', + }, + { + value: 4, + label: '漏发', + }, + { + value: 5, + label: '其他', + }, + ] + const obj = status.find((e) => e?.value == value) ?? {} + return obj?.label ?? value +} +//支付方式 +export function payment(val) { + let pay + switch (val) { + case "wxpay": + pay = "微信支付" + break; + case "alipay": + pay = "支付宝" + break; + case "wallet": + pay = "可提" + break; + case "balance": + pay = "余额" + break; + case "offline": + pay = "线下支付" + break; + } + return pay +} +export function formatDate(timestamp, fmt = 'yyyy-MM-dd HH:mm:ss') { + const date = new Date(timestamp) + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'H+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds(), + 'f+': date.getMilliseconds() + } + for (const k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + const str = o[k] + '' + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : _pad(str)) + } + } + return fmt +} + +export function _pad(n, z = 2) { + return ('00' + n).slice(-z) +} +//性别 +export function filterGender(val) { + let gender + switch (val) { + case "unknown": + gender = "未知 " + break; + case 'male': + gender = "男" + break; + case 'female': + gender = "女" + break + } + return gender +} + +//截取小数点后面的数字 +export function intercept(val) { + return String(val).split('.')[0] +} +//手机号处理 +export function showPhone(val) { + return val?.replace(/^(\d{3})\d+(\d{4})$/, '$1****$2') +} +//银行卡处理 +export function hideBankCard(value) { + if (value && value.length > 8) { + return `${value.substring(0, 4)} ${"*".repeat(value.length - 8).replace(/(.{4})/g, `$1 `)}${value.length % 4 ? " " : ""}${value.slice(-4)}`; + } + return value; +} + +//价格格式化 +export function numFormat(num, n = 2) { + if (num >= 10000) { + num = parseFloat(division(num , 10000).toFixed(n)) + 'W'; + } + return num; +} diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..9092c50 --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,96 @@ +/** + * 获取月份天数 + * @param {number} year + * @param {number} month + * @returns 天数 + */ +export function getDayCount(year, month) { + if (month == 2) { + if (year % 400 === 0 || (year % 4 === 0 && year % 100)) { // 闰年 + return 29; + } + return 28; + } + return [1, 3, 5, 7, 8, 10, 12].indexOf(month) >= 0 ? 31 : 30; +} + + +/** + * 计算指定日期 后几天的日期 + * @param {Date} date + * @param {Number} count + */ +export function dateAfterDayCount(date = Date.now(), count = 1) { + date = new Date(date) + date.setDate(date.getDate() + count) + return date +} + + +// 加法函数(精度丢失问题) +export function add(arg1, arg2) { + let r1, r2, m; + try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } + try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } + m = Math.pow(10, Math.max(r1, r2)); + return (arg1 * m + arg2 * m) / m +} + + +// 减法函数(精度丢失问题) +export function sub(arg1, arg2) { + let r1, r2, m, n; + try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } + try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } + m = Math.pow(10, Math.max(r1, r2)); + n = (r1 >= r2) ? r1 : r2; + return Number(((arg1 * m - arg2 * m) / m).toFixed(n)); +} + + + +// 乘法函数(精度丢失问题) +export function mcl(num1, num2) { + let m = 0, s1 = num1.toString(), s2 = num2.toString(); + try { m += s1.split(".")[1].length } catch (e) { } + try { m += s2.split(".")[1].length } catch (e) { } + return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m); +} + + + + +// 除法函数(精度丢失问题) +export function division(num1, num2) { + let t1, t2, r1, r2; + try { + t1 = num1.toString().split('.')[1].length; + } catch (e) { + t1 = 0; + } + try { + t2 = num2.toString().split(".")[1].length; + } catch (e) { + t2 = 0; + } + r1 = Number(num1.toString().replace(".", "")); + r2 = Number(num2.toString().replace(".", "")); + return (r1 / r2) * Math.pow(10, t2 - t1); +} + + +//递归生成树形结构 +export function getTreeData(data, pid, pidName = 'parentId', idName = 'id', childrenName = 'children', key = 'key', isNull = true) { + let arr = []; + + for (let i = 0; i < data.length; i++) { + if (data[i][pidName] == pid) { + data[i][key] = data[i][idName]; + data[i][childrenName] = getTreeData(data, data[i][idName], pidName, idName, childrenName, key, isNull); + if (isNull && data[i][childrenName].length == 0) delete data[i][childrenName] + arr.push(data[i]); + } + } + + return arr; +} diff --git a/src/utils/login.js b/src/utils/login.js new file mode 100644 index 0000000..48ce8a3 --- /dev/null +++ b/src/utils/login.js @@ -0,0 +1,37 @@ +import { + http +} from '@/utils/request' + +import store from '@/store' + +// 获取登录凭证(code) +export function getWxCode() { + return new Promise((resolve, reject) => { + uni.login({ + success(res) { + resolve(res.code); + }, + fail(res) { + reject(res); + } + }); + }); +} + +//小程序静默登录 +export async function wxMnpLogin(){ + store.commit('user/LOGOUT') + const code = await getWxCode() + silentLogin({code}) +} + + +async function silentLogin(data){ + const provider = 'wechat-mini' + const resData = await http.post(`/v1/socialite/code-auth/${provider}`,data,{ + custom:{ + toast:false + } + }) + store.commit('user/LOGIN', resData.token) + } diff --git a/src/utils/ossutil/base64.js b/src/utils/ossutil/base64.js new file mode 100644 index 0000000..eea932e --- /dev/null +++ b/src/utils/ossutil/base64.js @@ -0,0 +1,143 @@ + +var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var base64DecodeChars = new Array( + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); +function encode(str) { + var out, i, len; + var c1, c2, c3; + len = str.length; + i = 0; + out = ""; + while (i < len) { + c1 = str.charCodeAt(i++) & 0xff; + if (i == len) { + out += base64EncodeChars.charAt(c1 >> 2); + out += base64EncodeChars.charAt((c1 & 0x3) << 4); + out += "=="; + break; + } + c2 = str.charCodeAt(i++); + if (i == len) { + out += base64EncodeChars.charAt(c1 >> 2); + out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); + out += base64EncodeChars.charAt((c2 & 0xF) << 2); + out += "="; + break; + } + c3 = str.charCodeAt(i++); + out += base64EncodeChars.charAt(c1 >> 2); + out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); + out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); + out += base64EncodeChars.charAt(c3 & 0x3F); + } + return out; +} +function decode(str) { + var c1, c2, c3, c4; + var i, len, out; + len = str.length; + i = 0; + out = ""; + while (i < len) { + /* c1 */ + do { + c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]; + } while (i < len && c1 == -1); + if (c1 == -1) + break; + /* c2 */ + do { + c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]; + } while (i < len && c2 == -1); + if (c2 == -1) + break; + out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); + /* c3 */ + do { + c3 = str.charCodeAt(i++) & 0xff; + if (c3 == 61) + return out; + c3 = base64DecodeChars[c3]; + } while (i < len && c3 == -1); + if (c3 == -1) + break; + out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2)); + /* c4 */ + do { + c4 = str.charCodeAt(i++) & 0xff; + if (c4 == 61) + return out; + c4 = base64DecodeChars[c4]; + } while (i < len && c4 == -1); + if (c4 == -1) + break; + out += String.fromCharCode(((c3 & 0x03) << 6) | c4); + } + return out; +} + + +function utf16to8(str) { + var out, i, len, c; + out = ""; + len = str.length; + for (i = 0; i < len; i++) { + c = str.charCodeAt(i); + if ((c >= 0x0001) && (c <= 0x007F)) { + out += str.charAt(i); + } else if (c > 0x07FF) { + out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); + out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); + out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); + } else { + out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); + out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); + } + } + return out; +} +function utf8to16(str) { + var out, i, len, c; + var char2, char3; + out = ""; + len = str.length; + i = 0; + while (i < len) { + c = str.charCodeAt(i++); + switch (c >> 4) { + case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: + // 0xxxxxxx + out += str.charAt(i - 1); + break; + case 12: case 13: + // 110x xxxx 10xx xxxx + char2 = str.charCodeAt(i++); + out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); + break; + case 14: + // 1110 xxxx 10xx xxxx 10xx xxxx + char2 = str.charCodeAt(i++); + char3 = str.charCodeAt(i++); + out += String.fromCharCode(((c & 0x0F) << 12) | + ((char2 & 0x3F) << 6) | + ((char3 & 0x3F) << 0)); + break; + } + } + return out; +} + + +module.exports = { + encode: encode, + decode: decode, + utf16to8: utf16to8, + utf8to16: utf8to16 +} \ No newline at end of file diff --git a/src/utils/ossutil/crypto.js b/src/utils/ossutil/crypto.js new file mode 100644 index 0000000..117c1cc --- /dev/null +++ b/src/utils/ossutil/crypto.js @@ -0,0 +1,178 @@ +const Crypto = {}; + +(function(){ + +var base64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + +// Crypto utilities +var util = Crypto.util = { + + // Bit-wise rotate left + rotl: function (n, b) { + return (n << b) | (n >>> (32 - b)); + }, + + // Bit-wise rotate right + rotr: function (n, b) { + return (n << (32 - b)) | (n >>> b); + }, + + // Swap big-endian to little-endian and vice versa + endian: function (n) { + + // If number given, swap endian + if (n.constructor == Number) { + return util.rotl(n, 8) & 0x00FF00FF | + util.rotl(n, 24) & 0xFF00FF00; + } + + // Else, assume array and swap all items + for (var i = 0; i < n.length; i++) + n[i] = util.endian(n[i]); + return n; + + }, + + // Generate an array of any length of random bytes + randomBytes: function (n) { + for (var bytes = []; n > 0; n--) + bytes.push(Math.floor(Math.random() * 256)); + return bytes; + }, + + // Convert a string to a byte array + stringToBytes: function (str) { + var bytes = []; + for (var i = 0; i < str.length; i++) + bytes.push(str.charCodeAt(i)); + return bytes; + }, + + // Convert a byte array to a string + bytesToString: function (bytes) { + var str = []; + for (var i = 0; i < bytes.length; i++) + str.push(String.fromCharCode(bytes[i])); + return str.join(""); + }, + + // Convert a string to big-endian 32-bit words + stringToWords: function (str) { + var words = []; + for (var c = 0, b = 0; c < str.length; c++, b += 8) + words[b >>> 5] |= str.charCodeAt(c) << (24 - b % 32); + return words; + }, + + // Convert a byte array to big-endian 32-bits words + bytesToWords: function (bytes) { + var words = []; + for (var i = 0, b = 0; i < bytes.length; i++, b += 8) + words[b >>> 5] |= bytes[i] << (24 - b % 32); + return words; + }, + + // Convert big-endian 32-bit words to a byte array + wordsToBytes: function (words) { + var bytes = []; + for (var b = 0; b < words.length * 32; b += 8) + bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); + return bytes; + }, + + // Convert a byte array to a hex string + bytesToHex: function (bytes) { + var hex = []; + for (var i = 0; i < bytes.length; i++) { + hex.push((bytes[i] >>> 4).toString(16)); + hex.push((bytes[i] & 0xF).toString(16)); + } + return hex.join(""); + }, + + // Convert a hex string to a byte array + hexToBytes: function (hex) { + var bytes = []; + for (var c = 0; c < hex.length; c += 2) + bytes.push(parseInt(hex.substr(c, 2), 16)); + return bytes; + }, + + // Convert a byte array to a base-64 string + bytesToBase64: function (bytes) { + + // Use browser-native function if it exists + // if (typeof btoa == "function") return btoa(util.bytesToString(bytes)); + + var base64 = [], + overflow; + + for (var i = 0; i < bytes.length; i++) { + switch (i % 3) { + case 0: + base64.push(base64map.charAt(bytes[i] >>> 2)); + overflow = (bytes[i] & 0x3) << 4; + break; + case 1: + base64.push(base64map.charAt(overflow | (bytes[i] >>> 4))); + overflow = (bytes[i] & 0xF) << 2; + break; + case 2: + base64.push(base64map.charAt(overflow | (bytes[i] >>> 6))); + base64.push(base64map.charAt(bytes[i] & 0x3F)); + overflow = -1; + } + } + + // Encode overflow bits, if there are any + if (overflow != undefined && overflow != -1) + base64.push(base64map.charAt(overflow)); + + // Add padding + while (base64.length % 4 != 0) base64.push("="); + + return base64.join(""); + + }, + + // Convert a base-64 string to a byte array + base64ToBytes: function (base64) { + + // Use browser-native function if it exists + if (typeof atob == "function") return util.stringToBytes(atob(base64)); + + // Remove non-base-64 characters + base64 = base64.replace(/[^A-Z0-9+\/]/ig, ""); + + var bytes = []; + + for (var i = 0; i < base64.length; i++) { + switch (i % 4) { + case 1: + bytes.push((base64map.indexOf(base64.charAt(i - 1)) << 2) | + (base64map.indexOf(base64.charAt(i)) >>> 4)); + break; + case 2: + bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & 0xF) << 4) | + (base64map.indexOf(base64.charAt(i)) >>> 2)); + break; + case 3: + bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & 0x3) << 6) | + (base64map.indexOf(base64.charAt(i)))); + break; + } + } + + return bytes; + + } + +}; + +// Crypto mode namespace +Crypto.mode = {}; + +})(); + +module.exports = Crypto; diff --git a/src/utils/ossutil/hmac.js b/src/utils/ossutil/hmac.js new file mode 100644 index 0000000..b307c7c --- /dev/null +++ b/src/utils/ossutil/hmac.js @@ -0,0 +1,34 @@ +const Crypto = require('./crypto.js'); + +(function(){ + +// Shortcut +var util = Crypto.util; + +Crypto.HMAC = function (hasher, message, key, options) { + + // Allow arbitrary length keys + key = key.length > hasher._blocksize * 4 ? + hasher(key, { asBytes: true }) : + util.stringToBytes(key); + + // XOR keys with pad constants + var okey = key, + ikey = key.slice(0); + for (var i = 0; i < hasher._blocksize * 4; i++) { + okey[i] ^= 0x5C; + ikey[i] ^= 0x36; + } + + var hmacbytes = hasher(util.bytesToString(okey) + + hasher(util.bytesToString(ikey) + message, { asString: true }), + { asBytes: true }); + return options && options.asBytes ? hmacbytes : + options && options.asString ? util.bytesToString(hmacbytes) : + util.bytesToHex(hmacbytes); + +}; + +})(); + +module.exports = Crypto; \ No newline at end of file diff --git a/src/utils/ossutil/sha1.js b/src/utils/ossutil/sha1.js new file mode 100644 index 0000000..77c6bcc --- /dev/null +++ b/src/utils/ossutil/sha1.js @@ -0,0 +1,79 @@ +const Crypto = require('./crypto.js'); + +(function(){ + +// Shortcut +var util = Crypto.util; + +// Public API +var SHA1 = Crypto.SHA1 = function (message, options) { + var digestbytes = util.wordsToBytes(SHA1._sha1(message)); + return options && options.asBytes ? digestbytes : + options && options.asString ? util.bytesToString(digestbytes) : + util.bytesToHex(digestbytes); +}; + +// The core +SHA1._sha1 = function (message) { + + var m = util.stringToWords(message), + l = message.length * 8, + w = [], + H0 = 1732584193, + H1 = -271733879, + H2 = -1732584194, + H3 = 271733878, + H4 = -1009589776; + + // Padding + m[l >> 5] |= 0x80 << (24 - l % 32); + m[((l + 64 >>> 9) << 4) + 15] = l; + + for (var i = 0; i < m.length; i += 16) { + + var a = H0, + b = H1, + c = H2, + d = H3, + e = H4; + + for (var j = 0; j < 80; j++) { + + if (j < 16) w[j] = m[i + j]; + else { + var n = w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16]; + w[j] = (n << 1) | (n >>> 31); + } + + var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + ( + j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 : + j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 : + j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 : + (H1 ^ H2 ^ H3) - 899497514); + + H4 = H3; + H3 = H2; + H2 = (H1 << 30) | (H1 >>> 2); + H1 = H0; + H0 = t; + + } + + H0 += a; + H1 += b; + H2 += c; + H3 += d; + H4 += e; + + } + + return [H0, H1, H2, H3, H4]; + +}; + +// Package private blocksize +SHA1._blocksize = 16; + +})(); + +module.exports = Crypto; \ No newline at end of file diff --git a/src/utils/ossutil/uploadFile.js b/src/utils/ossutil/uploadFile.js new file mode 100644 index 0000000..477f90f --- /dev/null +++ b/src/utils/ossutil/uploadFile.js @@ -0,0 +1,89 @@ +// const env = require('./config.js'); //配置文件,在这文件里配置你的OSS keyId和KeySecret,timeout:87600; + +const base64 = require('./base64.js');//Base64,hmac,sha1,crypto相关算法 +require('./hmac.js'); +require('./sha1.js'); +const Crypto = require('./crypto.js'); + +/* + *上传文件到阿里云oss + *@param - filePath :图片的本地资源路径 + *@param - dir:表示要传到哪个目录下 + *@param - successc:成功回调 + *@param - failc:失败回调 + */ +const uploadFile = function (filePath,env, successc, failc) { + console.log(env); + if (!filePath || filePath.length < 9) { + uni.showModal({ + title: '图片错误', + content: '请重试', + showCancel: false, + }) + return; + } + + //图片名字 可以自行定义, 这里是采用当前的时间戳 + 150内的随机数来给图片命名的 + const aliyunFileKey = env.dir + new Date().getTime() + Math.floor(Math.random() * 150) + '.png'; + + const aliyunServerURL = env.uploadImageUrl;//OSS地址,需要https + const accessid = env.OSSAccessKeyId; + const policyBase64 = getPolicyBase64(env); + const signature = getSignature(policyBase64,env);//获取签名 + console.log(env.stsToken); + uni.uploadFile({ + url: aliyunServerURL,//开发者服务器 url + filePath: filePath,//要上传文件资源的路径 + name: 'file',//必须填file + formData: { + 'key': aliyunFileKey, + 'policy': policyBase64, + 'OSSAccessKeyId': accessid, + 'signature': signature, + 'success_action_status': '200', + 'x-oss-security-token': env.stsToken, + }, + success: function (res) { + console.log(res); + if (res.statusCode != 200) { + failc(new Error('上传错误:' + JSON.stringify(res))) + return; + } + successc(aliyunServerURL+aliyunFileKey); + }, + fail: function (err) { + err.wxaddinfo = aliyunServerURL; + failc(err); + }, + }) +} + +const getPolicyBase64 = function (env) { + console.log(env); + let date = new Date(); + date.setHours(date.getHours() + env.timeout); + let srcT = date.toISOString(); + const policyText = { + "expiration": srcT, //设置该Policy的失效时间,超过这个失效时间之后,就没有办法通过这个policy上传文件了 + "conditions": [ + ["content-length-range", 0, 5 * 1024 * 1024] // 设置上传文件的大小限制,5mb + ] + }; + + const policyBase64 = base64.encode(JSON.stringify(policyText)); + console.log(policyBase64); + return policyBase64; +} + +const getSignature = function (policyBase64,env) { + const accesskey = env.AccessKeySecret; + + const bytes = Crypto.HMAC(Crypto.SHA1, policyBase64, accesskey, { + asBytes: true + }); + const signature = Crypto.util.bytesToBase64(bytes); +console.log(signature); + return signature; +} + +module.exports = uploadFile; diff --git a/src/utils/pay.js b/src/utils/pay.js new file mode 100644 index 0000000..c90cc2f --- /dev/null +++ b/src/utils/pay.js @@ -0,0 +1,87 @@ +import { + isWeixinClient +} from './tools' + +export function wxpay(opt) { + + //#ifdef H5 + if(isWeixinClient()) { + return wechath5.wxPay(opt) + }else { + location.href=opt.mweb_url + } + // #endif + + //#ifndef H5 + return new Promise((resolve, reject) => { + // #ifdef MP-WEIXIN + const params = { + timeStamp: opt.timeStamp, + // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 + nonceStr: opt.nonceStr, + // 支付签名随机串,不长于 32 位 + package: opt.package, + // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) + signType: opt.signType, + // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' + paySign: opt.paySign, + } + // #endif + + // #ifdef APP-PLUS + const params = { + orderInfo: opt + } + // #endif + uni.requestPayment({ + provider: 'wxpay', + ...params, + success: res => { + resolve('success'); + }, + cancel: res => { + resolve('fail'); + }, + fail: res => { + console.log(res); + resolve('fail'); + } + }); + }) + //#endif +} + +export function alipay(opt) { + //#ifdef H5 + const div = document.createElement('div') + console.log(opt) + /* 此处form就是后台返回接收到的数据 */ + div.innerHTML = opt + document.body.appendChild(div) + document.forms[0].submit() + return + // #endif + // #ifdef APP-PLUS + return new Promise((resolve, reject) => { + console.log(opt.body); + const params = { + orderInfo: opt.body + } + uni.requestPayment({ + provider: 'alipay', + ...params, + success: res => { + resolve('success'); + }, + cancel: res => { + console.log(res) + resolve('fail'); + }, + fail: res => { + console.log(res) + resolve('fail'); + } + }); + }) + // #endif +} diff --git a/src/utils/permission.js b/src/utils/permission.js new file mode 100644 index 0000000..9981504 --- /dev/null +++ b/src/utils/permission.js @@ -0,0 +1,272 @@ +/** + * 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启 + */ + +var isIos +// #ifdef APP-PLUS +isIos = (plus.os.name == "iOS") +// #endif + +// 判断推送权限是否开启 +function judgeIosPermissionPush() { + var result = false; + var UIApplication = plus.ios.import("UIApplication"); + var app = UIApplication.sharedApplication(); + var enabledTypes = 0; + if (app.currentUserNotificationSettings) { + var settings = app.currentUserNotificationSettings(); + enabledTypes = settings.plusGetAttribute("types"); + console.log("enabledTypes1:" + enabledTypes); + if (enabledTypes == 0) { + console.log("推送权限没有开启"); + } else { + result = true; + console.log("已经开启推送功能!") + } + plus.ios.deleteObject(settings); + } else { + enabledTypes = app.enabledRemoteNotificationTypes(); + if (enabledTypes == 0) { + console.log("推送权限没有开启!"); + } else { + result = true; + console.log("已经开启推送功能!") + } + console.log("enabledTypes2:" + enabledTypes); + } + plus.ios.deleteObject(app); + plus.ios.deleteObject(UIApplication); + return result; +} + +// 判断定位权限是否开启 +function judgeIosPermissionLocation() { + var result = false; + var cllocationManger = plus.ios.import("CLLocationManager"); + var status = cllocationManger.authorizationStatus(); + result = (status != 2) + console.log("定位权限开启:" + result); + // 以下代码判断了手机设备的定位是否关闭,推荐另行使用方法 checkSystemEnableLocation + /* var enable = cllocationManger.locationServicesEnabled(); + var status = cllocationManger.authorizationStatus(); + console.log("enable:" + enable); + console.log("status:" + status); + if (enable && status != 2) { + result = true; + console.log("手机定位服务已开启且已授予定位权限"); + } else { + console.log("手机系统的定位没有打开或未给予定位权限"); + } */ + plus.ios.deleteObject(cllocationManger); + return result; +} + +// 判断麦克风权限是否开启 +function judgeIosPermissionRecord() { + var result = false; + var avaudiosession = plus.ios.import("AVAudioSession"); + var avaudio = avaudiosession.sharedInstance(); + var permissionStatus = avaudio.recordPermission(); + console.log("permissionStatus:" + permissionStatus); + if (permissionStatus == 1684369017 || permissionStatus == 1970168948) { + console.log("麦克风权限没有开启"); + } else { + result = true; + console.log("麦克风权限已经开启"); + } + plus.ios.deleteObject(avaudiosession); + return result; +} + +// 判断相机权限是否开启 +function judgeIosPermissionCamera() { + var result = false; + var AVCaptureDevice = plus.ios.import("AVCaptureDevice"); + var authStatus = AVCaptureDevice.authorizationStatusForMediaType('vide'); + console.log("authStatus:" + authStatus); + if (authStatus == 3) { + result = true; + console.log("相机权限已经开启"); + } else { + console.log("相机权限没有开启"); + } + plus.ios.deleteObject(AVCaptureDevice); + return result; +} + +// 判断相册权限是否开启 +function judgeIosPermissionPhotoLibrary() { + var result = false; + var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary"); + var authStatus = PHPhotoLibrary.authorizationStatus(); + console.log("authStatus:" + authStatus); + if (authStatus == 3) { + result = true; + console.log("相册权限已经开启"); + } else { + console.log("相册权限没有开启"); + } + plus.ios.deleteObject(PHPhotoLibrary); + return result; +} + +// 判断通讯录权限是否开启 +function judgeIosPermissionContact() { + var result = false; + var CNContactStore = plus.ios.import("CNContactStore"); + var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0); + if (cnAuthStatus == 3) { + result = true; + console.log("通讯录权限已经开启"); + } else { + console.log("通讯录权限没有开启"); + } + plus.ios.deleteObject(CNContactStore); + return result; +} + +// 判断日历权限是否开启 +function judgeIosPermissionCalendar() { + var result = false; + var EKEventStore = plus.ios.import("EKEventStore"); + var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0); + if (ekAuthStatus == 3) { + result = true; + console.log("日历权限已经开启"); + } else { + console.log("日历权限没有开启"); + } + plus.ios.deleteObject(EKEventStore); + return result; +} + +// 判断备忘录权限是否开启 +function judgeIosPermissionMemo() { + var result = false; + var EKEventStore = plus.ios.import("EKEventStore"); + var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1); + if (ekAuthStatus == 3) { + result = true; + console.log("备忘录权限已经开启"); + } else { + console.log("备忘录权限没有开启"); + } + plus.ios.deleteObject(EKEventStore); + return result; +} + +// Android权限查询 +function requestAndroidPermission(permissionID) { + return new Promise((resolve, reject) => { + plus.android.requestPermissions( + [permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装 + function(resultObj) { + var result = 0; + for (var i = 0; i < resultObj.granted.length; i++) { + var grantedPermission = resultObj.granted[i]; + console.log('已获取的权限:' + grantedPermission); + result = 1 + } + for (var i = 0; i < resultObj.deniedPresent.length; i++) { + var deniedPresentPermission = resultObj.deniedPresent[i]; + console.log('拒绝本次申请的权限:' + deniedPresentPermission); + result = 0 + } + for (var i = 0; i < resultObj.deniedAlways.length; i++) { + var deniedAlwaysPermission = resultObj.deniedAlways[i]; + console.log('永久拒绝申请的权限:' + deniedAlwaysPermission); + result = -1 + } + resolve(result); + // 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限 + // if (result != 1) { + // gotoAppPermissionSetting() + // } + }, + function(error) { + console.log('申请权限错误:' + error.code + " = " + error.message); + resolve({ + code: error.code, + message: error.message + }); + } + ); + }); +} + +// 使用一个方法,根据参数判断权限 +function judgeIosPermission(permissionID) { + if (permissionID == "location") { + return judgeIosPermissionLocation() + } else if (permissionID == "camera") { + return judgeIosPermissionCamera() + } else if (permissionID == "photoLibrary") { + return judgeIosPermissionPhotoLibrary() + } else if (permissionID == "record") { + return judgeIosPermissionRecord() + } else if (permissionID == "push") { + return judgeIosPermissionPush() + } else if (permissionID == "contact") { + return judgeIosPermissionContact() + } else if (permissionID == "calendar") { + return judgeIosPermissionCalendar() + } else if (permissionID == "memo") { + return judgeIosPermissionMemo() + } + return false; +} + +// 跳转到**应用**的权限页面 +function gotoAppPermissionSetting() { + if (isIos) { + var UIApplication = plus.ios.import("UIApplication"); + var application2 = UIApplication.sharedApplication(); + var NSURL2 = plus.ios.import("NSURL"); + // var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES"); + var setting2 = NSURL2.URLWithString("app-settings:"); + application2.openURL(setting2); + + plus.ios.deleteObject(setting2); + plus.ios.deleteObject(NSURL2); + plus.ios.deleteObject(application2); + } else { + // console.log(plus.device.vendor); + var Intent = plus.android.importClass("android.content.Intent"); + var Settings = plus.android.importClass("android.provider.Settings"); + var Uri = plus.android.importClass("android.net.Uri"); + var mainActivity = plus.android.runtimeMainActivity(); + var intent = new Intent(); + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + var uri = Uri.fromParts("package", mainActivity.getPackageName(), null); + intent.setData(uri); + mainActivity.startActivity(intent); + } +} + +// 检查系统的设备服务是否开启 +// var checkSystemEnableLocation = async function () { +function checkSystemEnableLocation() { + if (isIos) { + var result = false; + var cllocationManger = plus.ios.import("CLLocationManager"); + var result = cllocationManger.locationServicesEnabled(); + console.log("系统定位开启:" + result); + plus.ios.deleteObject(cllocationManger); + return result; + } else { + var context = plus.android.importClass("android.content.Context"); + var locationManager = plus.android.importClass("android.location.LocationManager"); + var main = plus.android.runtimeMainActivity(); + var mainSvr = main.getSystemService(context.LOCATION_SERVICE); + var result = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER); + console.log("系统定位开启:" + result); + return result + } +} + +module.exports = { + judgeIosPermission: judgeIosPermission, + requestAndroidPermission: requestAndroidPermission, + checkSystemEnableLocation: checkSystemEnableLocation, + gotoAppPermissionSetting: gotoAppPermissionSetting +} diff --git a/src/utils/push.js b/src/utils/push.js new file mode 100644 index 0000000..58880f2 --- /dev/null +++ b/src/utils/push.js @@ -0,0 +1,94 @@ + +/** + * 判断Push是否开启 + */ +function isTurnedOnPush(){ + var isOn = undefined; + try{ + if('iOS' == plus.os.name){ + var types = 0; + var app = plus.ios.invoke('UIApplication', 'sharedApplication'); + var settings = plus.ios.invoke(app, 'currentUserNotificationSettings'); + if(settings){ + types = settings.plusGetAttribute('types'); + plus.ios.deleteObject(settings); + }else{ + types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes'); + } + plus.ios.deleteObject(app); + isOn = (0!=types); + }else{ + var main = plus.android.runtimeMainActivity(); + var manager = plus.android.invoke('com.igexin.sdk.PushManager', 'getInstance'); + isOn = plus.android.invoke(manager, 'isPushTurnedOn', main); + } + }catch(e){ + console.error('exception in isTurnedOnPush@dc-push!!'); + } + return isOn; +} + +/** + * 打开Push + * Android平台 - 打开个推(UniPush)的推送通道 + * iOS平台 - 如果开启通知功能,则打开应用的设置页面引导用户开启通知 + */ +function turnOnPush(){ + try{ + if('iOS' == plus.os.name){ + // 如果设置中没有开启通知,则打开应用的设置界面 + if(!isTurnedOnPush()){ + settingInIos(); + } + }else{ + var main = plus.android.runtimeMainActivity(); + var manager = plus.android.invoke('com.igexin.sdk.PushManager', 'getInstance'); + plus.android.invoke(manager, 'turnOnPush', main); + } + }catch(e){ + console.error('exception in turnOnPush@dc-push!!'); + } +} + +/** + * 关闭Push + * Android平台 - 关闭个推(UniPush)的推送通道 + * iOS平台 - 不做任何操作 + */ +function trunOffPush(){ + try{ + if('iOS' == plus.os.name){ + // 这里不做任何操作(不引导用户关闭应用的推送能力),应该通知业务服务器不向此用户下发推送消息 + }else{ + var main = plus.android.runtimeMainActivity(); + var manager = plus.android.invoke('com.igexin.sdk.PushManager', 'getInstance'); + plus.android.invoke(manager, 'turnOffPush', main); + } + }catch(e){ + console.error('exception in trunOffPush@dc-push!!'); + } +} + +/** + * iOS平台打开应用设置界面 + */ +function settingInIos(){ + try{ + if('iOS' == plus.os.name){ + var app = plus.ios.invoke('UIApplication', 'sharedApplication'); + var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:'); + plus.ios.invoke(app, 'openURL:', setting); + plus.ios.deleteObject(setting); + plus.ios.deleteObject(app); + } + }catch(e){ + console.error('exception in settingInIos@dc-push!!'); + } +} + +module.exports = { + isOn: isTurnedOnPush, + iosSetting: settingInIos, + on: turnOnPush, + off: trunOffPush +} diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..3fa6b78 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,118 @@ +import Request from "luch-request"; +import { + v4 as uuidv4 +} from 'uuid' +import store from '@/store' +import throttle from 'uview-ui/libs/function/throttle.js' +const http = new Request() + +http.setConfig((config) => { + config.baseURL = process.env.VUE_APP_BASE_API + config.header = { + ...config.header, + Accept: 'application/json;version=1.2.0' + } + // 是否显示加载状态 + config.custom = { + loading: false, + toast: true, + silence:false + } + return config +}) + + +http.interceptors.request.use(async (config) => { + config.header = { + ...config.header, + // 'X-Request-ID': uuidv4(), + 'client-app': process.env.VUE_APP_LANGUAGE, + 'client-version': process.env.VUE_APP_VERSION, + 'client-platform': store.getters.platform, + 'client-os': store.getters.system + } + if (store.getters.token) { + config.header['Authorization'] = 'Bearer ' + store.getters.token + } + + if (config.custom.loading) { + uni.showLoading({ + title: '加载中', + mask: true + }); + } + + return config +}, (config) => { + return Promise.reject(config) +}) + + +http.interceptors.response.use(async (response) => { + if (response.config.custom.loading) { + uni.hideLoading() + } + + const { + data + } = response + return data +}, (response) => { + if (response.config.custom.loading) { + uni.hideLoading() + } + const { + statusCode, + data + } = response + + if ([2000].includes(data?.errcode)) { + return Promise.reject(response) + } + + if (statusCode == 422) { + const { + errors, + errcode + } = data + for (const key in errors) { + if(response.config.custom.toast){ + uni.showToast({ + title: errors[key][0], + icon: 'none', + duration: 1500 + }) + } + break + } + return Promise.reject(data) + } else if (statusCode == 401) { + store.dispatch('user/resetToken') + + if(!response.config.custom.silence){ + if(response.config.custom.toast){ + uni.showToast({ + title: '登录已过期,请重新登录', + icon: 'none', + duration: 1500 + }) + } + throttle(() => uni.navigateTo({ url: '/pages/login/index' }), 2000) + } + return Promise.reject(data) + } + + if(response.config.custom.toast){ + uni.showToast({ + title: data?.message ?? '系统繁忙,请稍后再试', + icon: 'none', + duration: 1500 + }) + } + + return Promise.reject(data) +}) + +export { + http +} diff --git a/src/utils/tools.js b/src/utils/tools.js new file mode 100644 index 0000000..d0829c6 --- /dev/null +++ b/src/utils/tools.js @@ -0,0 +1,89 @@ + +// 微信 +//1wxpay_mini微信小程序 2wxpay_jsapi 3ios 4android 6wxpay_h5 +//支付宝 +//3alipay_app 4alipay_app + +let client = null +// #ifdef MP-WEIXIN +client = 1 +// #endif + +// #ifdef H5 +client = isWeixinClient() ? 2 : 6 +// #endif + +// #ifdef APP-PLUS +client = 3; +uni.getSystemInfo({ + success: res => { + client = res.platform == 'ios' ? 3 : 4; + }, + fail: res => { + client = 3 + } +}) +// #endif + +const payList = [{ + key: 1, + label: '微信小程序', + aliValue: '', + wxValue: 'wxpay_mp' +}, { + key: 2, + label: '微信浏览器', + aliValue: '', + value: 'wxpay_jsapi' +}, { + key: 3, + label: 'IOS', + aliValue: 'alipay_app', + wxValue: 'wxpay_app' +}, { + key: 4, + label: '安卓', + aliValue: 'alipay_app', + wxValue: 'wxpay_app' +}, { + key: 6, + label: 'H5', + aliValue: '', + wxValue: 'wxpay_h5' +}] + +const payWay = payList.find(e => e.key == client) + +export { + payWay, + client +} + +//判断是否为微信环境 +export function isWeixinClient() { + var ua = navigator.userAgent.toLowerCase(); + if (ua.match(/MicroMessenger/i) == "micromessenger") { + //这是微信环境 + return true; + } else { + //这是非微信环境 + return false; + } +} + +//判断是否为安卓环境 +export function isAndroid() { + let u = navigator.userAgent; + return u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; +} + +//获取url后的参数 以对象返回 +export function strToParams(str) { + var newparams = {} + for (let item of str.split('&')) { + newparams[item.split('=')[0]] = item.split('=')[1] + } + return newparams +} + + diff --git a/src/utils/uni-copy.js b/src/utils/uni-copy.js new file mode 100644 index 0000000..e3e4b74 --- /dev/null +++ b/src/utils/uni-copy.js @@ -0,0 +1,45 @@ +import throttle from 'uview-ui/libs/function/throttle.js' +export default function uniCopy({content,success,error}) { + if(!content) return error('复制的内容不能为空 !') + content = typeof content === 'string' ? content : content.toString() // 复制内容,必须字符串,数字需要转换为字符串 + /** + * 小程序端 和 app端的复制逻辑 + */ + //#ifndef H5 + throttle(()=>{ + uni.setClipboardData({ + data: content, + success: function() { + success("复制成功~") + console.log('success'); + }, + fail:function(){ + success("复制失败~") + } + }); + }, 2000) + //#endif + + /** + * H5端的复制逻辑 + */ + // #ifdef H5 + if (!document.queryCommandSupported('copy')) { //为了兼容有些浏览器 queryCommandSupported 的判断 + // 不支持 + error('浏览器不支持') + } + let textarea = document.createElement("textarea") + textarea.value = content + textarea.readOnly = "readOnly" + document.body.appendChild(textarea) + textarea.select() // 选择对象 + textarea.setSelectionRange(0, content.length) //核心 + let result = document.execCommand("copy") // 执行浏览器复制命令 + if(result){ + success("复制成功~") + }else{ + error("复制失败,请检查h5中调用该方法的方式,是不是用户点击的方式调用的,如果不是请改为用户点击的方式触发该方法,因为h5中安全性,不能js直接调用!") + } + textarea.remove() + // #endif +} diff --git a/src/utils/wechath5.js b/src/utils/wechath5.js new file mode 100644 index 0000000..a512028 --- /dev/null +++ b/src/utils/wechath5.js @@ -0,0 +1,31 @@ +// #ifdef H5 +import weixin from "jweixin-module"; +class Wechath5 { + // 支付 + wxPay(opt) { + return new Promise((reslove, reject) => { + weixin.ready(() => { + weixin.chooseWXPay({ + timestamp: opt.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 + nonceStr: opt.nonceStr, // 支付签名随机串,不长于 32 位 + package: opt.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) + signType: opt.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' + paySign: opt.paySign, // 支付签名 + success: (res) => { + reslove('success') + }, + cancel: (res) => { + reslove('fail') + }, + fail: (res) => { + reslove('fail') + }, + }); + }); + }) + } + +} + +export default new Wechath5() +// #endif diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..730626d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "types": [ + "@dcloudio/types", + "miniprogram-api-typings", + "mini-types" + ] + } +} diff --git a/unpackage/res/icons/1024x1024.png b/unpackage/res/icons/1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab00dae162f0544c85144cead42188fab5be2e3 GIT binary patch literal 41256 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 w|6KlmEHG&8~ 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/152x152.png b/unpackage/res/icons/152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..72996a72fefdc6b4ae178a2a0858f41e531301aa GIT binary patch literal 5115 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 KP_KYJdG&wJ;b(=Yx*$px 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 aq5lJHRMn6G literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/180x180.png b/unpackage/res/icons/180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..a281db93b9174b8fbbc60699e68a3231730f2876 GIT binary patch literal 5915 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/192x192.png b/unpackage/res/icons/192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..f00db42925dccc7ef42df39ce43fcb543e557873 GIT binary patch literal 6263 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/20x20.png b/unpackage/res/icons/20x20.png new file mode 100644 index 0000000000000000000000000000000000000000..71e6bd5d1bf9624fc07a93bb6ae750bcedc6719f GIT binary patch literal 640 zcmV-`0)PF9P)1R5*>*l1pzAVHAcx1_nk(mqA$L!ht!|Q5ptj!=Yf_sum{@}J zTkWrk=|5pok4IeNgaN-EI``ny>qpy(J2O{;Hm=%fNvd*d_3>5z^o)JfN7*M>E?F(E zl(q)8O}H^u{>stp{lv?)>Q0DpX;8y4Oz5?HN`HdkIGnt@w#!96 zK`+UkB$)^o1Q59?+d7})#ri4MDM;<*!k2}qxd7!@n40s`jv?DGN@>Pq_OZ@~+4mKx zZPa1Uzkix0}n0!Z_=S7E&I@9xbFafQDcIfR|*_6}~2Q004ai-

n?fI| zJ*YNS*=@4ubyzg>(POfTn3Mtl0H8aX?>X4nfMH>~Cv5kO(M~r>vxJ$@8-Wf;s#2Fb ze5aXh>?f;*c%`5~Z2*TD*L>*w#nICiBk|8^9Yv1iH zos?9CG97c7tt0m|{Fn7QVg-l*|5g3ODxhTK&V+!S_yFCLow azxn~~Vhj8fR;!f&0000Kluc|KMHI*XyWX{T9e*XU^HC?Ml_tn7N>mFX5upeg ziYNu4a;$=i#Gzb>5GO9so;c7063`0*ihx5Uq^c@NB`FYvLZd1vX{}aGHmMbdb!x|- zv3KpYy}Pp<94zB5sX!_cQh%rS-pu|qZ)Rtxfv?`d1Au-I(udxM-X@sF)!^uvr7Hl|3)yM$HfLc!Juvb1-1*O+IrjW_AMfOiWs-Kr z3gB>HD6}iExDf$BG;N>V>uYiAy1viu1&}V}0lXL(8gO^KxqrOV?m98@0)UyA@N4{z ziT7ec0Px1p)4bLC(uLDvr2wFfcT|bq-_{YyY*vX5z+vOOoMUqMz()(00E~4H%>TX$ z;I5Q4S?|%ok&v$!z_7QcP*o-$I|$%hWbqM)H`Em&4J*}EjCmgE$GF=ekHr)M*3+nci*wo#VhHot|UXo?Ca z#V>CBTu{rBRyi4->bAQ={{EBUsh!S^2KD~v%a3;j7822V@p>VC$k3e}?{j&aR<5Y4 zb2-t=JH9z|8~{VnKD+a$BX0pn6!Q~5oT+_9HNBHTdpjXyrIZCt)r-4%Pg$)dl!BAB z`RyK|l%WjpI)%StP*5y}$$9}Smofkvr2y8IEdUhD$k2sSrlu${2L7J^+dckI-iJo4 zG!t;O`5mntywh#vd4{!6v~CbZQwvokrN|p{E-Gcpx^{nW3u7JIHTY!ro{+C^kK4!4 z_vuDA$XY&qJtbaAL@sZvN@}@2wEds$_x2tOKJjetUXEe^LAMQ5b!{dld@Wp^-;4sl z`1ucJV*(+>XrP`p22FEJA%x7uBhOv<5UQ@18#O0~zEyFNM zYUQ;bzpND}ram*ZD{7T7-NX*wd1`UGtf``$1CUYVh0W--gXrquXt>{VHodS`##v(<#%{a{We{ja8{U46!QQsMsF?W5+(}MM()a6 z^?(o(lXA6Gl(IS@iDEt`<;q$$E^loX3sSXwuYod*ov!)6<`0=8HTKF^lrsPT002ov JPDHLkV1fmP(hUFr literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/40x40.png b/unpackage/res/icons/40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..05d4fc9edfa8014aa291ed0e494c866fb7ff5aa3 GIT binary patch literal 1439 zcmV;Q1z`G#P)Ra@Ic zQSnE$O=Hp+6T4WOn#S&tCTbef#V*D))j!o#W9pU`E!9$YmMVe>mPH(47GQwc-VDRM ztv}v$0ysmpHu|G{zs|kqd-pr1%QRwQ=Xe>ey{52{>5vnx;wsU zJabpV=9J7Gb4p`F3}LiFAxYBfr}v%eZqty;?K74F0757yUEk~TOlLA>=GQmQmD`&E z;Q8E{YK%k(F_cn8kQhRLM=uQ*LZdDTNf4z7FWb2jbX(_^=IOHE|NYPjcN;=TlB72* z3#O&&l>|B8Fr}{B)*lYa+L+)R4o&Fg8qc5&QeXVq-D#tj!q<lDF@WSJ}g0C26}{+fCIvxYoI zsUmRP6AY{=C{`(y6i#?U>>4PZcl6V9ZPy#Tt}Cny074??9Aax(7sSJeR4<#9zpZdZ z)Pazaq=q<7ltg)E^Q9vvI~q$Sns+Q%(|W3=c~J091SJGI=e( zsFm$M*7IlFRFB?V0FXpbR;?jJl?->B0Vl^gz3gUy%dT4&I$HoBN26P9DY6T}PM-$= z)|=-ma8f2~Y4sBslQtGCl7}~a?(*A>V+jv(k!`b=>zS1Lu8v#2zPRyfDB7e>1%M2i zk%k2~ORZNClx*8vP5>xmq74U+@a4l+7=4aqkP(6B1yMmDJWfxgIf=)B!w~?0AmR~T zP>_J3xFIG&oIeHtj>3V$6Rk8z4)frcKvVZ5DdYclJB0!=b>5oMf$uNy}Di z(rG3|p<*Z{O^^h_0Rb?kzEbB-;G_4Sn|79@|A%dw0lxCuc+h(I`~Qa|%jK`Btql_HwvSNRre%;QHCt zc)X+D9cD)h8`UYVSe{%l*&6G#|2a5OIBC1S`})~-pBn%m|A&wFG+l@Yy!1f83&Mex z+Q$!Ug}%W+B2sVA|5@Fya!j1Se{uD6chD!h+@Zi%^}ofKpVyr_*itLoS9?3xSMD2I z-objXG^ILGa*`;8Gw56W%Xb%??Jrd9+0}SPkVLs`t=^vfEj9J-=-u8IW_^)C*$xYw zBj_7D?O92hv9@a<67CN9*G-%EQO)s}rxwvfwESlrtvl)})|rbxs6NIC{M{CLB>v%? z)c18QG38g5ZYs$skY`wKXiLpcuUejJaNCCj{@bSWG4g@d+E@;%TsMz*)Q_<;URG9? z$cF&Zlu1^tL4MmZl+vm-I#};xDH%&m`Abas&lvN1LIHDH7EMsOnsjH-r=uBzIwez; ttR%=lBs?uupKx($upwj>V literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/58x58.png b/unpackage/res/icons/58x58.png new file mode 100644 index 0000000000000000000000000000000000000000..e622c92c4eb8eea42cebe2defc6965fbe37d0e48 GIT binary patch literal 2021 zcmV?RVy_7 z>W;E8x2>wTC10XAUHU|uap=$&=Wbu_$&#OLSL7^bwfj6rn$LeZIT-wGDgPsfIbRh6 z!$fSJgd_OxkDm(kdj$lZcrSf^=3L&!4) zDFDD@vNd8^$N?cV;<7ANg)MjaK@<%Lg){rqn_k$yFO@Iq86Wvg<5?s4LZ)J+_VK(O z!SZ^kQXwGvER#l$GvweVeMef}3zo$!Ze#foF`E~)-5@-qukc*uQhwRd#qfoROR%{o zb|1JeZ5>6^CtB+M(%&3lEt=LW3WPoc05TDw5D-p}+hubI!#&7_o*ynO5wm$;PmK?l zCICRn7wYfXFypj$jP!?m{8S*Ss%7PdL&D~7OIMqm_Jbdu{F-)Qi?#kxTci@Cbh;)1 z-~mDi0HaPz@G~6G6n^i*&=mzw^t1dOK9W52d9{Ib0YH%~OMlOXo380+dj7Mjk|=Uh z*u3>pWjLeYivhrmNO^ji9MVF(oAh0^Oq6LhM=VO6B3q}(URrazX|(;;!12%iMdR40 z--%(^s`?@jW$x}$=2n$H5liqj^LTmPNuduhX?P?@_d@B90N|C+-tVd3C%;i6#+isb4*5Bw_XA052CmtSfnX)2`rX{b^4{M1>WFJJV$H7dt+*&)NY1 z!!T`1T6u0!xKFx(2xpp&gHh!!n;F8P7D^lT|GsBtyrTYOWIVvz4?MO@T|iM3j^mR~ z>#@f7L)N`{ML)mrlqz55I|*H?aLJWy{D;a|I;#o_}P;EAuGY*0YLTjR{m8Xyb8D3g03)RHK+_q8SONe}ujfK{bI7Du=jqk?0Vek5txlk5jES$Y zt(D~Ran{}(9Yxa_0s;UiL`V0-FpM={4~NChS8GBR86gR|022p*98v0@zq2nqTFmAG zz{XV7={<|qcc0aG{L061$aRzcimXjrRodWZ*Z9y1&OvY)Or0owK?+9@;UHph?$5|w z8YtoNBX~x%G`Gr9+a^+Olc?OJuis{BcTFPJvVT*EvwxL+pV{X=HPo>XF3sASs_Jo> zE<5H^8zMea;%LELgN0HuJ?iskFXshNTlrGSw0L{bi);P8Yj4jX4OU}3LEfczBY zCVdY7oYm)sOO_Q2!zm( zW2R|x;FGbw?&(`JL?87iax(-(g|?_nvpHKNO{m1>VDdO?M|#c=b`3kt5vE0Qb*ZYS zHWrtv3YL4!`+ou<)M6ZZtM|*+so@YgKX-Ep`Ljh2?asXSHtzlj0)}D58M*f>wO!MO z*SarV4PK1b|KsS1YfXMCfK~%V(@RNu2}#rRQgV%;Xu77qV{^^R;PB1G81qW!#pa2D zaAwS9J=AzM!tLD~t@WeV!x^jBT~t%~PH%HK`DDZCpMQKRF3|?3g(;3XD=`_2gP*>8 zuwdsOwmisU;I$(?M>}dm@1#K>gz9hgj=C&*g+|Qbg-9pq^(}s-n+^ElO}g14X&l?c z!`T}$1u3s}U22;e)`(>v8Lmfk6(MxAz4plF(#IQ49q+z$OkWn4nphA=2B_+5Z7~jg zu=m$E#%P@y{@d=yN;31p9X=YpRz1*Z_RjutL-F~+uJ*7MeWws#!n$G}(-881KKxYu zqrcsgRS<5nc|Db#7q`l@5ke=fe}Mp=zx;1+AoBfvjkuls%EECechLg^Lg>}5Iv43Z zrZ3AS($0PV7q9OuH@K{S?OF6Rc(|!XSN+nNzP1o^VX#YA{nC@4oQ|<+48=U(`>aNX ze{P3jVe`Lfo3eS`dZji%)2+rKDVM)7H8W)Gnl|{TfL@^q&~)3>uv(nz^v_wn9t|N= z2_;|6j3EF8Up!!+COEu8nd%P9{Wjp6-)!T;T_*Q`XG0E6>X4s_00000NkvXXu0mjf DTzJ-> literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/60x60.png b/unpackage/res/icons/60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..950a4df92579609de991618814ea7717e1b69aa4 GIT binary patch literal 2121 zcmV-P2)6f$P)ekgSo!P~mUF~#h+x@V*$W{c#g;w2G%0;vaE)+qn+%F}N z1QS9ooFpeF=j?~r5JSMgvT2>k|I>T^@AJIpHz)6T-{(C+l1q=klP2_s23UxK(1B7A zI#3Ei2TDQcKq&|vCm^nZcoAn5ibEAnF!=MD?y3V0aD)m|@4-kqEsON9D0 z{%jp9rSkmPq}h78D5pWy-Jw^xF2y)+y-eZm4d)Aw=4`V%sKYn^<(V~NF?8xj-Is5# z-1PF(S?{%6JlEg$ddixDIK_dwvue_~aOl-h35PN_&5>EWY~7CP5BkXo0Ei_*POjhM z6(GR5US?Hqn;V*gpoQ`@9K~*Hzk4jDztCR~b&>i>FEfls?9VGCczlYck6tP7v*-{M z1%MILL{Zf#41GA+in2H4CnzgAZq)X7dZv$1W_P<#o+=fHY!tOQF?}YChzP)r#Ef^cw@3w|(FxtJuAFVB^az5u1CFiUx-TVf?m;$O z__Jzi5&%#@YPPT4s;YN z^8uiw<9>v#-x?o^ z#s~~WF%*rFL;%3#l!bB7(HsH*qC>+u7&c)xSsiu&5TUrm>3HG7`!C3sU($3V=t9<9 zA9GrWac}?h_kQMo*wJvZvz{UCTon6L!LDs7*$m5;G*xSC4}aOc%AC9<%KKW?{wrrR zqzS<>1m^&N0K+S`6uZZfi^GLDPi3C4IP7lo)!NgOly&A!eLQK(NxxTH>1FQ8T&swb zoo~P1t5bXWofa(sB*(-ZU-ME%q#OWH1UdZ7POtRT==jfHIaJd2MfG3@!?LchnJ;3z zIQ$Vf#P{#u1KI)1KQ!J8&05=X1<2|RgY_EkIVZt*Wj}c>QY^9BZ2}(uu6E?zugcxM z&nq$y<`j~4TNsZhS^Kga7r)&;)(;BsXA8##6jfy+B=a(&?p4ltm5uPI~l|%!; zZ?ZNQrx$qoH3PTL_qELrI*LOa%YV_;ChfNSy0N+A0YJpzWlCi3O99TE8IviMM-t+h z{?f2$FQ-jAJTvSu&=8iR4}8?pQ=1Q#)%b% z#t@-Wz9@`OgmMK!oF~9=E{3^|j82wyFtm+!SZK;bSq(N)XR~NY)7X@eq^UqaV+gub z5|thiml77EkVGYhNTUQ|boNqY4zVn&w@nS2bbZG0E`#>2eyq!&rWohqKqCOlB4h=z zioBS_OsSmkRkAHW2!cojBB?;MI(muAu{-HI`q386z;$(h`-2fD>$?VinC`P+LIAR( z61FW_UMNqEB0?4g)PEW5WWB2E($Jk7>V7B7`oQyomT(2T6{~hDvJ=D+fr6Y>TGCY2 z_szMUTUx8x)1QWx@xWEstHCxk(^r`%yqpK5$woW8%w~1}J>96M zqp=v9Mth8Q(x1D#G-@&IyYhGNKcR1Od|lP?8)N-$hjiGFHGlSI-8pS3IX`!-nAZsc5!EjOW3@=|CuS<-laLe&fIwV{*CPyKiu`j-?$j&{?o)I zlij-O-=F+q#j^y){athQ+{^8PH4kX3({bo}Wi$~|vE={)@TxMm>bZkn&?Vn|*>BX@ zXvd35867%RSy%I70|P9e_L#7f%cXIbcf5tp_&V6E8K~@Q+o#OEsTnBkZUKP5+^*Xs zPmS~VUSpv93L>>a3Na+6pz@Zb)Gfj@^00000NkvXXu0mjf>k|zi literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/72x72.png b/unpackage/res/icons/72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..bc66c27fe58b182075ee6359117270080c91da25 GIT binary patch literal 2542 zcmV*P)KFe9PF>Q7jI}iYVmz8(xwO{X>z0#wohWN(5oV$9G zDCXHV7($=dUH`-FA}dYVm<7?P>&9i<+XSE-o=NoVSBSLles=m`HL30kf@6g+ zl7TNgetOU`i23jdh3Vvc0AJKnZjId-z8 zrtk8Lxo=L5OmH)jmFEuLkhQoR@+>Pd5OyHv$5{~x2qBZj{87oN{mnONwu|J^*wrDh zJjqPsV-g7*SL?M8A9pxgDs|ev|K~|Y+f?0na8IUD*~pBzm!gEB-P)dO4R;;pDs-B` zLiJD>hEI)51b}OewL32twBjb@q)Hqh7%LQ4sXMBa?EoMS44N313;?ClhHqPIoqYzd z*twF_BI!L5m;Zj|5&&pZDc-tz#E8*0gTD&-QNqwBy>fHyx6acCdkDRJj}>&(K4O>= zxNw>o5x-~ZQfGc~O2*=pjKLhH9Nta#nr=4M<&K^7o67|z9QvL2{q-b~3@U8%_#Ef8 zjy-j~Aw6g1=q!iPR*hoowE}6k>{P{703dK;e%fRl!)Tg5TUBl)tu`}Bh$uZa5eBX| znx^GoT3=p}cBl9*-Gd?f7wnUpVgo-%8fe-JVX-`6dYELe(HMS641_q4Y>WVaa#dTo zvW-J9{xtm+9K!&hQPxq`+tn9eeTQnSB#yxGNRen)ZPCLXg)Ml55MmNFpgFr_qlDN0 z9w#si05U|eH7j=6-|o|zl8m$D-H4ipTeeDOL%N<-({<&d-b``q{b&H zE}aNwLw{AUe%iv!=;V4?+ix!%w|CM;8QLhrV4)6w5nR|%xjHE`GALxUNzYGAv zu#hOufT9$~aR4Z7uG8!F^T%YIy?g7CUXAc4Hg~Kld*c<92>`T|rOc{uKaAlQrena* z&mY$J_ELQIW&i+~7oF@JmGn6JSv%-7%- z=4q(OY zEKY^&k%b~*eesdn?he`$C=A-i`W}}R{hvG)&FkbE>Jz z+10fCJ&A{Q7%V1xQe!eC9@;UdV6PXk*EVWQm#>AJk6Sto>Xk2LDoy$iD_k5Rj}W{OCeiA!El5I9)leX16((t~zw-qyELZS}jta52kuk74k zTPk33wq-0>bMa7Pj~oEn^y)uXUD!Tpp@VUYMnTauhhRnq2>M7XMLyCh0YJdygm3~q z3U8$PF_NOTmz}WE)b@-8A};T%c|QRFt;P82+5KPCUtb(ME-iGFz5UX{ziTa~X%PvZ z&wI0vl=o_LPksadt5dSJPyT^N0U+A*R!?OzoR`*xb9mX}WPAQf$Ad0|CTCQNkR2fJ z)fTrmurT6>acTC|X0@X2zWQ+tPdG&s2LPvAs(Y=Ly!Z*HTdFM-DdO;Fijyp)^*_y3 zfdngCoP4IW1^|);;o}GY3B#}n^9lH50p$+-!h8+?13H`UKzQ7T4gS71Pfi!vw(D2Q36i-{%{inp{( zpY3VeTI;EO+_tUfX?>owT{Fur)>e=E)RvWN7t3oAByC>8ynqU#p&|h?APobDC9q9P-OsK`hm zDl$@tii{MZA|r*U$Vee7GE#_&j1+D%ktnQM)G%i;APduS*G!pbbXcDKarXtYVNm~> zNf`y&v9(71!S)7+i+y?elKEqDO%CgATZcLx!fuGGAF$MQj=NGQRvj;0MK%bdK+ zWBkjcIa-;@+ijdWAzrG8mnxpjyVJ@sK0$U|I(5=`+1s)-J-f8QN6$^T7*eUOxT}h^~L+Z~suLCPkiC0ZFYZ zUO^B<_2q`Wb;tdqowE09z>9QwGJyyH476o#YBm5QN|gX0B&nj5ET6h&#(vV+8Z1vV z@a8hcIG|ld37^U@dN6w$fe4K8dq=+AeDN?Z68QN1!>g%FDB;vZ9RM_&jjdLbPrys& z&P_EHo>vkP<%?G9l$rr@^X8(uc+Mj0jYe!V|qO6Up)Wyrm&P7$}MU>N}LJiqf)<))g7 zUNJ%x>F;TEIu?Jt$^AS*llv@e4 zN!^WNnl3AMbb7GZpEXo}bm7<^$Inm-B>?d1(b7&C0=U{nSPB6EkHD-PS_d0cq=Xb? zsuTR}DKfSDK^+^LPmlI@XzVrGIA@9?HeKc0CIMiST;*@{5F?fXz;j3TG_~vVlG65e z)I*>)GE{8hf)A2&}H{N!h=l8YL z4Up1E&3Mk?Ucj&_XU5XW1#XK_Ab4i(((4`=98N|qk!B^0ezb7@Ge7R?VeFnlM4&ij z%qs=U{39!bVjnxhv0t~G>@HQiMTey02&3Aj6YB|iijTnG)xxC#7f*=sW7`u4h z+wS6d2(EA-ku>7ZK%c+eiiPfnR!j$U00eSE@X4JIrN+d&Gav~903O@@Zd-4+x8sJp zR!mM##~5S48i{=4Z|=#HC#*g5t-G|Xw>#(UXT1GiFMeQQ))bT7GW}oA`}`t~kwNe& z(TFrxE6=Vj|M-jLPaZg5d&boMY~d0Bcw**!nq$4)(qj?WS4 zMmQo%zmXD&5Yme{1lI?&lI^dw^mKaryuakpf-zZcXO~Q50^T>uFcFeS5h5SYEp%ZX z10>6@j+5-QiAacSUG_M~_v=XFC5nKat8xlfPrB3JE+8lXh?B_cR<89gt?$0FBFOYL zB#{oDOA{(fvZr_~JkQs6wuMsHgU{M>00fAXP{LrP2%&(bBJ#$jbqJv^n@-Oeo6EYm zKH7GvqwTZ$H3S_^2g}2a{WVN2_s$@++@3T;Sm)XDMUp^3Q>`fLR4g=5EU6IjM$6($@1m9p}2+YrEQNjQU<@&~;-lLKR6O zVsd=y%%qIziRlyLk|<&rcJD(0A(S9hBuEv7$(aDaW4^)MdF+>_$}5dkhGr(TEto+T z%@jf0p&d7G%*5F##foJk zljN{rW0`L+|Fom=WQ|cD(7{(E0w_$*d^o3I+9=(P9Mk{$V2tZc9b3;I{ifxt3-{aI z>?d+oa^{~W&6yCF^s8q$oU~d@@6;XK*L22n1awv8I92@G+e)Srefj(2f94_*fcZg|YI zyo<+}3>0l(;w6fuV{g%joZmB!uV?W$>F>~A62lsCcBSR03=1xLP4f%o-03Za1+8Y*>zH_MU zBEEJF#>z5lj_&zWv1YPhoOqf<#f-(YUYa%njrm4q=LH?(5Qs zaCUgKhRrEx5TIVJM$Pndvy0F7f<|c>H+}Rc&fbHVZEWOhe((r zX^vfUeD7xs)q6{xSdnpSo6Q_2mVG$qcaP-E@OS?5(#aEsma>*}MXA~I$4uy9>>I1g z12)bP;)Yfsr@Qo0f$)WCi;G83$cfd)h-DS6^*%lZd*3UkD*#~K)RH%Azppa10Kiu* zb&GU)0q<*#1jDnQEJzv`tZ02zX&>uYnx3Dj9`)Y2%5hM{7&{3lNv;L}Gh?@~j7lg*fXq%B z0AfW_nLy;=Sfj%#CMmU0`U~9$0REvyP~^?U|HVdDRAi*^UqQ8!BI(#Mv;Y7A07*qo IM6N<$g8EA<#Q*>R literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/80x80.png b/unpackage/res/icons/80x80.png new file mode 100644 index 0000000000000000000000000000000000000000..055bde2947bf2c4ec984d54f18c166cb6a7c543a GIT binary patch literal 2843 zcmV+$3*_{PP)$@4m`=55~}zhr0`Nt1_T z?vV(DRB8)cc>t%pu)A5|(N7%SVY&IQN6OSMr~TMl@KY)CJ&o0dRyV;@)ZuZ; zFaS8-Smgk2gqe6_c)=#CrPJ8s%_|g8Dw*7Q&9H3V=|Z!OMr8lc&|@(dTr3?NFA`7- zQ|?6wwcjw5>+3u_Y_aybSym*ZA%p;+;94a`kN`lU{{AU~bXo?(a4hyN2Mzn>fwR!q z&hWZshDE;h;F|bw9RL{n%$xS*7TMYmF)$Efj1%RdGeRR>mKbH|b2GC6ph#c6zwwf1 zpGTT5_i_U-g;FR!vHVvGp%?&Ij>CWffItL+&|u48HXPek+*oy(vtch|ARto?Kq0GoBug+cU*==S_a%N1jr~To*f9vh-9LPQ; z!>JYkNWy(i@w5N{^7&%>GfGd@M0}RB-kFEZ;n;Ta>+SXDIH{2Lm+IP^zbZZDyw<8T z_f44&0Q#=>vW6Po&W&`R>w2;>?AfUc0Ki~2eOhwFW&cr1+EiUM0Bk?8-^MuHdeC=w z_(kVv_nx#!8WZ0)W4l7JS-z(G?RJ8#5K60pP>d@?OR^s^o8J9zM`fdrib3FV)Mm z5Z&7uD|uayr=&j)>AreytUxSRT3wkuKcb?!ad+bdpvI;~@+J6}(=rp)T2Fhpq<>gm zk(f5eVa!LbUDwv+v}k0CP=yKr7?y49Y;{EnNh*4R7653wt;sO(>SBOC zVE{1_L<#^F8*O*Ej~M`9rfC2`0um{t_v@10&UjoU zk~&?h)3R2lWqCFsN%D=HC#ToMzjgkb!L=GfXo5sBN6YgZ0l=*A7&pt&>(xFKfp5VZ z5ADPZ>uJx5nzHk;jR3Hf7m0I>1Q=e>4%s2~yv+-t8PejmPD_tnb&E*Z=b@r%|6pgBXCpA4y-dw}4hg}G1 zMntoAj-@e+B@~i~Mn1HtXe?p?06JsUS}RdX1eAYUQy60#%XC^zEf(W-vq5h%G#I<;j2(KD z!EM{!5BwCYl_+L~N8cM3H9d4vvL?dyMRQC*2#Ez$lp-Wb5t0rATkuxKQG27kqPw}g ztLc2_wQDAWKb?qj%{$mV3pC^SqOR z8{@#Er`ph(UsK9)oTrQ9xG(F1K{p>v?oX5Ccu#mi^@)5mx0bKljA?^T@q zVG1Q1sW#RT{C!Sw(=;t#!L<&uu9^@W=F}a!Pc%t>LTs3%8KDpWM=VxY5+T?%1xJ zm}&c$zHr~f_;hXT*GryX96R0f4);0izbn}X0Ey~w2ghYcP62?|%MN#0c}@w9E4NxR za+m`EtyKB(15X2Bg714g0K8j%q{(t)vNCLaO2&#q+Z#>Y0ARFRw|sl>-ON?Da~(2f zMKXcBepI~Jb^Vi?5(H@L{AE2h%g>V20l>yG@01@ssIPc5E;T#K{aEeFgCCe3HUQYW z zG54f}#{fXAGRzr4_-BDGXp-T{w0%wQLr8Uhm&U0GMVNE5JM9S0}k&MIGX?Jj= tK5gLy-I1a44szFR;spf002ovPDHLkV1nv^cJBZH literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/87x87.png b/unpackage/res/icons/87x87.png new file mode 100644 index 0000000000000000000000000000000000000000..d5fd8808e815ede7a9d0a560cdb93084188bdea0 GIT binary patch literal 3123 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 N(9zV>s8+Ly_&*?3WZ(b* literal 0 HcmV?d00001 diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..eb37ffe --- /dev/null +++ b/vue.config.js @@ -0,0 +1,14 @@ +module.exports = { + transpileDependencies: ['luch-request'], + devServer: { + proxy: { + '/api': { + target: 'http://test.zichunsheng.cn/api', + changeOrigin: true, + pathRewrite: { + '^/api': '' + } + } + } + }, +} diff --git a/windi.config.js b/windi.config.js new file mode 100644 index 0000000..8bfedb8 --- /dev/null +++ b/windi.config.js @@ -0,0 +1,58 @@ +// windi.config.js +import { defineConfig } from 'windicss/helpers' +import colors from 'windicss/colors' + +export default defineConfig({ + darkMode: 'class', + theme: { + colors: { + ...colors, + primary: '#378264', + success: '#4cd964', + warning: '#FC8720', + error: '#dd524d', + txBase: '#383838', + txGray: '#808080', + bgBase: '#ffffff', + txBorder: '#E5E5E5', + bgSubtitle: '#f0ad4e', + bgInput: '#F7F5F5', + bgUserInput: '#F7FAF9', + txSvip: '#D43030', + badge: '#FC8720'// Badge 徽标数背景色 + }, + fontSize: { + xs: '20rpx', + sm: '24rpx', + md: '28rpx', + lg: '32rpx', + xl: '36rpx', + xxl: '40rpx', + '3xl': '44rpx', + '4xl': '48rpx' + }, + spacing: { + 1: '2rpx', + 2: '4rpx', + 3: '6rpx', + 4: '8rpx', + 5: '10rpx', + rowSm: '10rpx', + base: '20rpx', + rowLg: '30rpx' + }, + borderRadius: { + xs: '25rpx', + sm: '24rpx', + md: '30rpx', + lg: '90rpx', + xl: '', + full: '9999px', + } + }, + shortcuts: { + 'btn': 'text-center rounded-full', + 'btn-primary': 'bg-primary text-white', + 'btn-default': 'default' + } +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..70d5924 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,11094 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@antfu/utils@^0.1.6": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.1.7.tgz#ac9e0e62a2490db987c9d8c6b4f38076d763c27f" + integrity sha512-XbmXbhrjfxQq+ishOKeUIK1VYxQV0B+ZkAQkz00bxhmQd5izdT0YRSDwkyH/KX46gFVBMd+6anvSDlciUt3L4A== + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" + integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== + +"@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.3", "@babel/core@^7.3.3", "@babel/core@^7.3.4", "@babel/core@^7.7.5": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.10.tgz#ebd034f8e7ac2b6bfcdaa83a161141a646f74b50" + integrity sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.10" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.10" + "@babel/types" "^7.16.8" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" + integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== + dependencies: + "@babel/types" "^7.16.8" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.9.6": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c" + integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" + integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-member-expression-to-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" + integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.7", "@babel/parser@^7.3.3": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.10.tgz#aba1b1cb9696a24a19f59c41af9cf17d1c716a88" + integrity sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" + integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz#922907d2e3e327f5b07d2246bcfc0bd438f360d2" + integrity sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-decorators" "^7.16.7" + +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" + integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.16.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz#f66a0199f16de7c1ef5192160ccf5d069739e3d3" + integrity sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" + integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== + dependencies: + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" + integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" + integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== + dependencies: + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" + integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-runtime@^7.11.0": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz#53d9fd3496daedce1dd99639097fa5d14f4c7c2c" + integrity sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.16.7", "@babel/plugin-transform-template-literals@^7.2.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.3.1": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/register@^7.0.0": + version "7.16.9" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.16.9.tgz#fcfb23cfdd9ad95c9771e58183de83b513857806" + integrity sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g== + dependencies: + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.0" + source-map-support "^0.5.16" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" + integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@~7.12.0": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" + integrity sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.3.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.3.3": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" + integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.8" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.16.10" + "@babel/types" "^7.16.8" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" + integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@dcloudio/types@*", "@dcloudio/types@^2.0.16": + version "2.5.16" + resolved "https://registry.yarnpkg.com/@dcloudio/types/-/types-2.5.16.tgz#5b7bc573e0c07de7228e5a55398bdcd2cf701c30" + integrity sha512-gvGzSVIIWKHnA3wMCb/w+RCAqwrMEj6DpHB4Yve8SFMN35Q1sayCYrF8kzjykSC7Fdq6971SsTPr07WXXOazvg== + +"@dcloudio/uni-app-plus@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-app-plus/-/uni-app-plus-2.0.0.tgz#03cbb246f11f79d742638fdf1bb8222d909bc6ce" + integrity sha512-QKAcmnyLjrgujXeIPw8oe/ERgTILxJIRMH0Tc6gqoi6pRrM4xdmEP7HV/qWJoVgl2TW1DPXsDdQSvyZpZh0oUQ== + +"@dcloudio/uni-automator@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-automator/-/uni-automator-2.0.0.tgz#ffa6107e4cc033dbcee7cb5bfa6185eefab7ad81" + integrity sha512-N2/3DTC3DvrnvzYlsM0tN5NJZ3UU3jvzMY0TiW8UE49cBCUjGVTar2CaBp3edepT0y3jIq4I0djosukMDcdKAw== + dependencies: + address "^1.1.2" + debug "^4.1.1" + default-gateway "^6.0.0" + kill-port "^1.6.0" + licia "^1.21.0" + postcss-selector-parser "^6.0.2" + qrcode-reader "^1.0.4" + qrcode-terminal "^0.12.0" + ws "^7.2.3" + +"@dcloudio/uni-cli-i18n@^2.0.0-32920211122002": + version "2.0.0-alpha-33020211130001" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-cli-i18n/-/uni-cli-i18n-2.0.0-alpha-33020211130001.tgz#9b2507e1fae3dfe9358827ccecdaa469eb2aa4c8" + integrity sha512-9ZyhEuRU+ckjHtrceHPP1HilByiyFlhGXnJShx6JWILZDtUvXHYRhlVMa/45ceTERwXkUlcOqDJ5xe3Fo9yTGg== + dependencies: + i18n "^0.13.3" + os-locale-s-fix "^1.0.8-fix-1" + +"@dcloudio/uni-cli-shared@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-2.0.0.tgz#f4dc7376e890554b96a562d75e089b02561f65bb" + integrity sha512-tgI2JS2c8YUiYePbftr+VOlj87vsDiuuyVGbEZKyQ3uY8+ZtOxfHEtQ0gnJyjABTlLXZlIYXfiT1lt1EGhTV6A== + dependencies: + hash-sum "^1.0.2" + postcss-urlrewrite "^0.2.2" + strip-json-comments "^2.0.1" + +"@dcloudio/uni-h5@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-h5/-/uni-h5-2.0.0.tgz#85b590e3d91ac0e707edb5fe03b237fc114c5280" + integrity sha512-MebNdwlrmc4JOfHe3yUWU54ltEmRFBty4jAyUtFdqyCDBWx1q6qvgjjWi9WtQ5ln5DgcsaFa+DqzTKHIXxJHlQ== + dependencies: + "@dcloudio/uni-i18n" "^0.0.3" + base64-arraybuffer "^0.2.0" + intersection-observer "^0.7.0" + pako "^1.0.11" + safe-area-insets "^1.4.1" + +"@dcloudio/uni-helper-json@*": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-helper-json/-/uni-helper-json-1.0.13.tgz#4e8aa062daaefb30d98973c035a7b0ab628329c7" + integrity sha512-FO9Iu4zW4td3Tr+eiCDWuele2ehkJ4qxQ/UhpAMLjso+ZdWz6NagK5Syh6cdy1hoDqbxpNoqnLynuJXe81Ereg== + +"@dcloudio/uni-i18n@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-i18n/-/uni-i18n-0.0.3.tgz#c7ff6ea6a4ea5cd5ef8dc3d674afa2e64502c151" + integrity sha512-BJGl0yUkuTMv6v0r1lUzq2EURkSoM/CoKbjlf7xlDXDTUqkhUGjK5epTq2hwsi26HTxTjvl6/vf50Q5wSTFApA== + +"@dcloudio/uni-i18n@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-i18n/-/uni-i18n-2.0.0.tgz#9ab26db90a2af669d3d734cf66c0b648eb80f3c1" + integrity sha512-VE5z4AirbGEx3g1+waaH6q3t43Oa/5fRFv0MEtPJ1Hu7KzqZJc+jKGOvBvXopDowwpwaLXsoyL3jFxB3w23k7Q== + +"@dcloudio/uni-migration@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-migration/-/uni-migration-2.0.0.tgz#ff1282e34474f1d9dd9271e74ca6f96da2935ec1" + integrity sha512-ZpkvkHNdBjQvlO9LoGDJIvbmfilH+yDVoEu0u0KX63pOGSmC7RFOKOApzoiTIMAofEUYhh5mrjU5HFefxaOR7w== + dependencies: + commander "^4.0.1" + fs-extra "^8.1.0" + mustache "^3.1.0" + recast "*" + stricter-htmlparser2 "^3.9.6" + +"@dcloudio/uni-mp-360@^2.0.0-32920211122002": + version "2.0.0-alpha-33020211130001" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-360/-/uni-mp-360-2.0.0-alpha-33020211130001.tgz#700186377076f76b352c20ddf66ccb5db2300b1b" + integrity sha512-/Vz/RM/UVFH7WtTWAk0scY8vy0/DSEUGJvNkb4Vxqu0OsBVHU0VyA5NQwULpoCzpaBITsR1ODL//MBRVED8G2A== + +"@dcloudio/uni-mp-alipay@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-2.0.0.tgz#fd54af4f4f8c05fd1c413d3a3f4b205b2756e1dc" + integrity sha512-eSGrFwadnWPm7/ajMfLC+4fpE+cVEyCTCMnQRR0+zj5dxGU8XOmA9CwmV16iEdsLJ/mVP5GA6d9iL+FwnAaybw== + +"@dcloudio/uni-mp-baidu@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-2.0.0.tgz#21a5632d5970fde8e0d19640f9cea0cce72494a1" + integrity sha512-W3tnaZObhdXsZSMAvgzFJDQpXTSq+9PDFuX46Z28cwZeIMCkIqocOVlpeK2NpoKn0tozO2dkl5m08XbxxQG0JA== + +"@dcloudio/uni-mp-kuaishou@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-2.0.0.tgz#80f7765064493bdc776e96b9f04a46e48ac79e22" + integrity sha512-D+nenDZn/DaYuYRIN6FwlV0MdNsFJgffWQR8iunkNu6tl5B+/QwsufVQJsC410TPmJr9J9SWQSSpVbCpH4lBiA== + +"@dcloudio/uni-mp-lark@^2.0.0-32920211122002": + version "2.0.0-alpha-33020211130001" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-2.0.0-alpha-33020211130001.tgz#df9b7b86915dc7d5edd2593854c1c0e330663cd8" + integrity sha512-XS6Q4UU+AUqn2h/b4IczXpFxA70ZGcJU2v0RSrYrqU9zfU88/Ph6SDcYlbxD4jMChxME0N6Z0UlJnFieX6AEPA== + +"@dcloudio/uni-mp-qq@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-2.0.0.tgz#1df2639a359d7730c57ed71cb0b4942b22009054" + integrity sha512-a459wSM9fyrJ+h1c3eZMPaxUDFkl2Cw3jwO7TJKLErXM48K327hzjfxtU3S3M6nrxF05ELy+iYygT1c60sB6KA== + +"@dcloudio/uni-mp-toutiao@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-2.0.0.tgz#cd8252e51a8699712711f18d4cbfc34b0e56547b" + integrity sha512-oiHKK6lA+lKBznCTOch1yaZbyIJsp0+V9Q9nwntrWnHpRk4NaQ5B/TFIh3N8siVgnlvjv1rFMdzjBgt3FHTigg== + +"@dcloudio/uni-mp-vue@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-2.0.0.tgz#ffe2a93c5cded964ae65e576e08214efe14c0e3c" + integrity sha512-vDLzlaV6ywsjOZiAza49BnwzLesIhBBggwDxBh9/AsAndEeF10h77teWOlSQyRcPCN56dJ7x67NRO5eQ6I86dQ== + +"@dcloudio/uni-mp-weixin@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-2.0.0.tgz#3f45c506dca9ab4b068a1ea2a12609a0dfa92503" + integrity sha512-BCmEwAkZq3NdnZ1uu4dWBvZxrH2SENc1GHzjF/Ly1yeh+6sRop+cso6JtJTzFpD3V+tRYe2pR5xpSTm/8ouE+g== + +"@dcloudio/uni-quickapp-native@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-quickapp-native/-/uni-quickapp-native-2.0.0.tgz#8e2a39790bf120f466cdc6089196ee317aa47562" + integrity sha512-6xXe4YaLQnV7lqC9DZDJoxWuLSh5zbf9KNtLQ3RE6fOtmgTxboLKedrdAivC3h4ZyIulEYa0LgAQT2O8zc5oAg== + dependencies: + "@hap-toolkit/dsl-vue" "0.6.13" + "@hap-toolkit/packager" "0.6.13" + "@hap-toolkit/server" "0.6.13" + module-alias "^2.1.0" + +"@dcloudio/uni-quickapp-webview@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-2.0.0.tgz#181cbec1198504599465d23a53881df859923a6c" + integrity sha512-9jd7eOJDL5A7rUnVYU3nGvcWT2R9eWpJE1sYwT06P8advtjTvF24eNvA4wEUElR3PekJcusfTyIdvYkMne5OvQ== + +"@dcloudio/uni-stat@^2.0.0", "@dcloudio/uni-stat@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-stat/-/uni-stat-2.0.0.tgz#e213db09d99cf856c80305f4c71a40d7cfadbf8d" + integrity sha512-fLGis+NLA5qVU0An6FXUtMwaNhEkXwaJlwT/347Kvavv+VtKE2akj47f240hRkiIopvlittrpXbTFBjUNXxCNA== + +"@dcloudio/uni-template-compiler@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-template-compiler/-/uni-template-compiler-2.0.0.tgz#c659981c6e444b8971f52983df242879e524500c" + integrity sha512-U7gd+/a5fb9SU8XUPaDD8KA5L6rauz6jwQcyRCyHtkmNAGvJM9hPUSSnyPSKZHoypBmprT+k1lPGtY8/GXdXUA== + dependencies: + "@babel/parser" "^7.3.3" + "@babel/traverse" "^7.3.3" + "@babel/types" "^7.3.3" + vue-template-compiler "^2.6.10" + +"@dcloudio/vue-cli-plugin-hbuilderx@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/vue-cli-plugin-hbuilderx/-/vue-cli-plugin-hbuilderx-2.0.0.tgz#fa1c090875b67fc4e3ea133058d19fa2af60661f" + integrity sha512-jPQmPlN66fYxHdbdUpo6LllhdHJteuIIl3UWJAQLntn9my6QihxS2z0Bhjcm1SLByXy/QxeO9ny2+G51y9/uEQ== + dependencies: + acorn "^5.2.1" + css "~2.2.1" + escodegen "^1.8.1" + +"@dcloudio/vue-cli-plugin-uni-optimize@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/vue-cli-plugin-uni-optimize/-/vue-cli-plugin-uni-optimize-2.0.0.tgz#11dee80ac3cdae0b3ea63ed080d4c7719dbd9021" + integrity sha512-MOAl/wt+bbjAfdV9rTssWW3DkNkMeedvLwBp4H+VyYUvEnbFtZqfRnA+KridEYmQN9NRJRZMrtGZE86JPWEvnQ== + +"@dcloudio/vue-cli-plugin-uni@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/vue-cli-plugin-uni/-/vue-cli-plugin-uni-2.0.0.tgz#877c5ef1a50564e26dfa4cc874b67ef180dbd61a" + integrity sha512-wwz1SJaa0Jf5lexKUINAcN2OgV8/jFCxboyaNbm5Skw4eW/8aGNiWNtULrZ6WLiq5gqoN/loIqCUnT6or3Q/FA== + dependencies: + "@dcloudio/uni-stat" "^2.0.0" + buffer-json "^2.0.0" + copy-webpack-plugin "^5.1.1" + cross-env "^5.2.0" + envinfo "^6.0.1" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + lru-cache "^4.1.2" + mkdirp "^0.5.1" + module-alias "^2.1.0" + postcss "^7.0.7" + postcss-import "^12.0.1" + postcss-selector-parser "^5.0.0" + postcss-value-parser "^3.3.1" + strip-json-comments "^2.0.1" + update-check "^1.5.3" + webpack-merge "^4.1.4" + wrap-loader "^0.2.0" + xregexp "4.0.0" + +"@dcloudio/webpack-uni-mp-loader@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/webpack-uni-mp-loader/-/webpack-uni-mp-loader-2.0.0.tgz#40dc9b8b6c960a0c5fe9f106de61385e575fe393" + integrity sha512-JqDiWPMKBDVGj7Zv6Zp3SceQUtv4+J9ZWc0/BsJkxqcHLYumulrQNpYote+aUst3s55fUo2/89JSQVOxjwAgMQ== + +"@dcloudio/webpack-uni-pages-loader@^2.0.0-32920211122002": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@dcloudio/webpack-uni-pages-loader/-/webpack-uni-pages-loader-2.0.0.tgz#c521d91d5ad0138f2789082c3ed4a546cc2122f5" + integrity sha512-qKCbkN6IBtQlyTs5LyXASU/pzkpygaWTdUmrHChTlNARaHshcgqbfh6lnafXXkS5USTSmNU9Nm200Bvur3iIJQ== + dependencies: + merge "^1.2.1" + strip-json-comments "^2.0.1" + +"@hap-toolkit/aaptjs@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@hap-toolkit/aaptjs/-/aaptjs-1.0.0.tgz#460d45a846c0b786a421c82ce25fcd9fff0928e6" + integrity sha512-yxWtptWse3ZIt0/uAHbGaJ3O2zZEk1yLjdfF8Kbci/it4cm/PTIv0hB3TabGdvOffmi8Wqnm9vt40eglZdvpvg== + dependencies: + shelljs "^0.8.1" + +"@hap-toolkit/compiler@0.6.15", "@hap-toolkit/compiler@^0.6.13": + version "0.6.15" + resolved "https://registry.yarnpkg.com/@hap-toolkit/compiler/-/compiler-0.6.15.tgz#d8e2a16f2eca8f91b2ecaffecb7812ac6d1bac84" + integrity sha512-ivGKaBhC5NoNrb9qXhzrqPyWVG1YDEUxkTeveL2oqve4WLlK7h7fJfGjMx/jSvGvLGyhquofF5mxkQzLdCCieg== + dependencies: + "@babel/core" "^7.3.4" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@hap-toolkit/shared-utils" "0.6.15" + css "^2.2.4" + css-what "^2.1.3" + escodegen "^1.11.1" + esprima "^4.0.1" + hash-sum "^1.0.2" + loader-utils "^1.2.3" + parse5 "^3.0.3" + source-map "^0.7.3" + webpack "^4.29.5" + +"@hap-toolkit/debugger@^0.6.13": + version "0.6.15" + resolved "https://registry.yarnpkg.com/@hap-toolkit/debugger/-/debugger-0.6.15.tgz#51e1a2078d0a2bc031412ace28c9ac5505d400e3" + integrity sha512-AO2ZHJiqS9gP3Xi/6S63Sl2Tgf81NEhNVjY81RHIhraoEPuTsPPUsUQoYEvU6tO9Y69OXCVT4C1O+kY/LrwY+g== + dependencies: + "@hap-toolkit/shared-utils" "0.6.15" + adb-commander "^0.1.8" + adb-devices-emitter "^0.1.8" + chrome-simple-launcher "0.1.3" + koa "^2.7.0" + koa-body "^4.0.8" + koa-router "^7.4.0" + koa-static "^5.0.0" + qr-image "^3.2.0" + socket.io "^2.2.0" + +"@hap-toolkit/dsl-vue@0.6.13": + version "0.6.13" + resolved "https://registry.yarnpkg.com/@hap-toolkit/dsl-vue/-/dsl-vue-0.6.13.tgz#989dad5c37383d9e0f0ab9fba293257bbb77f059" + integrity sha512-mIupVZ6gseenCAY+BFLNGttFPcmuy3pGgB5dUUPBxnCvXcZhgAWQenAI/Y3/tz0ubObVjWLfbZKXDGfpLPTd9g== + dependencies: + "@hap-toolkit/compiler" "^0.6.13" + "@hap-toolkit/packager" "^0.6.13" + "@hap-toolkit/shared-utils" "^0.6.13" + css-loader "^2.1.1" + md5 "^2.2.1" + mini-css-extract-plugin "^0.5.0" + url-loader "^2.1.0" + vue-loader "^15.6.4" + vue-template-compiler "^2.6.7" + webpack-sources "^1.3.0" + +"@hap-toolkit/packager@0.6.13": + version "0.6.13" + resolved "https://registry.yarnpkg.com/@hap-toolkit/packager/-/packager-0.6.13.tgz#d493027fdf63f5a30a2f0fa62d7d43816da56c4a" + integrity sha512-x0PoC+6rxAcRjryuNbW5o7LBjRxTFUkgbWl2ovOTjrKaChw51JjSqcLR28klk4SiiPLUPpAJxMjz/ooc35yZ3Q== + dependencies: + "@babel/core" "^7.3.3" + "@babel/preset-env" "^7.3.1" + "@babel/register" "^7.0.0" + "@babel/runtime" "^7.3.1" + "@hap-toolkit/compiler" "^0.6.13" + "@hap-toolkit/shared-utils" "^0.6.13" + aaptjs "^1.3.1" + babel-loader "^8.0.5" + fs-extra "^7.0.1" + hash-sum "^1.0.2" + jsrsasign "^7.2.2" + jszip "^3.1.5" + koa-bodyparser "^4.2.1" + koa-router "^7.4.0" + loader-utils "^1.2.3" + moment "^2.24.0" + qr-image "^3.2.0" + webpack "^4.29.5" + +"@hap-toolkit/packager@^0.6.13": + version "0.6.15" + resolved "https://registry.yarnpkg.com/@hap-toolkit/packager/-/packager-0.6.15.tgz#fa43e9504b26da6612fdc52c638629ff3b229b7c" + integrity sha512-KIExBB+KrjSQkGWOcVZJhdQxHjoxgjakrpKfPwKFs46Q1cPvFJtWMdqGhQkBwXfyV8WZ3WkIUrwz08gsnD/VwA== + dependencies: + "@babel/core" "^7.3.3" + "@babel/preset-env" "^7.3.1" + "@babel/register" "^7.0.0" + "@babel/runtime" "^7.3.1" + "@hap-toolkit/aaptjs" "^1.0.0" + "@hap-toolkit/compiler" "0.6.15" + "@hap-toolkit/shared-utils" "0.6.15" + babel-loader "^8.0.5" + fs-extra "^7.0.1" + hash-sum "^1.0.2" + jsrsasign "^7.2.2" + jszip "^3.1.5" + koa-bodyparser "^4.2.1" + koa-router "^7.4.0" + loader-utils "^1.2.3" + moment "^2.24.0" + qr-image "^3.2.0" + webpack "^4.29.5" + +"@hap-toolkit/server@0.6.13": + version "0.6.13" + resolved "https://registry.yarnpkg.com/@hap-toolkit/server/-/server-0.6.13.tgz#cc83a4b44df4456bdbd41a4b925f062a2d4e5434" + integrity sha512-d29Ivum+MvPL0AEnjHW+jNa8FUqnmCPvwHii8la8OGg9HzTj7Oq7pr9n+VjksbfNI0aWdlf+uzyZEuh9rUxJ7g== + dependencies: + "@babel/runtime" "^7.3.1" + "@hap-toolkit/debugger" "^0.6.13" + "@hap-toolkit/packager" "^0.6.13" + "@hap-toolkit/shared-utils" "^0.6.13" + jszip "^3.2.0" + koa "^2.7.0" + koa-body "^4.0.8" + koa-mount "^4.0.0" + koa-router "^7.4.0" + koa-send "^5.0.0" + koa-static "^5.0.0" + opn "^5.4.0" + portfinder "^1.0.20" + qr-image "^3.2.0" + +"@hap-toolkit/shared-utils@0.6.15", "@hap-toolkit/shared-utils@^0.6.13": + version "0.6.15" + resolved "https://registry.yarnpkg.com/@hap-toolkit/shared-utils/-/shared-utils-0.6.15.tgz#408570267a73047c46cad6b2f71620361adfb5e0" + integrity sha512-LxjISCLd4opthpkPIQNkMnVY+P5iWG8X6PwexET8tzWYvIUVNa66NR5lOCeOYMoLaMzxQkLZf1HTw14S7zRezQ== + dependencies: + chalk "^2.4.2" + qrcode-terminal "^0.12.0" + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.0.1": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@intervolga/optimize-cssnano-plugin@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" + integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA== + dependencies: + cssnano "^4.0.0" + cssnano-preset-default "^4.0.0" + postcss "^7.0.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb" + integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-message-util "^25.5.0" + jest-util "^25.5.0" + slash "^3.0.0" + +"@jest/core@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" + integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== + dependencies: + "@jest/console" "^25.5.0" + "@jest/reporters" "^25.5.1" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^25.5.0" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-resolve-dependencies "^25.5.4" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + jest-watcher "^25.5.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" + integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA== + dependencies: + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + +"@jest/fake-timers@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" + integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ== + dependencies: + "@jest/types" "^25.5.0" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + lolex "^5.0.0" + +"@jest/globals@^25.5.2": + version "25.5.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" + integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/types" "^25.5.0" + expect "^25.5.0" + +"@jest/reporters@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" + integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^25.5.1" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-worker "^25.5.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.1.3" + optionalDependencies: + node-notifier "^6.0.0" + +"@jest/source-map@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" + integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" + integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A== + dependencies: + "@jest/console" "^25.5.0" + "@jest/types" "^25.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" + integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== + dependencies: + "@jest/test-result" "^25.5.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + +"@jest/transform@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" + integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.5.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-regex-util "^25.2.6" + jest-util "^25.5.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@soda/friendly-errors-webpack-plugin@^1.7.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85" + integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg== + dependencies: + chalk "^3.0.0" + error-stack-parser "^2.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +"@soda/get-current-script@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87" + integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w== + +"@types/babel__core@^7.1.7": + version "7.1.18" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect-history-api-fallback@*": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/formidable@^1.0.31": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/formidable/-/formidable-1.2.5.tgz#561d026e5f09179e5c8ef7b31e8f4652e11abe4c" + integrity sha512-zu3mQJa4hDNubEMViSj937602XdDGzK7Q5pJ5QmLUbNxclbo9tZGt5jtwM352ssZ+pqo5V4H14TBvT/ALqQQcA== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/http-proxy@^1.17.5": + version "1.17.8" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" + integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.5": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/node@*": + version "17.0.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab" + integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/prettier@^1.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/tapable@^1": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + +"@types/uglify-js@*": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== + dependencies: + source-map "^0.6.1" + +"@types/webpack-dev-server@^3.11.0": + version "3.11.6" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" + integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/serve-static" "*" + "@types/webpack" "^4" + http-proxy-middleware "^1.0.0" + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4", "@types/webpack@^4.0.0": + version "4.41.32" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" + integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@vue/babel-helper-vue-jsx-merge-props@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" + integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA== + +"@vue/babel-helper-vue-transform-on@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" + integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== + +"@vue/babel-plugin-jsx@^1.0.3": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" + integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + "@vue/babel-helper-vue-transform-on" "^1.0.2" + camelcase "^6.0.0" + html-tags "^3.1.0" + svg-tags "^1.0.0" + +"@vue/babel-plugin-transform-vue-jsx@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7" + integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz#f6bc08f8f674e98a260004234cde18b966d72eb0" + integrity sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg== + dependencies: + "@babel/core" "^7.11.0" + "@babel/helper-compilation-targets" "^7.9.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-decorators" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.11.0" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.0" + "@vue/babel-plugin-jsx" "^1.0.3" + "@vue/babel-preset-jsx" "^1.2.4" + babel-plugin-dynamic-import-node "^2.3.3" + core-js "^3.6.5" + core-js-compat "^3.6.5" + semver "^6.1.0" + +"@vue/babel-preset-jsx@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87" + integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w== + dependencies: + "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" + "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" + "@vue/babel-sugar-composition-api-inject-h" "^1.2.1" + "@vue/babel-sugar-composition-api-render-instance" "^1.2.4" + "@vue/babel-sugar-functional-vue" "^1.2.2" + "@vue/babel-sugar-inject-h" "^1.2.2" + "@vue/babel-sugar-v-model" "^1.2.3" + "@vue/babel-sugar-v-on" "^1.2.3" + +"@vue/babel-sugar-composition-api-inject-h@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb" + integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-composition-api-render-instance@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19" + integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-functional-vue@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658" + integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa" + integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2" + integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" + "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada" + integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" + camelcase "^5.0.0" + +"@vue/cli-overlay@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.15.tgz#0700fd6bad39336d4189ba3ff7d25e638e818c9c" + integrity sha512-0zI0kANAVmjFO2LWGUIzdGPMeE3+9k+KeRDXsUqB30YfRF7abjfiiRPq5BU9pOzlJbVdpRkisschBrvdJqDuDg== + +"@vue/cli-plugin-babel@~4.5.0": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.15.tgz#ae4fb2ed54255fe3d84df381dab68509641179ed" + integrity sha512-hBLrwYfFkHldEe34op/YNgPhpOWI5n5DB2Qt9I/1Epeif4M4iFaayrgjvOR9AVM6WbD3Yx7WCFszYpWrQZpBzQ== + dependencies: + "@babel/core" "^7.11.0" + "@vue/babel-preset-app" "^4.5.15" + "@vue/cli-shared-utils" "^4.5.15" + babel-loader "^8.1.0" + cache-loader "^4.1.0" + thread-loader "^2.1.3" + webpack "^4.0.0" + +"@vue/cli-plugin-router@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.15.tgz#1e75c8c89df42c694f143b9f1028de3cf5d61e1e" + integrity sha512-q7Y6kP9b3k55Ca2j59xJ7XPA6x+iSRB+N4ac0ZbcL1TbInVQ4j5wCzyE+uqid40hLy4fUdlpl4X9fHJEwuVxPA== + dependencies: + "@vue/cli-shared-utils" "^4.5.15" + +"@vue/cli-plugin-vuex@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz#466c1f02777d02fef53a9bb49a36cc3a3bcfec4e" + integrity sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg== + +"@vue/cli-service@~4.5.0": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.15.tgz#0e9a186d51550027d0e68e95042077eb4d115b45" + integrity sha512-sFWnLYVCn4zRfu45IcsIE9eXM0YpDV3S11vlM2/DVbIPAGoYo5ySpSof6aHcIvkeGsIsrHFpPHzNvDZ/efs7jA== + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@soda/friendly-errors-webpack-plugin" "^1.7.1" + "@soda/get-current-script" "^1.0.0" + "@types/minimist" "^1.2.0" + "@types/webpack" "^4.0.0" + "@types/webpack-dev-server" "^3.11.0" + "@vue/cli-overlay" "^4.5.15" + "@vue/cli-plugin-router" "^4.5.15" + "@vue/cli-plugin-vuex" "^4.5.15" + "@vue/cli-shared-utils" "^4.5.15" + "@vue/component-compiler-utils" "^3.1.2" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^7.4.0" + acorn-walk "^7.1.1" + address "^1.1.2" + autoprefixer "^9.8.6" + browserslist "^4.12.0" + cache-loader "^4.1.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + cli-highlight "^2.1.4" + clipboardy "^2.3.0" + cliui "^6.0.0" + copy-webpack-plugin "^5.1.1" + css-loader "^3.5.3" + cssnano "^4.1.10" + debug "^4.1.1" + default-gateway "^5.0.5" + dotenv "^8.2.0" + dotenv-expand "^5.1.0" + file-loader "^4.2.0" + fs-extra "^7.0.1" + globby "^9.2.0" + hash-sum "^2.0.0" + html-webpack-plugin "^3.2.0" + launch-editor-middleware "^2.2.1" + lodash.defaultsdeep "^4.6.1" + lodash.mapvalues "^4.6.0" + lodash.transform "^4.6.0" + mini-css-extract-plugin "^0.9.0" + minimist "^1.2.5" + pnp-webpack-plugin "^1.6.4" + portfinder "^1.0.26" + postcss-loader "^3.0.0" + ssri "^8.0.1" + terser-webpack-plugin "^1.4.4" + thread-loader "^2.1.3" + url-loader "^2.2.0" + vue-loader "^15.9.2" + vue-style-loader "^4.1.2" + webpack "^4.0.0" + webpack-bundle-analyzer "^3.8.0" + webpack-chain "^6.4.0" + webpack-dev-server "^3.11.0" + webpack-merge "^4.2.2" + optionalDependencies: + vue-loader-v16 "npm:vue-loader@^16.1.0" + +"@vue/cli-shared-utils@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.15.tgz#dba3858165dbe3465755f256a4890e69084532d6" + integrity sha512-SKaej9hHzzjKSOw1NlFmc6BSE0vcqUQMQiv1cxQ2DhVyy4QxZXBmzmiLBUBe+hYZZs1neXW7n//udeN9bCAY+Q== + dependencies: + "@hapi/joi" "^15.0.1" + chalk "^2.4.2" + execa "^1.0.0" + launch-editor "^2.2.1" + lru-cache "^5.1.1" + node-ipc "^9.1.1" + open "^6.3.0" + ora "^3.4.0" + read-pkg "^5.1.1" + request "^2.88.2" + semver "^6.1.0" + strip-ansi "^6.0.0" + +"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" + integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.36" + postcss-selector-parser "^6.0.2" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + optionalDependencies: + prettier "^1.18.2 || ^2.0.0" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" + integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== + +"@vue/shared@^3.0.0": + version "3.2.27" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.27.tgz#d5c6e574ee1afd55043470bf70b15772da4e19a2" + integrity sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA== + +"@vue/web-component-wrapper@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" + integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA== + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@windicss/plugin-utils@^0.16.0": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-0.16.7.tgz#54cd31841515e849f116a6d89e625da368f7de23" + integrity sha512-mxgTj/MkemN8JlyfaS20OAJ0BqTUoUlDT9wD/m5U+nUa5SN/r0kPlg1IW9SbmRTrYjNXWEENf9F0Fjb/X4zn6g== + dependencies: + "@antfu/utils" "^0.1.6" + debug "^4.3.2" + fast-glob "^3.2.5" + jiti "^1.9.2" + magic-string "^0.25.7" + micromatch "^4.0.4" + windicss "^3.0.12" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +aaptjs@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/aaptjs/-/aaptjs-1.3.1.tgz#c40e3c0a43ee9d067cc62c4a83b67a61950202b5" + integrity sha512-0YE9/DCvJel2NVQbvuEWJsjuGgy1d1dlB9Hsgi3sw160VBiFl222h4OTXh4RfFvUl4NFP8sEiZpjC3ZbeVJVLw== + dependencies: + shelljs "^0.8.1" + +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^5.2.1: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.0.1, acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +adb-commander@^0.1.8, adb-commander@^0.1.9: + version "0.1.9" + resolved "https://registry.yarnpkg.com/adb-commander/-/adb-commander-0.1.9.tgz#103778f6db4963a5f8f89c91faf89d3649f59202" + integrity sha512-uFZ+gRLQF4wqkuAQ/bBB22oLHQ8W6HQ31BTCssRtoinMm3oBauAH9e1kUm+cqyc3soGqwUGcsKuKuW37IlMIwA== + dependencies: + adb-driver "^0.1.8" + +adb-devices-emitter@^0.1.8: + version "0.1.9" + resolved "https://registry.yarnpkg.com/adb-devices-emitter/-/adb-devices-emitter-0.1.9.tgz#0f842537634770b584cdbcbc0333f4efb4a0b860" + integrity sha512-vR38T3ZqZmCXPQS6p0dEjbHZYAybNk6MLW2evtbVGCQvvrvoTzXSFjIdfrRbxryn9HJ7WAXfH42GYgvZIZDiTA== + dependencies: + adb-commander "^0.1.9" + +adb-driver@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/adb-driver/-/adb-driver-0.1.8.tgz#f4a656cba06bc85704e61ee4a15e78965eefaaf4" + integrity sha512-sERbuWCkIBtoHlEkE3tg67AWUaX/yJskYSLI6DKZsvgr5rL7iVNjMSIB2s7d1zt3luP/BMgLfP5z4Jto+CLafA== + dependencies: + which "^1.3.1" + +address@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0, any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.8.6: + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" + integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== + dependencies: + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@^8.0.5, babel-loader@^8.1.0: + version "8.2.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" + integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-import@^1.11.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.13.3.tgz#9dbbba7d1ac72bd412917a830d445e00941d26d7" + integrity sha512-1qCWdljJOrDRH/ybaCZuDgySii4yYrtQ8OJQwrcDqdt0y67N30ng3X3nABg6j7gR7qUJgcMa9OMhc4AGViDwWw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/runtime" "^7.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" + integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060" + integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.20.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +babel-preset-current-node-syntax@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" + integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +babel-preset-jest@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" + integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== + dependencies: + babel-plugin-jest-hoist "^25.5.0" + babel-preset-current-node-syntax "^0.1.2" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= + +base64-arraybuffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" + integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@^3.1.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" + integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== + dependencies: + bytes "3.1.1" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.6" + raw-body "2.4.2" + type-is "~1.6.18" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-json@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" + integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== + +cacache@^12.0.2, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +cache-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" + integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== + dependencies: + buffer-json "^2.0.0" + find-cache-dir "^3.0.0" + loader-utils "^1.2.3" + mkdirp "^0.5.1" + neo-async "^2.6.1" + schema-utils "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286: + version "1.0.30001301" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450" + integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.5.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-simple-launcher@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/chrome-simple-launcher/-/chrome-simple-launcher-0.1.3.tgz#a4b2ba3c165db564c64087e89a9bb64a63bcf370" + integrity sha512-8xUtp6cS4tn1o1Pzev6pxbgF7vCRdfxFLW4xOSUIF/83+ya8GWRqMpkqd8h7VDliHLhyRIi5zKbi85wpZ4m2oA== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.x: + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-highlight@^2.1.4: + version "2.1.11" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cli-spinners@^2.0.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +clipboardy@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" + integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== + dependencies: + arch "^2.1.1" + execa "^1.0.0" + is-wsl "^2.1.1" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co-body@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124" + integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ== + dependencies: + inflation "^2.0.0" + qs "^6.4.0" + raw-body "^2.2.0" + type-is "^1.6.14" + +co-body@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547" + integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== + dependencies: + inflation "^2.0.0" + qs "^6.5.2" + raw-body "^2.3.3" + type-is "^1.6.16" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" + integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.18.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1, component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.4, content-disposition@~0.5.2: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@^1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie-storage@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cookie-storage/-/cookie-storage-6.1.0.tgz#291b2f662d961be44f999626593421cbfcf23790" + integrity sha512-HeVqbVy8BjXhAAuFtL6MTG+witHoLbxfky2jgVh9FmxmyL6IKa9gSSyPNjevXCCCxPu6Tzd9J8+eXTRQzYU/cg== + +cookie@0.4.1, cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-text-to-clipboard@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c" + integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q== + +copy-to@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" + integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= + +copy-webpack-plugin@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" + integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== + dependencies: + cacache "^12.0.3" + find-cache-dir "^2.1.0" + glob-parent "^3.1.0" + globby "^7.1.1" + is-glob "^4.0.1" + loader-utils "^1.2.3" + minimatch "^3.0.4" + normalize-path "^3.0.0" + p-limit "^2.2.1" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + webpack-log "^2.0.0" + +core-js-compat@^3.20.0, core-js-compat@^3.20.2, core-js-compat@^3.6.5: + version "3.20.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6" + integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw== + dependencies: + browserslist "^4.19.1" + semver "7.0.0" + +core-js@^3.11.0, core-js@^3.6.5: + version "3.20.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" + integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-env@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" + integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== + dependencies: + cross-spawn "^6.0.5" + +cross-env@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" + integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== + dependencies: + camelcase "^5.2.0" + icss-utils "^4.1.0" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.14" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.6" + postcss-modules-scope "^2.1.0" + postcss-modules-values "^2.0.0" + postcss-value-parser "^3.3.0" + schema-utils "^1.0.0" + +css-loader@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +css@^2.2.4, css@~2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.0.0, cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +default-gateway@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10" + integrity sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA== + dependencies: + execa "^3.3.0" + +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@^2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@^1.0.4, destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +easy-stack@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" + integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.4.17: + version "1.4.49" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz#5b6a3dc032590beef4be485a4b0b3fe7d0e3dfd7" + integrity sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@^1.0.2, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.5.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.2.tgz#0ef473621294004e9ceebe73cef0af9e36f2f5fa" + integrity sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" + xmlhttprequest-ssl "~1.6.2" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" + integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "~7.4.2" + +enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +envinfo@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-6.0.1.tgz#dec51f2dd38fb4a1fb5bf568488c06ad1e7e08a7" + integrity sha512-IbMWvMQulMm1hiky1Zt5YTcSDEdZs0r9bt77mcLa4RUAKRYTGZvrb3MtAt47FuldPxwL+u2LtQex1FajIW1/Cw== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.2, es-abstract@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.11.1, escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" + integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.2.0, execa@^3.3.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-hook@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" + integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" + integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== + dependencies: + "@jest/types" "^25.5.0" + ansi-styles "^4.0.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + +express@^4.16.3, express@^4.17.1: + version "4.17.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" + integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.6" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.2.5: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +flyio@^0.6.2: + version "0.6.14" + resolved "https://registry.yarnpkg.com/flyio/-/flyio-0.6.14.tgz#c5d83eb7a9b4fc1c915a463d2ea6dfce755c2d6f" + integrity sha512-RE2OXE1ZZmcXOKb0jCtGyquHDxpAqHg17CZ8lmQKRfl3x1kP+NBpaQDx4WgN7DNpLJjFnspTzTEQpwRGg6/xaA== + dependencies: + request "^2.85.0" + +follow-redirects@^1.0.0: + version "1.14.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" + integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formidable@^1.1.1: + version "1.2.6" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" + integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2, fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-them-args@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/get-them-args/-/get-them-args-1.3.2.tgz#74a20ba8a4abece5ae199ad03f2bcc68fdfc9ba5" + integrity sha1-dKILqKSr7OWuGZrQPyvMaP38m6U= + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x, he@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= + +html-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-assert@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f" + integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.8.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.8.1, http-errors@^1.3.1, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" + integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy-middleware@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.17.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +i18n@^0.13.3: + version "0.13.4" + resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.4.tgz#8a434688efd04b8f3e4bcb49bbaf8a2828c57329" + integrity sha512-GZnXWeA15jTi9gc1jfgrJcSrNYDg7qbJXSYMuibqPYb1ThORmGCeM+gL6LrDagYRHh87/q/D0jRSOhAfv6wAow== + dependencies: + debug "^4.3.3" + make-plural "^7.0.0" + math-interval-parser "^2.0.1" + messageformat "^2.3.0" + mustache "^4.2.0" + sprintf-js "^1.1.2" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^4.0.0, icss-utils@^4.1.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.3: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflation@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" + integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +intersection-observer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.7.0.tgz#ee16bee978db53516ead2f0a8154b09b400bbdc9" + integrity sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg== + +invert-kv@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" + integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-weakref@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-instrument@^5.0.4: + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" + integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +javascript-stringify@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" + integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== + +jest-changed-files@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" + integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== + dependencies: + "@jest/types" "^25.5.0" + execa "^3.2.0" + throat "^5.0.0" + +jest-cli@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" + integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== + dependencies: + "@jest/core" "^25.5.4" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.5.4" + jest-util "^25.5.0" + jest-validate "^25.5.0" + prompts "^2.0.1" + realpath-native "^2.0.0" + yargs "^15.3.1" + +jest-config@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" + integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.5.4" + "@jest/types" "^25.5.0" + babel-jest "^25.5.1" + chalk "^3.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^25.5.0" + jest-environment-node "^25.5.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.5.4" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + micromatch "^4.0.2" + pretty-format "^25.5.0" + realpath-native "^2.0.0" + +jest-diff@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + +jest-each@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" + integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-get-type "^25.2.6" + jest-util "^25.5.0" + pretty-format "^25.5.0" + +jest-environment-jsdom@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" + integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + jsdom "^15.2.1" + +jest-environment-node@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" + integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + semver "^6.3.0" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-haste-map@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" + integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== + dependencies: + "@jest/types" "^25.5.0" + "@types/graceful-fs" "^4.1.2" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-serializer "^25.5.0" + jest-util "^25.5.0" + jest-worker "^25.5.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" + integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.5.0" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.5.0" + is-generator-fn "^2.0.0" + jest-each "^25.5.0" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + pretty-format "^25.5.0" + throat "^5.0.0" + +jest-leak-detector@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" + integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== + dependencies: + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-matcher-utils@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" + integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== + dependencies: + chalk "^3.0.0" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-message-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" + integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + +jest-mock@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" + integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== + dependencies: + "@jest/types" "^25.5.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== + +jest-resolve-dependencies@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" + integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== + dependencies: + "@jest/types" "^25.5.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.5.1" + +jest-resolve@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" + integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== + dependencies: + "@jest/types" "^25.5.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.1" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.17.0" + slash "^3.0.0" + +jest-runner@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" + integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-docblock "^25.3.0" + jest-haste-map "^25.5.1" + jest-jasmine2 "^25.5.4" + jest-leak-detector "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + jest-runtime "^25.5.4" + jest-util "^25.5.0" + jest-worker "^25.5.0" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" + integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/globals" "^25.5.2" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + +jest-serializer@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" + integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== + dependencies: + graceful-fs "^4.2.4" + +jest-snapshot@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" + integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.5.0" + graceful-fs "^4.2.4" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + make-dir "^3.0.0" + natural-compare "^1.4.0" + pretty-format "^25.5.0" + semver "^6.3.0" + +jest-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" + integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + make-dir "^3.0.0" + +jest-validate@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" + integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== + dependencies: + "@jest/types" "^25.5.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.5.0" + +jest-watcher@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" + integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== + dependencies: + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.5.0" + string-length "^3.1.0" + +jest-worker@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.4.0: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" + integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== + dependencies: + "@jest/core" "^25.5.4" + import-local "^3.0.2" + jest-cli "^25.5.4" + +jiti@^1.9.2: + version "1.12.9" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.12.9.tgz#2ce45b265cfc8dc91ebd70a5204807cf915291bc" + integrity sha512-TdcJywkQtcwLxogc4rSMAi479G2eDPzfW0fLySks7TPhgZZ4s/tM6stnzayIh3gS/db3zExWJyUx4cNWrwAmoQ== + +js-message@1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47" + integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== + +js-queue@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.2.tgz#0be590338f903b36c73d33c31883a821412cd482" + integrity sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA== + dependencies: + easy-stack "^1.0.1" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +jsrsasign@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-7.2.2.tgz#ae5230cb5574451bb979a9cc697428c60f598d20" + integrity sha1-rlIwy1V0RRu5eanMaXQoxg9ZjSA= + +jszip@^3.1.5, jszip@^3.2.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" + integrity sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +jweixin-module@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/jweixin-module/-/jweixin-module-1.6.0.tgz#4a7ea614083e3c9c3f49e2fdc2bb882cfa58dfcd" + integrity sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w== + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + +kill-port@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/kill-port/-/kill-port-1.6.1.tgz#560fe79484583bdf3a5e908557dae614447618aa" + integrity sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw== + dependencies: + get-them-args "1.3.2" + shell-exec "1.0.2" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +koa-body@^4.0.8: + version "4.2.0" + resolved "https://registry.yarnpkg.com/koa-body/-/koa-body-4.2.0.tgz#37229208b820761aca5822d14c5fc55cee31b26f" + integrity sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA== + dependencies: + "@types/formidable" "^1.0.31" + co-body "^5.1.1" + formidable "^1.1.1" + +koa-bodyparser@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" + integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== + dependencies: + co-body "^6.0.0" + copy-to "^2.0.1" + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" + integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== + dependencies: + co "^4.6.0" + koa-compose "^4.1.0" + +koa-mount@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" + integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== + dependencies: + debug "^4.0.1" + koa-compose "^4.1.0" + +koa-router@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0" + integrity sha512-IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g== + dependencies: + debug "^3.1.0" + http-errors "^1.3.1" + koa-compose "^3.0.0" + methods "^1.0.1" + path-to-regexp "^1.1.1" + urijs "^1.19.0" + +koa-send@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + resolve-path "^1.4.0" + +koa-static@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" + integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== + dependencies: + debug "^3.1.0" + koa-send "^5.0.0" + +koa@^2.7.0: + version "2.13.4" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" + integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "^4.3.2" + delegates "^1.0.0" + depd "^2.0.0" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^2.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +launch-editor-middleware@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz#edd0ed45a46f5f1cf27540f93346b5de9e8c3be0" + integrity sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w== + dependencies: + launch-editor "^2.3.0" + +launch-editor@^2.2.1, launch-editor@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.3.0.tgz#23b2081403b7eeaae2918bda510f3535ccab0ee4" + integrity sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.6.1" + +lcid@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" + integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== + dependencies: + invert-kv "^3.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +licia@^1.21.0: + version "1.34.0" + resolved "https://registry.yarnpkg.com/licia/-/licia-1.34.0.tgz#e356b9696b070adf734b2831e0f9f7ad81624900" + integrity sha512-EKSzTKn8OTEBgySpDWq7dZ98DpfXXmFJHOi55RWDzm/UsD1LZuSwFzz6EVm4hHia2Manb0OM0Y0eUPkNWc7+Ww== + +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^2.3.1, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.mapvalues@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +loglevel@^1.6.8: + version "1.8.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" + integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== + +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^4.1.2: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +luch-request@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/luch-request/-/luch-request-3.0.7.tgz#5894fc3d3ff62622b042c84953c1192ccdeafaa5" + integrity sha512-rYTgAO0CiAMjuotvwhtEREQ6mh/qdgYO2a+cKDv2VPnww/MdNaHMGMpsPY6VvJCOtfH7kV9lDujjuihhlu1xmg== + dependencies: + "@dcloudio/types" "^2.0.16" + +magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-plural@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" + integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== + optionalDependencies: + minimist "^1.2.0" + +make-plural@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.0.0.tgz#f4c9c5c3334b935788f10815ffbaa55c9b2e8393" + integrity sha512-OTuzMnuhrc7G3LJU5upkhKy7EIAq/dRqANqTUh0B8au7jM5mXq9kVdla3sn3g2GCRIxgooCDQtSJ3s1fAjasbQ== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-interval-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" + integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merge@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +messageformat-formatters@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" + integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== + +messageformat-parser@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" + integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== + +messageformat@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" + integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== + dependencies: + make-plural "^4.3.0" + messageformat-formatters "^2.0.1" + messageformat-parser "^4.1.2" + +methods@^1.0.1, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-css-extract-plugin@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" + integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +mini-types@*: + version "0.1.7" + resolved "https://registry.yarnpkg.com/mini-types/-/mini-types-0.1.7.tgz#36d5ea2cf18653b16f5d1a02c8d9b329c727d20a" + integrity sha512-aSoVvrIr/O9tbzFjSCeKr/T53Hu+un+FXkfWPfGcb/q8eAHXX1CDgSHv8l0GtFTlfHzznmn4hbRGB3UTWmZ3fA== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^3.1.1: + version "3.1.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + dependencies: + yallist "^4.0.0" + +miniprogram-api-typings@*: + version "3.4.5" + resolved "https://registry.yarnpkg.com/miniprogram-api-typings/-/miniprogram-api-typings-3.4.5.tgz#060e73b58ccc28db85ffb4ae60a838112866fb3e" + integrity sha512-GWvMdmPhJ40PLq4/sOh+n2xGRKf2R3kcuOaSe7IRTdT+Os8lfNrJYehYdgH7IoUWqaHqV8mFEWQj5oPIGhVv4Q== + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +module-alias@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.2.tgz#151cdcecc24e25739ff0aa6e51e1c5716974c0e0" + integrity sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q== + +moment@^2.24.0: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mustache@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.2.1.tgz#89e78a9d207d78f2799b1e95764a25bf71a28322" + integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA== + +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +mutation-observer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mutation-observer/-/mutation-observer-1.0.3.tgz#42e9222b101bca82e5ba9d5a7acf4a14c0f263d0" + integrity sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA== + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-ipc@^9.1.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.2.1.tgz#b32f66115f9d6ce841dc4ec2009d6a733f98bb6b" + integrity sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ== + dependencies: + event-pubsub "4.3.0" + js-message "1.0.7" + js-queue "2.0.2" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== + dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" + +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +only@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +opn@^5.4.0, opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-locale-s-fix@^1.0.8-fix-1: + version "1.0.8-fix-1" + resolved "https://registry.yarnpkg.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz#7db4f9fc7cea29e9266900ea0bc72aaff13ff14a" + integrity sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w== + dependencies: + lcid "^3.0.0" + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@^1.0.11, pako@~1.0.2, pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parse5@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@1.0.1, path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.1.1: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.0, pirates@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" + integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pnp-webpack-plugin@^1.6.4: + version "1.7.0" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" + integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.20, portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-class-rename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-class-rename/-/postcss-class-rename-1.0.1.tgz#5ff90cc78f6800b5971bed23d25db929a7b40b02" + integrity sha512-p7mjgoinuuKL7wvxzrj3BD5wN9mHUNNwHCS7sEMd0BsrTC+ly07ie9tqLzEeZEEYhBGWV8FJK69AHI5S/1FV9g== + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-comment@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-comment/-/postcss-comment-2.0.0.tgz#6c8808e64cee25c33146518a8a82944b05f11e6f" + integrity sha512-5zT5iKU7c0tK9KJFNrVf+g1MGTkzf/4V3e0Zzm2g1uoFQC5jeTHmB9O1iAqh97+jnKpc6al204e0pwFUiCwseg== + dependencies: + postcss "^6.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-helpers@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/postcss-helpers/-/postcss-helpers-0.3.2.tgz#cf8721d8d6605d2577302f966afefda1fea9929c" + integrity sha512-hppnMXY6Ehe8CgLHQCDWbyUsXvBFggdzftWzznL65MhgZsE8o8pUTYbmUbLst0rps+wyUSLIUJ0bGpV2Tzv7lw== + dependencies: + urijs "^1.18.12" + +postcss-import@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== + dependencies: + postcss "^7.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" + integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^3.3.1" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.1.0, postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^7.0.6" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-urlrewrite@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/postcss-urlrewrite/-/postcss-urlrewrite-0.2.2.tgz#bad53f4de04bc0812f278733314bd3062ed36bd4" + integrity sha512-DxPSgykgHjoV4Z+ygvq2C5HkiuiKQQD74xpoNQSQuyi8zab9nODVtNKfnCN6BEv9VZrjpOGLGAf8BDvgG6EtHg== + dependencies: + postcss-helpers "^0.3.2" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-windicss-postcss7@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-windicss-postcss7/-/postcss-windicss-postcss7-1.1.1.tgz#788a7e9f2815e3eb6270a133fe9abccf8d13863e" + integrity sha512-9wraE8OO0CtRndDVnU3Fc03MQp1TpN2ZZuB1517jkYWbfpSSKA8n5jJbAqpPoHQtjRcyio+0/Otj4Wly1S8zKw== + dependencies: + "@windicss/plugin-utils" "^0.16.0" + chokidar "^3.5.1" + debug "^4.3.2" + exit-hook "^2.2.1" + windicss "^3.0.12" + +postcss@^6.0.0: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +"prettier@^1.18.2 || ^2.0.0": + version "2.5.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + +pretty-error@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qr-image@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/qr-image/-/qr-image-3.2.0.tgz#9fa8295beae50c4a149cf9f909a1db464a8672e8" + integrity sha1-n6gpW+rlDEoUnPn5CaHbRkqGcug= + +qrcode-reader@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz#95d9bb9e8130800361a96cb5a43124ad1d9e06b8" + integrity sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ== + +qrcode-terminal@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== + +qs@6.9.6: + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== + +qs@^6.4.0, qs@^6.5.2: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.2, raw-body@^2.2.0, raw-body@^2.3.3: + version "2.4.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + dependencies: + bytes "3.1.1" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^16.12.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.1.1, read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== + +recast@*: + version "0.20.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + dependencies: + ast-types "0.14.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +regenerate-unicode-properties@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" + integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" + integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpu-core@^4.7.1: + version "4.8.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" + integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^9.0.0" + regjsgen "^0.5.2" + regjsparser "^0.7.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +registry-auth-token@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + +regjsgen@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" + integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.85.0, request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0: + version "1.21.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.1.tgz#1a88c73f5ca8ab0aabc8b888c4170de26c92c4cc" + integrity sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ== + dependencies: + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-area-insets@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz#89309e01a516dcd7d2fe012a9c4115182957bd8b" + integrity sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sass-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" + +sass@^1.43.4: + version "1.49.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.0.tgz#65ec1b1d9a6bc1bae8d2c9d4b392c13f5d32c078" + integrity sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.8: + version "1.10.14" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" + integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.2" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-exec@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shell-exec/-/shell-exec-1.0.2.tgz#2e9361b0fde1d73f476c4b6671fa17785f696756" + integrity sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg== + +shell-quote@^1.6.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + +shelljs@^0.8.1: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" + has-binary2 "~1.0.2" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" + integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== + dependencies: + debug "~4.1.0" + engine.io "~3.5.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.4.0" + socket.io-parser "~3.4.0" + +sockjs-client@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" + integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.5.3" + +sockjs@^0.3.21: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.12: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +stricter-htmlparser2@^3.9.6: + version "3.9.6" + resolved "https://registry.yarnpkg.com/stricter-htmlparser2/-/stricter-htmlparser2-3.9.6.tgz#fd195f5e4bc0989c6b15fc79eca85c6401bb5045" + integrity sha512-w/PqXYnjfpi49nb3xnsizORItMM53M/jHdCL8Cer0OqO3vRLsNDtRKoHY/IkIuGnH7/TEn23yvlZoQQLt7pdrw== + dependencies: + domelementtype "^1.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + x-domhandler "^2.4.2" + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thread-loader@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" + integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== + dependencies: + loader-runner "^2.3.1" + loader-utils "^1.1.0" + neo-async "^2.6.0" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tslib@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@^1.6.14, type-is@^1.6.16, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-check@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.4.tgz#5b508e259558f1ad7dbc8b4b0457d4c9d28c8743" + integrity sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ== + dependencies: + registry-auth-token "3.3.2" + registry-url "3.1.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urijs@^1.18.12, urijs@^1.19.0: + version "1.19.7" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.7.tgz#4f594e59113928fea63c00ce688fb395b1168ab9" + integrity sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA== + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^2.1.0, url-loader@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" + integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== + dependencies: + loader-utils "^1.2.3" + mime "^2.4.4" + schema-utils "^2.5.0" + +url-parse@^1.4.3, url-parse@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.4.tgz#e4f645a7e2a0852cc8a66b14b292a3e9a11a97fd" + integrity sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uview-ui@^1.8.4: + version "1.8.5" + resolved "https://registry.yarnpkg.com/uview-ui/-/uview-ui-1.8.5.tgz#15bc72b8542285db2d09f99f24c629e3f9832a3e" + integrity sha512-dZHtRAH5HW1dLZW5HfO0hDrGpcxnMgbLDLKxbM/jRvgytJBKF7icpuIU607fVF0lGaKp3jUE/IhqoIw4uliYAA== + +v8-to-istanbul@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1.1.2, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vconsole@^3.10.0: + version "3.11.2" + resolved "https://registry.yarnpkg.com/vconsole/-/vconsole-3.11.2.tgz#793acd9892bb35f110e7f5cf205422804fb81bd9" + integrity sha512-gOYOEocyRtFcy4viVEf4c52okpuhRLE0l43q4aMaKLp9pxYoyMJXsEUBydCuzQPc1PKwUpUVE8fEzTcAGUA5sA== + dependencies: + cookie-storage "^6.1.0" + copy-text-to-clipboard "^3.0.1" + core-js "^3.11.0" + mutation-observer "^1.0.3" + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== + +"vue-loader-v16@npm:vue-loader@^16.1.0": + version "16.8.3" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087" + integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-loader@^15.6.4, vue-loader@^15.9.2: + version "15.9.8" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" + integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== + dependencies: + "@vue/component-compiler-utils" "^3.1.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" + integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.11, vue-template-compiler@^2.6.7: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" + integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue@^2.6.11: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" + integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== + +vuex@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" + integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-bundle-analyzer@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" + integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.19" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^6.4.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" + integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.11.0: + version "3.11.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" + integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== + dependencies: + ansi-html-community "0.0.8" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.1.4, webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.0.0, webpack@^4.29.5: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +windicss@^3.0.12: + version "3.4.3" + resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.4.3.tgz#347d09fee8eb6b3fc5e6e68b435c76ccb24a748c" + integrity sha512-UnugThsvEgy8RsPm4/B5DYMCAqvZzD6yWU7Anh+f07t5RSJ8zvmAylGLbXrHPJEmCKzo2Mf+fOUvISH7IJqM3A== + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-loader@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/wrap-loader/-/wrap-loader-0.2.0.tgz#8209f87ec80047a657a2adabbcfd62cfad7f0aae" + integrity sha512-Qdhdu7vr2H8dLE2sKySQznOBHXIHbKg7PZ5aqkeBOQHGqxLfcJw/ZlB40j67b1tks9OYqSBCHc+uHtGRCmQYlg== + dependencies: + loader-utils "^1.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.0.0, ws@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + +ws@^7.0.0, ws@^7.2.3: + version "7.5.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +ws@~7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +x-domhandler@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/x-domhandler/-/x-domhandler-2.4.2.tgz#21afb2d71977118688e49e05c30894497ce3d5e9" + integrity sha512-c+T0p5hsahezbHpahjNpSDKjMMwGwOnG6Iaz8zzSjEBlJM47hakZmNBLNpktZJjuRdopoUMPf7HzcPcTE1G0GQ== + dependencies: + domelementtype "1" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmlhttprequest-ssl@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" + integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== + +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==