xiongzhu 3 лет назад
Родитель
Сommit
7e670e2557

+ 1 - 0
package.json

@@ -39,6 +39,7 @@
     "ionicons": "^6.0.4",
     "less": "^4.1.3",
     "less-loader": "^11.1.0",
+    "mathjs": "^11.5.0",
     "normalize.css": "^8.0.1",
     "pinia": "^2.0.26",
     "qrcode": "1",

+ 6 - 6
src/components/DistributionOrder.vue

@@ -9,7 +9,7 @@
 
             <div class="right">
                 <div class="text1">{{ info.name }}</div>
-                <div class="text2">¥{{ info.price }}</div>
+                <div class="text2">{{ $t('balance.symbol') }}{{ info.price }}</div>
             </div>
             <div class="num">×1</div>
         </div>
@@ -21,25 +21,25 @@
     </div>
 </template>
 <script>
-import { mapState } from 'pinia';
-import { useUserStore } from '@/stores/user';
+import { mapState } from 'pinia'
+import { useUserStore } from '@/stores/user'
 export default {
     name: 'orderInfo',
     props: {
         info: {
             type: Object,
             default: () => {
-                return {};
+                return {}
             }
         }
     },
     data() {
-        return {};
+        return {}
     },
     computed: {
         ...mapState(useUserStore, ['user'])
     }
-};
+}
 </script>
 <style lang="less" scoped>
 .orderInfo {

+ 35 - 24
src/components/OrderItem.vue

@@ -16,7 +16,7 @@
                     <div class="product-tag" v-if="saleBatch">{{ saleBatch.name }}</div>
                 </div>
                 <div class="text3">
-                    <div class="price">¥{{ info.totalPrice }}</div>
+                    <div class="price">{{ $t('balance.symbol') }}{{ info.totalPrice }}</div>
                     <div class="num">×1</div>
                 </div>
             </div>
@@ -25,21 +25,23 @@
         <div class="order-price">
             <div class="price">
                 <span>{{ $t('order.totalPayment') }}:&nbsp;</span>
-                <span>¥{{ info.totalPrice }}</span>
+                <span>{{ $t('balance.symbol') }}{{ info.totalPrice }}</span>
             </div>
 
-            <div class="order-tips" v-if="info.status == 'NOT_PAID'">付款倒计时过期自动取消订单 {{ times }}</div>
+            <div class="order-tips" v-if="info.status == 'NOT_PAID'">{{ $t('order.countDown') }} {{ times }}</div>
         </div>
 
         <div class="order-button">
-            <span class="problem" @click="problem">遇到问题?</span>
+            <span class="problem" @click="problem">{{ $t('order.hasProblem') }}</span>
             <template v-if="info.status == 'NOT_PAID'">
                 <!-- <van-button color="#FF8F00"plain size="small" @click="confirmPayment">我已付款</van-button> -->
-                <van-button type="primary" size="small" @click="pay">立即支付</van-button>
+                <van-button type="primary" size="small" @click="pay">{{ $t('order.payNow') }}</van-button>
             </template>
 
             <template v-else-if="info.status == 'NOT_CONFIRMED'">
-                <van-button color="#AAACAD" plain size="small" @click="goDetail">查看订单</van-button>
+                <van-button color="#AAACAD" plain size="small" @click="goDetail">
+                    {{ $t('order.viewOrder') }}
+                </van-button>
             </template>
 
             <template v-else-if="info.status == 'SOLD_NOT_CONFIRMED'">
@@ -51,28 +53,38 @@
                 <!-- <van-button color="#AAACAD"plain size="small" @click="confirmPayment">未收到款</van-button> -->
                 <!-- <van-button type="primary"size="small" @click="confirmReceipt">确认收款</van-button> -->
                 <!-- <van-button color="#AAACAD" plain size="small" @click="applyShip">申请发货</van-button> -->
-                <van-button color="#AAACAD" plain size="small" @click="goDetail">查看订单</van-button>
+                <van-button color="#AAACAD" plain size="small" @click="goDetail">
+                    {{ $t('order.viewOrder') }}
+                </van-button>
             </template>
 
             <template v-else-if="info.status == 'CONFIRMED'">
-                <van-button color="#AAACAD" plain size="small" @click="applyShip">申请发货</van-button>
+                <van-button color="#AAACAD" plain size="small" @click="applyShip">
+                    {{ $t('order.applyShip') }}
+                </van-button>
                 <van-button type="primary" size="small" @click="show = true" v-if="delegationActive">
-                    委托代卖</van-button
-                >
-                <van-button color="#aaacad" @click="showTip" v-else>委托代卖 </van-button>
+                    {{ $t('delegate.title') }}
+                </van-button>
+                <van-button color="#aaacad" @click="showTip" v-else>{{ $t('delegate.title') }} </van-button>
             </template>
 
             <template v-else-if="info.status == 'SOLD'">
-                <van-button color="#AAACAD" plain size="small" @click="goDetail">查看订单</van-button>
+                <van-button color="#AAACAD" plain size="small" @click="goDetail">
+                    {{ $t('order.viewOrder') }}
+                </van-button>
             </template>
             <template v-else-if="info.status == 'NOT_SHIPPED'">
-                <van-button color="#AAACAD" plain size="small" @click="goDetail">查看订单</van-button>
+                <van-button color="#AAACAD" plain size="small" @click="goDetail">
+                    {{ $t('order.viewOrder') }}
+                </van-button>
             </template>
             <template v-else-if="info.status == 'RECEIVED'">
-                <van-button color="#AAACAD" plain size="small" @click="goDetail">查看订单</van-button>
+                <van-button color="#AAACAD" plain size="small" @click="goDetail">
+                    {{ $t('order.viewOrder') }}
+                </van-button>
             </template>
             <template v-else-if="info.status == 'SHIPPED'">
-                <van-button type="primary" size="small" @click="receive"> 确认收货</van-button>
+                <van-button type="primary" size="small" @click="receive"> {{ $t('order.confirmReceipt') }}</van-button>
             </template>
         </div>
         <ion-modal id="delegate" class="dialog" ref="modal" v-model:is-open="show" @didDismiss="show = false">
@@ -80,11 +92,11 @@
                 <div class="title">{{ $t('delegate.title') }}</div>
                 <div class="sold-list">
                     <div class="sold-item">
-                        <div class="name">原价</div>
-                        <div class="val">¥{{ info.totalPrice }}</div>
+                        <div class="name">{{ $t('delegate.originalPrice') }}</div>
+                        <div class="val">{{ $t('balance.symbol') }}{{ info.totalPrice }}</div>
                     </div>
                     <div class="sold-item">
-                        <div class="name">加价</div>
+                        <div class="name">{{ $t('delegate.increase') }}</div>
                         <!-- <van-stepper
                             :model-value="riseRatePercent"
                             input-width="60px"
@@ -97,18 +109,16 @@
                         <span class="val">{{ riseRatePercent }}%</span>
                     </div>
                     <div class="sold-item">
-                        <div class="name">卖价</div>
-                        <div class="val bold">¥{{ soldValue }}</div>
+                        <div class="name">{{ $t('delegate.sellPrice') }}</div>
+                        <div class="val bold">{{ $t('balance.symbol') }}{{ soldValue }}</div>
                     </div>
                 </div>
                 <div class="tips">
-                    注:委托平台代卖服务,每次最高可将商品价格提高{{ riseRatePercent }}%,平台会收取{{
-                        serviceValue
-                    }}%的托管服务费用
+                    {{ $t('delegate.tip1', { riseRatePercent, serviceCharge: serviceValue }) }}
                 </div>
 
                 <van-button class="button" block type="primary" :disabled="loading" @click="sale">
-                    支付手续费 ¥{{ serviceCharge }}
+                    {{ $t('delegate.payServiceCharge') }} {{ $t('balance.symbol') }}{{ serviceCharge }}
                 </van-button>
             </div>
         </ion-modal>
@@ -636,6 +646,7 @@ ion-modal#delegate {
             &.CONFIRMED,
             &.SELLING {
                 background: none;
+                background-clip: inherit;
                 -webkit-background-clip: inherit;
                 -webkit-text-fill-color: inherit;
             }

+ 1 - 1
src/components/RecordOrder.vue

@@ -9,7 +9,7 @@
 
             <div class="right">
                 <div class="text1">{{ info.name }}</div>
-                <div class="text2">¥{{ info.price }}</div>
+                <div class="text2">{{ $t('balance.symbol') }}{{ info.price }}</div>
             </div>
             <div class="num">×1</div>
         </div>

+ 0 - 139
src/components/StatisticsOrder.vue

@@ -1,139 +0,0 @@
-<template>
-    <div class="orderInfo">
-        <div class="top">
-            <div class="person">
-                <van-image width="24" height="24" radius="100" fit="fill" :src="info.avatar" />
-
-                <span>{{ info.nickname }}</span>
-            </div>
-            <div class="value">{{ status }}</div>
-        </div>
-        <div class="center">
-            <van-image class="suk-img" width="50" height="50" fit="fill" :src="info.pic" />
-
-            <div class="right">
-                <div class="text1">{{ info.name }}</div>
-                <div class="text2">¥{{ info.price }}</div>
-            </div>
-            <div class="num">×1</div>
-        </div>
-
-        <div class="order-info">
-            <div class="order-item">订单编号:{{ info.orderId }}</div>
-            <div class="order-item">下单时间:{{ info.createdAt }}</div>
-        </div>
-    </div>
-</template>
-<script>
-import { mapState } from 'pinia';
-import { useUserStore } from '@/stores/user';
-export default {
-    name: 'orderInfo',
-    props: {
-        info: {
-            type: Object,
-            default: () => {
-                return {};
-            }
-        }
-    },
-    data() {
-        return {};
-    },
-    computed: {
-        ...mapState(userUserStore, ['user']),
-        status() {
-            switch (this.info.status) {
-                case 'NOT_PAID':
-                case 'CANCELED':
-                    return '未付款';
-                case 'NOT_CONFIRMED':
-                case 'CONFIRMED':
-                case 'SELLING':
-                case 'SOLD_NOT_PAID':
-                case 'SOLD_NOT_CONFIRMED':
-                case 'SOLD':
-                case 'NOT_SHIPPED':
-                case 'SHIPPED':
-                case 'RECEIVED':
-                    return '已付款';
-            }
-            return '';
-        }
-    }
-};
-</script>
-<style lang="less" scoped>
-.orderInfo {
-    background: rgba(255, 255, 255, 1);
-    border-radius: 2px;
-    padding: 0 15px 15px;
-    margin-top: 10px;
-}
-
-.top {
-    position: relative;
-    height: 44px;
-    text-align: right;
-    border-bottom: 1px solid #f2f4f5;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-
-    .person {
-        display: flex;
-        align-items: center;
-        span {
-            font-size: 14px;
-            color: rgba(var(--ion-color-light-contrast-rgb), 1);
-            line-height: 20px;
-            margin-left: 6px;
-        }
-    }
-    .value {
-        font-size: 13px;
-        font-weight: bold;
-        color: rgba(255, 143, 0, 1);
-        line-height: 44px;
-    }
-}
-.center {
-    display: flex;
-    // align-items: center;
-    padding: 15px 0 0;
-    .right {
-        flex-grow: 1;
-        margin-left: 10px;
-        .text1 {
-            font-size: 14px;
-            color: rgba(var(--ion-color-light-contrast-rgb), 1);
-            line-height: 20px;
-        }
-        .text2 {
-            font-size: 12px;
-            color: rgba(var(--ion-color-light-contrast-rgb), 1);
-            line-height: 17px;
-            margin-top: 5px;
-        }
-    }
-
-    .num {
-        font-size: 14px;
-        color: rgba(170, 172, 173, 1);
-        line-height: 20px;
-        align-self: flex-end;
-    }
-}
-
-.order-info {
-    margin-top: 10px;
-    .order-item {
-        font-size: 12px;
-        color: rgba(102, 102, 102, 1);
-        line-height: 17px;
-        &:not(:last-child) {
-            margin-bottom: 5px;
-        }
-    }
-}
-</style>

+ 13 - 2
src/locales/zh.json

@@ -29,6 +29,7 @@
         "my": "我的订单",
         "detail": "订单详情",
         "payMethod": "支付方式",
+        "payAt": "付款时间",
         "status": {
             "ALL": "全部",
             "NOT_PAID": "待付款",
@@ -66,7 +67,12 @@
         "buyNow": "立即购买",
         "walletPay": "钱包支付",
         "processing": "处理中",
-        "createSuccess": "订单创建成功"
+        "createSuccess": "订单创建成功",
+        "countDown": "付款倒计时过期自动取消订单",
+        "viewOrder": "查看订单",
+        "applyShip": "申请发货",
+        "confirmReceipt": "确认收货",
+        "hasProblem": "遇到问题?"
     },
     "balance": {
         "symbol": "¥",
@@ -116,7 +122,12 @@
     },
     "delegate": {
         "title": "委托代卖",
-        "tip": "委托代卖暂未开始,将在今天${time}开始"
+        "tip": "委托代卖暂未开始,将在今天${time}开始",
+        "tip1": "注:委托平台代卖服务,每次最高可将商品价格提高${riseRatePercent}%,平台会收取${serviceCharge}%的托管服务费用",
+        "payServiceCharge": "支付手续费",
+        "originalPrice": "原价",
+        "increase": "加价",
+        "sellPrice": "卖价"
     },
     "distribution": {
         "qrCode": "我的推广码",

+ 23 - 15
src/views/OrderDetailPage.vue

@@ -47,7 +47,7 @@
                             <div class="product-tag" v-if="saleBatch">{{ saleBatch.name }}</div>
                         </div>
                         <div class="text3">
-                            <div class="price">¥{{ orderInfo.totalPrice }}</div>
+                            <div class="price">{{ $t('balance.symbol') }}{{ orderInfo.totalPrice }}</div>
                             <div class="num">×1</div>
                         </div>
                     </div>
@@ -55,11 +55,11 @@
                 <div class="divider"></div>
                 <div class="order-info">
                     <div class="name">{{ $t('product.dailyEarning') }}</div>
-                    <div class="val">3%</div>
+                    <div class="val">{{ riseRatePercent }}%</div>
                 </div>
                 <div class="order-info">
                     <div class="name">{{ $t('product.dailyEarning') }}</div>
-                    <div class="val">0.3</div>
+                    <div class="val">{{ dailyEarning }}</div>
                 </div>
                 <!-- <div class="order-info">
         <div class="name">订单留言</div>
@@ -81,15 +81,15 @@
 
                 <div class="time-content">
                     <div class="detail-item">
-                        <div class="name">订单编号</div>
+                        <div class="name">{{ $t('order.id') }}</div>
                         <div class="val">{{ orderInfo.id }}</div>
                     </div>
                     <div class="detail-item">
-                        <div class="name">创建时间</div>
+                        <div class="name">{{ $t('order.createdAt') }}</div>
                         <div class="val">{{ orderInfo.createdAt }}</div>
                     </div>
                     <div class="detail-item" v-if="orderInfo.paidTime">
-                        <div class="name">付款时间</div>
+                        <div class="name">{{ $t('order.payAt') }}</div>
                         <div class="val">{{ orderInfo.paidTime }}</div>
                     </div>
                 </div>
@@ -99,11 +99,11 @@
                     <div class="title">{{ $t('delegate.title') }}</div>
                     <div class="sold-list">
                         <div class="sold-item">
-                            <div class="name">原价</div>
-                            <div class="val">¥{{ orderInfo.totalPrice }}</div>
+                            <div class="name">{{ $t('delegate.originalPrice') }}</div>
+                            <div class="val">{{ $t('balance.symbol') }}{{ orderInfo.totalPrice }}</div>
                         </div>
                         <div class="sold-item">
-                            <div class="name">加价</div>
+                            <div class="name">{{ $t('delegate.increase') }}</div>
                             <!-- <van-stepper
                                 :model-value="riseRatePercent"
                                 input-width="60px"
@@ -116,18 +116,16 @@
                             <span class="val">{{ riseRatePercent }}%</span>
                         </div>
                         <div class="sold-item">
-                            <div class="name">卖价</div>
-                            <div class="val bold">¥{{ soldValue }}</div>
+                            <div class="name">{{ $t('delegate.sellPrice') }}</div>
+                            <div class="val bold">{{ $t('balance.symbol') }}{{ soldValue }}</div>
                         </div>
                     </div>
                     <div class="tips">
-                        注:委托平台代卖服务,每次最高可将商品价格提高{{ riseRatePercent }}%,平台会收取{{
-                            serviceValue
-                        }}%的托管服务费用
+                        {{ $t('delegate.tip1', { riseRatePercent, serviceCharge: serviceValue }) }}
                     </div>
 
                     <van-button class="button" :disabled="loading" block type="primary" @click="sale">
-                        支付手续费 ¥{{ serviceCharge }}
+                        {{ $t('delegate.payServiceCharge') }} {{ $t('balance.symbol') }}{{ serviceCharge }}
                     </van-button>
                 </div>
             </ion-modal>
@@ -170,6 +168,9 @@ import { orderStatus } from '../status'
 import { parse, isAfter } from 'date-fns'
 import { timeOutline, walletOutline, albumsOutline, closeCircleOutline, checkmarkCircleOutline } from 'ionicons/icons'
 import { showDialog } from 'vant'
+import { create, all } from 'mathjs'
+
+const math = create(all, {})
 
 export default {
     name: 'orderDetail',
@@ -252,6 +253,13 @@ export default {
                 return this.saleBatch.delegateStart
             }
             return null
+        },
+        dailyEarning() {
+            if (this.orderInfo && this.orderInfo.totalPrice) {
+                return math.round(math.multiply(this.orderInfo.totalPrice, this.riseRate), 2).toFixed(2)
+            } else {
+                return ''
+            }
         }
     },
     created() {

+ 67 - 0
yarn.lock

@@ -7,6 +7,13 @@
   resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz"
   integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
 
+"@babel/runtime@^7.20.6":
+  version "7.20.7"
+  resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd"
+  integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==
+  dependencies:
+    regenerator-runtime "^0.13.11"
+
 "@capacitor/action-sheet@^4.1.0":
   version "4.1.0"
   resolved "https://registry.npmmirror.com/@capacitor/action-sheet/-/action-sheet-4.1.0.tgz#6ce5b849fff52bf45a6e6832d5de00ff6fc2b97a"
@@ -957,6 +964,11 @@ commander@^9.3.0:
   resolved "https://registry.npmmirror.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd"
   integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==
 
+complex.js@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npmmirror.com/complex.js/-/complex.js-2.1.1.tgz#0675dac8e464ec431fb2ab7d30f41d889fb25c31"
+  integrity sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz"
@@ -1109,6 +1121,11 @@ decamelize@^1.1.2, decamelize@^1.2.0:
   resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz"
   integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
 
+decimal.js@^10.4.3:
+  version "10.4.3"
+  resolved "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
+  integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
+
 decode-uri-component@^0.2.0:
   version "0.2.0"
   resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
@@ -1593,6 +1610,11 @@ esbuild@^0.15.9:
     esbuild-windows-64 "0.15.16"
     esbuild-windows-arm64 "0.15.16"
 
+escape-latex@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.npmmirror.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1"
+  integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==
+
 escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
@@ -2006,6 +2028,11 @@ form-data@^4.0.0:
     combined-stream "^1.0.8"
     mime-types "^2.1.12"
 
+fraction.js@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+  integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+
 from2@^2.1.1:
   version "2.3.0"
   resolved "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz"
@@ -2600,6 +2627,11 @@ isurl@^1.0.0-alpha5:
     has-to-string-tag-x "^1.2.0"
     is-object "^1.0.1"
 
+javascript-natural-sort@^0.7.1:
+  version "0.7.1"
+  resolved "https://registry.npmmirror.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59"
+  integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==
+
 jpegtran-bin@^5.0.0:
   version "5.0.2"
   resolved "https://registry.npmmirror.com/jpegtran-bin/-/jpegtran-bin-5.0.2.tgz"
@@ -2837,6 +2869,21 @@ map-obj@^1.0.0, map-obj@^1.0.1:
   resolved "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz"
   integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==
 
+mathjs@^11.5.0:
+  version "11.5.0"
+  resolved "https://registry.npmmirror.com/mathjs/-/mathjs-11.5.0.tgz#5cacad7affa2c804ad3f09efa5d53f0ffcb79493"
+  integrity sha512-vJ/+SqWtxjW6/aeDRt8xL3TlOVKqwN15BIyTGVqGbIWuiqgY4SxZ0yLuna82YH9CB757iFP7uJ4m3KvVBX7Qcg==
+  dependencies:
+    "@babel/runtime" "^7.20.6"
+    complex.js "^2.1.1"
+    decimal.js "^10.4.3"
+    escape-latex "^1.2.0"
+    fraction.js "^4.2.0"
+    javascript-natural-sort "^0.7.1"
+    seedrandom "^3.0.5"
+    tiny-emitter "^2.1.0"
+    typed-function "^4.1.0"
+
 mdn-data@2.0.14:
   version "2.0.14"
   resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz"
@@ -3529,6 +3576,11 @@ redent@^1.0.0:
     indent-string "^2.1.0"
     strip-indent "^1.0.1"
 
+regenerator-runtime@^0.13.11:
+  version "0.13.11"
+  resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
+  integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+
 regexpp@^3.2.0:
   version "3.2.0"
   resolved "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz"
@@ -3635,6 +3687,11 @@ sax@>=0.6.0, sax@^1.2.4:
   resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz"
   integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
 
+seedrandom@^3.0.5:
+  version "3.0.5"
+  resolved "https://registry.npmmirror.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7"
+  integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==
+
 seek-bzip@^1.0.5:
   version "1.0.6"
   resolved "https://registry.npmmirror.com/seek-bzip/-/seek-bzip-1.0.6.tgz"
@@ -4007,6 +4064,11 @@ timed-out@^4.0.0, timed-out@^4.0.1:
   resolved "https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz"
   integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==
 
+tiny-emitter@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
+  integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
+
 to-buffer@^1.1.1:
   version "1.1.1"
   resolved "https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz"
@@ -4065,6 +4127,11 @@ type-fest@^0.20.2:
   resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz"
   integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
+typed-function@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmmirror.com/typed-function/-/typed-function-4.1.0.tgz#da4bdd8a6d19a89e22732f75e4a410860aaf9712"
+  integrity sha512-DGwUl6cioBW5gw2L+6SMupGwH/kZOqivy17E4nsh1JI9fKF87orMmlQx3KISQPmg3sfnOUGlwVkroosvgddrlg==
+
 unbzip2-stream@^1.0.9:
   version "1.4.3"
   resolved "https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz"