From 721853dacd195ec988af5f89f11ce9041fb5c013 Mon Sep 17 00:00:00 2001 From: yuepenglong <1547476325@qq.com> Date: Wed, 26 Mar 2025 12:01:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .babelrc | 3 + .env.development | 25 + .env.production | 25 + .gitignore | 22 + index.html | 20 + package-lock.json | 21866 ++++++++++++++++ package.json | 85 + public/niucloud.ico | Bin 0 -> 1766 bytes publish.cjs | 51 + src/App.vue | 111 + src/app/api/auth.ts | 97 + src/app/api/device.ts | 39 + src/app/api/diy.ts | 29 + src/app/api/home.ts | 101 + src/app/api/member.ts | 244 + src/app/api/mine.ts | 8 + src/app/api/pay.ts | 15 + src/app/api/shop.ts | 76 + src/app/api/system.ts | 147 + src/app/api/verify.ts | 47 + src/app/components/diy/active-cube/index.vue | 219 + .../components/diy/carousel-search/index.vue | 634 + src/app/components/diy/float-btn/index.vue | 113 + src/app/components/diy/graphic-nav/index.vue | 257 + src/app/components/diy/horz-blank/index.vue | 44 + src/app/components/diy/horz-line/index.vue | 40 + src/app/components/diy/hot-area/index.vue | 91 + src/app/components/diy/image-ads/index.vue | 140 + src/app/components/diy/member-info/index.vue | 185 + src/app/components/diy/member-level/index.vue | 220 + src/app/components/diy/notice/index.vue | 291 + src/app/components/diy/rich-text/index.vue | 125 + src/app/components/diy/rubik-cube/index.vue | 590 + src/app/components/diy/text/index.vue | 129 + src/app/components/fixed/demo-index/index.vue | 15 + src/app/components/tag/tag.vue | 37 + src/app/locale/en/pages.setting.index.json | 6 + .../locale/zh-Hans/pages.article.detail.json | 5 + .../locale/zh-Hans/pages.article.list.json | 7 + src/app/locale/zh-Hans/pages.auth.bind.json | 10 + src/app/locale/zh-Hans/pages.auth.login.json | 14 + .../locale/zh-Hans/pages.auth.register.json | 16 + .../locale/zh-Hans/pages.auth.resetpwd.json | 6 + .../locale/zh-Hans/pages.index.develop.json | 10 + .../locale/zh-Hans/pages.member.account.json | 7 + .../zh-Hans/pages.member.account_edit.json | 17 + .../locale/zh-Hans/pages.member.address.json | 6 + .../zh-Hans/pages.member.address_edit.json | 12 + .../zh-Hans/pages.member.apply_cash_out.json | 30 + .../locale/zh-Hans/pages.member.balance.json | 15 + .../locale/zh-Hans/pages.member.cash_out.json | 11 + .../zh-Hans/pages.member.cash_out_detail.json | 12 + .../zh-Hans/pages.member.commission.json | 15 + .../pages.member.detailed_account.json | 7 + .../pages.member.location_address_edit.json | 14 + .../locale/zh-Hans/pages.member.personal.json | 12 + .../zh-Hans/pages.member.recharge_record.json | 4 + .../pages.member.recharge_record_detail.json | 4 + .../pages.member.withdrawal_detail.json | 13 + .../locale/zh-Hans/pages.setting.index.json | 6 + src/app/pages/auth/agreement.vue | 25 + src/app/pages/auth/bind.vue | 205 + src/app/pages/auth/login.vue | 184 + src/app/pages/auth/register.vue | 229 + src/app/pages/auth/resetpwd.vue | 135 + src/app/pages/commodity/commodity.png | Bin 0 -> 355 bytes src/app/pages/commodity/index.vue | 156 + src/app/pages/electionList/index.vue | 13 + src/app/pages/electionResults/index.vue | 14 + src/app/pages/mine/index.vue | 14 + src/app/pages/myElection/index.vue | 14 + src/app/pages/votingElection/index.vue | 120 + src/app/pages/webview/index.vue | 33 + src/app/stores/diy.ts | 138 + src/components/area-select/area-select.vue | 154 + .../information-filling.vue | 117 + src/components/libs/config/index.ts | 22 + .../libs/hooks/useListLoadClass/index.ts | 145 + src/components/libs/util/index.ts | 294 + src/components/liu-checkBox/liu-checkBox.vue | 133 + src/components/lx-header/lx-header.vue | 249 + src/components/lx-img/lx-img.vue | 35 + .../lx-list-state/lx-list-state.vue | 92 + src/components/lx-list/lx-list.vue | 102 + src/components/mescroll/hooks/useMescroll.js | 66 + .../mescroll/hooks/useMescrollComp.js | 56 + .../mescroll/hooks/useMescrollMore.js | 69 + .../mescroll/mescroll-body/mescroll-body.css | 19 + .../mescroll/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 | 51 + .../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 | 66 + .../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 + .../mescroll/mescroll-uni/mescroll-i18n.js | 15 + .../mescroll/mescroll-uni/mescroll-mixins.js | 57 + .../mescroll-uni/mescroll-uni-option.js | 66 + .../mescroll/mescroll-uni/mescroll-uni.css | 36 + .../mescroll/mescroll-uni/mescroll-uni.js | 799 + .../mescroll/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 + .../mescroll/mescroll-uni/wxs/mixins.js | 109 + .../mescroll/mescroll-uni/wxs/renderjs.js | 92 + .../mescroll/mescroll-uni/wxs/wxs.wxs | 268 + src/components/pay/pay.vue | 184 + src/components/share-poster/share-poster.vue | 344 + src/components/sms-code/sms-code.vue | 75 + src/components/tabbar/tabbar.vue | 100 + src/components/tag/tag.vue | 37 + src/components/top-tabbar/top-tabbar.vue | 526 + src/components/types/components.d.ts | 23 + src/components/types/index.d.ts | 26 + .../wx-privacy-popup/wx-privacy-popup.vue | 234 + src/components/x-skeleton/config.js | 150 + src/components/x-skeleton/x-skeleton.vue | 319 + src/hooks/useCaptcha.ts | 26 + src/hooks/useDiy.ts | 172 + src/hooks/useLogin.ts | 130 + src/hooks/useSendSms.ts | 49 + src/hooks/useShare.ts | 144 + src/hooks/useSubscribeMessage.ts | 30 + src/locale/en.json | 11 + src/locale/en/common.json | 3 + src/locale/i18n.ts | 22 + src/locale/index.ts | 21 + src/locale/language.ts | 86 + src/locale/zh-Hans.json | 97 + src/locale/zh-Hans/common.json | 97 + src/main.js | 22 + src/manifest.json | 95 + src/pages.json | 146 + src/static/img/grxx-select.png | Bin 0 -> 353 bytes src/static/img/grxx.png | Bin 0 -> 334 bytes src/static/img/tpxj-select.png | Bin 0 -> 358 bytes src/static/img/tpxj.png | Bin 0 -> 345 bytes src/static/img/wdxj-select.png | Bin 0 -> 312 bytes src/static/img/wdxj.png | Bin 0 -> 319 bytes src/static/img/xjjg-select.png | Bin 0 -> 388 bytes src/static/img/xjjg.png | Bin 0 -> 388 bytes src/static/img/xjlb-select.png | Bin 0 -> 325 bytes src/static/img/xjlb.png | Bin 0 -> 320 bytes src/static/mantx.png | Bin 0 -> 8855 bytes src/static/womantx.png | Bin 0 -> 9079 bytes src/stores/config.ts | 80 + src/stores/member.ts | 49 + src/stores/system.ts | 57 + src/styles/account_info.scss | 41 + src/styles/common.css | 1 + src/styles/common.scss | 253 + src/styles/custom.ttf | Bin 0 -> 26800 bytes src/styles/diy.scss | 28 + src/styles/iconfont.css | 994 + src/styles/index.scss | 5 + src/styles/member_record_detail.scss | 25 + src/styles/member_record_list.scss | 21 + src/styles/official-iconfont.css | 1294 + src/styles/uview-theme.scss | 40 + src/types/global.d.ts | 21 + src/types/weixin-js-sdk.d.ts | 769 + src/uni.scss | 79 + .../piaoyi-cityPicker/changelog.md | 22 + .../components/piaoyi-cityPicker/cityData.js | 10661 ++++++++ .../piaoyi-cityPicker/piaoyi-cityPicker.vue | 281 + .../piaoyi-cityPicker/package.json | 17 + src/uni_modules/piaoyi-cityPicker/readme.md | 106 + src/utils/auth.ts | 18 + src/utils/common.ts | 548 + src/utils/interceptor.ts | 127 + src/utils/mixin.ts | 50 + src/utils/pages.ts | 60 + src/utils/request.ts | 196 + src/utils/storage.ts | 43 + src/utils/wechat.ts | 68 + tsconfig.json | 13 + vite.config.ts | 28 + windi.config.ts | 77 + 191 files changed, 53378 insertions(+) create mode 100644 .babelrc create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .gitignore create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/niucloud.ico create mode 100644 publish.cjs create mode 100644 src/App.vue create mode 100644 src/app/api/auth.ts create mode 100644 src/app/api/device.ts create mode 100644 src/app/api/diy.ts create mode 100644 src/app/api/home.ts create mode 100644 src/app/api/member.ts create mode 100644 src/app/api/mine.ts create mode 100644 src/app/api/pay.ts create mode 100644 src/app/api/shop.ts create mode 100644 src/app/api/system.ts create mode 100644 src/app/api/verify.ts create mode 100644 src/app/components/diy/active-cube/index.vue create mode 100644 src/app/components/diy/carousel-search/index.vue create mode 100644 src/app/components/diy/float-btn/index.vue create mode 100644 src/app/components/diy/graphic-nav/index.vue create mode 100644 src/app/components/diy/horz-blank/index.vue create mode 100644 src/app/components/diy/horz-line/index.vue create mode 100644 src/app/components/diy/hot-area/index.vue create mode 100644 src/app/components/diy/image-ads/index.vue create mode 100644 src/app/components/diy/member-info/index.vue create mode 100644 src/app/components/diy/member-level/index.vue create mode 100644 src/app/components/diy/notice/index.vue create mode 100644 src/app/components/diy/rich-text/index.vue create mode 100644 src/app/components/diy/rubik-cube/index.vue create mode 100644 src/app/components/diy/text/index.vue create mode 100644 src/app/components/fixed/demo-index/index.vue create mode 100644 src/app/components/tag/tag.vue create mode 100644 src/app/locale/en/pages.setting.index.json create mode 100644 src/app/locale/zh-Hans/pages.article.detail.json create mode 100644 src/app/locale/zh-Hans/pages.article.list.json create mode 100644 src/app/locale/zh-Hans/pages.auth.bind.json create mode 100644 src/app/locale/zh-Hans/pages.auth.login.json create mode 100644 src/app/locale/zh-Hans/pages.auth.register.json create mode 100644 src/app/locale/zh-Hans/pages.auth.resetpwd.json create mode 100644 src/app/locale/zh-Hans/pages.index.develop.json create mode 100644 src/app/locale/zh-Hans/pages.member.account.json create mode 100644 src/app/locale/zh-Hans/pages.member.account_edit.json create mode 100644 src/app/locale/zh-Hans/pages.member.address.json create mode 100644 src/app/locale/zh-Hans/pages.member.address_edit.json create mode 100644 src/app/locale/zh-Hans/pages.member.apply_cash_out.json create mode 100644 src/app/locale/zh-Hans/pages.member.balance.json create mode 100644 src/app/locale/zh-Hans/pages.member.cash_out.json create mode 100644 src/app/locale/zh-Hans/pages.member.cash_out_detail.json create mode 100644 src/app/locale/zh-Hans/pages.member.commission.json create mode 100644 src/app/locale/zh-Hans/pages.member.detailed_account.json create mode 100644 src/app/locale/zh-Hans/pages.member.location_address_edit.json create mode 100644 src/app/locale/zh-Hans/pages.member.personal.json create mode 100644 src/app/locale/zh-Hans/pages.member.recharge_record.json create mode 100644 src/app/locale/zh-Hans/pages.member.recharge_record_detail.json create mode 100644 src/app/locale/zh-Hans/pages.member.withdrawal_detail.json create mode 100644 src/app/locale/zh-Hans/pages.setting.index.json create mode 100644 src/app/pages/auth/agreement.vue create mode 100644 src/app/pages/auth/bind.vue create mode 100644 src/app/pages/auth/login.vue create mode 100644 src/app/pages/auth/register.vue create mode 100644 src/app/pages/auth/resetpwd.vue create mode 100644 src/app/pages/commodity/commodity.png create mode 100644 src/app/pages/commodity/index.vue create mode 100644 src/app/pages/electionList/index.vue create mode 100644 src/app/pages/electionResults/index.vue create mode 100644 src/app/pages/mine/index.vue create mode 100644 src/app/pages/myElection/index.vue create mode 100644 src/app/pages/votingElection/index.vue create mode 100644 src/app/pages/webview/index.vue create mode 100644 src/app/stores/diy.ts create mode 100644 src/components/area-select/area-select.vue create mode 100644 src/components/information-filling/information-filling.vue create mode 100644 src/components/libs/config/index.ts create mode 100644 src/components/libs/hooks/useListLoadClass/index.ts create mode 100644 src/components/libs/util/index.ts create mode 100644 src/components/liu-checkBox/liu-checkBox.vue create mode 100644 src/components/lx-header/lx-header.vue create mode 100644 src/components/lx-img/lx-img.vue create mode 100644 src/components/lx-list-state/lx-list-state.vue create mode 100644 src/components/lx-list/lx-list.vue create mode 100644 src/components/mescroll/hooks/useMescroll.js create mode 100644 src/components/mescroll/hooks/useMescrollComp.js create mode 100644 src/components/mescroll/hooks/useMescrollMore.js create mode 100644 src/components/mescroll/mescroll-body/mescroll-body.css create mode 100644 src/components/mescroll/mescroll-body/mescroll-body.vue create mode 100644 src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.css create mode 100644 src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue create mode 100644 src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue create mode 100644 src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js create mode 100644 src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue create mode 100644 src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.css create mode 100644 src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue create mode 100644 src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.css create mode 100644 src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue create mode 100644 src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue create mode 100644 src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js create mode 100644 src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue create mode 100644 src/components/mescroll/mescroll-empty/mescroll-empty.vue create mode 100644 src/components/mescroll/mescroll-uni/components/mescroll-down.css create mode 100644 src/components/mescroll/mescroll-uni/components/mescroll-down.vue create mode 100644 src/components/mescroll/mescroll-uni/components/mescroll-top.vue create mode 100644 src/components/mescroll/mescroll-uni/components/mescroll-up.css create mode 100644 src/components/mescroll/mescroll-uni/components/mescroll-up.vue create mode 100644 src/components/mescroll/mescroll-uni/mescroll-i18n.js create mode 100644 src/components/mescroll/mescroll-uni/mescroll-mixins.js create mode 100644 src/components/mescroll/mescroll-uni/mescroll-uni-option.js create mode 100644 src/components/mescroll/mescroll-uni/mescroll-uni.css create mode 100644 src/components/mescroll/mescroll-uni/mescroll-uni.js create mode 100644 src/components/mescroll/mescroll-uni/mescroll-uni.vue create mode 100644 src/components/mescroll/mescroll-uni/mixins/mescroll-comp.js create mode 100644 src/components/mescroll/mescroll-uni/mixins/mescroll-more-item.js create mode 100644 src/components/mescroll/mescroll-uni/mixins/mescroll-more.js create mode 100644 src/components/mescroll/mescroll-uni/wxs/mixins.js create mode 100644 src/components/mescroll/mescroll-uni/wxs/renderjs.js create mode 100644 src/components/mescroll/mescroll-uni/wxs/wxs.wxs create mode 100644 src/components/pay/pay.vue create mode 100644 src/components/share-poster/share-poster.vue create mode 100644 src/components/sms-code/sms-code.vue create mode 100644 src/components/tabbar/tabbar.vue create mode 100644 src/components/tag/tag.vue create mode 100644 src/components/top-tabbar/top-tabbar.vue create mode 100644 src/components/types/components.d.ts create mode 100644 src/components/types/index.d.ts create mode 100644 src/components/wx-privacy-popup/wx-privacy-popup.vue create mode 100644 src/components/x-skeleton/config.js create mode 100644 src/components/x-skeleton/x-skeleton.vue create mode 100644 src/hooks/useCaptcha.ts create mode 100644 src/hooks/useDiy.ts create mode 100644 src/hooks/useLogin.ts create mode 100644 src/hooks/useSendSms.ts create mode 100644 src/hooks/useShare.ts create mode 100644 src/hooks/useSubscribeMessage.ts create mode 100644 src/locale/en.json create mode 100644 src/locale/en/common.json create mode 100644 src/locale/i18n.ts create mode 100644 src/locale/index.ts create mode 100644 src/locale/language.ts create mode 100644 src/locale/zh-Hans.json create mode 100644 src/locale/zh-Hans/common.json create mode 100644 src/main.js create mode 100644 src/manifest.json create mode 100644 src/pages.json create mode 100644 src/static/img/grxx-select.png create mode 100644 src/static/img/grxx.png create mode 100644 src/static/img/tpxj-select.png create mode 100644 src/static/img/tpxj.png create mode 100644 src/static/img/wdxj-select.png create mode 100644 src/static/img/wdxj.png create mode 100644 src/static/img/xjjg-select.png create mode 100644 src/static/img/xjjg.png create mode 100644 src/static/img/xjlb-select.png create mode 100644 src/static/img/xjlb.png create mode 100644 src/static/mantx.png create mode 100644 src/static/womantx.png create mode 100644 src/stores/config.ts create mode 100644 src/stores/member.ts create mode 100644 src/stores/system.ts create mode 100644 src/styles/account_info.scss create mode 100644 src/styles/common.css create mode 100644 src/styles/common.scss create mode 100644 src/styles/custom.ttf create mode 100644 src/styles/diy.scss create mode 100644 src/styles/iconfont.css create mode 100644 src/styles/index.scss create mode 100644 src/styles/member_record_detail.scss create mode 100644 src/styles/member_record_list.scss create mode 100644 src/styles/official-iconfont.css create mode 100644 src/styles/uview-theme.scss create mode 100644 src/types/global.d.ts create mode 100644 src/types/weixin-js-sdk.d.ts create mode 100644 src/uni.scss create mode 100644 src/uni_modules/piaoyi-cityPicker/changelog.md create mode 100644 src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js create mode 100644 src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue create mode 100644 src/uni_modules/piaoyi-cityPicker/package.json create mode 100644 src/uni_modules/piaoyi-cityPicker/readme.md create mode 100644 src/utils/auth.ts create mode 100644 src/utils/common.ts create mode 100644 src/utils/interceptor.ts create mode 100644 src/utils/mixin.ts create mode 100644 src/utils/pages.ts create mode 100644 src/utils/request.ts create mode 100644 src/utils/storage.ts create mode 100644 src/utils/wechat.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts create mode 100644 windi.config.ts diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..8aa924d --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env"] +} \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..10d975e --- /dev/null +++ b/.env.development @@ -0,0 +1,25 @@ +NODE_ENV = 'development' + +# api请求地址 +VITE_APP_BASE_URL='http://shop.zeyan.wang/index.php/api/' + +# 图片服务器地址 +VITE_IMG_DOMAIN='http://shop.zeyan.wang/' + +# 站点id 仅在编译为小程序时生效 +VITE_SITE_ID = '100000' + +# 本地存储时token的参数名 +VITE_REQUEST_STORAGE_TOKEN_KEY='wapToken' + +# 请求时header中token的参数名 +VITE_REQUEST_HEADER_TOKEN_KEY='token' + +# 请求时header中站点的参数名 +VITE_REQUEST_HEADER_SITEID_KEY='site-id' + +# 请求时header中来源场景的参数名 +VITE_REQUEST_HEADER_CHANNEL_KEY='channel' + +# 应用版本 +VITE_APP_VERSION='1.0.1' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..9b800db --- /dev/null +++ b/.env.production @@ -0,0 +1,25 @@ +NODE_ENV = 'production' + +# api请求地址 +VITE_APP_BASE_URL='http://shop.zeyan.wang/index.php/api/' + +# 图片服务器地址 +VITE_IMG_DOMAIN='http://shop.zeyan.wang/' + +# 站点id 仅在编译为小程序时生效 +VITE_SITE_ID = '100000' + +# 本地存储时token的参数名 +VITE_REQUEST_STORAGE_TOKEN_KEY='wapToken' + +# 请求时header中token的参数名 +VITE_REQUEST_HEADER_TOKEN_KEY='token' + +# 请求时header中站点的参数名 +VITE_REQUEST_HEADER_SITEID_KEY='site-id' + +# 请求时header中来源场景的参数名 +VITE_REQUEST_HEADER_CHANNEL_KEY='channel' + +# 应用版本 +VITE_APP_VERSION='1.0.1' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8013dc3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +*.local + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.hbuilderx \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..f73e730 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8bca018 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,21866 @@ +{ + "name": "uni-preset-vue", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "uni-preset-vue", + "version": "0.0.0", + "dependencies": { + "@dcloudio/uni-app": "3.0.0-3080720230703001", + "@dcloudio/uni-app-plus": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-alipay": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-baidu": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-jd": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-kuaishou": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-lark": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-qq": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001", + "html2canvas": "^1.4.1", + "image-tools": "^1.4.0", + "lodash-es": "^4.17.21", + "pinia": "2.0.36", + "qrcode": "^1.5.1", + "qs": "6.7.0", + "sortablejs": "^1.15.0", + "uview-plus": "^3.1.29", + "vue": "^3.3.0", + "vue-i18n": "^9.2.2", + "weixin-js-sdk": "^1.6.0" + }, + "devDependencies": { + "@dcasia/mini-program-tailwind-webpack-plugin": "^1.5.6", + "@dcloudio/types": "^3.3.2", + "@dcloudio/uni-automator": "3.0.0-3080720230703001", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stacktracey": "3.0.0-3080720230703001", + "@dcloudio/vite-plugin-uni": "3.0.0-3080720230703001", + "@rollup/plugin-commonjs": "^24.0.1", + "@types/qrcode": "^1.5.0", + "@types/sortablejs": "^1.15.0", + "@vue/tsconfig": "^0.1.3", + "sass": "^1.54.5", + "typescript": "^4.9.4", + "vite": "4.0.4", + "vite-plugin-windicss": "^1.8.10", + "vue-tsc": "^1.0.24", + "windicss": "^3.5.6" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "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.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz", + "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@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-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@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-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.5", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.5", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@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, + "peer": true + }, + "node_modules/@dcasia/mini-program-tailwind-webpack-plugin": { + "version": "1.5.7", + "resolved": "https://registry.npmmirror.com/@dcasia/mini-program-tailwind-webpack-plugin/-/mini-program-tailwind-webpack-plugin-1.5.7.tgz", + "integrity": "sha512-BXcYi8iAFh9qRewsJPT9+paxBto5zdLLmad1Yx1GkZXmKFE6W7qHDRWxOmskXFtSCzCKdomFqZG2RzW1eBzMZg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.5", + "@vivaxy/wxml": "^2.1.0", + "micromatch": "^4.0.5", + "postcss": "^8.4.7", + "webpack-sources": "^1.4.3", + "windicss-webpack-plugin": "^1.7.2" + } + }, + "node_modules/@dcloudio/types": { + "version": "3.4.8", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.8.tgz", + "integrity": "sha512-IPXuoghLv7qNPOnRuP7vC5++MdRHhE0U7EMw9ia//uOh69fFXZiRTfoHd51+nzciD6R50gqYhbrCCZIxnxhM9Q==" + }, + "node_modules/@dcloudio/uni-app": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6fip3G+s6pJDudu+Rsy/v7CtGYzjcc0ZjjKYZuXttM1Vgkg3QD1/qHhJW27Vb+nmzfL+Wg1tbRhTl7kgA+8TVA==", + "dependencies": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-push": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stat": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "@dcloudio/types": "^3.3.2" + } + }, + "node_modules/@dcloudio/uni-app-plus": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WGHniWrEJPIAVP3GDp+maf30fZz/Dc+gAfiPMDWvQdE12nAcnpbgnmaLEPifPDeeV2dr7/VuxoVM+Z2M5AlN1Q==", + "dependencies": { + "@dcloudio/uni-app-uts": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vue": "3.0.0-3080720230703001", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "licia": "^1.29.0", + "postcss-selector-parser": "^6.0.6" + } + }, + "node_modules/@dcloudio/uni-app-uts": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6GXBYE3/bfliADNMmnmm2UHLpzR2BF5hgs/ExIXcC9sMOxDAUd149R+YsDp9HUfUc+dA32DXHHjoQOhYunZTTA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/@dcloudio/uni-app-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-OAFjSfrin2pLuBBfDMg3qvm7ZCS3Vqt0/CDxRicc7lD6ioiahUvaXdLhARTWykoO6rlYjbIckDmg3HuBbb3wjA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@dcloudio/uni-app-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-VTeoupAGJ1GREy2GvB+E29KPkIoHJ0C9ElvxcNpT0bEYWXMAE8m+O6D10aI8Qfwn1dObnxx6ohaRCbrDG9TG3w==" + }, + "node_modules/@dcloudio/uni-automator": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3080720230703001.tgz", + "integrity": "sha512-DbvYu6uGA+My5l103RgZ5BfqSlxGN5NbvK59ELH0NhK5mGge/f8RQPJ9zPz2rlLJT9/GUzjaw7b+f4FELeRpHg==", + "dev": true, + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "address": "^1.1.2", + "cross-env": "^7.0.3", + "debug": "^4.3.3", + "default-gateway": "^6.0.3", + "fs-extra": "^10.0.0", + "jsonc-parser": "^3.2.0", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + }, + "peerDependencies": { + "jest": "27.0.4", + "jest-environment-node": "27.5.1" + } + }, + "node_modules/@dcloudio/uni-cli-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WP5IfAXIlinWs/ItHu2/EP746kSCxl9+I8wBC6BfI4xq8RD2ga6F5WJt/+blBzbp2gVnJsW/13eafUQs5T3RFA==", + "dependencies": { + "@ampproject/remapping": "^2.1.2", + "@babel/core": "^7.21.3", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@intlify/core-base": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "autoprefixer": "^10.4.14", + "base64url": "^3.0.1", + "chokidar": "^3.5.3", + "compare-versions": "^3.6.0", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "esbuild": "^0.17.5", + "estree-walker": "^2.0.2", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "merge": "^2.1.1", + "mime": "^3.0.0", + "module-alias": "^2.2.2", + "os-locale-s-fix": "^1.0.8-fix-1", + "picocolors": "^1.0.0", + "postcss-import": "^14.0.2", + "postcss-load-config": "^3.1.1", + "postcss-modules": "^4.3.0", + "postcss-selector-parser": "^6.0.6", + "resolve": "^1.22.1", + "tapable": "^2.2.0", + "xregexp": "3.1.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cloud": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xulo8fMQZ6+DsU7Bs6Re7i51OVF/tzT72GmooXvvNt3H+5XUAo/1mQIIiNlxeR4sKesR8Y9n7j+Z4dfs/2ce9w==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fast-glob": "^3.2.11" + } + }, + "node_modules/@dcloudio/uni-components": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Ggd7m9TOxdLZxfJ1PWkUBowTUyYVH1WuPsooMWmJNRkMpvnAtK6ZPdS0ThdglX0F/FT82IUUC+wdeZtFG/QRcA==", + "dependencies": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001" + } + }, + "node_modules/@dcloudio/uni-h5": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3080720230703001.tgz", + "integrity": "sha512-brRSBmxzg07Bt86AhJ70T0wsJBaDjgRAaAND0QsRQAaQfRFyEjqU1wp+x4Dt7GoNbg5hmNEabhdJKv24RweMnA==", + "dependencies": { + "@dcloudio/uni-h5-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-h5-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "localstorage-polyfill": "^1.0.1", + "postcss-selector-parser": "^6.0.6", + "safe-area-insets": "^1.4.1", + "vue-router": "^4.1.6", + "xmlhttprequest": "^1.8.0" + } + }, + "node_modules/@dcloudio/uni-h5-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-bqPj6p2Zj0TIMOoUFCryPaBR/LIGMdHg5vDGlxoU1F84VdtCXlgDTodbp/4n24MDCd6KiuHZEyURt4jODtxd8Q==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "mime": "^3.0.0", + "module-alias": "^2.2.2" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-dRb9y4bgVSvZgJySumu0ZLL+tb/K1KbHd7Rx5c2G9Q7Yw42y0rrooYgbKFQILw0LFF0bKpzZv0JjNwkpKcD/mA==", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-h5/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-i18n": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3080720230703001.tgz", + "integrity": "sha512-fmN3HnHhq2GXgT+PlCiy1g9KAVAD1HASErnv4cKtu4YofJH6Nh+uWAfPNWwp/6ZfNgPrblku7Rq7qdDFEltFcg==" + }, + "node_modules/@dcloudio/uni-mp-alipay": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3080720230703001.tgz", + "integrity": "sha512-qTBERfPRxa4e3cHzptD82kTNrleT6Mxl+hdzDMK4/xSD4XLiMb2ZKDqsG8MtAAvNpHMe8QKiEKXR2/Oljs8A9A==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-baidu": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3080720230703001.tgz", + "integrity": "sha512-22llCMmOgpPuuWtaJ8pExLStvIoy+/KJLL09/a+Y87z3F+W40VfA6WFNNF3peVX22pw8fDvUBMDN9nCusAVrqA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "node_modules/@dcloudio/uni-mp-compiler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-osLFR5CDm5xrQiSSh0fqXDCDam0Zg8mGMohHKFtqSbPoKHBxv+i4KkdU1Ai3MhutPXK4xMU6xk6PqQ2XhJmxAg==", + "dependencies": { + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2" + } + }, + "node_modules/@dcloudio/uni-mp-jd": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-3080720230703001.tgz", + "integrity": "sha512-5FJ0ZtJnCUTaPWLbdcpwAfPG/XGAlyanWolgdwzq0eFMQtAGtcrbCCv2GXXcErMjDyDbM4LRBS3JPEmcBLe5Zw==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-kuaishou": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3080720230703001.tgz", + "integrity": "sha512-t1H8YaS5HUYNI/ArKTPaK17JqNyvLC4ge+oJpAtW1gJOxT/qdRE7BPyfIfoKUoN0QlDxQiuxbvz1ILdT00u0yg==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-lark": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3080720230703001.tgz", + "integrity": "sha512-3E+vRxFypvcdTMPIGlfI3WWAVlUi3/IfKc0eM53YqNGHFTnzJOAofvFABqE6hcY24FjwepgNDttGddbaE8LtKA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-qq": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nx9PoO/+zFWlA54O20aXj/gaefUHLqBrhrKPNERAphafFembjudIvo/YS1tjlDk5idJ9G+J5XJNWL60eQcnKNA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fs-extra": "^10.0.0" + } + }, + "node_modules/@dcloudio/uni-mp-toutiao": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3080720230703001.tgz", + "integrity": "sha512-x39UGX+gelydwYXnDX8YlD7qCpwAWzUwY3DuDNig3GAmtBiBMheM4nQKxxs0zrImRB77eUffwtNn+1+kvTvjyA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-KGi1tfIrlzGx9vbcrU979I56jaZ+kpQsm+SfKOYg2j6JezQ0/GFqHEHaDdiAdhSZcTX759Qs1PXZmXFxMdDFDA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3" + } + }, + "node_modules/@dcloudio/uni-mp-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Fo0lNHwGhVV2ceaU4Cta8OmB831k6PhJttpaJ18R0o1AM0RykI8NCw2OUuZ5Ex/TedoyejQBxs6skMDCvPb5IQ==", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-weixin": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3080720230703001.tgz", + "integrity": "sha512-8S+6I1OuGk8r+s5nNfqo+Cq+BrK0M+RksDQUtkI8z2e798GrWZiHbTqQ89pEwVdtkhP5G+5orqUg6e5NCLaskQ==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "node_modules/@dcloudio/uni-nvue-styler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nhWQ/B/AYYqJZ/7HCmSWylARJ2dRrRyYVwBVs1Re8yk8SoaEkTvvgt5jas3tqjIxhyi5M8hzXeaxdpkY1Jgsyw==", + "dependencies": { + "@vue/shared": "3.2.47", + "parse-css-font": "^4.0.0", + "postcss": "^8.4.23" + } + }, + "node_modules/@dcloudio/uni-push": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3080720230703001.tgz", + "integrity": "sha512-q0chMYDBdj+KGxj/pA2hOm356tPU9WsVxjB2f7JW3Ue6JUNl5snuq0Rk1C/s1IDDAU8W4DTgb9KjsRYTXHV77w==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001" + } + }, + "node_modules/@dcloudio/uni-quickapp-webview": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3080720230703001.tgz", + "integrity": "sha512-LgV/CvGVp2IyLbIDeir4rPRAi+eglJLrBl86LT1ey+YA/Jecoz9LH4fHhB5gJEedm+KUqL7hjxd7F/XcrIULzg==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-saa7FGqduwcEe0jxntYAFCE6wAtSM9aNG52uLAW5m0c4uRNYVFWJltBkm8Ev7eyko2xkvNhoQAGIGXDTQ+Hxhw==", + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-stacktracey": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xo0O4sQ9gXa0wg1V1I13l/6JxQSTmfTcjyyQWOb3t5E/ME6tVo/RSlA0QN/Guo9XlogmQXs99D30NW/r3KGdJA==", + "dev": true + }, + "node_modules/@dcloudio/uni-stat": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3080720230703001.tgz", + "integrity": "sha512-jzX9nRWk24udvVneFVA/8cfzqedib/nHbTO6GsFPamc6KDFa7QXhLy2m+BV+3inLiMkedfVnvgxNkZDigujyLw==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "debug": "^4.3.3" + } + }, + "node_modules/@dcloudio/vite-plugin-uni": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3080720230703001.tgz", + "integrity": "sha512-PMDGsIDjBuoGNzzNPxLAHrXEzBsA2huoZgjbaGa3H8N+4cnbJZmEJEsy/OVdA3I9lrgZ+H6QW95qIA5aVO6djA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-legacy": "^4.0.3", + "@vitejs/plugin-vue": "^4.2.1", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "cac": "6.7.9", + "debug": "^4.3.3", + "estree-walker": "^2.0.2", + "express": "^4.17.1", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "picocolors": "^1.0.0", + "terser": "^5.4.0" + }, + "bin": { + "uni": "bin/uni.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@intlify/core-base": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz", + "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==", + "dependencies": { + "@intlify/devtools-if": "9.1.9", + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz", + "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==", + "dependencies": { + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz", + "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==", + "dependencies": { + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/message-resolver": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz", + "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/runtime": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz", + "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==", + "dependencies": { + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/shared": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz", + "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz", + "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==", + "dependencies": { + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@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, + "peer": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/console/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/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, + "peer": true + }, + "node_modules/@jest/console/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/core/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/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, + "peer": true + }, + "node_modules/@jest/core/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/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, + "peer": true + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/reporters/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/reporters/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "peer": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/transform/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/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, + "peer": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "node_modules/@jest/transform/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/types/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/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, + "peer": true + }, + "node_modules/@jest/types/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz", + "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz", + "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/custom": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz", + "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "node_modules/@jimp/gif": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz", + "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz", + "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz", + "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz", + "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz", + "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz", + "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz", + "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz", + "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz", + "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz", + "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz", + "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz", + "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz", + "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz", + "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz", + "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz", + "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz", + "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz", + "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz", + "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz", + "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz", + "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-shadow": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz", + "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz", + "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz", + "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.10.3", + "@jimp/plugin-blur": "^0.10.3", + "@jimp/plugin-circle": "^0.10.3", + "@jimp/plugin-color": "^0.10.3", + "@jimp/plugin-contain": "^0.10.3", + "@jimp/plugin-cover": "^0.10.3", + "@jimp/plugin-crop": "^0.10.3", + "@jimp/plugin-displace": "^0.10.3", + "@jimp/plugin-dither": "^0.10.3", + "@jimp/plugin-fisheye": "^0.10.3", + "@jimp/plugin-flip": "^0.10.3", + "@jimp/plugin-gaussian": "^0.10.3", + "@jimp/plugin-invert": "^0.10.3", + "@jimp/plugin-mask": "^0.10.3", + "@jimp/plugin-normalize": "^0.10.3", + "@jimp/plugin-print": "^0.10.3", + "@jimp/plugin-resize": "^0.10.3", + "@jimp/plugin-rotate": "^0.10.3", + "@jimp/plugin-scale": "^0.10.3", + "@jimp/plugin-shadow": "^0.10.3", + "@jimp/plugin-threshold": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz", + "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz", + "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz", + "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.10.3", + "@jimp/gif": "^0.10.3", + "@jimp/jpeg": "^0.10.3", + "@jimp/png": "^0.10.3", + "@jimp/tiff": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz", + "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@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==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "24.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", + "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "peer": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "devOptional": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "peer": true + }, + "node_modules/@types/qrcode": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "peer": true + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "peer": true + }, + "node_modules/@vitejs/plugin-legacy": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", + "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "browserslist": "^4.21.9", + "core-js": "^3.31.1", + "magic-string": "^0.30.1", + "regenerator-runtime": "^0.13.11", + "systemjs": "^6.14.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "terser": "^5.4.0", + "vite": "^4.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vivaxy/wxml": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@vivaxy/wxml/-/wxml-2.1.0.tgz", + "integrity": "sha512-xqnfAB58tl5SPyfkQjrn7D7nuvq7XV9um7QUsjCrvA4X6aZBxcau9sAM47LsQTOpJIVPzjaKIMvq3ul07yZlOA==", + "dev": true + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/language-core/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.27.tgz", + "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", + "dependencies": { + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/reactivity-transform/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@vue/reactivity/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz", + "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", + "dependencies": { + "@vue/reactivity": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/runtime-core/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", + "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", + "dependencies": { + "@vue/runtime-core": "3.4.27", + "@vue/shared": "3.4.27", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/runtime-dom/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz", + "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", + "dependencies": { + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27" + }, + "peerDependencies": { + "vue": "3.4.27" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@windicss/config": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/config/-/config-1.9.3.tgz", + "integrity": "sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "jiti": "^1.18.2", + "windicss": "^3.5.6" + } + }, + "node_modules/@windicss/plugin-utils": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-1.9.3.tgz", + "integrity": "sha512-3VG5HEGeuIfG/9iTwLyzWWm/aGKNTbtSVkpkAabdRuDP/2lEmf6Hpo4uo5drwE+2O9gXfc6nSYgAwBjotx5CfQ==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.2", + "@windicss/config": "1.9.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "magic-string": "^0.30.0", + "micromatch": "^4.0.5", + "windicss": "^3.5.6" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "peer": true + }, + "node_modules/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, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "peer": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/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 + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-jest/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/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, + "peer": true + }, + "node_modules/babel-jest/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "peer": true, + "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/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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==", + "devOptional": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.9", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz", + "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "peer": true + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "peer": true + }, + "node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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==", + "devOptional": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "peer": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + } + }, + "node_modules/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, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/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, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" + }, + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" + }, + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" + }, + "node_modules/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-list-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz", + "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==" + }, + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true, + "peer": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "peer": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "peer": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "peer": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + }, + "node_modules/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==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "peer": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "peer": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "peer": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.772", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.772.tgz", + "integrity": "sha512-jFfEbxR/abTTJA3ci+2ok1NTuOBBtB4jH+UT6PUmRN+DY3WSD4FFRsgoVQ+QNIJ0T7wrXwzsWCI2WKC46b++2A==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/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==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "peer": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/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==", + "dev": true, + "peer": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "node_modules/generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "dependencies": { + "loader-utils": "^3.2.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/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==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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==" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "peer": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "peer": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==" + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "node_modules/image-tools": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", + "integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ==" + }, + "node_modules/immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "devOptional": true + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "peer": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "peer": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "peer": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "peer": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "peer": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.0.4", + "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/core": "^27.0.4", + "import-local": "^3.0.2", + "jest-cli": "^27.0.4" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-circus/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/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, + "peer": true + }, + "node_modules/jest-circus/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cli/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/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, + "peer": true + }, + "node_modules/jest-cli/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-config/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/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, + "peer": true + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-config/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-config/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-diff/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/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, + "peer": true + }, + "node_modules/jest-diff/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-each/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/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, + "peer": true + }, + "node_modules/jest-each/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-jasmine2/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/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, + "peer": true + }, + "node_modules/jest-jasmine2/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "peer": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-matcher-utils/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/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, + "peer": true + }, + "node_modules/jest-matcher-utils/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-message-util/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/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, + "peer": true + }, + "node_modules/jest-message-util/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-resolve/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/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, + "peer": true + }, + "node_modules/jest-resolve/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runner/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/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, + "peer": true + }, + "node_modules/jest-runner/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runtime/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/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, + "peer": true + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-runtime/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-runtime/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/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, + "peer": true + }, + "node_modules/jest-snapshot/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/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, + "peer": true + }, + "node_modules/jest-util/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-validate/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/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, + "peer": true + }, + "node_modules/jest-validate/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watcher/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/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, + "peer": true + }, + "node_modules/jest-watcher/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jimp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz", + "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.10.3", + "@jimp/plugins": "^0.10.3", + "@jimp/types": "^0.10.3", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/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, + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "peer": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "dependencies": { + "invert-kv": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/licia": { + "version": "1.39.2", + "resolved": "https://registry.npmmirror.com/licia/-/licia-1.39.2.tgz", + "integrity": "sha512-4pte7gXufSAa3JcsR0iT+2Lj2RX5Qpj+Nc0n84xs0ynNmw7eJmeZzk2oPTEtsQqwHwtT+NiX0arGkL5HPjTs7g==" + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-bmfont/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/localstorage-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz", + "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, + "node_modules/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 + }, + "node_modules/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 + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/module-alias": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": true + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true, + "peer": true + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dependencies": { + "lcid": "^3.0.0" + }, + "engines": { + "node": ">=10", + "yarn": "^1.22.4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "node_modules/parse-css-font": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz", + "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==", + "dependencies": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-list-helpers": "^2.0.0", + "css-system-font-keywords": "^1.0.0", + "unquote": "^1.1.1" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "node_modules/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, + "peer": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "peer": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==" + }, + "node_modules/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 + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.0.36", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", + "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", + "dependencies": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==" + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/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==" + }, + "node_modules/qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/qrcode/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/qrcode/node_modules/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==" + }, + "node_modules/qrcode/node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/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==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "peer": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "peer": true + }, + "node_modules/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==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==" + }, + "node_modules/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, + "peer": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/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==", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/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==" + }, + "node_modules/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==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.77.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.1.tgz", + "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==", + "devOptional": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "peer": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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 + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sortablejs": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" + }, + "node_modules/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==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "peer": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "peer": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/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, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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 + }, + "node_modules/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, + "peer": true + }, + "node_modules/systemjs": { + "version": "6.15.1", + "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.15.1.tgz", + "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "devOptional": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true, + "peer": true + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "peer": true + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "peer": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/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, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/uview-plus": { + "version": "3.2.22", + "resolved": "https://registry.npmmirror.com/uview-plus/-/uview-plus-3.2.22.tgz", + "integrity": "sha512-ouhq0CCGP/ElR7eCCu0rBFNPTGW/EctcrxKIerjj1DOkEIY9BwKBbdI0VTSSkMFnr6RFejSQLBw/aKkqd6Q+7g==", + "dependencies": { + "clipboard": "^2.0.11", + "dayjs": "^1.11.3" + }, + "engines": { + "HBuilderX": "^3.1.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dependencies": { + "esbuild": "^0.16.3", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-windicss": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/vite-plugin-windicss/-/vite-plugin-windicss-1.9.3.tgz", + "integrity": "sha512-PqNiIsrEftCrgn0xIpj8ZMSdpz8NZn+OJ3gKXnOF+hFzbHFrKGJA49ViOUKCHDOquxoGBZMmTjepWr8GrftKcQ==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "1.9.3", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "windicss": "^3.5.6" + }, + "peerDependencies": { + "vite": "^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/vue": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.27.tgz", + "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-sfc": "3.4.27", + "@vue/runtime-dom": "3.4.27", + "@vue/server-renderer": "3.4.27", + "@vue/shared": "3.4.27" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "dependencies": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "dependencies": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/vue-router": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.2.tgz", + "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/vue/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/vue/node_modules/@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/vue/node_modules/@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/vue/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/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==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "peer": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "peer": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "node_modules/weixin-js-sdk": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", + "integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==" + }, + "node_modules/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, + "peer": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "peer": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/windicss": { + "version": "3.5.6", + "resolved": "https://registry.npmmirror.com/windicss/-/windicss-3.5.6.tgz", + "integrity": "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==", + "dev": true, + "bin": { + "windicss": "cli/index.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/windicss-webpack-plugin": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/windicss-webpack-plugin/-/windicss-webpack-plugin-1.8.0.tgz", + "integrity": "sha512-zCzNLJ4hjgl5A2+mq8XlPtbvM5RONNz/ol93YG9tcMSn+aH/6Ll/lA5UDnVJluBr8b2Ch5C/GIqXcIMGG8mmdA==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "^1.9.1", + "debug": "^4.3.4", + "get-port": "^6.1.2", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "pathe": "^1.1.0", + "webpack-virtual-modules": "^0.5.0", + "windicss": "^3.5.6" + } + }, + "node_modules/windicss-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/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, + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "peer": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/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, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "peer": true + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xregexp": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz", + "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "peer": true, + "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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "peer": true, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@antfu/utils": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "requires": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==" + }, + "@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "requires": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "requires": { + "@babel/types": "^7.24.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==" + }, + "@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==" + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==" + }, + "@babel/helper-wrap-function": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" + } + }, + "@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + } + }, + "@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "requires": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==" + }, + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "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.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@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==", + "dev": true, + "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, + "peer": 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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz", + "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-typescript": "^7.24.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/preset-env": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@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-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@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-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.5", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.5", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "requires": { + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "requires": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "requires": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "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, + "peer": true + }, + "@dcasia/mini-program-tailwind-webpack-plugin": { + "version": "1.5.7", + "resolved": "https://registry.npmmirror.com/@dcasia/mini-program-tailwind-webpack-plugin/-/mini-program-tailwind-webpack-plugin-1.5.7.tgz", + "integrity": "sha512-BXcYi8iAFh9qRewsJPT9+paxBto5zdLLmad1Yx1GkZXmKFE6W7qHDRWxOmskXFtSCzCKdomFqZG2RzW1eBzMZg==", + "dev": true, + "requires": { + "@babel/core": "^7.17.5", + "@vivaxy/wxml": "^2.1.0", + "micromatch": "^4.0.5", + "postcss": "^8.4.7", + "webpack-sources": "^1.4.3", + "windicss-webpack-plugin": "^1.7.2" + } + }, + "@dcloudio/types": { + "version": "3.4.8", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.8.tgz", + "integrity": "sha512-IPXuoghLv7qNPOnRuP7vC5++MdRHhE0U7EMw9ia//uOh69fFXZiRTfoHd51+nzciD6R50gqYhbrCCZIxnxhM9Q==" + }, + "@dcloudio/uni-app": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6fip3G+s6pJDudu+Rsy/v7CtGYzjcc0ZjjKYZuXttM1Vgkg3QD1/qHhJW27Vb+nmzfL+Wg1tbRhTl7kgA+8TVA==", + "requires": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-push": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stat": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-app-plus": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WGHniWrEJPIAVP3GDp+maf30fZz/Dc+gAfiPMDWvQdE12nAcnpbgnmaLEPifPDeeV2dr7/VuxoVM+Z2M5AlN1Q==", + "requires": { + "@dcloudio/uni-app-uts": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vue": "3.0.0-3080720230703001", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "licia": "^1.29.0", + "postcss-selector-parser": "^6.0.6" + } + }, + "@dcloudio/uni-app-uts": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6GXBYE3/bfliADNMmnmm2UHLpzR2BF5hgs/ExIXcC9sMOxDAUd149R+YsDp9HUfUc+dA32DXHHjoQOhYunZTTA==", + "requires": { + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1" + } + }, + "@dcloudio/uni-app-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-OAFjSfrin2pLuBBfDMg3qvm7ZCS3Vqt0/CDxRicc7lD6ioiahUvaXdLhARTWykoO6rlYjbIckDmg3HuBbb3wjA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0" + } + }, + "@dcloudio/uni-app-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-VTeoupAGJ1GREy2GvB+E29KPkIoHJ0C9ElvxcNpT0bEYWXMAE8m+O6D10aI8Qfwn1dObnxx6ohaRCbrDG9TG3w==" + }, + "@dcloudio/uni-automator": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3080720230703001.tgz", + "integrity": "sha512-DbvYu6uGA+My5l103RgZ5BfqSlxGN5NbvK59ELH0NhK5mGge/f8RQPJ9zPz2rlLJT9/GUzjaw7b+f4FELeRpHg==", + "dev": true, + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "address": "^1.1.2", + "cross-env": "^7.0.3", + "debug": "^4.3.3", + "default-gateway": "^6.0.3", + "fs-extra": "^10.0.0", + "jsonc-parser": "^3.2.0", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "@dcloudio/uni-cli-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WP5IfAXIlinWs/ItHu2/EP746kSCxl9+I8wBC6BfI4xq8RD2ga6F5WJt/+blBzbp2gVnJsW/13eafUQs5T3RFA==", + "requires": { + "@ampproject/remapping": "^2.1.2", + "@babel/core": "^7.21.3", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@intlify/core-base": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "autoprefixer": "^10.4.14", + "base64url": "^3.0.1", + "chokidar": "^3.5.3", + "compare-versions": "^3.6.0", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "esbuild": "^0.17.5", + "estree-walker": "^2.0.2", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "merge": "^2.1.1", + "mime": "^3.0.0", + "module-alias": "^2.2.2", + "os-locale-s-fix": "^1.0.8-fix-1", + "picocolors": "^1.0.0", + "postcss-import": "^14.0.2", + "postcss-load-config": "^3.1.1", + "postcss-modules": "^4.3.0", + "postcss-selector-parser": "^6.0.6", + "resolve": "^1.22.1", + "tapable": "^2.2.0", + "xregexp": "3.1.0" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-cloud": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xulo8fMQZ6+DsU7Bs6Re7i51OVF/tzT72GmooXvvNt3H+5XUAo/1mQIIiNlxeR4sKesR8Y9n7j+Z4dfs/2ce9w==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fast-glob": "^3.2.11" + } + }, + "@dcloudio/uni-components": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Ggd7m9TOxdLZxfJ1PWkUBowTUyYVH1WuPsooMWmJNRkMpvnAtK6ZPdS0ThdglX0F/FT82IUUC+wdeZtFG/QRcA==", + "requires": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001" + } + }, + "@dcloudio/uni-h5": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3080720230703001.tgz", + "integrity": "sha512-brRSBmxzg07Bt86AhJ70T0wsJBaDjgRAaAND0QsRQAaQfRFyEjqU1wp+x4Dt7GoNbg5hmNEabhdJKv24RweMnA==", + "requires": { + "@dcloudio/uni-h5-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-h5-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "localstorage-polyfill": "^1.0.1", + "postcss-selector-parser": "^6.0.6", + "safe-area-insets": "^1.4.1", + "vue-router": "^4.1.6", + "xmlhttprequest": "^1.8.0" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-h5-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-bqPj6p2Zj0TIMOoUFCryPaBR/LIGMdHg5vDGlxoU1F84VdtCXlgDTodbp/4n24MDCd6KiuHZEyURt4jODtxd8Q==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "mime": "^3.0.0", + "module-alias": "^2.2.2" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-h5-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-dRb9y4bgVSvZgJySumu0ZLL+tb/K1KbHd7Rx5c2G9Q7Yw42y0rrooYgbKFQILw0LFF0bKpzZv0JjNwkpKcD/mA==", + "requires": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-i18n": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3080720230703001.tgz", + "integrity": "sha512-fmN3HnHhq2GXgT+PlCiy1g9KAVAD1HASErnv4cKtu4YofJH6Nh+uWAfPNWwp/6ZfNgPrblku7Rq7qdDFEltFcg==" + }, + "@dcloudio/uni-mp-alipay": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3080720230703001.tgz", + "integrity": "sha512-qTBERfPRxa4e3cHzptD82kTNrleT6Mxl+hdzDMK4/xSD4XLiMb2ZKDqsG8MtAAvNpHMe8QKiEKXR2/Oljs8A9A==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-baidu": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3080720230703001.tgz", + "integrity": "sha512-22llCMmOgpPuuWtaJ8pExLStvIoy+/KJLL09/a+Y87z3F+W40VfA6WFNNF3peVX22pw8fDvUBMDN9nCusAVrqA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "@dcloudio/uni-mp-compiler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-osLFR5CDm5xrQiSSh0fqXDCDam0Zg8mGMohHKFtqSbPoKHBxv+i4KkdU1Ai3MhutPXK4xMU6xk6PqQ2XhJmxAg==", + "requires": { + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2" + } + }, + "@dcloudio/uni-mp-jd": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-3080720230703001.tgz", + "integrity": "sha512-5FJ0ZtJnCUTaPWLbdcpwAfPG/XGAlyanWolgdwzq0eFMQtAGtcrbCCv2GXXcErMjDyDbM4LRBS3JPEmcBLe5Zw==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-kuaishou": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3080720230703001.tgz", + "integrity": "sha512-t1H8YaS5HUYNI/ArKTPaK17JqNyvLC4ge+oJpAtW1gJOxT/qdRE7BPyfIfoKUoN0QlDxQiuxbvz1ILdT00u0yg==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-lark": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3080720230703001.tgz", + "integrity": "sha512-3E+vRxFypvcdTMPIGlfI3WWAVlUi3/IfKc0eM53YqNGHFTnzJOAofvFABqE6hcY24FjwepgNDttGddbaE8LtKA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-qq": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nx9PoO/+zFWlA54O20aXj/gaefUHLqBrhrKPNERAphafFembjudIvo/YS1tjlDk5idJ9G+J5XJNWL60eQcnKNA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fs-extra": "^10.0.0" + } + }, + "@dcloudio/uni-mp-toutiao": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3080720230703001.tgz", + "integrity": "sha512-x39UGX+gelydwYXnDX8YlD7qCpwAWzUwY3DuDNig3GAmtBiBMheM4nQKxxs0zrImRB77eUffwtNn+1+kvTvjyA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-KGi1tfIrlzGx9vbcrU979I56jaZ+kpQsm+SfKOYg2j6JezQ0/GFqHEHaDdiAdhSZcTX759Qs1PXZmXFxMdDFDA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3" + } + }, + "@dcloudio/uni-mp-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Fo0lNHwGhVV2ceaU4Cta8OmB831k6PhJttpaJ18R0o1AM0RykI8NCw2OUuZ5Ex/TedoyejQBxs6skMDCvPb5IQ==", + "requires": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-weixin": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3080720230703001.tgz", + "integrity": "sha512-8S+6I1OuGk8r+s5nNfqo+Cq+BrK0M+RksDQUtkI8z2e798GrWZiHbTqQ89pEwVdtkhP5G+5orqUg6e5NCLaskQ==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "@dcloudio/uni-nvue-styler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nhWQ/B/AYYqJZ/7HCmSWylARJ2dRrRyYVwBVs1Re8yk8SoaEkTvvgt5jas3tqjIxhyi5M8hzXeaxdpkY1Jgsyw==", + "requires": { + "@vue/shared": "3.2.47", + "parse-css-font": "^4.0.0", + "postcss": "^8.4.23" + } + }, + "@dcloudio/uni-push": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3080720230703001.tgz", + "integrity": "sha512-q0chMYDBdj+KGxj/pA2hOm356tPU9WsVxjB2f7JW3Ue6JUNl5snuq0Rk1C/s1IDDAU8W4DTgb9KjsRYTXHV77w==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001" + } + }, + "@dcloudio/uni-quickapp-webview": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3080720230703001.tgz", + "integrity": "sha512-LgV/CvGVp2IyLbIDeir4rPRAi+eglJLrBl86LT1ey+YA/Jecoz9LH4fHhB5gJEedm+KUqL7hjxd7F/XcrIULzg==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-saa7FGqduwcEe0jxntYAFCE6wAtSM9aNG52uLAW5m0c4uRNYVFWJltBkm8Ev7eyko2xkvNhoQAGIGXDTQ+Hxhw==", + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-stacktracey": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xo0O4sQ9gXa0wg1V1I13l/6JxQSTmfTcjyyQWOb3t5E/ME6tVo/RSlA0QN/Guo9XlogmQXs99D30NW/r3KGdJA==", + "dev": true + }, + "@dcloudio/uni-stat": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3080720230703001.tgz", + "integrity": "sha512-jzX9nRWk24udvVneFVA/8cfzqedib/nHbTO6GsFPamc6KDFa7QXhLy2m+BV+3inLiMkedfVnvgxNkZDigujyLw==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "debug": "^4.3.3" + } + }, + "@dcloudio/vite-plugin-uni": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3080720230703001.tgz", + "integrity": "sha512-PMDGsIDjBuoGNzzNPxLAHrXEzBsA2huoZgjbaGa3H8N+4cnbJZmEJEsy/OVdA3I9lrgZ+H6QW95qIA5aVO6djA==", + "dev": true, + "requires": { + "@babel/core": "^7.21.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-legacy": "^4.0.3", + "@vitejs/plugin-vue": "^4.2.1", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "cac": "6.7.9", + "debug": "^4.3.3", + "estree-walker": "^2.0.2", + "express": "^4.17.1", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "picocolors": "^1.0.0", + "terser": "^5.4.0" + } + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@intlify/core-base": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz", + "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==", + "requires": { + "@intlify/devtools-if": "9.1.9", + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9" + } + }, + "@intlify/devtools-if": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz", + "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==", + "requires": { + "@intlify/shared": "9.1.9" + } + }, + "@intlify/message-compiler": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz", + "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==", + "requires": { + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9", + "source-map": "0.6.1" + } + }, + "@intlify/message-resolver": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz", + "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==" + }, + "@intlify/runtime": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz", + "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==", + "requires": { + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9" + } + }, + "@intlify/shared": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz", + "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==" + }, + "@intlify/vue-devtools": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz", + "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==", + "requires": { + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9" + } + }, + "@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, + "peer": 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": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "peer": 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, + "peer": true + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "peer": true, + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "peer": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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, + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "peer": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "peer": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jimp/bmp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz", + "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + } + }, + "@jimp/core": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz", + "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/custom": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz", + "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/gif": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz", + "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz", + "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + } + }, + "@jimp/plugin-blit": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz", + "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-blur": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz", + "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-circle": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz", + "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-color": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz", + "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz", + "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-cover": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz", + "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-crop": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz", + "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-displace": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz", + "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-dither": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz", + "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-fisheye": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz", + "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-flip": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz", + "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz", + "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-invert": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz", + "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-mask": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz", + "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-normalize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz", + "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-print": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz", + "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "load-bmfont": "^1.4.0" + } + }, + "@jimp/plugin-resize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz", + "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-rotate": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz", + "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-scale": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz", + "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-shadow": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz", + "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-threshold": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz", + "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugins": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz", + "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.10.3", + "@jimp/plugin-blur": "^0.10.3", + "@jimp/plugin-circle": "^0.10.3", + "@jimp/plugin-color": "^0.10.3", + "@jimp/plugin-contain": "^0.10.3", + "@jimp/plugin-cover": "^0.10.3", + "@jimp/plugin-crop": "^0.10.3", + "@jimp/plugin-displace": "^0.10.3", + "@jimp/plugin-dither": "^0.10.3", + "@jimp/plugin-fisheye": "^0.10.3", + "@jimp/plugin-flip": "^0.10.3", + "@jimp/plugin-gaussian": "^0.10.3", + "@jimp/plugin-invert": "^0.10.3", + "@jimp/plugin-mask": "^0.10.3", + "@jimp/plugin-normalize": "^0.10.3", + "@jimp/plugin-print": "^0.10.3", + "@jimp/plugin-resize": "^0.10.3", + "@jimp/plugin-rotate": "^0.10.3", + "@jimp/plugin-scale": "^0.10.3", + "@jimp/plugin-shadow": "^0.10.3", + "@jimp/plugin-threshold": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz", + "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + } + }, + "@jimp/tiff": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz", + "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz", + "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.10.3", + "@jimp/gif": "^0.10.3", + "@jimp/jpeg": "^0.10.3", + "@jimp/png": "^0.10.3", + "@jimp/tiff": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz", + "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==", + "requires": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, + "@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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==", + "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==" + }, + "@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==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "24.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", + "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "peer": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "peer": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "peer": true + }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "peer": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "devOptional": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "peer": true + }, + "@types/qrcode": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "peer": true + }, + "@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "peer": true + }, + "@vitejs/plugin-legacy": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", + "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==", + "dev": true, + "requires": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "browserslist": "^4.21.9", + "core-js": "^3.31.1", + "magic-string": "^0.30.1", + "regenerator-runtime": "^0.13.11", + "systemjs": "^6.14.1" + } + }, + "@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "requires": {} + }, + "@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "requires": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + } + }, + "@vivaxy/wxml": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@vivaxy/wxml/-/wxml-2.1.0.tgz", + "integrity": "sha512-xqnfAB58tl5SPyfkQjrn7D7nuvq7XV9um7QUsjCrvA4X6aZBxcau9sAM47LsQTOpJIVPzjaKIMvq3ul07yZlOA==", + "dev": true + }, + "@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "requires": { + "@volar/source-map": "1.11.1" + } + }, + "@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "requires": { + "muggle-string": "^0.3.1" + } + }, + "@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "requires": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + } + } + }, + "@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "dev": true, + "requires": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + } + } + }, + "@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "requires": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "requires": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@vue/reactivity": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.27.tgz", + "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", + "requires": { + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "@vue/runtime-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz", + "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", + "requires": { + "@vue/reactivity": "3.4.27", + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/runtime-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", + "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", + "requires": { + "@vue/runtime-core": "3.4.27", + "@vue/shared": "3.4.27", + "csstype": "^3.1.3" + }, + "dependencies": { + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/server-renderer": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz", + "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", + "requires": { + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "requires": {} + }, + "@windicss/config": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/config/-/config-1.9.3.tgz", + "integrity": "sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "jiti": "^1.18.2", + "windicss": "^3.5.6" + } + }, + "@windicss/plugin-utils": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-1.9.3.tgz", + "integrity": "sha512-3VG5HEGeuIfG/9iTwLyzWWm/aGKNTbtSVkpkAabdRuDP/2lEmf6Hpo4uo5drwE+2O9gXfc6nSYgAwBjotx5CfQ==", + "dev": true, + "requires": { + "@antfu/utils": "^0.7.2", + "@windicss/config": "1.9.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "magic-string": "^0.30.0", + "micromatch": "^4.0.5", + "windicss": "^3.5.6" + } + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true, + "peer": true + }, + "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" + } + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "devOptional": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "peer": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true + } + } + }, + "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, + "peer": true + }, + "address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "peer": true, + "requires": { + "debug": "4" + } + }, + "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, + "peer": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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" + } + }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "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 + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "requires": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "peer": true, + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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, + "peer": 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" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "peer": 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/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "peer": true, + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "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 + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "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" + } + }, + "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, + "peer": true + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "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, + "peer": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==" + }, + "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==", + "devOptional": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cac": { + "version": "6.7.9", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz", + "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==", + "dev": true + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==" + }, + "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" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "peer": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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" + } + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "peer": true + }, + "cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "peer": true + }, + "clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.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, + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "peer": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "peer": true + }, + "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" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "peer": true, + "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==", + "devOptional": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "peer": true + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==" + }, + "core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "requires": { + "browserslist": "^4.23.0" + } + }, + "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" + } + }, + "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" + } + }, + "css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" + }, + "css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" + }, + "css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" + }, + "css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" + }, + "css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "requires": { + "utrie": "^1.0.2" + } + }, + "css-list-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz", + "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==" + }, + "css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true, + "peer": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "peer": 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, + "peer": true + } + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "peer": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + }, + "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==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "peer": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "peer": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true + }, + "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" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "peer": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "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, + "peer": true + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "peer": true + }, + "dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "peer": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "peer": true + } + } + }, + "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==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.772", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.772.tgz", + "integrity": "sha512-jFfEbxR/abTTJA3ci+2ok1NTuOBBtB4jH+UT6PUmRN+DY3WSD4FFRsgoVQ+QNIJ0T7wrXwzsWCI2WKC46b++2A==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "peer": true + }, + "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==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "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, + "peer": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==" + }, + "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==", + "dev": true + }, + "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": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "peer": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.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==", + "dev": true, + "peer": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "peer": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "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" + } + }, + "exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "peer": true + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.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" + } + }, + "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.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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" + } + }, + "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==", + "dev": true, + "peer": true + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "peer": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" + }, + "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" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "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-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" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "requires": { + "loader-utils": "^3.2.0" + } + }, + "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==" + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "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, + "peer": true + }, + "get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "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 + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "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" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "requires": { + "delegate": "^3.1.2" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "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-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "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==" + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "peer": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "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, + "peer": true + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true + }, + "html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "requires": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "peer": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "peer": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "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 + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "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": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "image-tools": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", + "integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ==" + }, + "immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "devOptional": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "peer": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "peer": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "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==", + "dev": true + }, + "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==" + }, + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "peer": true + }, + "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-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "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==" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "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, + "peer": true + }, + "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-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "peer": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "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 + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "peer": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "peer": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "peer": 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" + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "peer": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.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, + "peer": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "peer": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "27.0.4", + "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "dev": true, + "peer": true, + "requires": { + "@jest/core": "^27.0.4", + "import-local": "^3.0.2", + "jest-cli": "^27.0.4" + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "peer": true, + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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, + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "peer": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "peer": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "peer": true + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "peer": true, + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "peer": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "peer": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "peer": true, + "requires": {} + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "peer": true + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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, + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "peer": true, + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + }, + "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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.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, + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jimp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz", + "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.10.3", + "@jimp/plugins": "^0.10.3", + "@jimp/types": "^0.10.3", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true + }, + "jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + }, + "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, + "peer": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "peer": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "peer": true, + "requires": {} + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "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, + "peer": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "peer": true + }, + "kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "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, + "peer": true + }, + "licia": { + "version": "1.39.2", + "resolved": "https://registry.npmmirror.com/licia/-/licia-1.39.2.tgz", + "integrity": "sha512-4pte7gXufSAa3JcsR0iT+2Lj2RX5Qpj+Nc0n84xs0ynNmw7eJmeZzk2oPTEtsQqwHwtT+NiX0arGkL5HPjTs7g==" + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "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, + "peer": true + }, + "load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + } + }, + "loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" + }, + "localstorage-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz", + "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==" + }, + "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==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "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" + } + }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "peer": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "peer": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "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==", + "dev": true + }, + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, + "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-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==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.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 + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "module-alias": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": 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 + }, + "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, + "peer": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "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==" + }, + "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" + } + }, + "nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true, + "peer": true + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "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" + } + }, + "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==", + "requires": { + "lcid": "^3.0.0" + } + }, + "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-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==" + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" + }, + "parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "requires": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "parse-css-font": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz", + "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==", + "requires": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-list-helpers": "^2.0.0", + "css-system-font-keywords": "^1.0.0", + "unquote": "^1.1.1" + } + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "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, + "peer": 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" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "peer": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "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==", + "dev": true, + "peer": 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 + }, + "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": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "phin": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinia": { + "version": "2.0.36", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", + "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", + "requires": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "requires": {} + } + } + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "peer": true + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "requires": { + "pngjs": "^3.0.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, + "peer": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + }, + "postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", + "requires": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "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==" + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "peer": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "peer": 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==" + }, + "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, + "peer": 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" + } + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "peer": true + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "peer": true + }, + "qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "requires": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" + }, + "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==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "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==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "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==" + }, + "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.7.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "peer": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "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.5.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "peer": 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==", + "requires": { + "pify": "^2.3.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" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "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==", + "dev": true + } + } + }, + "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==" + }, + "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==" + }, + "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, + "peer": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.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, + "peer": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "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, + "peer": true + }, + "resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "peer": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "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==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "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==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.77.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.1.tgz", + "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==", + "devOptional": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sax": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "peer": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "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 + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "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==" + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "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 + }, + "side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "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 + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "peer": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true + }, + "sortablejs": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" + }, + "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==", + "dev": true + }, + "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.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "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==", + "devOptional": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "peer": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "peer": 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, + "peer": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "peer": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.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==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "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, + "peer": 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": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "peer": true + }, + "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" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "peer": 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, + "peer": true + }, + "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, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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 + }, + "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, + "peer": true + }, + "systemjs": { + "version": "6.15.1", + "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.15.1.tgz", + "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "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, + "peer": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.31.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "devOptional": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "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, + "peer": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "requires": { + "utrie": "^1.0.2" + } + }, + "throat": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true, + "peer": true + }, + "timm": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "peer": true + }, + "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-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" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "peer": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "peer": true + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "peer": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "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, + "peer": true + }, + "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, + "peer": 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==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "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, + "peer": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "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, + "peer": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "utif": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "requires": { + "pako": "^1.0.5" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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 + }, + "utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "requires": { + "base64-arraybuffer": "^1.0.2" + } + }, + "uview-plus": { + "version": "3.2.22", + "resolved": "https://registry.npmmirror.com/uview-plus/-/uview-plus-3.2.22.tgz", + "integrity": "sha512-ouhq0CCGP/ElR7eCCu0rBFNPTGW/EctcrxKIerjj1DOkEIY9BwKBbdI0VTSSkMFnr6RFejSQLBw/aKkqd6Q+7g==", + "requires": { + "clipboard": "^2.0.11", + "dayjs": "^1.11.3" + } + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "peer": true + } + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vite": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "requires": { + "esbuild": "^0.16.3", + "fsevents": "~2.3.2", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "optional": true + }, + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + } + } + }, + "vite-plugin-windicss": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/vite-plugin-windicss/-/vite-plugin-windicss-1.9.3.tgz", + "integrity": "sha512-PqNiIsrEftCrgn0xIpj8ZMSdpz8NZn+OJ3gKXnOF+hFzbHFrKGJA49ViOUKCHDOquxoGBZMmTjepWr8GrftKcQ==", + "dev": true, + "requires": { + "@windicss/plugin-utils": "1.9.3", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "windicss": "^3.5.6" + } + }, + "vue": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.27.tgz", + "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-sfc": "3.4.27", + "@vue/runtime-dom": "3.4.27", + "@vue/server-renderer": "3.4.27", + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "requires": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "dependencies": { + "@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "requires": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + } + }, + "@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "requires": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + } + }, + "@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==" + } + } + }, + "vue-router": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.2.tgz", + "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", + "requires": { + "@vue/devtools-api": "^6.5.1" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "requires": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "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, + "peer": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "peer": true, + "requires": { + "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, + "peer": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "peer": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "weixin-js-sdk": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", + "integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==" + }, + "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, + "peer": 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, + "peer": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "peer": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "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" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "windicss": { + "version": "3.5.6", + "resolved": "https://registry.npmmirror.com/windicss/-/windicss-3.5.6.tgz", + "integrity": "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==", + "dev": true + }, + "windicss-webpack-plugin": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/windicss-webpack-plugin/-/windicss-webpack-plugin-1.8.0.tgz", + "integrity": "sha512-zCzNLJ4hjgl5A2+mq8XlPtbvM5RONNz/ol93YG9tcMSn+aH/6Ll/lA5UDnVJluBr8b2Ch5C/GIqXcIMGG8mmdA==", + "dev": true, + "requires": { + "@windicss/plugin-utils": "^1.9.1", + "debug": "^4.3.4", + "get-port": "^6.1.2", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "pathe": "^1.1.0", + "webpack-virtual-modules": "^0.5.0", + "windicss": "^3.5.6" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "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, + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "peer": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "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, + "peer": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "8.17.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "requires": {} + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "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, + "peer": true + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" + }, + "xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "peer": true + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==" + }, + "xregexp": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz", + "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "peer": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "peer": 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, + "peer": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bf823b7 --- /dev/null +++ b/package.json @@ -0,0 +1,85 @@ +{ + "name": "uni-preset-vue", + "version": "0.0.0", + "scripts": { + "dev:app": "uni -p app", + "dev:app-android": "uni -p app-android", + "dev:app-ios": "uni -p app-ios", + "dev:custom": "uni -p", + "dev:h5": "uni", + "dev:h5:ssr": "uni --ssr", + "dev:mp-alipay": "uni -p mp-alipay", + "dev:mp-baidu": "uni -p mp-baidu", + "dev:mp-jd": "uni -p mp-jd", + "dev:mp-kuaishou": "uni -p mp-kuaishou", + "dev:mp-lark": "uni -p mp-lark", + "dev:mp-qq": "uni -p mp-qq", + "dev:mp-toutiao": "uni -p mp-toutiao", + "dev:mp-weixin": "uni -p mp-weixin", + "dev:quickapp-webview": "uni -p quickapp-webview", + "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei", + "dev:quickapp-webview-union": "uni -p quickapp-webview-union", + "build:app": "uni build -p app", + "build:app-android": "uni build -p app-android", + "build:app-ios": "uni build -p app-ios", + "build:custom": "uni build -p", + "build:h5": "uni build && node publish.cjs", + "build:h5:ssr": "uni build --ssr", + "build:mp-alipay": "uni build -p mp-alipay", + "build:mp-baidu": "uni build -p mp-baidu", + "build:mp-jd": "uni build -p mp-jd", + "build:mp-kuaishou": "uni build -p mp-kuaishou", + "build:mp-lark": "uni build -p mp-lark", + "build:mp-qq": "uni build -p mp-qq", + "build:mp-toutiao": "uni build -p mp-toutiao", + "build:mp-weixin": "uni build -p mp-weixin", + "build:quickapp-webview": "uni build -p quickapp-webview", + "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei", + "build:quickapp-webview-union": "uni build -p quickapp-webview-union", + "type-check": "vue-tsc --noEmit" + }, + "dependencies": { + "@dcloudio/uni-app": "3.0.0-3080720230703001", + "@dcloudio/uni-app-plus": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-alipay": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-baidu": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-jd": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-kuaishou": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-lark": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-qq": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001", + "html2canvas": "^1.4.1", + "image-tools": "^1.4.0", + "lodash-es": "^4.17.21", + "pinia": "2.0.36", + "qrcode": "^1.5.1", + "qs": "6.7.0", + "sortablejs": "^1.15.0", + "uview-plus": "^3.1.29", + "vue": "^3.3.0", + "vue-i18n": "^9.2.2", + "weixin-js-sdk": "^1.6.0" + }, + "devDependencies": { + "@dcasia/mini-program-tailwind-webpack-plugin": "^1.5.6", + "@dcloudio/types": "^3.3.2", + "@dcloudio/uni-automator": "3.0.0-3080720230703001", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stacktracey": "3.0.0-3080720230703001", + "@dcloudio/vite-plugin-uni": "3.0.0-3080720230703001", + "@rollup/plugin-commonjs": "^24.0.1", + "@types/qrcode": "^1.5.0", + "@types/sortablejs": "^1.15.0", + "@vue/tsconfig": "^0.1.3", + "sass": "^1.54.5", + "typescript": "^4.9.4", + "vite": "4.0.4", + "vite-plugin-windicss": "^1.8.10", + "vue-tsc": "^1.0.24", + "windicss": "^3.5.6" + } +} diff --git a/public/niucloud.ico b/public/niucloud.ico new file mode 100644 index 0000000000000000000000000000000000000000..d770505a2cb0ca4f036c9646b903b41094dac050 GIT binary patch literal 1766 zcmbW2e>f9}AIG=a)F#9low9ZmhaECIrdBp0zq+CPD0!S1mL*$4Ch~i2ZdPAqi?*GI z=Ev?KhNi{&xb)gUdvi*JVr!!;TR{68wXZ951(l1+7j43J!L1UW?t7-p15CYq6S-QOxd9^@}^d9@#d+bW@`^_wiv7=kr zjoPOX=~~W`-RpdQhV}&(qs(3iXYX74xirLDlsu0Q_BJ6~UL%f;6!3}>3b$oJop1-n z2=~vC{1$o>!eR2wIzM4Kjij5=Sa0>{gA=wvbHAiIh@uFHBv_Qv(beOiD>X>{F%9eg zaZR*jf-s$I4vQz3$R@)+wg(tt0wu{hhs^ovfV73*hVY!^K;HZ;F^pUCdSyJNIVR>T zcBDx@>J@zGQl-tq3z7(DJFCkbk2YphZ|`m+o9{x5I$zg0hL?9oI#bsVb{}sbwt7jA zylZ|jqRaJh;tj0@8j;QWxZ-=ST8AU-3RbQ5{FPoJGs!JQZJk$l$*qsCF#e>1hZ=ql z;RHtC<-X-Z6)3=TU3+3?OvTYNxIQrNBEihdA(a^jN6XF$ZdoTetj~ zkOV|2XB#;JXXT<(c5$i=gZAJiy_ukn9Iq^@e|@&OA24DDdDx~v4vytv2k z&PK5{d3mrLLZ0iBFVUsI&kvtga+U`c=mo&1>ln5pNDun#E1Vp%rEziZn#>V*ci^&f zdVMONoW2()Bn=5(Dq5t8i|LIEqYq!tf$RRfz*{zDKer;AgGjM=o8Xf_Gq-YQP-iub z-xkIon1g!23g0@=A)D9@c9uj&i;1nqE}_zF)~U7GX_{AjW?y0kbY~~h?h3TrhMIs8 z8IoTBhCU?hdy_a_Z>zppweMO{7}}=wSg<=TtpVCuW6<;sS4awQ$y=A>%7fuTTIibK z7SFzN)@h9L`TDm(TM!JM5-AVG%Rw%3<w`db)zQaA*parGMURk`R1S>l{k?yK24{@1L7l36rc<8dw#Kz2)VhDL zT_Af$*|_xSBX9^r8MV3rLq@3go00ofKM>K9YQvmB;CH`m zV>+VuQc4QX*rP}&8P-<8>IVx+d6B~nwbcXvs-AEd9BMmS$Gg*iEHA07@e3w|AO}QN zo0^3eG*>=^9T`Mqu?J4m?mx#J)F(muWKB(Xg~Q4L>RQ;37M|&Ox4*Kbe~_pe@H!C? zMwZ6q6VYDtH@=@S*vOfTf=3HmDUyUt(nEdtOCZgH*=GU zL;7u7{ANU?4Jc#9ijzmq1Hb%TE2A3v>V&u9mVuq)n zX>p8`eNyz_eQ8~EN1xmTN+fVUE7kokE8`^On{i-V>&*Xn<_;^^`WuvZS8T&}en)>{ zMoPr5v+uvO^^+orbG5+=R&!QIDr4t?7}a?+b4GS{`xsKK@J*yV&BJIqVZ*) z60F%@n`JG3RwZq8yP8yldnDOiW0gEm+6hS>@w48{bBUVyAuuVbJ;YrIY-M4f3QGn)C7^eQV&> zN**#%9rJRO-$HEl9T`ud{6xPWU0lKPxEQe-f6lFXE)VIho_G~9$fZ0Wi6#N>>Vd~z zJ)v~VaH*x!8>E)#<6Z5Tjt=M9DQ{yL82iV1Nyi?wG-=5MS#^}h+= Mf8vynm=K%)A8!;#QUCw| literal 0 HcmV?d00001 diff --git a/publish.cjs b/publish.cjs new file mode 100644 index 0000000..7b349b8 --- /dev/null +++ b/publish.cjs @@ -0,0 +1,51 @@ +const fs = require('fs') + +const publish = () => { + const src = './dist/build/h5' + const dest = '../niucloud/public/wap' + + solve() + + // 目标目录不存在停止复制 + try { + const dir = fs.readdirSync(dest) + } catch (e) { + return + } + + // 删除目标目录下文件 + fs.rm(dest, { recursive: true }, err => { + if(err) { + console.log(err) + return + } + + fs.cp(src, dest, { recursive: true }, (err) => { + if (err) { + console.error(err) + } + }) + }) +} + +const solve = () => { + const src = './dist/build/h5/assets' + const filemaps = fs.readdirSync(src) + + filemaps.forEach(file => { + if (/^(index-)(\w{8})(.js)$/.test(file)) { + const path = `${src}/${file}` + let content = fs.readFileSync(path, 'utf-8') + const first = 'const match = location.href.match(/\\/wap\\/(\\d*)\\//);' + + if (content.indexOf(first) == -1) { + content = first + content + const replace = 'router:{mode:"history",base: match ? `/wap/${match[1]}/` : "/wap/",assets:"assets",routerBase: match ? `/wap/${match[1]}/` : "/wap/"},darkmode' + content = content.replace(/router:{(.*?)},darkmode/s, replace) + fs.writeFileSync(path, content, 'utf8') + } + } + }) +} + +publish() diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..889963a --- /dev/null +++ b/src/App.vue @@ -0,0 +1,111 @@ + + + diff --git a/src/app/api/auth.ts b/src/app/api/auth.ts new file mode 100644 index 0000000..f20c791 --- /dev/null +++ b/src/app/api/auth.ts @@ -0,0 +1,97 @@ +import request from '@/utils/request' + +/** + * 用户名登录 + */ +export function usernameLogin(data : AnyObject) { + return request.get('login', data, { showErrorMessage: true }) +} + +/** + * 手机验证码登录 + */ +export function mobileLogin(data : AnyObject) { + return request.post('login/mobile', data, { showErrorMessage: true }) +} + +/** + * 获取登录配置 + */ +export function getConfig() { + return request.get('login/config') +} + +/** + * 退出登录 + */ +export function logout() { + return request.put('auth/logout') +} + +/** + * 用户名注册 + */ +export function usernameRegister(data : AnyObject) { + let url = 'register' + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post(url, data, { showErrorMessage: true }) +} + +/** + * 手机号注册 + */ +export function mobileRegister(data : AnyObject) { + let url = 'register/mobile' + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post(url, data, { showErrorMessage: true }) +} + +/** + * 微信公众号授权信息 + */ +export function wechatUser(data : AnyObject) { + return request.get('wechat/user', data, { showErrorMessage: false }) +} + +/** + * 微信公众号授权信息登录(openid) + */ +export function wechatUserLogin(data : AnyObject) { + return request.post('wechat/userlogin', data, { showErrorMessage: true }) +} + +/** + * 微信公众号授权登录 + */ +export function wechatLogin(data : AnyObject) { + return request.post('wechat/login', data, { showErrorMessage: false }) +} + +/** + * 微信小程序授权登录 + */ +export function weappLogin(data : AnyObject) { + return request.post('weapp/login', data, { showErrorMessage: false }) +} + +/** + * 绑定手机号 + */ +export function bind(data : AnyObject) { + let url = 'bind' + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post(url, data, { showErrorMessage: true }) +} + +/** + * 记录会员访问日志 + */ +export function memberLog(data : AnyObject) { + return request.post('member/log', data, { showErrorMessage: false }) +} diff --git a/src/app/api/device.ts b/src/app/api/device.ts new file mode 100644 index 0000000..de35d99 --- /dev/null +++ b/src/app/api/device.ts @@ -0,0 +1,39 @@ +import request from '@/utils/request' + + +/** + * 绑定设备 + */ +export function set_equipment(params: AnyObject) { + return request.get(`member/set_equipment`, params) +} +/** + * 档案列表 + */ +export function list_archives() { + return request.get(`member/list_archives`) +} +/** + * 操作档案 + */ +export function edit_archives(data : any) { + return request.post(`member/edit_archives`, data) +} +/** + * 删除档案 + */ +export function del_archives(id : number) { + return request.get(`member/del_archives?id=`+ id) +} +/** + * 设备列表 + */ +export function list_equipment() { + return request.get(`member/list_equipment`) +} +/** + * 解绑设备 + */ +export function del_equipment(id : number) { + return request.get(`member/del_equipment?id=`+ id) +} \ No newline at end of file diff --git a/src/app/api/diy.ts b/src/app/api/diy.ts new file mode 100644 index 0000000..e3f971f --- /dev/null +++ b/src/app/api/diy.ts @@ -0,0 +1,29 @@ +import request from '@/utils/request' + +/** + * 获取自定义页面信息 + */ +export function getDiyInfo(params: Record) { + return request.get('diy/diy', params) +} + +/** + * 获取底部导航信息 + */ +export function getTabbarInfo(params: Record) { + return request.get('diy/tabbar', params) +} + +/** + * 获取底部导航列表 + */ +export function getTabbarList(params: Record) { + return request.get('diy/tabbar/list', params) +} + +/** + * 获取页面分享信息 + */ +export function getShareInfo(params: Record) { + return request.get('diy/share', params) +} \ No newline at end of file diff --git a/src/app/api/home.ts b/src/app/api/home.ts new file mode 100644 index 0000000..322f5de --- /dev/null +++ b/src/app/api/home.ts @@ -0,0 +1,101 @@ +import request from "@/utils/request"; + +// 获取轮播图 +export function getCarousel() { + return request.get('/shop/slideshow/list') +} + +// 获取分类 +export function getClassification() { + return request.get('/shop/homeCategory/list') +} + +// 获取文章分类 +export function getArticle(data) { + return request.get('/cms/category',data) +} + +// 获取医生 +export function getDoctor(data) { + return request.get('/shop/doctor/list',data) +} +// 获取驿站 +export function getDak(data) { + return request.get('/shop/communityStation/list',data) +} + +// 获取科室分类 +export function getDepartmentClassification(data) { + return request.get('/shop/doctorsDepartment/list',data) +} + +// 获取驿站详情 +export function getRelayDetails(data) { + return request.get('/shop/communityStation/info',data) +} + +// 获取行政区划 +export function getAdministrativeDivision() { + return request.get('/accompany/getAreaTree') +} + +// 获取专题列表 +export function getTopicsList(data) { + return request.get('/cms/article',data) +} + +// 获取专题详情 +export function getTopicsDetails(id) { + return request.get(`/cms/article/${id}`) +} + +// 获取医院分类 +export function getHospitalClassification() { + return request.get(`/shop/doctor/getHospitalsAll`) +} + +// 获取医生详情 +export function getDoctorDetails(data) { + return request.get(`/shop/goods/detail`,data) +} + +// 商品详情 +export function getProductDetails(data) { + return request.get(`/shop/goods/detail`,data) +} + +// 订单计算 +export function orderCalculation(data) { + return request.get(`/shop/order_create/calculate`,data) +} + +// 订单创建 +export function orderCreation(data) { + return request.post(`/shop/order_create/create`,data) +} + +// 获取通知 +export function getNotifications(data) { + return request.get(`/shop/memberNotifications/lists`,data ) +} + +// 获取用户信息 +export function getUserInfo() { + return request.get(`/member/member`) +} + +// 获取客服 +export function customerService() { + return request.get(`/shop/shopConfig/info`) +} + + +// 获取支付信息 +export function getPaymentInfo(trade_type,trade_id) { + return request.get(`/pay/info/${trade_type}/${trade_id}`) +} + +// 去支付 +export function toPay(data) { + return request.post(`/pay`,data) +} \ No newline at end of file diff --git a/src/app/api/member.ts b/src/app/api/member.ts new file mode 100644 index 0000000..b6a6a3a --- /dev/null +++ b/src/app/api/member.ts @@ -0,0 +1,244 @@ +import request from '@/utils/request' + +export function getMemberInfo() { + return request.get('member/member') +} + +/** + * 获取积分流水 + */ +export function getPointList(data : AnyObject) { + return request.get('member/account/point', data) +} + +/** + * 获取不可提现余额流水 + */ +export function getBalanceList(data : AnyObject) { + return request.get('member/account/balance', data) +} +/** + * 获取余额流水,条件获取 + */ +export function getBalanceListAll(data : AnyObject) { + return request.get('member/account/balance_list', data) +} + +/** + * 获取可提现余额流水 + */ +export function getMoneyList(data : AnyObject) { + return request.get('member/account/money', data) +} + +/** + * 会员信息修改 + */ +export function modifyMember(data : AnyObject) { + return request.put(`member/modify/${data.field}`, data, { showErrorMessage: true }) +} + +/** + * 登录会员绑定手机号 + */ +export function bindMobile(data : AnyObject) { + return request.put('member/mobile', data, { showErrorMessage: true }) +} + +/** + * 提现转账方式 + */ +export function cashOutTransferType() { + return request.get('member/cash_out/transfertype') +} + +/** + * 提现配置 + */ +export function cashOutConfig() { + return request.get('member/cash_out/config') +} + +/** + * 申请余额提现 + */ +export function cashOutApply(data : AnyObject) { + return request.post('member/cash_out/apply', data, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 获取提现账户信息 + */ +export function getCashoutAccountInfo(data : AnyObject) { + return request.get(`member/cashout_account/${data.account_id}`, {}) +} + +/** + * 获取首条提现账户信息 + */ +export function getFirstCashoutAccountInfo(data : AnyObject) { + return request.get('member/cashout_account/firstinfo', data) +} + +/** + * 获取提现账户列表 + */ +export function getCashoutAccountList(data : AnyObject) { + return request.get(`member/cashout_account`, data) +} + +/** + * 获取提现记录列表 + */ +export function getCashOutList(data : AnyObject) { + return request.get(`member/cash_out`, data) +} + +/** + * 获取提现记录详情 + */ +export function getCashOutDetail(id : number) { + return request.get(`member/cash_out/${id}`) +} + +/** + * 添加提现账户 + */ +export function addCashoutAccount(data : AnyObject) { + return request.post('member/cashout_account', data, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 添加提现账户 + */ +export function editCashoutAccount(data : AnyObject) { + return request.put(`member/cashout_account/${data.account_id}`, data, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 删除提现账户 + */ +export function deleteCashoutAccount(accountId: number) { + return request.delete(`member/cashout_account/${accountId}`, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 佣金账户流水 + */ +export function getMemberCommission(data : AnyObject) { + return request.get(`member/account/commission`,data) +} +/** + * 佣金列表 + */ +export function getCommissionList(data : AnyObject) { + return request.get(`member/account/commission`, data) +} + +/** + * 获取账号变动类型 + */ +export function getAccountType(params: Record) { + return request.get(`member/account/fromtype/${params.account_type}`) +} + +/** + * 获取会员收货地址列表 + * @param params + * @returns + */ +export function getAddressList(params: Record) { + return request.get(`member/address`, params) +} + +/** + * 获取会员收货地址详情 + * @param id 会员收货地址id + * @returns + */ +export function getAddressInfo(id: number) { + return request.get(`member/address/${id}`); +} + +/** + * 添加会员收货地址 + * @param params + * @returns + */ +export function addAddress(params: Record) { + return request.post('member/address', params, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 编辑会员收货地址 + * @param params + * @returns + */ +export function editAddress(params: Record) { + return request.put(`member/address/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 删除会员收货地址 + * @param id + * @returns + */ +export function deleteAddress(id: number) { + return request.delete(`member/address/${id}`, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 获取会员等级 + */ +export function getMemberLevel() { + return request.get(`member/level`); +} + +/** + * 获取成长值任务 + */ +export function getTaskGrowth() { + return request.get(`task/growth`); +} + +/** + * 获取签到日期 + */ +export function getSignInfo(data : AnyObject) { + return request.get(`member/sign/info/${data.year}/${data.month}`, {}) +} + +/** + * 获取日签到奖励 + */ +export function getDayPack(data : AnyObject) { + return request.get(`member/sign/award/${data.year}/${data.month}/${data.day}`) +} +/** + * 获取签到设置 + */ +export function getSignConfig() { + return request.get(`member/sign/config`) +} + +/** + * 点击签到 + * @returns + */ +export function setSign() { + return request.post('member/sign') +} + +/** + * 获取个人积分 + */ +export function getMemberAccountPointcount() { + return request.get(`member/account/pointcount`) +} + +/** + * 获取积分任务 + */ +export function getTaskPoint() { + return request.get(`task/point`) +} \ No newline at end of file diff --git a/src/app/api/mine.ts b/src/app/api/mine.ts new file mode 100644 index 0000000..ba8416c --- /dev/null +++ b/src/app/api/mine.ts @@ -0,0 +1,8 @@ +import request from '@/utils/request' + +/** + * 个人中心 + */ +export function getUserDet() { + return request.get('member/member') +} \ No newline at end of file diff --git a/src/app/api/pay.ts b/src/app/api/pay.ts new file mode 100644 index 0000000..05cf914 --- /dev/null +++ b/src/app/api/pay.ts @@ -0,0 +1,15 @@ +import request from '@/utils/request' + +/** + * 支付 + */ +export function pay(data : AnyObject) { + return request.post(`pay`, data, { showErrorMessage: true }) +} + +/** + * 获取支付信息 + */ +export function getPayInfo(tradeType : string, tradeId : number) { + return request.get(`pay/info/${tradeType}/${tradeId}`, {}, { showErrorMessage: true }) +} \ No newline at end of file diff --git a/src/app/api/shop.ts b/src/app/api/shop.ts new file mode 100644 index 0000000..89f65b4 --- /dev/null +++ b/src/app/api/shop.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request' + +/** + * 商品分类树状结构 + */ +export function goodsTree() { + return request.get(`shop/goods/category/tree`) +} +/** + * 商品列表 + */ +export function goodsList(params : Record) { + return request.get(`shop/goods/pages`, params) +} +/** + * 获取商品详情 + */ +export function goodsDetail(params : Record) { + return request.get(`shop/goods/detail`, params) +} +/** + * 商品收藏-添加 + */ +export function goodsCollect(id : number) { + return request.post(`shop/goods/collect/`+id) +} +/** + * 购物车-添加 + */ +export function shopCart(data : any) { + return request.post(`shop/cart`, data) +} +/** + * 购物车-列表 + */ +export function shopcartList() { + return request.get(`shop/cart`) +} +/** + * 购物车-删除 + */ +export function deleteCart(data : any) { + return request.put(`shop/cart/delete`, data) +} +/** + * 获取商品分类列表 + */ +export function categoryList(params : Record) { + return request.get(`shop/goods/category/list`, params) +} +/** + * 订单-计算(创建订单第1步) + */ +export function calculateCreate(params : Record) { + return request.get(`shop/order_create/calculate`, params) +} +/** + * 订单-创建(创建订单第2步-完成订单的创建) + */ +export function orderCreate(data : Record) { + return request.post(`shop/order_create/create`, data) +} + +/** + * 获取支付信息 + */ +export function getPayInfo(tradeType : string, tradeId : number) { + return request.get(`pay/info/${tradeType}/${tradeId}`, {}, { showErrorMessage: true }) +} +/** + * 去支付(第2步) + + */ +export function goPayy(data : Record) { + return request.post(`pay`,data) +} \ No newline at end of file diff --git a/src/app/api/system.ts b/src/app/api/system.ts new file mode 100644 index 0000000..462f82c --- /dev/null +++ b/src/app/api/system.ts @@ -0,0 +1,147 @@ +import request from '@/utils/request' + +/** + * 获取验证码 + */ +export function getCaptcha() { + return request.get('captcha', {}, {showErrorMessage: true}) +} + +/** + * 获取微信公众号授权码 + */ +export function getWechatAuthCode(data: AnyObject) { + return request.get('wechat/codeurl', data, {showErrorMessage: false}) +} + +/** + * 同步微信信息 + */ +export function wechatSync(data: AnyObject) { + return request.post('wechat/sync', data, {showErrorMessage: false}) +} + +/** + * 获取协议信息 + */ +export function getAgreementInfo(key: string) { + return request.get(`agreement/${key}`) +} + +/** + * 重置密码 + */ +export function resetPassword(data: AnyObject) { + return request.post(`password/reset`, data, {showErrorMessage: true}) +} + +/** + * 发送短信验证码 + */ +export function sendSms(data: AnyObject) { + return request.post(`send/mobile/${data.type}`, data, {showErrorMessage: true}) +} + +/** + * 获取微信jssdk config + */ +export function getWechatSkdConfig(data: AnyObject) { + return request.get('wechat/jssdkconfig', data, {showErrorMessage: false}) +} + +/** + * 上传图片 + */ +export function uploadImage(data: AnyObject) { + return request.upload('file/image', data, {showErrorMessage: true}) +} + +/** + * 拉取图片 + */ +export function fetchImage(data: AnyObject) { + return request.post('file/image/fetch', data) +} + +/** + * 拉取base64图片 + */ +export function fetchBase64Image(data: AnyObject) { + return request.post('file/image/base64', data) +} + +/** + * 获取站点信息 + */ +export function getSiteInfo() { + return request.get('site') +} + +/** + * 获取微信小程序订阅消息模板id + */ +export function getWeappTemplateId(keys: string) { + return request.get('weapp/subscribemsg', {keys}) +} + +/** + * 获取下级地址列表 + * @param pid + */ +export function getAreaListByPid(pid: number = 0) { + return request.get(`area/list_by_pid/${pid}`) +} + +/** + * 获取地址树列表 + * @param level + */ +export function getAreatree(level: number = 1) { + return request.get(`area/tree/${level}`) +} + +/** + * 获取地址 + * @param code + */ +export function getAreaByCode(code: number | string) { + return request.get(`area/code/${code}`) +} + +/** + * 通过经纬度查询地址 + * @param params + */ +export function getAddressByLatlng(params: Record) { + return request.get(`area/address_by_latlng`, params, {showErrorMessage: true}) +} + +/** + * 获取手机端首页列表 + */ +export function getWapIndexList(data: AnyObject) { + return request.get('wap_index', data) +} + +/** + * 获取海报 + * @returns + */ +export function getPoster(params: Record) { + return request.get("poster", params) +} + +/** + * 获取地图设置 + */ +export function getMap() { + return request.get('map') +} + +/** + * 通过外部交易号获取消息跳转路径 + * @param params + */ +export function getMsgJumpPath(params: Record) { + return request.get('weapp/getMsgJumpPath', params) +} diff --git a/src/app/api/verify.ts b/src/app/api/verify.ts new file mode 100644 index 0000000..d45dccc --- /dev/null +++ b/src/app/api/verify.ts @@ -0,0 +1,47 @@ +import request from '@/utils/request' + +/** + * 获取核销信息 + */ +export function getVerifyCode(type: string ,params: AnyObject) { + return request.get('verify', {type, data: params}) +} + +/** + * 获取核销记录 + */ +export function getVerifyRecords(params: Record) { + return request.get('verify_records', params) +} + +/** + * 判断是否是核销员 + */ +export function getCheckVerifier() { + return request.get('check_verifier') +} + + +/** + * 获取核销信息 + */ +export function getVerifierInfo(code: string) { + return request.get(`get_verify_by_code/${code}`) +} + +/** + * 核销 + */ +export function verify(code: string) { + return request.post(`verify/${code}`,{}, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 获取核销详情 + */ +export function getVerifyDetail(code: string) { + return request.get(`verify_detail/${code}`,{}, { showErrorMessage: true }) +} + + + diff --git a/src/app/components/diy/active-cube/index.vue b/src/app/components/diy/active-cube/index.vue new file mode 100644 index 0000000..fa50e36 --- /dev/null +++ b/src/app/components/diy/active-cube/index.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/app/components/diy/carousel-search/index.vue b/src/app/components/diy/carousel-search/index.vue new file mode 100644 index 0000000..0152ff2 --- /dev/null +++ b/src/app/components/diy/carousel-search/index.vue @@ -0,0 +1,634 @@ + + + + + \ No newline at end of file diff --git a/src/app/components/diy/float-btn/index.vue b/src/app/components/diy/float-btn/index.vue new file mode 100644 index 0000000..775cf4f --- /dev/null +++ b/src/app/components/diy/float-btn/index.vue @@ -0,0 +1,113 @@ + + + + + \ No newline at end of file diff --git a/src/app/components/diy/graphic-nav/index.vue b/src/app/components/diy/graphic-nav/index.vue new file mode 100644 index 0000000..bf27db7 --- /dev/null +++ b/src/app/components/diy/graphic-nav/index.vue @@ -0,0 +1,257 @@ + + + + + + diff --git a/src/app/components/diy/horz-blank/index.vue b/src/app/components/diy/horz-blank/index.vue new file mode 100644 index 0000000..42c10ed --- /dev/null +++ b/src/app/components/diy/horz-blank/index.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/app/components/diy/horz-line/index.vue b/src/app/components/diy/horz-line/index.vue new file mode 100644 index 0000000..bcab013 --- /dev/null +++ b/src/app/components/diy/horz-line/index.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/app/components/diy/hot-area/index.vue b/src/app/components/diy/hot-area/index.vue new file mode 100644 index 0000000..6bc95eb --- /dev/null +++ b/src/app/components/diy/hot-area/index.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/app/components/diy/image-ads/index.vue b/src/app/components/diy/image-ads/index.vue new file mode 100644 index 0000000..e388e4c --- /dev/null +++ b/src/app/components/diy/image-ads/index.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/app/components/diy/member-info/index.vue b/src/app/components/diy/member-info/index.vue new file mode 100644 index 0000000..a5d05b1 --- /dev/null +++ b/src/app/components/diy/member-info/index.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/app/components/diy/member-level/index.vue b/src/app/components/diy/member-level/index.vue new file mode 100644 index 0000000..0a7c775 --- /dev/null +++ b/src/app/components/diy/member-level/index.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/app/components/diy/notice/index.vue b/src/app/components/diy/notice/index.vue new file mode 100644 index 0000000..07e8ab5 --- /dev/null +++ b/src/app/components/diy/notice/index.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/src/app/components/diy/rich-text/index.vue b/src/app/components/diy/rich-text/index.vue new file mode 100644 index 0000000..73613cc --- /dev/null +++ b/src/app/components/diy/rich-text/index.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/app/components/diy/rubik-cube/index.vue b/src/app/components/diy/rubik-cube/index.vue new file mode 100644 index 0000000..176f05c --- /dev/null +++ b/src/app/components/diy/rubik-cube/index.vue @@ -0,0 +1,590 @@ + + + + + diff --git a/src/app/components/diy/text/index.vue b/src/app/components/diy/text/index.vue new file mode 100644 index 0000000..78dcdf6 --- /dev/null +++ b/src/app/components/diy/text/index.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/app/components/fixed/demo-index/index.vue b/src/app/components/fixed/demo-index/index.vue new file mode 100644 index 0000000..df0379a --- /dev/null +++ b/src/app/components/fixed/demo-index/index.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/app/components/tag/tag.vue b/src/app/components/tag/tag.vue new file mode 100644 index 0000000..bdb51f2 --- /dev/null +++ b/src/app/components/tag/tag.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/src/app/locale/en/pages.setting.index.json b/src/app/locale/en/pages.setting.index.json new file mode 100644 index 0000000..bde9e26 --- /dev/null +++ b/src/app/locale/en/pages.setting.index.json @@ -0,0 +1,6 @@ +{ + "personalSettings": "Personal settings", + "switchLang": "Switch language", + "version": "Version", + "logout": "Log out" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.article.detail.json b/src/app/locale/zh-Hans/pages.article.detail.json new file mode 100644 index 0000000..ca6b8c2 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.article.detail.json @@ -0,0 +1,5 @@ +{ + "detail": "文章详情", + "abstract": "摘要", + "loadingText": "正在加载" +} diff --git a/src/app/locale/zh-Hans/pages.article.list.json b/src/app/locale/zh-Hans/pages.article.list.json new file mode 100644 index 0000000..1770d8c --- /dev/null +++ b/src/app/locale/zh-Hans/pages.article.list.json @@ -0,0 +1,7 @@ +{ + "list": "文章列表", + "noData": "~ 暂无数据 ~", + "all": "全部", + "end": "-- 到底了 --", + "searchPlaceholder": "请输入搜索关键词" +} diff --git a/src/app/locale/zh-Hans/pages.auth.bind.json b/src/app/locale/zh-Hans/pages.auth.bind.json new file mode 100644 index 0000000..c02202f --- /dev/null +++ b/src/app/locale/zh-Hans/pages.auth.bind.json @@ -0,0 +1,10 @@ +{ + "bindMobile": "绑定手机号", + "bind": "绑定", + "binding": "绑定中", + "agreeTips": "请阅读并同意", + "pleaceAgree": "请勾选已阅读并同意", + "mobilePlaceholder": "请输入手机号", + "codePlaceholder": "请输入验证码", + "weixinUserAuth": "微信用户一键绑定" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.auth.login.json b/src/app/locale/zh-Hans/pages.auth.login.json new file mode 100644 index 0000000..94bfa6b --- /dev/null +++ b/src/app/locale/zh-Hans/pages.auth.login.json @@ -0,0 +1,14 @@ +{ + "logining": "登录中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "resetpwd": "忘记密码", + "noAccount": "还没有账号", + "toRegister": "去注册", + "and": "和", + "agreeTips": "登录代表您同意", + "isAgreeTips": "请先阅读并同意协议", + "usernameLogin": "密码登录", + "mobileLogin": "验证码登录", + "mobilePlaceholder": "请输入手机号" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.auth.register.json b/src/app/locale/zh-Hans/pages.auth.register.json new file mode 100644 index 0000000..961a082 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.auth.register.json @@ -0,0 +1,16 @@ +{ + "registering": "注册中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "confirmPasswordPlaceholder": "请再次确认密码", + "confirmPasswordError": "两次输入的密码不一致", + "resetpwd": "忘记密码", + "haveAccount": "已有账号", + "toLogin": "去登录", + "and": "和", + "registerAgreeTips": "注册代表您同意", + "isAgreeTips": "请先阅读并同意协议", + "usernameRegister": "账号注册", + "mobileRegister": "手机号注册", + "mobilePlaceholder": "请输入手机号" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.auth.resetpwd.json b/src/app/locale/zh-Hans/pages.auth.resetpwd.json new file mode 100644 index 0000000..8422899 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.auth.resetpwd.json @@ -0,0 +1,6 @@ +{ + "findPassword": "找回密码", + "passwordPlaceholder": "请输入密码", + "confirmPasswordPlaceholder": "请再次确认密码", + "confirmPasswordError": "两次输入的密码不一致" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.index.develop.json b/src/app/locale/zh-Hans/pages.index.develop.json new file mode 100644 index 0000000..f54fd23 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.index.develop.json @@ -0,0 +1,10 @@ +{ + "developTitle":"开发环境配置", + "baseUrl":"API请求地址", + "imgUrl":"图片服务器地址", + "siteId":"站点ID(VITE_SITE_ID)", + "siteIdPlaceholder": "请输入站点ID", + "pleaseEnterNumber":"请输入数字", + "maximumCannotExceed":"最大不能超过" + +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.account.json b/src/app/locale/zh-Hans/pages.member.account.json new file mode 100644 index 0000000..c853542 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.account.json @@ -0,0 +1,7 @@ +{ + "alipayAccountNo": "支付宝账号", + "addBankCard": "添加银行卡", + "addAlipayAccount": "添加支付宝账号", + "endNumber": "尾号", + "bankCard": "银行卡" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.account_edit.json b/src/app/locale/zh-Hans/pages.member.account_edit.json new file mode 100644 index 0000000..27dd321 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.account_edit.json @@ -0,0 +1,17 @@ +{ + "addBankCard": "添加银行卡", + "addBankCardTips": "请添加持卡人本人的银行卡", + "addAlipayAccount": "添加支付宝账号", + "addAlipayAccountTips": "请添加已实名的支付宝账号", + "bankRealname": "持卡人姓名", + "bankRealnamePlaceholder": "请输入持卡人姓名", + "bankName": "银行名称", + "bankNamePlaceholder": "请输入银行名称", + "bankAccountNo": "银行卡号", + "bankAccountNoPlaceholder": "请输入银行卡号", + "alipayRealname": "真实姓名", + "alipayRealnamePlaceholder": "请输入真实姓名", + "alipayAccountNo": "支付宝账号", + "alipayAccountNoPlaceholder": "请输入支付宝账号", + "deleteConfirm": "确定要删除该账号吗?" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.address.json b/src/app/locale/zh-Hans/pages.member.address.json new file mode 100644 index 0000000..cee5bf2 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.address.json @@ -0,0 +1,6 @@ +{ + "address": "快递地址", + "locationAddress": "同城配送地址", + "createAddress": "新建收货地址", + "default": "默认" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.address_edit.json b/src/app/locale/zh-Hans/pages.member.address_edit.json new file mode 100644 index 0000000..16563d3 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.address_edit.json @@ -0,0 +1,12 @@ +{ + "name": "收货人", + "namePlaceholder": "请输入收货人姓名", + "mobile": "手机号码", + "mobilePlaceholder": "请输入手机号码", + "selectArea":"选择地区", + "selectAreaPlaceholder":"请选择地区", + "address": "详细地址", + "addressPlaceholder": "请填写详细地址", + "defaultAddress": "设为默认地址", + "selectAddressPlaceholder":"请选择地址" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.apply_cash_out.json b/src/app/locale/zh-Hans/pages.member.apply_cash_out.json new file mode 100644 index 0000000..f12234b --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.apply_cash_out.json @@ -0,0 +1,30 @@ +{ + "cashOutNow": "立即提现", + "balanceDetail": "余额明细", + "cashOutTo": "提现到", + "cashOutTypePlaceholder": "请选择提现方式", + "wechatpay": "微信默认钱包", + "cashOutMoneyTip": "提现金额", + "money": "可提现余额", + "allTx": "全部提现", + "minWithdrawal": "最小提现金额为", + "commissionTo": "手续费为", + "cashOutList": "提现记录", + "cashOutToWechat": "提现至微信", + "cashOutToWechatTips": "提现至微信零钱", + "cashOutToAlipay": "提现至支付宝", + "cashOutToAlipayTips": "请先添加支付宝账号", + "cashOutToBank": "提现至银行卡", + "cashOutToBankTips": "请先添加银行卡", + "alipayAccountNo": "支付宝账号", + "debitCard": "储蓄卡", + "abnormalOperation": "异常操作", + "noAvailableCashOutType": "没有可用的提现方式", + "applyMoneyPlaceholder": "请输入提现金额", + "moneyformatError": "提现金额格式错误", + "applyMoneyExceed": "提现金额超出可提现金额", + "applyMoneyBelow": "提现金额小于最低提现金额", + "replace": "更换", + "isOpenApply": "提现设置未开启", + "toAdd": "添加" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.balance.json b/src/app/locale/zh-Hans/pages.member.balance.json new file mode 100644 index 0000000..f201d71 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.balance.json @@ -0,0 +1,15 @@ +{ + "balanceInfo": "我的余额", + "recharge": "充值", + "cashOut":"提现", + "balanceDetail": "余额明细", + "accountBalance":"账户余额 (元)", + "balance":"余额 (元)", + "money":"可提现余额 (元)", + "availableBalance": "可用余额", + "rechargeAmountError": "充值金额错误", + "clickRecharge": "立即充值", + "rechargeAmountPlaceholder": "请输入充值金额", + "yuan":"元", + "rechargeRecord":"充值记录" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.cash_out.json b/src/app/locale/zh-Hans/pages.member.cash_out.json new file mode 100644 index 0000000..5ab0bd0 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.cash_out.json @@ -0,0 +1,11 @@ +{ + "applyTime": "申请时间", + "toBeReviewed": "官方正在审核,请耐心等待", + "toBeTransfer": "官方正在转账,请耐心等待", + "transfer": "官方已转账,请及时查收", + "cancelApply": "申请已取消", + "balanceDetail": "余额记录", + "commissionDetail": "佣金记录", + "emptyTip": "暂无提现记录", + "commissemptyTip": "暂无佣金记录" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.cash_out_detail.json b/src/app/locale/zh-Hans/pages.member.cash_out_detail.json new file mode 100644 index 0000000..3f17229 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.cash_out_detail.json @@ -0,0 +1,12 @@ +{ + "statusName": "当前状态", + "cashOutNo": "交易号", + "serviceMoney": "手续费", + "createTime": "申请时间", + "auditTime": "审核时间", + "transferBank": "银行名称", + "transferAccount": "收款账号", + "refuseReason": "拒绝理由", + "transferTypeName": "转账方式名称", + "transferTime": "转账时间" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.commission.json b/src/app/locale/zh-Hans/pages.member.commission.json new file mode 100644 index 0000000..3eef972 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.commission.json @@ -0,0 +1,15 @@ +{ + "recharge": "充值", + "cashOut":"提现", + "transferMoney":"提现", + "commissionDetail": "佣金明细", + "accountCommission":"当前佣金(元)", + "commission":"累计佣金(元)", + "money":"提现中佣金(元)", + "availableCommission": "可用佣金", + "rechargeAmountError": "充值金额错误", + "clickRecharge": "立即充值", + "rechargeAmountPlaceholder": "请输入充值金额", + "yuan":"元", + "commissionInfo": "我的佣金" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.detailed_account.json b/src/app/locale/zh-Hans/pages.member.detailed_account.json new file mode 100644 index 0000000..5527d0f --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.detailed_account.json @@ -0,0 +1,7 @@ +{ + "balanceDetail": "余额明细", + "commissionDetail": "佣金明细", + "balanceEmptyTip": "暂无余额明细", + "moneyEmptyTip": "暂无提现明细", + "commissionEmptyTip": "暂无佣金明细" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.location_address_edit.json b/src/app/locale/zh-Hans/pages.member.location_address_edit.json new file mode 100644 index 0000000..6dbc742 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.location_address_edit.json @@ -0,0 +1,14 @@ +{ + "name": "收货人", + "namePlaceholder": "请输入收货人姓名", + "mobile": "手机号码", + "mobilePlaceholder": "请输入手机号码", + "deliveryAddress":"收货地址", + "selectAddress":"选择地址", + "selectAddressPlaceholder":"请选择地址", + "address": "楼号门牌", + "addressPlaceholder": "详细地址如 1单元101", + "addressError": "请填写门牌号", + "defaultAddress": "设为默认地址", + "update": "修改" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.personal.json b/src/app/locale/zh-Hans/pages.member.personal.json new file mode 100644 index 0000000..fca88d0 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.personal.json @@ -0,0 +1,12 @@ +{ + "nickname": "昵称", + "sex": "性别", + "mobile": "手机号", + "birthday": "生日", + "unknown": "未知", + "updateHeadimg": "更换头像", + "updateNickname": "修改昵称", + "man": "男", + "woman": "女", + "bindMobile": "绑定手机" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.recharge_record.json b/src/app/locale/zh-Hans/pages.member.recharge_record.json new file mode 100644 index 0000000..5b3a1d8 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.recharge_record.json @@ -0,0 +1,4 @@ +{ + "rechargeRecord": "充值记录", + "emptyTip": "暂无充值记录" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.recharge_record_detail.json b/src/app/locale/zh-Hans/pages.member.recharge_record_detail.json new file mode 100644 index 0000000..0646047 --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.recharge_record_detail.json @@ -0,0 +1,4 @@ +{ + "orderNo": "订单编号", + "createTime": "创建时间" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.member.withdrawal_detail.json b/src/app/locale/zh-Hans/pages.member.withdrawal_detail.json new file mode 100644 index 0000000..288248b --- /dev/null +++ b/src/app/locale/zh-Hans/pages.member.withdrawal_detail.json @@ -0,0 +1,13 @@ +{ + "recharge": "充值", + "cashOut":"提现", + "balanceDetail": "余额明细", + "accountBalance":"账户余额(元)", + "balance":"余额(元)", + "money":"可提现余额(元)", + "availableBalance": "可用余额", + "rechargeAmountError": "充值金额错误", + "clickRecharge": "立即充值", + "rechargeAmountPlaceholder": "请输入充值金额", + "yuan":"元" +} \ No newline at end of file diff --git a/src/app/locale/zh-Hans/pages.setting.index.json b/src/app/locale/zh-Hans/pages.setting.index.json new file mode 100644 index 0000000..fc3ef4b --- /dev/null +++ b/src/app/locale/zh-Hans/pages.setting.index.json @@ -0,0 +1,6 @@ +{ + "personalSettings": "个人设置", + "switchLang": "切换语言", + "version": "版本号", + "logout": "退出登录" +} \ No newline at end of file diff --git a/src/app/pages/auth/agreement.vue b/src/app/pages/auth/agreement.vue new file mode 100644 index 0000000..f046ac9 --- /dev/null +++ b/src/app/pages/auth/agreement.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/app/pages/auth/bind.vue b/src/app/pages/auth/bind.vue new file mode 100644 index 0000000..bd7e1cf --- /dev/null +++ b/src/app/pages/auth/bind.vue @@ -0,0 +1,205 @@ + + + + + + diff --git a/src/app/pages/auth/login.vue b/src/app/pages/auth/login.vue new file mode 100644 index 0000000..df2e839 --- /dev/null +++ b/src/app/pages/auth/login.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/src/app/pages/auth/register.vue b/src/app/pages/auth/register.vue new file mode 100644 index 0000000..35ae99a --- /dev/null +++ b/src/app/pages/auth/register.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/app/pages/auth/resetpwd.vue b/src/app/pages/auth/resetpwd.vue new file mode 100644 index 0000000..26b8eea --- /dev/null +++ b/src/app/pages/auth/resetpwd.vue @@ -0,0 +1,135 @@ + + + + + \ No newline at end of file diff --git a/src/app/pages/commodity/commodity.png b/src/app/pages/commodity/commodity.png new file mode 100644 index 0000000000000000000000000000000000000000..c921f5271ef459aba26351e8fc663586954fc052 GIT binary patch literal 355 zcmV-p0i6DcP)y8 za(Nf{KvAkNL9@o!CCt4bXMnJiO!HAIcT3V4GPkE>pcQ9g=LQJwm3-a`oHx9`SKR{G zs=Bv_E9*D7P1WKYn!_1ii4KD9fD-bjf=cGuC2!v&5%V^NSzG`B002ovPDHLkV1n6F Bo*DoE literal 0 HcmV?d00001 diff --git a/src/app/pages/commodity/index.vue b/src/app/pages/commodity/index.vue new file mode 100644 index 0000000..d21042d --- /dev/null +++ b/src/app/pages/commodity/index.vue @@ -0,0 +1,156 @@ + + + + + \ No newline at end of file diff --git a/src/app/pages/electionList/index.vue b/src/app/pages/electionList/index.vue new file mode 100644 index 0000000..a5c4930 --- /dev/null +++ b/src/app/pages/electionList/index.vue @@ -0,0 +1,13 @@ +//选举列表 + + + + + \ No newline at end of file diff --git a/src/app/pages/electionResults/index.vue b/src/app/pages/electionResults/index.vue new file mode 100644 index 0000000..6ce6311 --- /dev/null +++ b/src/app/pages/electionResults/index.vue @@ -0,0 +1,14 @@ +//选举结果 + + + + + \ No newline at end of file diff --git a/src/app/pages/mine/index.vue b/src/app/pages/mine/index.vue new file mode 100644 index 0000000..c0011f5 --- /dev/null +++ b/src/app/pages/mine/index.vue @@ -0,0 +1,14 @@ +//个人信息 + + + + + + \ No newline at end of file diff --git a/src/app/pages/myElection/index.vue b/src/app/pages/myElection/index.vue new file mode 100644 index 0000000..648148c --- /dev/null +++ b/src/app/pages/myElection/index.vue @@ -0,0 +1,14 @@ +//我的选举 + + + + + \ No newline at end of file diff --git a/src/app/pages/votingElection/index.vue b/src/app/pages/votingElection/index.vue new file mode 100644 index 0000000..66ae9d4 --- /dev/null +++ b/src/app/pages/votingElection/index.vue @@ -0,0 +1,120 @@ +//投票选举 + + + + + \ No newline at end of file diff --git a/src/app/pages/webview/index.vue b/src/app/pages/webview/index.vue new file mode 100644 index 0000000..f78c1b3 --- /dev/null +++ b/src/app/pages/webview/index.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/src/app/stores/diy.ts b/src/app/stores/diy.ts new file mode 100644 index 0000000..ce9dd5a --- /dev/null +++ b/src/app/stores/diy.ts @@ -0,0 +1,138 @@ +import { defineStore } from 'pinia' +import { toRaw } from 'vue' +import { diyRedirect, currRoute, getToken } from '@/utils/common'; +import { useLogin } from '@/hooks/useLogin'; + +interface Diy { + mode: string, // 模式:decorate 装修,为空表示正常 + pageMode: string, // 页面展示模式,diy:自定义,fixed:固定 + currentIndex: number, + global: { + title: string, + pageStartBgColor: string, // 页面背景颜色(开始) + pageEndBgColor: string, // 页面背景颜色(结束) + bottomTabBarSwitch: boolean, // 底部导航开关 + bgUrl: string + }, + // 组件集合 + value: any[], + topFixedStatus: string, // 置顶组件的状态 + scrollTop: number, + topTabarHeight: number +} + +const useDiyStore = defineStore('diy', { + state: (): Diy => { + return { + mode: '', + pageMode: 'diy', + currentIndex: -99, + global: { + title: "", + pageStartBgColor: '', // 页面背景颜色(开始) + pageEndBgColor: '', // 页面背景颜色(结束) + bottomTabBarSwitch: true, + bgUrl: '' + }, + value: [], // 组件集合 + topFixedStatus: 'home', // 顶部 置顶组件状态,home:展示首页数据、diy:展示置顶组件定义的子页面 + scrollTop: 0, // 滚动位置 + topTabarHeight: 0 + } + }, + getters: {}, + actions: { + // 初始化 + init() { + // #ifdef H5 + var data = JSON.stringify({ + type: 'init', + load: true + }); + // 传输给后台数据 + window.parent.postMessage(data, '*'); + + // 监听父页面发来的消息 + window.addEventListener('message', event => { + try { + let data = JSON.parse(event.data); + this.currentIndex = data.currentIndex; + this.pageMode = data.pageMode; + if (data.global) this.global = data.global; + if (data.value) this.value = data.value; + + if (this.value) { + this.value.forEach((item, index) => { + item.pageStyle = ''; + if (item.pageStartBgColor) { + if (item.pageStartBgColor && item.pageEndBgColor) item.pageStyle += `background:linear-gradient(${ item.pageGradientAngle },${ item.pageStartBgColor },${ item.pageEndBgColor });`; + else item.pageStyle += 'background-color:' + item.pageStartBgColor + ';'; + } + + if (item.margin) { + if (item.margin.top > 0) { + item.pageStyle += 'padding-top:' + item.margin.top * 2 + 'rpx' + ';'; + } else { + item.pageStyle += 'padding-top:2rpx' + ';'; // 装修实时预览需要设置 + } + item.pageStyle += 'padding-bottom:' + item.margin.bottom * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-right:' + item.margin.both * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-left:' + item.margin.both * 2 + 'rpx' + ';'; + } + }); + } + // console.log('uniapp 接受后台装修返回的组件数据', data); + } catch (e) { + console.log('uni-app diy 接受数据错误', e) + } + }, false); + // #endif + }, + // 将数据传输给后台 + postMessage(index: any, component: any) { + // #ifdef H5 + this.currentIndex = index; + if (component) + var data: any = JSON.stringify({ + type: 'data', + index: this.currentIndex, + global: toRaw(this.global), + value: toRaw(this.value), + component: toRaw(component) + }); + // 传输给后台数据 + window.parent.postMessage(data, '*'); + // #endif + }, + // 选中正在编辑的组件 + changeCurrentIndex(index: number, component: any = null) { + // #ifdef H5 + + // 实际展示禁止编辑 + if (this.mode == '') return; + + // 减少重复请求 + if (this.currentIndex == index) return; + this.currentIndex = index; + var data = JSON.stringify({ + type: 'change', + index, + component: toRaw(component) + }); + window.parent.postMessage(data, '*'); + // #endif + }, + toRedirect(data: any) { + if (Object.keys(data).length) { + if (!data.name) return; + if (currRoute() == 'app/pages/member/index' && !getToken()) { + useLogin().setLoginBack({ url: data.url }) + return; + } + diyRedirect(data); + } + } + } +}) + +export default useDiyStore \ No newline at end of file diff --git a/src/components/area-select/area-select.vue b/src/components/area-select/area-select.vue new file mode 100644 index 0000000..cf86629 --- /dev/null +++ b/src/components/area-select/area-select.vue @@ -0,0 +1,154 @@ + + + + + \ No newline at end of file diff --git a/src/components/information-filling/information-filling.vue b/src/components/information-filling/information-filling.vue new file mode 100644 index 0000000..83026b4 --- /dev/null +++ b/src/components/information-filling/information-filling.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/src/components/libs/config/index.ts b/src/components/libs/config/index.ts new file mode 100644 index 0000000..9ec304a --- /dev/null +++ b/src/components/libs/config/index.ts @@ -0,0 +1,22 @@ +const version = '3' + +// 开发环境才提示,生产环境不会提示 +if (process.env.NODE_ENV === 'development') { + console.log(`\n %c lxui-uni V${version} %c https://blog.csdn.net/qq_51091386/article/details/138125947 \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0;', 'color: #3c9cff;background: #ffffff; padding:5px 0;'); +} + +export let uploadUrl = '/api/v1.Resources/upload' +export let uploadBaseUrl = '' +const setConfig = (config: any) => { + console.log(config) + if (config?.uploadUrl) { + uploadUrl = config.uploadUrl + } + if (config?.uploadBaseUrl) { + uploadBaseUrl = config.uploadBaseUrl + } +} +export default { + version, + setConfig +} \ No newline at end of file diff --git a/src/components/libs/hooks/useListLoadClass/index.ts b/src/components/libs/hooks/useListLoadClass/index.ts new file mode 100644 index 0000000..ae48474 --- /dev/null +++ b/src/components/libs/hooks/useListLoadClass/index.ts @@ -0,0 +1,145 @@ +/* + * @description: 分页请求 + * @fileName: useListLoadClass.ts + * @author: lxx + * @date: 2023-07-08 08:55:52 + * @version: V1.0.0 + */ +import { reactive, ref, computed } from "vue" +import { onReachBottom } from "@dcloudio/uni-app" + +class LoadDataClass { + // 请求参数 + static queryParams = reactive({ + page: 1, + limit: 10 + }) + // 列表数据 + list = ref([]) + total = ref(0) + // 前置处理方法 + afterLoadData: Function | undefined + // 请求方法 + Query: Function + // 加载状态参数 + isLoading = ref(false) + // 无更多数据了 + isNoData = computed(() => { + if (LoadDataClass.queryParams.page * LoadDataClass.queryParams.limit >= this.total.value) { + return true + } else { + return false + } + }) + // 显示暂无数据 + isEmpty = computed(() => { + if (this.total.value === 0) { + return true + } else { + return false + } + }) + + constructor(apiFunctions: Function, afterLoadData?: Function, options: any = {}) { + this.queryParamsReset() + this.Query = apiFunctions + this.afterLoadData = afterLoadData + // console.log('options', options) + // 存在额外参数拼接 + this.setParams(options) + } + // 加载数据 + LoadData = async () => { + uni.showLoading({ + title: '加载中...' + }) + this.isLoading.value = true + const res = await this.Query(LoadDataClass.queryParams) + this.afterLoadData && this.afterLoadData(res) + this.total.value = res.data.total + this.list.value = this.list.value.concat(res.data.data) + + uni.hideLoading() + uni.stopPullDownRefresh() + this.isLoading.value = false + } + /** + * 添加额外参数刷新 + * @param options: 参数 + * @param isClear: 是否清空数据 false + */ + setParams = (options: any, isClear: boolean = false) => { + if (isClear) { + this.queryParamsReset() + } else { + LoadDataClass.queryParams.page = 1 + } + this.list.value = [] + LoadDataClass.queryParams = Object.assign(LoadDataClass.queryParams, options) + // 加载数据 + this.LoadData() + } + // 加载更多 + LoadMore = () => { + if (this.isNoData.value || this.isLoading.value) return // 无数据或者加载中不进行加载 + LoadDataClass.queryParams.page += 1 + this.LoadData() + } + // 重置参数 + queryParamsReset = () => { + LoadDataClass.queryParams = reactive({ + page: 1, + limit: 10 + }) + } + + /** + * 刷新 + * @param isClear: 是否清空数据 + */ + ReLoad = (isClear: boolean = false) => { + this.isLoading.value = false + this.list.value = [] + if (isClear) { + this.queryParamsReset() + } else { + LoadDataClass.queryParams.page = 1 + } + this.LoadData() + } +} +/** + * 分页加载数据方法 + * @param api: ListAPI 方法 + * @param afterLoadData: res数据前置处理方法 + * @returns + */ +interface LoadDataInt { + api: Function + afterLoadData?: Function + options?: any + isNeedReachBottom?: boolean +} + +export function LoadData({ api, afterLoadData, options, isNeedReachBottom = true }: LoadDataInt) { + const data = new LoadDataClass(api, afterLoadData, options) + + // 下拉加载 + if (isNeedReachBottom) { + onReachBottom(() => { + console.log('onReachBottom') + data.LoadMore() + }) + } + + return { + list: data.list, + isLoading: data.isLoading, + isNoData: data.isNoData, + isEmpty: data.isEmpty, + ReLoad: data.ReLoad, + setParams: data.setParams, + LoadMore: data.LoadMore + } +} + diff --git a/src/components/libs/util/index.ts b/src/components/libs/util/index.ts new file mode 100644 index 0000000..b2a4b42 --- /dev/null +++ b/src/components/libs/util/index.ts @@ -0,0 +1,294 @@ +/** + * 公共跳转方法 + * @author liux + * @date 2023-08-15 14:17 + * @param { string } url 跳转路径 + * @param { "navigateTo" | "redirectTo" | "reLaunch" | "switchTab" } [mode=navigateTo] 跳转模式 + * @param { object } params 跳转传参 + * @example + * goToPage({ url: 'pages/index/index', mode: 'navigateTo', params: {'id': 1} }) + * @returns { void } + */ +type pageMode = 'navigateTo' | 'redirectTo' | 'reLaunch' | 'switchTab' + +interface goToPageInt { + url: string + mode?: pageMode + params?: { + [n: string]: string | number | boolean + } +} + +export const goToPage = ({ url, mode = 'navigateTo', params = {} }: goToPageInt): void => { + if (!url || url.length === 0) { + throw Error('"url" is a required parameter') + } + + const urlEncode = (params: any = {}) => { + const result :string[] = [] + for (const k in params) { + if (!params[k]) continue + result.push(k + '=' + params[k]) + } + + return result.join('&') + } + // const storage = JSON.parse(uni.getStorageSync('LX_user')) + // const token = storage?.userInfo?.token + // if(!token) { + // url = 'pages/login/loginXcx' + // mode = 'navigateTo' + // } + const queryStr = !isEmpty(params) ? '?' + urlEncode(params) : '' + const obj = { url: `/${url}${queryStr}` } + // console.log('obj', obj) + switch (mode) { + case 'navigateTo': + uni.navigateTo(obj) + break + case 'redirectTo': + uni.redirectTo(obj) + break + case 'reLaunch': + uni.reLaunch(obj) + break + case 'switchTab': + uni.switchTab(obj) + break + default: + throw Error(`${mode} does not exist`) + } +} + +/** + * 判断是否为空对象 + * @author liux + * @date 2023-08-15 14:17 + * @license MIT + * @param {*} object 源对象 + * @returns { boolean } + */ +export const isEmptyObject = (object: any): boolean => { + return Object.keys(object).length === 0 +} + +/** + * 判断是否为对象 + * @author liux + * @date 2023-08-15 14:17 + * @license MIT + * @param {*} object 源对象 + * @returns { boolean } + */ +export const isObject = (object: any): boolean => { + return Object.prototype.toString.call(object) === '[object Object]' +} + +/** + * 判断是否为数组 + * @author liux + * @license MIT + * @param {*} object 源对象 + * @returns { boolean } + */ +export const isArray = (object: any): boolean => { + return Object.prototype.toString.call(object) === '[object Array]' +} + +/** + * 判断是否为空 + * @author liux + * @license MIT + * @param {*} value 源对象 + * @returns { boolean } + */ +export const isEmpty = (value: any): boolean => { + if (isArray(value)) { + return value.length === 0 + } + if (isObject(value)) { + return isEmptyObject(value) + } + return !value +} + +/** + * 格式化时间戳(多格式) + * @author liux + * @license MIT + * @param { number } time 长度为 10 | 13 的时间戳 + * @param { string } [format=yyyy-MM-dd] format 转换格式 + * @example + * formatTime(1691744378556, 'yyyy-MM-dd HH:mm:ss') + * @returns { string } + */ + +export const formatTime = (time: number, format: string = 'yyyy-MM-dd HH:mm:ss'): string => { + const len = time.toString().trim().length + if (len !== 10 && len !== 13) { + throw Error('"time" is a error parameter') + } + + time = len !== 13 ? time * 1000 : time + + if (!time) return '' + const date = new Date(time) + const M = (date.getMonth() + 1).toString() + const d = date.getDate().toString() + const H = date.getHours().toString() + const m = date.getMinutes().toString() + const s = date.getSeconds().toString() + const timeObject: { + [n: string]: string + } = { + yyyy: date.getFullYear().toString(), + MM: M.padStart(2, '0'), + dd: d.padStart(2, '0'), + HH: H.padStart(2, '0'), + mm: m.padStart(2, '0'), + ss: s.padStart(2, '0'), + M: M, + d: d, + H: H, + m: m, + s: s + } + const reg = new RegExp(Object.keys(timeObject).join('|'), 'g') + const res = format.replace(reg, (k) => { + return timeObject[k] + }) + return res +} + +// 判断当前时间是否在一个时间区间内 +export const isTimeIn = (start: string, end: string) => { + // 获取当前时间 + const currentTime = new Date() + const startArr = start.split(':').map(Number) + // 设置开始时间为10:00 + const startTime = new Date() + startTime.setHours(startArr[0], startArr[1]) + + // 设置结束时间为20:00 + const endArr = end.split(':').map(Number) + const endTime = new Date() + endTime.setHours(endArr[0], endArr[1]) + + // 检查当前时间是否在10:00到20:00之间 + if (currentTime >= startTime && currentTime <= endTime) { + // console.log('当前时间在之间') + } else { + // console.log('当前时间不在之间') + } +} + +/** + * 防抖函数 + * @author liux + * @license MIT + * @param {function} fn + * @param {umber} [wait=1000] wait + * @returns { void } + */ +export const debounce = any>(fn: T, wait: number = 1000): ((...args: Parameters) => void) => { + let timer: any + + return function (this: any, ...args: Parameters) { + if (timer) clearTimeout(timer) + + timer = setTimeout(() => { + fn.apply(this, args) + }, wait) + } +} + +/** + * 节流函数 + * @author liux + * @date 2023-08-15 14:17 + * @license MIT + * @param { function } fn + * @param { number } [wait=1000] wait + */ +export const throttle = any>(fn: T, wait: number = 1000) => { + let timer: number = Date.now() + return function (this: any, ...args: Parameters) { + if (Date.now() - timer >= wait) { + fn.apply(this, args) + timer = Date.now() + } + } +} + +/** + * 保存图片到本地 + * @author liux + * @param { string } url 需要下载的图片 + * @example + * saveImgData('/upload/images/img.png') + * @returns + */ +export const saveImgData = debounce((url: string) => { + uni.showLoading({ title: '图片保存中...', mask: true }) + // 判断图片地址是否有http + if (url.indexOf('http') === -1) { + url = import.meta.env.VITE_APP_BASE_URL + url + } + uni.downloadFile({ + url, + success: (res: any) => { + if (res.statusCode === 200) { + uni.saveImageToPhotosAlbum({ + filePath: res.tempFilePath, + success: () => { + uni.showToast({ + title: '保存成功~', + icon: 'none', + duration: 2000 + }) + }, + fail: () => { + uni.showToast({ + title: '保存失败~', + icon: 'none', + duration: 2000 + }) + }, + complete: () => { + uni.hideLoading() + } + }) + } + } + }) +}) + +/** + * 设置剪贴板 + * @author liux + * @param { string } data 需要复制的内容 + * @example + * setClipboardData('123456') + * @returns + */ +export const setClipboardData = (data: string) => { + uni.setClipboardData({ + data: data, + success: () => { + uni.showToast({ + title: '复制成功', + icon: 'none', + duration: 2000 + }) + } + }) +} + +export default { + goToPage, + formatTime, + debounce, + throttle, + saveImgData, + setClipboardData +} diff --git a/src/components/liu-checkBox/liu-checkBox.vue b/src/components/liu-checkBox/liu-checkBox.vue new file mode 100644 index 0000000..5681577 --- /dev/null +++ b/src/components/liu-checkBox/liu-checkBox.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/components/lx-header/lx-header.vue b/src/components/lx-header/lx-header.vue new file mode 100644 index 0000000..5339e9c --- /dev/null +++ b/src/components/lx-header/lx-header.vue @@ -0,0 +1,249 @@ + + + + + +../../libs/util \ No newline at end of file diff --git a/src/components/lx-img/lx-img.vue b/src/components/lx-img/lx-img.vue new file mode 100644 index 0000000..e5d3f97 --- /dev/null +++ b/src/components/lx-img/lx-img.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file diff --git a/src/components/lx-list-state/lx-list-state.vue b/src/components/lx-list-state/lx-list-state.vue new file mode 100644 index 0000000..941b18d --- /dev/null +++ b/src/components/lx-list-state/lx-list-state.vue @@ -0,0 +1,92 @@ + + + + diff --git a/src/components/lx-list/lx-list.vue b/src/components/lx-list/lx-list.vue new file mode 100644 index 0000000..47bdc3b --- /dev/null +++ b/src/components/lx-list/lx-list.vue @@ -0,0 +1,102 @@ + + + \ No newline at end of file diff --git a/src/components/mescroll/hooks/useMescroll.js b/src/components/mescroll/hooks/useMescroll.js new file mode 100644 index 0000000..ef91cd1 --- /dev/null +++ b/src/components/mescroll/hooks/useMescroll.js @@ -0,0 +1,66 @@ +// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173 +// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app'; + +/** + * 初始化mescroll, 相当于vue2的mescroll-mixins.js文件 (mescroll-body 和 mescroll-uni 通用) + * mescroll-body需传入onPageScroll, onReachBottom + * mescroll-uni无需传onPageScroll, onReachBottom + * 当down.native为true时,需传入onPullDownRefresh + */ +function useMescroll(onPageScroll, onReachBottom, onPullDownRefresh){ + // mescroll实例对象 + let mescroll = null; + + // mescroll组件初始化的回调,可获取到mescroll对象 + const mescrollInit = (e)=> { + mescroll = e; + } + + // 获取mescroll对象, mescrollInit执行之后会有值, 生命周期created中会有值 + const getMescroll = ()=>{ + return mescroll + } + + // 下拉刷新的回调 (mixin默认resetUpScroll) + const downCallback = ()=> { + if(mescroll.optUp.use){ + mescroll.resetUpScroll() + }else{ + setTimeout(()=>{ + mescroll.endSuccess(); + }, 500) + } + } + + // 上拉加载的回调 + const upCallback = ()=> { + // mixin默认延时500自动结束加载 + setTimeout(()=>{ + mescroll.endErr(); + }, 500) + } + + // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + onPullDownRefresh && onPullDownRefresh(() => { + mescroll && mescroll.onPullDownRefresh(); + }) + + // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onPageScroll && onPageScroll(e=>{ + mescroll && mescroll.onPageScroll(e); + }) + + // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onReachBottom && onReachBottom(()=>{ + mescroll && mescroll.onReachBottom(); + }) + + return { + getMescroll, + mescrollInit, + downCallback, + upCallback + } +} + +export default useMescroll \ No newline at end of file diff --git a/src/components/mescroll/hooks/useMescrollComp.js b/src/components/mescroll/hooks/useMescrollComp.js new file mode 100644 index 0000000..3b83847 --- /dev/null +++ b/src/components/mescroll/hooks/useMescrollComp.js @@ -0,0 +1,56 @@ +import { ref } from 'vue'; + +// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173 +// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app'; + +/** + * mescroll-body写在子组件时,需通过useMescrollComp补充子组件缺少的生命周期, 相当于vue2的mescroll-comp.js文件 + * 必须传入onPageScroll, onReachBottom + * 当down.native为true时,需传入onPullDownRefresh + */ +function useMescrollComp(onPageScroll, onReachBottom, onPullDownRefresh){ + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll(e=>{ + handlePageScroll(e) + }) + + onReachBottom(()=>{ + handleReachBottom() + }) + + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh && onPullDownRefresh(()=>{ + handlePullDownRefresh() + }) + + const mescrollItem = ref(null) + + const handlePageScroll = (e)=>{ + const mescroll = getMescroll() + mescroll && mescroll.onPageScroll(e); + } + + const handleReachBottom = ()=>{ + const mescroll = getMescroll() + mescroll && mescroll.onReachBottom(); + } + + const handlePullDownRefresh = ()=>{ + const mescroll = getMescroll() + mescroll && mescroll.onPullDownRefresh(); + } + + const getMescroll = ()=>{ + if(mescrollItem.value && mescrollItem.value.getMescroll){ + return mescrollItem.value.getMescroll() + } + return null + } + + return { + mescrollItem, + getMescroll + } +} + +export default useMescrollComp \ No newline at end of file diff --git a/src/components/mescroll/hooks/useMescrollMore.js b/src/components/mescroll/hooks/useMescrollMore.js new file mode 100644 index 0000000..f9a3cd0 --- /dev/null +++ b/src/components/mescroll/hooks/useMescrollMore.js @@ -0,0 +1,69 @@ +import { ref } from 'vue'; + +// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173 +// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app'; + +/** mescroll-more示例写在子组件时,需通过useMescrollMore补充子组件缺少的生命周期, 相当于vue2的mescroll-more.js文件 */ +function useMescrollMore(mescrollItems, onPageScroll, onReachBottom, onPullDownRefresh){ + // 当前tab下标 + const tabIndex = ref(0) + + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll && onPageScroll(e=>{ + handlePageScroll(e) + }) + + onReachBottom && onReachBottom(()=>{ + handleReachBottom() + }) + + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh && onPullDownRefresh(()=>{ + handlePullDownRefresh() + }) + + const handlePageScroll = (e)=>{ + let mescroll = getMescroll(tabIndex.value); + mescroll && mescroll.onPageScroll(e); + } + const handleReachBottom = ()=>{ + let mescroll = getMescroll(tabIndex.value); + mescroll && mescroll.onReachBottom(); + } + + const handlePullDownRefresh = ()=>{ + let mescroll = getMescroll(tabIndex.value); + mescroll && mescroll.onPullDownRefresh(); + } + + // 根据下标获取对应子组件的mescroll + const getMescroll = (i)=>{ + if (mescrollItems && mescrollItems[i]) { + return mescrollItems[i].value.getMescroll() + } else{ + return null + } + } + + // 切换tab,恢复滚动条位置 + const scrollToLastY = ()=>{ + let mescroll = getMescroll(tabIndex.value); + if(mescroll){ + // 恢复上次滚动条的位置 + let y = mescroll.getScrollTop() + mescroll.scrollTo(y, 0) + // 再次恢复上次滚动条的位置, 确保元素已渲染 + setTimeout(()=>{ + mescroll.scrollTo(y, 0) + },20) + } + } + + return { + tabIndex, + getMescroll, + scrollToLastY + } +} + +export default useMescrollMore \ No newline at end of file diff --git a/src/components/mescroll/mescroll-body/mescroll-body.css b/src/components/mescroll/mescroll-body/mescroll-body.css new file mode 100644 index 0000000..1107710 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-body/mescroll-body.vue b/src/components/mescroll/mescroll-body/mescroll-body.vue new file mode 100644 index 0000000..ef01f2d --- /dev/null +++ b/src/components/mescroll/mescroll-body/mescroll-body.vue @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.css b/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.css new file mode 100644 index 0000000..dcefe2d --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue b/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue new file mode 100644 index 0000000..ee1d321 --- /dev/null +++ b/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue b/src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue new file mode 100644 index 0000000..305330c --- /dev/null +++ b/src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + diff --git a/src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js b/src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js new file mode 100644 index 0000000..0411f49 --- /dev/null +++ b/src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js @@ -0,0 +1,51 @@ +import { img } from '@/utils/common'; + +// 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: img("static/resource/images/system/empty.png") // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '', // 没有更多数据的提示文本 + empty: { + tip: '~ 暂无相关数据 ~' // 空提示 + } + } + }, + // 英文 + en: { + up: { + textLoading: 'loading ...', + textNoMore: '', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption \ No newline at end of file diff --git a/src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue b/src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue new file mode 100644 index 0000000..e144de7 --- /dev/null +++ b/src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue @@ -0,0 +1,437 @@ + + + + + + + + + + + + + + + diff --git a/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.css b/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.css new file mode 100644 index 0000000..b62ed40 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue b/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue new file mode 100644 index 0000000..745d903 --- /dev/null +++ b/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue @@ -0,0 +1,53 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.css b/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.css new file mode 100644 index 0000000..abf51f1 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue b/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue new file mode 100644 index 0000000..31bd42a --- /dev/null +++ b/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue @@ -0,0 +1,40 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue b/src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue new file mode 100644 index 0000000..1daa3bf --- /dev/null +++ b/src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + diff --git a/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js b/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js new file mode 100644 index 0000000..47e8fae --- /dev/null +++ b/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js @@ -0,0 +1,66 @@ +import { img } from '@/utils/common'; + +// 全局配置 +// 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: img("static/resource/images/system/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: '', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue b/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue new file mode 100644 index 0000000..65c9fbe --- /dev/null +++ b/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + diff --git a/src/components/mescroll/mescroll-empty/mescroll-empty.vue b/src/components/mescroll/mescroll-empty/mescroll-empty.vue new file mode 100644 index 0000000..5361aac --- /dev/null +++ b/src/components/mescroll/mescroll-empty/mescroll-empty.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-uni/components/mescroll-down.css b/src/components/mescroll/mescroll-uni/components/mescroll-down.css new file mode 100644 index 0000000..72bf106 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/components/mescroll-down.vue b/src/components/mescroll/mescroll-uni/components/mescroll-down.vue new file mode 100644 index 0000000..9fd1567 --- /dev/null +++ b/src/components/mescroll/mescroll-uni/components/mescroll-down.vue @@ -0,0 +1,47 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-uni/components/mescroll-top.vue b/src/components/mescroll/mescroll-uni/components/mescroll-top.vue new file mode 100644 index 0000000..5115fd8 --- /dev/null +++ b/src/components/mescroll/mescroll-uni/components/mescroll-top.vue @@ -0,0 +1,83 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-uni/components/mescroll-up.css b/src/components/mescroll/mescroll-uni/components/mescroll-up.css new file mode 100644 index 0000000..cbf48cd --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/components/mescroll-up.vue b/src/components/mescroll/mescroll-uni/components/mescroll-up.vue new file mode 100644 index 0000000..11c2e1f --- /dev/null +++ b/src/components/mescroll/mescroll-uni/components/mescroll-up.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/src/components/mescroll/mescroll-uni/mescroll-i18n.js b/src/components/mescroll/mescroll-uni/mescroll-i18n.js new file mode 100644 index 0000000..2b6a50f --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/mescroll-mixins.js b/src/components/mescroll/mescroll-uni/mescroll-mixins.js new file mode 100644 index 0000000..bf3714a --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/mescroll-uni-option.js b/src/components/mescroll/mescroll-uni/mescroll-uni-option.js new file mode 100644 index 0000000..47e8fae --- /dev/null +++ b/src/components/mescroll/mescroll-uni/mescroll-uni-option.js @@ -0,0 +1,66 @@ +import { img } from '@/utils/common'; + +// 全局配置 +// 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: img("static/resource/images/system/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: '', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/src/components/mescroll/mescroll-uni/mescroll-uni.css b/src/components/mescroll/mescroll-uni/mescroll-uni.css new file mode 100644 index 0000000..39438cd --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/mescroll-uni.js b/src/components/mescroll/mescroll-uni/mescroll-uni.js new file mode 100644 index 0000000..2020a4f --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/mescroll-uni.vue b/src/components/mescroll/mescroll-uni/mescroll-uni.vue new file mode 100644 index 0000000..f72f099 --- /dev/null +++ b/src/components/mescroll/mescroll-uni/mescroll-uni.vue @@ -0,0 +1,477 @@ + + + + + + + + + + + + + + + diff --git a/src/components/mescroll/mescroll-uni/mixins/mescroll-comp.js b/src/components/mescroll/mescroll-uni/mixins/mescroll-comp.js new file mode 100644 index 0000000..abe7cd7 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/mixins/mescroll-more-item.js b/src/components/mescroll/mescroll-uni/mixins/mescroll-more-item.js new file mode 100644 index 0000000..102dd39 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/mixins/mescroll-more.js b/src/components/mescroll/mescroll-uni/mixins/mescroll-more.js new file mode 100644 index 0000000..76c8e6c --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/wxs/mixins.js b/src/components/mescroll/mescroll-uni/wxs/mixins.js new file mode 100644 index 0000000..34ffa3c --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/wxs/renderjs.js b/src/components/mescroll/mescroll-uni/wxs/renderjs.js new file mode 100644 index 0000000..207f388 --- /dev/null +++ b/src/components/mescroll/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/components/mescroll/mescroll-uni/wxs/wxs.wxs b/src/components/mescroll/mescroll-uni/wxs/wxs.wxs new file mode 100644 index 0000000..3fb4ad9 --- /dev/null +++ b/src/components/mescroll/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/components/pay/pay.vue b/src/components/pay/pay.vue new file mode 100644 index 0000000..f50c774 --- /dev/null +++ b/src/components/pay/pay.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/src/components/share-poster/share-poster.vue b/src/components/share-poster/share-poster.vue new file mode 100644 index 0000000..79043c7 --- /dev/null +++ b/src/components/share-poster/share-poster.vue @@ -0,0 +1,344 @@ + + + + \ No newline at end of file diff --git a/src/components/sms-code/sms-code.vue b/src/components/sms-code/sms-code.vue new file mode 100644 index 0000000..662d7dc --- /dev/null +++ b/src/components/sms-code/sms-code.vue @@ -0,0 +1,75 @@ + + + + + \ No newline at end of file diff --git a/src/components/tabbar/tabbar.vue b/src/components/tabbar/tabbar.vue new file mode 100644 index 0000000..99eb5f4 --- /dev/null +++ b/src/components/tabbar/tabbar.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/components/tag/tag.vue b/src/components/tag/tag.vue new file mode 100644 index 0000000..bdb51f2 --- /dev/null +++ b/src/components/tag/tag.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/src/components/top-tabbar/top-tabbar.vue b/src/components/top-tabbar/top-tabbar.vue new file mode 100644 index 0000000..87db4bb --- /dev/null +++ b/src/components/top-tabbar/top-tabbar.vue @@ -0,0 +1,526 @@ + + + + + \ No newline at end of file diff --git a/src/components/types/components.d.ts b/src/components/types/components.d.ts new file mode 100644 index 0000000..3b9874e --- /dev/null +++ b/src/components/types/components.d.ts @@ -0,0 +1,23 @@ +import lxHeader from '../components/lx-header/lx-header.vue' +import lxHello from '../components/lx-hello/lx-hello.vue' +import lxImage from '../components/lx-image/lx-image.vue' +import lxList from '../components/lx-list/lx-list.vue' +import lxListState from '../components/lx-list-state/lx-list-state.vue' +import lxOperateBottom from '../components/lx-operate-bottom/lx-operate-bottom.vue' +import lxSubmitBtn from '../components/lx-submit-btn/lx-submit-btn.vue' +import lxUpload from '../components/lx-upload/lx-upload.vue' + + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + "lx-header": typeof lxHeader, + "lx-hello": typeof lxHello, + "lx-image": typeof lxImage, + "lx-list": typeof lxList, + "lx-list-state": typeof lxListState, + "lx-operate-bottom": typeof lxOperateBottom, + "lx-submit-btn": typeof lxSubmitBtn, + "lx-upload": typeof lxUpload, + } +} + diff --git a/src/components/types/index.d.ts b/src/components/types/index.d.ts new file mode 100644 index 0000000..9304c9f --- /dev/null +++ b/src/components/types/index.d.ts @@ -0,0 +1,26 @@ +/// +declare module 'lxui-uni' { + export function install(): void //必要 + type pageMode = 'navigateTo' | 'redirectTo' | 'reLaunch' | 'switchTab' + interface goToPageInt { + url: string + mode?: pageMode + params?: { + [key: string]: string | number | boolean + } + } + + global { + interface Uni { + goToPage({ url, mode, params }: goToPageInt): void; + $util: { + formatTime: any, + debounce: any, + throttle: any, + saveImgData: any, + setClipboardData: any, + config: any + } + } + } +} \ No newline at end of file diff --git a/src/components/wx-privacy-popup/wx-privacy-popup.vue b/src/components/wx-privacy-popup/wx-privacy-popup.vue new file mode 100644 index 0000000..5caf976 --- /dev/null +++ b/src/components/wx-privacy-popup/wx-privacy-popup.vue @@ -0,0 +1,234 @@ + + + + + \ No newline at end of file diff --git a/src/components/x-skeleton/config.js b/src/components/x-skeleton/config.js new file mode 100644 index 0000000..fe359d6 --- /dev/null +++ b/src/components/x-skeleton/config.js @@ -0,0 +1,150 @@ + +// banner 轮播图 +export function bannerConfig(config) { + return { + padding: '20rpx', + gridRows: 1, + gridColumns: 1, + gridRowsGap: '40rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'center', + headShow: true, + headWidth: '100%', + headHeight: '300rpx', + headBorderRadius: '20rpx', + textShow: false, + textRows: 3, + textRowsGap: '20rpx', + textWidth: '100%', + textHeight: '30rpx', + textBorderRadius: '6rpx', + ...config + } +} + +// info 个人信息 +export function infoConfig(config) { + return { + padding: '20rpx', + gridRows: 1, + gridColumns: 1, + gridRowsGap: '50rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'flex-start', + headShow: true, + headWidth: '100rpx', + headHeight: '100rpx', + headBorderRadius: '50%', + textShow: true, + textRows: 4, + textRowsGap: '30rpx', + textWidth: ['50%', '100%', '100%', '80%'], + textHeight: ['40rpx', '24rpx', '24rpx', '24rpx'], + textBorderRadius: '6rpx', + ...config + } +} + +// text 段落 +export function textConfig(config) { + return { + padding: '20rpx', + gridRows: 1, + gridColumns: 1, + gridRowsGap: '50rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'flex-start', + headShow: false, + headWidth: '100rpx', + headHeight: '100rpx', + headBorderRadius: '50%', + textShow: true, + textRows: 4, + textRowsGap: '30rpx', + textWidth: ['50%', '100%', '100%', '80%'], + textHeight: '30rpx', + textBorderRadius: '6rpx', + ...config + } +} + +// menu 菜单 +export function menuConfig(config) { + return { + padding: '20rpx', + gridRows: 2, + gridColumns: 5, + gridRowsGap: '40rpx', + gridColumnsGap: '40rpx', + itemDirection: 'column', + itemGap: '16rpx', + itemAlign: 'center', + headShow: true, + headWidth: '100rpx', + headHeight: '100rpx', + headBorderRadius: '50%', + textShow: true, + textRows: 1, + textRowsGap: '0rpx', + textWidth: '100%', + textHeight: '24rpx', + textBorderRadius: '6rpx', + ...config + } +} + +// list 列表 +export function listConfig(config) { + return { + padding: '20rpx', + gridRows: 2, + gridColumns: 1, + gridRowsGap: '50rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'flex-start', + headShow: true, + headWidth: '200rpx', + headHeight: '200rpx', + headBorderRadius: '16rpx', + textShow: true, + textRows: 4, + textRowsGap: '30rpx', + textWidth: ['50%', '100%', '100%', '80%'], + textHeight: ['38rpx', '24rpx', '24rpx', '24rpx'], + textBorderRadius: '6rpx', + ...config + } +} + +// waterfall 瀑布流 +export function waterfallConfig(config) { + return { + padding: '20rpx', + gridRows: 2, + gridColumns: 2, + gridRowsGap: '40rpx', + gridColumnsGap: '24rpx', + itemDirection: 'column', + itemGap: '16rpx', + itemAlign: 'center', + headShow: true, + headWidth: '100%', + headHeight: '400rpx', + headBorderRadius: '12rpx', + textShow: true, + textRows: 3, + textRowsGap: '12rpx', + textWidth: ['40%', '85%', '60%'], + textHeight: ['30rpx', '20rpx', '20rpx'], + textBorderRadius: '6rpx', + ...config + } +} \ No newline at end of file diff --git a/src/components/x-skeleton/x-skeleton.vue b/src/components/x-skeleton/x-skeleton.vue new file mode 100644 index 0000000..7d8c26b --- /dev/null +++ b/src/components/x-skeleton/x-skeleton.vue @@ -0,0 +1,319 @@ + + + + + \ No newline at end of file diff --git a/src/hooks/useCaptcha.ts b/src/hooks/useCaptcha.ts new file mode 100644 index 0000000..46e7812 --- /dev/null +++ b/src/hooks/useCaptcha.ts @@ -0,0 +1,26 @@ +import { getCaptcha } from '@/app/api/system' +import { ref } from 'vue' + +interface formData { + captcha_code: string, + captcha_key: string +} + +export function useCaptcha(formData: formData) { + const image = ref('') + + const refresh = async ()=> { + try { + const res:AnyObject = await getCaptcha() + formData.captcha_key = res.data.captcha_key + formData.captcha_code = '' + image.value = res.data.img.replace(/\r\n/g, '') + } catch (e) { + } + } + + return { + image, + refresh + } +} diff --git a/src/hooks/useDiy.ts b/src/hooks/useDiy.ts new file mode 100644 index 0000000..ada7b78 --- /dev/null +++ b/src/hooks/useDiy.ts @@ -0,0 +1,172 @@ +import {ref, reactive, computed} from 'vue'; +import {onLoad, onShow, onPullDownRefresh, onPageScroll} from '@dcloudio/uni-app'; +import {img, handleOnloadParams} from '@/utils/common'; +import {getDiyInfo} from '@/app/api/diy'; +import useDiyStore from '@/app/stores/diy'; + +export function useDiy(params: any = {}) { + + const loading = ref(true); + const diyStore = useDiyStore(); + const pullDownRefreshCount = ref(0) + + const id = ref(0) + const name = ref(params.name || '') + const template = ref('') + + // 自定义页面 数据 + const diyData = reactive({ + pageMode: 'diy', + title: '', + global: {}, + value: [] + }) + + const getLoading = () => { + return loading.value; + } + + const data = computed(() => { + if (diyStore.mode == 'decorate') { + return diyStore; + } else { + return diyData; + } + }) + + const isShowTopTabbar = ref(false); + + const pageStyle = () => { + var style = ''; + if (data.value.global.pageStartBgColor) { + if (data.value.global.pageStartBgColor && data.value.global.pageEndBgColor) style += `background:linear-gradient(${data.value.global.pageGradientAngle},${data.value.global.pageStartBgColor},${data.value.global.pageEndBgColor});`; + else style += 'background-color:' + data.value.global.pageStartBgColor + ';'; + } + + style += 'min-height:calc(100vh - 50px);'; + if (data.value.global.bgUrl) { + style += `background-image:url('${img(data.value.global.bgUrl)}');`; + } + + if (data.value.global.bgHeightScale) { + style += `background-size: 100% ${data.value.global.bgHeightScale}%;`; + } + + // #ifdef H5 + // 导航栏风格五 - 兼容 + if(data.value.global && data.value.global.topStatusBar && data.value.global.topStatusBar.style == "style-5"){ + style += `background-position-y: -176rpx;`; + } + // #endif + return style; + }; + + // 监听页面加载 + const onLoadLifeCycle = () => { + onLoad((option: any) => { + // #ifdef MP-WEIXIN + // 处理小程序场景值参数 + option = handleOnloadParams(option); + // #endif + + // #ifdef H5 + // 装修模式 + diyStore.mode = option.mode || ''; + if (diyStore.mode == 'decorate') { + loading.value = false; + } + // #endif + + id.value = option.id || ''; + if (name.value == '') name.value = option.name || ''; + template.value = option.template || ''; + }); + } + + // 监听页面显示 + const onShowLifeCycle = (callback: any = null) => { + onShow(() => { + // 装修模式 + if (diyStore.mode == 'decorate') { + diyStore.init(); + } else { + getDiyInfo({ + id: id.value, + name: name.value, + template: template.value + }).then((res: any) => { + let requestData = res.data; + if (requestData.value) { + diyData.pageMode = requestData.mode; + diyData.title = requestData.title; + + let sources = JSON.parse(requestData.value); + diyData.global = sources.global; + diyData.value = sources.value; + diyData.value.forEach((item: any, index) => { + item.pageStyle = ''; + if (item.pageStartBgColor) { + if (item.pageStartBgColor && item.pageEndBgColor) item.pageStyle += `background:linear-gradient(${item.pageGradientAngle},${item.pageStartBgColor},${item.pageEndBgColor});`; + else item.pageStyle += 'background-color:' + item.pageStartBgColor + ';'; + } + + if (item.margin) { + if (item.margin.top > 0) { + item.pageStyle += 'padding-top:' + item.margin.top * 2 + 'rpx' + ';'; + } + item.pageStyle += 'padding-bottom:' + item.margin.bottom * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-right:' + item.margin.both * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-left:' + item.margin.both * 2 + 'rpx' + ';'; + } + }); + + // 控制自定义头部是否出现 | 微信小程序 + isShowTopTabbar.value = diyData.value.some((item) => { + return item && item.position && item.position == 'top_fixed' + }); + + uni.setNavigationBarTitle({ + title: diyData.title + }); + + } + + loading.value = false; + + if (callback) callback(requestData) + + }); + } + + }) + } + + // 监听下拉刷新事件 + const onPullDownRefreshLifeCycle = () => { + onPullDownRefresh(() => { + pullDownRefreshCount.value++; + uni.stopPullDownRefresh(); + }) + } + + // 监听滚动事件 + const onPageScrollLifeCycle = () => { + onPageScroll((e) => { + if (e.scrollTop > 0) { + diyStore.scrollTop = e.scrollTop; + } + }) + } + + return { + getLoading, + pullDownRefreshCount, + data: data.value, + isShowTopTabbar, + pageStyle, + onLoad: onLoadLifeCycle, + onShow: onShowLifeCycle, + onPullDownRefresh: onPullDownRefreshLifeCycle, + onPageScroll: onPageScrollLifeCycle, + } +} diff --git a/src/hooks/useLogin.ts b/src/hooks/useLogin.ts new file mode 100644 index 0000000..661605f --- /dev/null +++ b/src/hooks/useLogin.ts @@ -0,0 +1,130 @@ +import { redirect, isWeixinBrowser, urlDeconstruction } from '@/utils/common' +import { weappLogin, wechatLogin, wechatUser, wechatUserLogin } from '@/app/api/auth' +import { getWechatAuthCode } from '@/app/api/system' +import useMemberStore from '@/stores/member' +import useConfigStore from '@/stores/config' + +export function useLogin() { + /** + * 设置登录返回页 + */ + const setLoginBack = (data : redirectOptions) => { + uni.setStorage({ key: 'loginBack', data }) + setTimeout(() => { + const config = useConfigStore() + // #ifdef MP-WEIXIN + if (!uni.getStorageSync('autoLoginLock') && uni.getStorageSync('openid') && config.login.is_bind_mobile) { + redirect({ url: '/app/pages/auth/bind', mode: 'redirectTo' }) + return + } + // #endif + + // #ifdef H5 + if (!uni.getStorageSync('autoLoginLock') && isWeixinBrowser() && uni.getStorageSync('openid') && config.login.is_bind_mobile) { + redirect({ url: '/app/pages/auth/bind', mode: 'redirectTo' }) + return + } + // #endif + redirect({ url: '/app/pages/auth/login', mode: 'redirectTo' }) + }) + } + + /** + * 执行登录后跳转 + */ + const handleLoginBack = () => { + uni.removeStorageSync('autoLoginLock') + uni.getStorage({ + key: 'loginBack', + success: (data : AnyObject) => { + data ? redirect(data.data) : redirect({ url: '/app/pages/home/index', mode: 'switchTab' }) + }, + fail: (res) => { + redirect({ url: '/app/pages/home/index', mode: 'switchTab' }) + } + }) + } + + /** + * 授权登录 + */ + const authLogin = (code : string | null) => { + let obj = {}; + + // #ifdef MP-WEIXIN + obj.code = code; + uni.getStorageSync('pid') && (Object.assign(obj, { pid: uni.getStorageSync('pid') })) + weappLogin(obj).then((res : AnyObject) => { + if (res.data.token) { + useMemberStore().setToken(res.data.token) + setTimeout(() => { + const memberInfo = useMemberStore().info + memberInfo && memberInfo.weapp_openid && uni.setStorageSync('openid', memberInfo.weapp_openid) + }, 1000) + } else { + uni.setStorageSync('openid', res.data.openid) + uni.setStorageSync('unionid', res.data.unionid) + } + }) + // #endif + + // #ifdef H5 + obj.code = code; + uni.getStorageSync('pid') && (Object.assign(obj, { pid: uni.getStorageSync('pid') })) + wechatUser(obj).then((user_res : AnyObject) => { + if(user_res.data){ + wechatUserLogin(user_res.data).then((res : AnyObject) => { + if (res.data.token) { + useMemberStore().setToken(res.data.token) + setTimeout(() => { + const memberInfo = useMemberStore().info + memberInfo && memberInfo.wx_openid && uni.setStorageSync('openid', memberInfo.wx_openid) + }, 1000) + } else { + uni.setStorageSync('openid', res.data.openid) + uni.setStorageSync('unionid', res.data.unionid) + } + }) + } + }) + // #endif + } + + /** + * 获取授权码 + */ + const getAuthCode = (scopes : 'snsapi_base' | 'snsapi_userinfo' = 'snsapi_base') => { + // #ifdef MP-WEIXIN + wx.login({ + success(res) { + if (res.code) { + authLogin(res.code) + } else { + console.log('登录失败!' + res.errMsg) + } + } + }) + // #endif + + // #ifdef H5 + let url = `${location.origin}${location.pathname}` + let query = urlDeconstruction(location.href).query + query.code && (delete query.code) + Object.keys(query).length && (url += uni.$u.queryParams(query)) + + getWechatAuthCode({ + url, + scopes + }).then((res : AnyObject) => { + location.href = res.data.url + }) + // #endif + } + + return { + setLoginBack, + handleLoginBack, + authLogin, + getAuthCode + } +} diff --git a/src/hooks/useSendSms.ts b/src/hooks/useSendSms.ts new file mode 100644 index 0000000..efd8beb --- /dev/null +++ b/src/hooks/useSendSms.ts @@ -0,0 +1,49 @@ +import { ref, computed } from 'vue' +import { t } from '@/locale' +import { sendSms } from '@/app/api/system' + +export function useSendSms(smsRef: AnyObject | null) { + const tips = ref(t('getSmsCode')) + const seconds = 90 + const changeText = 'X' + t('smsCodeChangeText') + + const canGetCode = computed(() =>{ + return smsRef.value ? smsRef.value.canGetCode : true + }) + + /** + * 发送短信 + */ + const send = async (param:requestMobileParam) => { + if (!canGetCode.value) return + + smsRef.value.start() + + let result: string | boolean = false + await sendSms(param).then(res=>{ + if (res.code == 1) { + result = res.data.key + } else { + smsRef.value.reset() + result = false + } + }).catch(err=>{ + result = false + smsRef.value.reset() + }) + return result + } + + const codeChange = (text: string)=>{ + tips.value = text + } + + return { + tips: tips, + seconds, + canGetCode: canGetCode, + send, + codeChange, + changeText + } +} diff --git a/src/hooks/useShare.ts b/src/hooks/useShare.ts new file mode 100644 index 0000000..c9387fd --- /dev/null +++ b/src/hooks/useShare.ts @@ -0,0 +1,144 @@ +import { img, isWeixinBrowser, currRoute, currShareRoute } from '@/utils/common' +import { onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app' +import { getShareInfo } from '@/app/api/diy'; + +// #ifdef H5 +import wechat from '@/utils/wechat' +// #endif + +export const useShare = () => { + var wechatOptions: any = {}; + + var weappOptions:any = {}; + + const wechatInit = () => { + if (!isWeixinBrowser()) return; + // 初始化sdk + wechat.init(); + } + + // 微信公众号分享 + const wechatShare = () => { + if (!isWeixinBrowser()) return; + wechat.share(wechatOptions); + } + + const getQuery = ()=>{ + let query:any = currShareRoute().params; + let wap_member_id = uni.getStorageSync('wap_member_id'); + if (wap_member_id) { + query.mid = wap_member_id; + } + + let queryStr = []; + for (let key in query) { + queryStr.push(key + '=' + query[key]); + } + + return queryStr + + } + + const setShare = (options : any = {}) => { + if(currRoute() == '') return; + + let queryStr = getQuery(); + + // #ifdef H5 + + let h5Link = location.origin + location.pathname + (queryStr.length > 0 ? '?' + queryStr.join('&') : ''); + + wechatOptions = { + link: h5Link + } + + // #endif + + // #ifdef MP-WEIXIN + weappOptions = { + path: '/' + currRoute() + (queryStr.length > 0 ? '?' + queryStr.join('&') : ''), + query: queryStr.join('&'), + } + // #endif + + if (options && options.wechat && options.weapp) { + + // #ifdef H5 + wechatOptions.title = options.wechat.title || '' + wechatOptions.link = options.wechat.link || h5Link + wechatOptions.desc = options.wechat.desc || '' + wechatOptions.imgUrl = options.wechat.url ? img(options.wechat.url) : '' + wechatShare() + // #endif + + // #ifdef MP-WEIXIN + weappOptions.title = options.weapp.title || '' + weappOptions.query = options.weapp.path || queryStr.join('&') + weappOptions.imageUrl = options.weapp.url ? img(options.weapp.url) : '' + // #endif + + } else { + getShareInfo({ + route: '/' + currRoute(), + params: JSON.stringify(currShareRoute().params) + }).then((res: any) => { + let data = res.data; + + // #ifdef H5 + let wechat = data.wechat; + if (wechat) { + wechatOptions.title = wechat.title + wechatOptions.desc = wechat.desc + wechatOptions.imgUrl = wechat.url ? img(wechat.url) : '' + }else{ + wechatOptions.title = document.title; + wechatOptions.desc = '' + } + wechatShare() + // #endif + + // #ifdef MP-WEIXIN + let weapp = data.weapp; + if (weapp) { + weappOptions.title = weapp.title + weappOptions.imageUrl = weapp.url ? img(weapp.url) : '' + } + // #endif + + }) + } + uni.setStorageSync('weappOptions', weappOptions) + } + + // 小程序分享,分享给好友 + const shareApp = (options = {}) => { + onShareAppMessage(() => { + let config:any= uni.getStorageSync('weappOptions') + if(!config) config = {} + return { + ...config, + ...options + } + }) + + } + + // 小程序分享,分享到朋友圈 + const shareTime = (options = {}) => { + onShareTimeline(() => { + let config:any= uni.getStorageSync('weappOptions') + if(!config) config = {} + return { + ...config, + ...options + } + }) + } + + return { + wechatInit:wechatInit, + setShare: setShare, + onShareAppMessage: shareApp, + onShareTimeline: shareTime, + } +} diff --git a/src/hooks/useSubscribeMessage.ts b/src/hooks/useSubscribeMessage.ts new file mode 100644 index 0000000..a027313 --- /dev/null +++ b/src/hooks/useSubscribeMessage.ts @@ -0,0 +1,30 @@ +import { getWeappTemplateId } from '@/app/api/system' + +/** + * 小程序订阅消息 + */ +export const useSubscribeMessage = () => { + const request = (keys: string)=> { + // #ifdef MP-WEIXIN + const method = getWeappTemplateId + // #endif + + // #ifdef MP + method(keys).then(({ data }) => { + uni.requestSubscribeMessage({ + tmplIds: data, + success: (res) => { + console.log("requestSubscribeMessage:success", res) + }, + fail: (res) => { + console.log('requestSubscribeMessage:fail', res) + } + }) + }).catch() + // #endif + } + + return { + request + } +} diff --git a/src/locale/en.json b/src/locale/en.json new file mode 100644 index 0000000..b71d7cf --- /dev/null +++ b/src/locale/en.json @@ -0,0 +1,11 @@ +{ + "pages.index.index": "Index", + "pages.article.list": "Information Center", + "pages.article.detail": "Information detail", + "pages.member.index": "My", + "pages.auth.login": "Login", + "pages.auth.register": "Register", + "pages.auth.resetpwd": "Retrieve password", + "pages.setting.index": "Settings", + "pages.auth.bind": "Bind Mobile" +} \ No newline at end of file diff --git a/src/locale/en/common.json b/src/locale/en/common.json new file mode 100644 index 0000000..a3ae7f9 --- /dev/null +++ b/src/locale/en/common.json @@ -0,0 +1,3 @@ +{ + "index": "Index" +} diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts new file mode 100644 index 0000000..ce1a083 --- /dev/null +++ b/src/locale/i18n.ts @@ -0,0 +1,22 @@ +import { createI18n } from 'vue-i18n' + +import Language from './language' +import zhHans from './zh-Hans/common.json' +import en from './en/common.json' + +//创建实例 +let i18n = createI18n({ + locale: uni.getLocale(), + globalInjection: true, //是否全局注入 + silentFallbackWarn: true, + silentTranslationWarn: true, + messages: { + 'zh-Hans': zhHans, + en + } +}) + +const language = new Language(i18n) + +export { language } +export default i18n diff --git a/src/locale/index.ts b/src/locale/index.ts new file mode 100644 index 0000000..02f557c --- /dev/null +++ b/src/locale/index.ts @@ -0,0 +1,21 @@ +import i18n, { language } from "./i18n" +import useSystemStore from '@/stores/system' + +const t = (message: string) => { + const route = useSystemStore().currRoute + const file = language.getFileKey(`/${ route }`) + const key = `${ file.fileKey }.${ message }` + if (i18n.global.t(message) != message) return i18n.global.t(message) + return i18n.global.t(key) != key ? i18n.global.t(key) : '' +} + +export { language, t } + +export default { + install(app: any) { + //注册i18n + app.use(i18n); + } +}; + + diff --git a/src/locale/language.ts b/src/locale/language.ts new file mode 100644 index 0000000..92d6932 --- /dev/null +++ b/src/locale/language.ts @@ -0,0 +1,86 @@ +import { nextTick } from 'vue' +import { getAppPages, getSubPackagesPages} from "@/utils/pages" + +class Language { + private i18n: any + private loadLocale: Array = [] //已加载的语言 + + public path = '' + + constructor(i18n: any) { + this.i18n = i18n + } + + /** + * + * @param locale 设置语言 + */ + public setI18nLanguage(locale: string, path: string = '') { + if (this.i18n.global.locale == locale) return + this.i18n.global.locale = locale + path && (this.path = path) + uni.setLocale(locale) + } + + public loadAllLocaleMessages(app: string, locale: string) { + const pages = app == 'app' ? getAppPages() : getSubPackagesPages() + pages.forEach((path: string) => { + this.loadLocaleMessages(path, locale) + }) + } + + /** + * 加载语言包 + * @param path + * @param locale + * @returns + */ + public async loadLocaleMessages(path: string, locale: string) { + try { + const { route, file, fileKey } = this.getFileKey(path) + + // 是否已加载 + if (this.loadLocale.includes(`${fileKey}.${locale}`)) { + this.setI18nLanguage(locale, file) + return nextTick() + } + this.loadLocale.push(`${fileKey}.${locale}`) + + // 引入语言包文件 + const messages = await import(route == 'app' ? `../${route}/locale/${locale}/${file}.json` : `../addon/${route}/locale/${locale}/${file}.json`) + let data: Record = {} + Object.keys(messages.default).forEach(key => { + data[`${fileKey}.${key}`] = messages.default[key] + }) + + this.i18n.global.mergeLocaleMessage(locale, data) + this.setI18nLanguage(locale, file) + + return nextTick() + } catch (e) { + // console.log(e) + this.setI18nLanguage(locale) + return nextTick() + } + } + + public getFileKey = (path: string) => { + const pathArr = path.split('/') + let route = pathArr[1] == 'app' ? pathArr[1] : pathArr[2]; + + let file = path == '/' ? 'pages.index.index' : path.replace('/', '').replaceAll('/', '.') + + // 如果是系统页面,则移除“app.” + let fileKey = '' + if (route == 'app') { + fileKey = file.replace('app.', '') + file = file.replace('app.', '') + } else { + fileKey = file.replace(`addon.`, '') + file = file.replace(`addon.${route}.`, '') + } + return { file, fileKey, route } + } +} + +export default Language diff --git a/src/locale/zh-Hans.json b/src/locale/zh-Hans.json new file mode 100644 index 0000000..fc3ecd1 --- /dev/null +++ b/src/locale/zh-Hans.json @@ -0,0 +1,97 @@ +{ + "pages.index.index": "", + "pages.index.close": "站点已关闭", + "pages.index.nosite": "站点不存在", + "pages.index.develop": "开发环境配置", + "pages.index.diy": "", + "pages.article.list": "资讯中心", + "pages.article.detail": "文章详情", + "pages.auth.agreement": "协议", + "pages.auth.bind": "绑定手机号", + "pages.auth.login": "登录", + "pages.auth.register": "注册", + "pages.auth.resetpwd": "找回密码", + "pages.member.account": "会员账户", + "pages.member.account_edit": "编辑会员账户", + "pages.member.address": "收货地址", + "pages.member.address_edit": "编辑收货地址", + "pages.member.apply_cash_out": "申请提现", + "pages.member.balance": "我的余额", + "pages.member.point": "我的积分", + "pages.member.point_detail": "积分明细", + "pages.member.level": "会员等级", + "pages.member.sign_in": "我的签到", + "pages.member.cash_out": "提现记录", + "pages.member.cash_out_detail": "提现详情", + "pages.member.commission": "我的佣金", + "pages.member.detailed_account": "流水明细", + "pages.member.index": "", + "pages.member.personal": "个人资料", + "pages.pay.browser": "支付", + "pages.pay.result": "支付结果", + "pages.setting.index": "设置", + "pages.verify.index": "核销台", + "pages.verify.verify": "核销", + "pages.verify.detail": "核销详情", + "pages.verify.record": "核销记录", + "pages.webview.index": "", + "tourism.pages.way.list": "线路列表", + "tourism.pages.way.detail": "线路详情", + "tourism.pages.way.order": "线路订单", + "tourism.pages.hotel.list": "酒店列表", + "tourism.pages.hotel.detail": "酒店详情", + "tourism.pages.hotel.order": "酒店订单", + "tourism.pages.scenic.list": "景点列表", + "tourism.pages.scenic.detail": "景点详情", + "tourism.pages.scenic.order": "景点订单", + "tourism.pages.order.list": "旅游订单", + "tourism.pages.order.detail": "订单详情", + "tourism.pages.verify.index": "核销", + "tourism.pages.verify.record": "核销记录", + "tourism.pages.verify.detail": "核销详情", + "vipcard.pages.verify.index": "核销", + "vipcard.pages.verify.record": "核销记录", + "vipcard.pages.verify.detail": "核销详情", + "vipcard.pages.order.payment": "订单结算", + "vipcard.pages.order.list": "订单列表", + "vipcard.pages.order.my_reserved": "我的预约", + "vipcard.pages.order.my_reserved_detail": "我的预约详情", + "vipcard.pages.order.my_card": "我的卡项", + "vipcard.pages.order.detail": "订单详情", + "vipcard.pages.service.list": "项目列表", + "vipcard.pages.card.list": "卡项列表", + "vipcard.pages.card.detail": "卡项详情", + "recharge.pages.recharge": "充值", + "recharge.pages.recharge_record": "充值记录", + "recharge.pages.recharge_record_detail": "充值记录详情", + "shop.pages.goods.search": "搜索", + "shop.pages.goods.cart": "购物车", + "shop.pages.goods.category": "商品分类", + "shop.pages.goods.detail": "商品详情", + "shop.pages.goods.list": "商品列表", + "shop.pages.member.index": "个人中心", + "shop.pages.member.my_coupon": "我的优惠券", + "shop.pages.order.list": "订单列表", + "shop.pages.order.detail": "订单详情", + "shop.pages.order.payment": "待付款订单", + "shop.pages.pay.index": "待支付", + "shop.pages.pay.result": "支付成功", + "shop.pages.evaluate.order_evaluate": "商品评价", + "shop.pages.evaluate.order_evaluate_view": "商品评价", + "shop.pages.evaluate.list": "评价列表", + "shop.pages.coupon.list": "优惠券列表", + "shop.pages.coupon.detail": "优惠券详情", + "shop.pages.discount.list": "限时折扣", + "shop.pages.refund.list": "退款列表", + "shop.pages.refund.detail": "退款详情", + "shop.pages.refund.apply": "申请退款", + "shop.pages.refund.edit_apply": "编辑退款信息", + "shop.pages.refund.log": "协商记录", + "shop.pages.point.index": "积分商城", + "shop.pages.point.list": "积分商品列表", + "shop.pages.point.detail": "积分商品详情", + "shop.pages.point.payment": "待付款订单", + "shop.pages.point.order_list": "积分兑换记录", + "cms.pages.list": "资讯中心", + "cms.pages.detail": "文章详情" +} \ No newline at end of file diff --git a/src/locale/zh-Hans/common.json b/src/locale/zh-Hans/common.json new file mode 100644 index 0000000..e1b145b --- /dev/null +++ b/src/locale/zh-Hans/common.json @@ -0,0 +1,97 @@ +{ + "requestFail": "请求失败", + "notInDomainList": "不在request 合法域名列表中", + "baseUrlError": " 接口请求错误,请检查VITE_APP_BASE_URL参数配置或者伪静态配置", + "currency": "¥", + "getSmsCode": "获取验证码", + "smsCodeChangeText": "秒后重新获取", + "captchaTitle": "请完成验证", + "confirm": "确认", + "cancel": "取消", + "save": "保存", + "delete": "删除", + "captchaPlaceholder": "请输入验证码", + "mobilePlaceholder": "请输入手机号码", + "mobileError": "请输入正确的手机号", + "codePlaceholder": "请输入手机验证码", + "memberCenter": "个人中心", + "userAgreement": "用户协议", + "privacyAgreement": "隐私协议", + "nickname": "昵称", + "nicknamePlaceholder": "请输入昵称", + "headimg": "头像", + "headimgPlaceholder": "请设置头像", + "getAvatarNickname": "获取您的昵称头像", + "getAvatarNicknameTips": "获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面", + "point": "积分", + "balance": "余额", + "login": "登录", + "register": "注册", + "complete": "完成", + "close": "关闭", + "pay": { + "orderInfo": "订单信息", + "confirmPay": "确认支付", + "payTitle": "确认付款", + "notHavePayType": "没有可用的支付方式", + "notObtainedInfo": "未获取到支付信息", + "paymentDocuments": "该支付单据", + "paySuccess": "支付成功", + "payFail": "支付失败", + "completePay": "已完成支付", + "incompletePay": "未完成支付", + "getting": "获取支付结果中" + }, + "myBalance": "我的余额", + "myPoint": "我的积分", + "customerService": "联系客服", + "siteClose": "站点已关闭", + "noSite": "站点不存在", + "scenic": "景点", + "seeMore": "查看更多", + "way": "线路", + "hotel": "酒店", + "rise": "起", + "cardReserve": "项目预约", + "card": "办理次卡", + "memberName": "会员名称", + "memberCode": "会员码", + "reserve": "预约", + "reserveSuccess": "预约成功", + "cardLink": "次卡", + "myLink": "我的", + "siteStatus": "站点状态", + "reserveBtn": "去抢购", + "cardBtn": "办理", + "soldOut": "已售", + "unpaidOrder": "待支付", + "waitingOrder": "待使用", + "remainOrder": "已完成", + "allOrder": "全部订单", + "myOrder": "我的订单", + "orderNo": "订单号", + "actualPayment": "实付款", + "orderClose": "关闭订单", + "orderFinish": "确认收货", + "orderDetail": "详情", + "wxPrivacyPopup": { + "title": "用户隐私保护提示", + "descBefore": "感谢您使用本小程序,在使用前您应当阅读并同意", + "descAfter": "当点击同意并继续时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力;如您不同意,将无法继续使用小程序相关功能。", + "disagree": "不同意", + "agree": "同意并继续", + "contractName": "用户隐私保护指引", + "disagreeDesc": "未同意隐私协议,无法使用相关功能" + }, + "starLevel": "星级", + "star": "星", + "emptyAddress": "暂无收货地址,请先创建地址", + "addAddress": "新增收货地址", + "selectAddress": "选择地址", + "coupon": "优惠劵", + "shop.orderNo": "订单号", + "shop.actualPayment": "实付款", + "shop.orderClose": "关闭订单", + "shop.orderFinish": "确认收货", + "shop.coupon": "优惠劵" +} \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..34bd604 --- /dev/null +++ b/src/main.js @@ -0,0 +1,22 @@ +import App from './App' +import { createSSRApp } from 'vue' +import * as Pinia from 'pinia' +import locale from './locale' +import uviewPlus from 'uview-plus' +import '@/styles/index.scss' +import 'virtual:windi.css' +import { uniStorage } from './utils/storage' +import mixin from './utils/mixin' + +export function createApp() { + const app = createSSRApp(App) + app.use(Pinia.createPinia()) + app.use(locale) + app.use(uviewPlus) + app.use(mixin) + uniStorage() + return { + app, + Pinia + } +} diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..88f715e --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,95 @@ +{ + "name" : "选举系统", + "appid" : "__UNI__19EBD7D", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wx0d3f0804eb935a8d", + "setting" : { + "urlCheck" : false, + "es6" : true, + "minified" : true + }, + "usingComponents" : true, + "permission" : { + "scope.writePhotosAlbum" : { + "desc" : "为了更好地为您提供服务" + } + }, + "requiredPrivateInfos" : [ "chooseLocation", "getLocation", "chooseAddress" ], + "__usePrivacyCheck__" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3", + "h5" : { + "router" : { + "mode" : "history", + "base" : "/wap/" + }, + "sdkConfigs" : { + "maps" : { + "qqmap" : { + "key" : "" + } + } + } + }, + "fallbackLocale" : "zh-Hans" +} diff --git a/src/pages.json b/src/pages.json new file mode 100644 index 0000000..27ac9df --- /dev/null +++ b/src/pages.json @@ -0,0 +1,146 @@ +{ + "pages": [{ + "path": "app/pages/votingElection/index", + "style": { + "navigationBarTitleText": "投票选举" + } + }, + { + "path": "app/pages/electionList/index", + "style": { + "navigationBarTitleText": "选举列表" + } + }, + { + "path": "app/pages/electionResults/index", + "style": { + "navigationBarTitleText": "选举结果", + // "navigationStyle": "custom" ,// 隐藏系统导航栏 + "navigationBarTextStyle": "white" + } + }, + { + "path": "app/pages/myElection/index", + "style": { + "navigationBarTitleText": "我的选举", + // "navigationStyle": "custom" ,// 隐藏系统导航栏 + "navigationBarTextStyle": "white" + } + }, + { + "path": "app/pages/mine/index", + "style": { + "navigationBarTitleText": "个人信息", + "navigationStyle": "default" + } + }, + { + "path": "app/pages/auth/agreement", + "style": { + "navigationBarTitleText": "%pages.auth.agreement%" + } + }, + { + "path": "app/pages/auth/bind", + "style": { + "navigationBarTitleText": "%pages.auth.bind%" + } + }, + { + "path": "app/pages/auth/login", + "style": { + "navigationBarTitleText": "%pages.auth.login%" + } + }, + { + "path": "app/pages/auth/register", + "style": { + "navigationBarTitleText": "%pages.auth.register%" + } + }, + { + "path": "app/pages/auth/resetpwd", + "style": { + "navigationBarTitleText": "%pages.auth.resetpwd%" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "white", + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#2563EB", + "backgroundColor": "#F8F8F8", + "backgroundColorTop": "#F8F8F8", + "backgroundColorBottom": "#F8F8F8" + }, + "tabBar": { + // "list": [{ + // "pagePath": "app/pages/index/index" + // }, + // { + // "pagePath": "app/pages/member/index" + // } + // ], + "color": "#9CA3AF", + "selectedColor": "#2563EB", + "borderStyle": "white", + "backgroundColor": "#F9FAFB", + "list": [{ + "pagePath": "app/pages/votingElection/index", + "iconPath": "static/img/tpxj.png", + "selectedIconPath": "static/img/tpxj-select.png", + "text": "投票选举" + }, + { + "pagePath": "app/pages/electionList/index", + "iconPath": "static/img/xjlb.png", + "selectedIconPath": "static/img/xjlb-select.png", + "text": "选举列表" + }, + { + "pagePath": "app/pages/electionResults/index", + "iconPath": "static/img/xjjg.png", + "selectedIconPath": "static/img/xjjg-select.png", + "text": "选举结果" + }, + { + "pagePath": "app/pages/myElection/index", + "iconPath": "static/img/wdxj.png", + "selectedIconPath": "static/img/wdxj-select.png", + "text": "我的选举" + }, + { + "pagePath": "app/pages/mine/index", + "iconPath": "static/img/grxx.png", + "selectedIconPath": "static/img/grxx-select.png", + "text": "个人信息" + } + ] + }, + "uniIdRouter": {}, + "easycom": { + "autoscan": true, + "custom": { + "diy-group": "@/addon/components/diy/group/index.vue", + "fixed-group": "@/addon/components/fixed/group/index.vue", + "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue", + "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", + "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue", + "diy-(\W.*)": "@/app/components/diy/$1/index.vue", + "fixed-(\W.*)": "@/app/components/fixed/$1/index.vue" + } + }, + "condition": { //模式配置,仅开发期间生效 + "current": 0, //当前激活的模式(list 的索引项) + "list": [{ + "name": "", //模式名称 + "path": "", //启动页面,必选 + "query": "" //启动参数,在页面的onLoad函数里面得到 + }] + }, + "permission": { + "scope.userLocation": { + "desc": "获取你当前位置信息" + } + } +} \ No newline at end of file diff --git a/src/static/img/grxx-select.png b/src/static/img/grxx-select.png new file mode 100644 index 0000000000000000000000000000000000000000..38797270113a9b66a8a1d827cf78ef9bdf8379c1 GIT binary patch literal 353 zcmV-n0iOPeP)Px#1am@3R0s$N2z&@+hyVZq3rR#lR49>+kTFigFc3xmjN_WnfYMn4`aQyO18#s< z8~`}M9szLxw7CJ{2Dt(B2+3Up6q|Z&XDEPOCmT?H=Rbb)XNEA4v5nDLb}d4NNSqJh z-j#(*|4{lkxq81~@Z+FQ+o4;$JselR2JaHqIfGZjWB@sfx=W2Mq~Q&Kd;|hW%&GmH z??E219R+?A5ZoT*%EAe#8YO@_JqD+h5dAHHI`srp`4|?xX~){0*^ilka)Pw4<Px#1am@3R0s$N2z&@+hyVZp_(?=TR49>+kikvFFc3xGcrjO8f=k#EmJUb(2rMC_ zJpmPL35Zi9K=OeC96Cq`P(n(`87FHFA&_LVDF0;7%=7s(x7Ji`!7BDjq2=>K?%>mSQF^;N% z>Hzv#wwRd*D2Jb+hMm~(0F)D;hz)L>c1F)WtOZPh`qpKi)BXs`eX#n3HImMT^;ML2 z=dyYPPx#1am@3R0s$N2z&@+hyVZq5J^NqR49?9lEF~|Q4mC5?_aorRazd|0|AhM5P_Hh z5`h_j5g36=2xb6;;8_prnS*#`YqveXS`@4ZWuJb{)SK!4HSkZVd?bUOkMujd*%iX73%meCC%Bzqr2v7@D2qo9(B$p$qKBC6cB%#} zA-XHKt>N?A_HZ!<4~`koB+utrk@f82zJw)4Ro<#21Wjv%=KIs-_z(=B_HZ$lohXW? z#*^(RMl<359)t#luI<-IV&q7zswh=(DdR-q;pYwt`2+9&a+M15FKyDtYfCg`wSdV1 zZcCwIlOPjgrO2I~{C{hGu**0rvR*yZu1Px#1am@3R0s$N2z&@+hyVZq14%?dR49?9lEF>GKoCXWtnG8$L0m#QAg+K|TtUQA zxYI#Q1r(5joeE3`aY~>A(}6iV_HYPGBzqx=_@~i~-rxDFfqzPDk>_RD`Q#|GGeqqj zNYXTE0DRl;0=-3LakBhXQRg!U-T=%M+g2#`aSNT;=4A##v3f{i4ApStGH8J3(`yu~ z`y}0L%M4|Ci9y&O*tZ?A_Wg^6#jtiQ=Zs){b{>RJk9XN$Fo0~fWd=mz=?;}*5TybZ zV@j7GbM1LIVpxk|>Wboot&~WF*PlC3l@DS3%WhacZD|cc5uE~s6BuhkFA)MhN{uiZ rQ>kO_1EVJ2cLJC04bFw>FUNkIZ zKCUvMI9+hY?#&Np9OP2{Yd`6T+^ILV%P*XnpjY_&R*wI)*;ik>FJE5!S;Z_nfs3tm zwr9?|#%{msH{agoacYg(xAXb=Z8QCoR+YCm>@}?N@!)@OXa9CDCDDWjOO#ezV&qg1 zcb)g6SH|sxec_ay@rNIAWh=(qDZ2i-a5nQowoe9gw@$EhPhq|8%-UGC_m{*WR?E+u zKSc0EotJf1owN7q-+i7Fzb5vq5P#@5r?1wo$ZGSS`Jt=zD-YTCoUBmdK II;Vst0D6LeYybcN literal 0 HcmV?d00001 diff --git a/src/static/img/wdxj.png b/src/static/img/wdxj.png new file mode 100644 index 0000000000000000000000000000000000000000..1f938b2544e4319029179c6b5320b81819763f2f GIT binary patch literal 319 zcmV-F0l@x=P)Px#1am@3R0s$N2z&@+hyVZp=}AOER49>+kj+iQKoEt$87+60Kss;6D zC>5Y|5Uya!pya;kfRx}8oC>mcoE;7^&W4}BC(Y%}8_moU5}sTU=urL)3Rtj z`vUM>`!RqxJdgnmkYlt6v)Iv2%c7BLJA7PneF2?^@?f$vNXEIp#$flJDWg4P&4NL7zk#}KLEV)P|ifu Rf_eY|002ovPDHLkV1k3ViDm!* literal 0 HcmV?d00001 diff --git a/src/static/img/xjjg-select.png b/src/static/img/xjjg-select.png new file mode 100644 index 0000000000000000000000000000000000000000..e4a9dc476b8a81a7ff684b8762986689bfd3adda GIT binary patch literal 388 zcmV-~0ek+5P)Px#1am@3R0s$N2z&@+hyVZqE=fc|R49>^lR-|xKoo|*d2L;DgmMFq04I=%>js+8 zg)6y1%L#}p6Tvi~TQhh9I7)9I`@)P1!IVm?{>dyR|3BY*FPW!k(c;AnP~0fkS;u=4 z>1{ous+Y&ygjWIg&JlWh;=S035=kqOZMi4Di*<1Z$aB-N9;s7IPDZ(>>x&)L0N^Of z1N{@k&vVl`_-ugdws9&whk?fi=mLoKNdNq}0-5Kg2O!n9|0S_K0Kc`6$On$1!QA}{ z7)Sa6cxcNs0(@ZvWb@@)rj!gXWh_jk37~{@zBE}fyv>|ri6X2Yr6{Cv#v|l;WoF4x zXU;M`GaW?|>8+Fp`fW2h#bohn@;byRVmSW9rPx#1am@3R0s$N2z&@+hyVZqE=fc|R49>^lR-|xKoo|*d2L;DgmMFq04I=%>js+8 zg)6y1%L#}p6Tvi~TQhh9I7)9I`@)P1!IVm?{>dyR|3BY*FPW!k(c;AnP~0fkS;u=4 z>1{ous+Y&ygjWIg&JlWh;=S035=kqOZMi4Di*<1Z$aB-N9;s7IPDZ(>>x&)L0N^Of z1N{@k&vVl`_-ugdws9&whk?fi=mLoKNdNq}0-5Kg2O!n9|0S_K0Kc`6$On$1!QA}{ z7)Sa6cxcNs0(@ZvWb@@)rj!gXWh_jk37~{@zBE}fyv>|ri6X2Yr6{Cv#v|l;WoF4x zXU;M`GaW?|>8+Fp`fW2h#bohn@;byRVmSW9rPx#1am@3R0s$N2z&@+hyVZp?@2^KR49?1lEF>GP!L4l#v8;9M@W%!;v;YYbOIe1 z+yET_9fStpmjE4v3h+Hh{G6-^P<#g4%O&zHcH}v(_U+6_3j-x*+4?dfI{K~u-h!Wn zy}=~=G61vYp=u81<5B&NnCqmBxwaQXHvlH&K%etUsqMm$_`@GBw!^D^;|@~W5wq*% z)6}2etnWpllP;*Cer-D%=3KgoMXEcnZa1P>K|Fvo@)G={bZK$gAM~*7-`VAwWZ%yK z)Xn44Pji_1V0N&_H%1iO}fDClMK^8 X+80-wV-PM>00000NkvXXu0mjf0u6{- literal 0 HcmV?d00001 diff --git a/src/static/img/xjlb.png b/src/static/img/xjlb.png new file mode 100644 index 0000000000000000000000000000000000000000..caeac2fd353c87bcf983225268c6a730e5ba5c11 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}EX7WqAsj$Z z!;#VfZ|F?(%(T-w3y{{^)gy6#wP{G515 zyUj>D=vkg|#P2?aHntO1+-v666eKO!!BO{h@Auos?sodR2Oj!zM*rPA`SoXy$fbs! z`t0vM)#z9V&ou3lD;o+V#2B=`X|mi8HI(gN`E8-J?O*X_bsmBaRe8$~nuq!T+i&R=+J+vW$it7htjJ~5EKd@Jp?*ZvFVdQ&MBb@00(Y=mH+?% literal 0 HcmV?d00001 diff --git a/src/static/mantx.png b/src/static/mantx.png new file mode 100644 index 0000000000000000000000000000000000000000..337c98b433be41c9dd08a348fd526d739c02adcf GIT binary patch literal 8855 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 Z{67*)lFFxf9zXy9002ovPDHLkV1nh}D=h#3 literal 0 HcmV?d00001 diff --git a/src/static/womantx.png b/src/static/womantx.png new file mode 100644 index 0000000000000000000000000000000000000000..de1a0b337e391614dd7c6af5aee4445c65cded2f GIT binary patch literal 9079 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 literal 0 HcmV?d00001 diff --git a/src/stores/config.ts b/src/stores/config.ts new file mode 100644 index 0000000..4618983 --- /dev/null +++ b/src/stores/config.ts @@ -0,0 +1,80 @@ +import { defineStore } from 'pinia' +import { getConfig } from '@/app/api/auth' +import { getTabbarList } from '@/app/api/diy' +import { cloneDeep } from 'lodash-es' + +interface loginConfig { + is_username: number | boolean, + is_mobile: number | boolean, + is_auth_register: number | boolean, + is_bind_mobile: number | boolean, + agreement_show: number | boolean +} + +interface tabbarConfig { + backgroundColor: string, + textColor: string, + textHoverColor: string, + list: AnyObject[] +} + +interface Config { + login: loginConfig, + tabbarList:any, + tabbar: tabbarConfig | null, + addon: String, + themeColor:String +} + +const useConfigStore = defineStore('config', { + state: (): Config => { + return { + login: { + is_username: 0, + is_mobile: 0, + is_auth_register: 0, + is_bind_mobile: 0, + agreement_show: 0 + }, + tabbarList:{}, + tabbar: null, + addon: '', + themeColor:'' + } + }, + actions: { + async getLoginConfig() { + await getConfig().then((res: responseResult) => { + this.login.is_username = parseInt(res.data.is_username) + this.login.is_mobile = parseInt(res.data.is_mobile) + this.login.is_auth_register = parseInt(res.data.is_auth_register) + this.login.is_bind_mobile = parseInt(res.data.is_bind_mobile) + this.login.agreement_show = parseInt(res.data.agreement_show) + }).catch(() => { + }) + }, + async getTabbarConfig() { + await getTabbarList({}).then((res:any)=>{ + this.tabbarList = res.data; + }).catch(()=>{ + }) + }, + // 获取主色调 + getThemeColor() { + let themeColorStorage = uni.getStorageSync('current_theme_color'); + if (!this.themeColor && themeColorStorage) { + this.themeColor = JSON.parse(themeColorStorage); + } + if (this.themeColor) { + let style = ''; + for (let k in this.themeColor) { + style += `${k}:${this.themeColor[k]};`; + } + return style; + } + return ''; + } + } +}) + +export default useConfigStore diff --git a/src/stores/member.ts b/src/stores/member.ts new file mode 100644 index 0000000..39a40a3 --- /dev/null +++ b/src/stores/member.ts @@ -0,0 +1,49 @@ +import { defineStore } from 'pinia' +import { setToken, removeToken, redirect } from '@/utils/common' +import { getMemberInfo } from '@/app/api/member' +import { logout } from '@/app/api/auth' + +interface Member { + token : string | null + info : AnyObject | null +} + +const useMemberStore = defineStore('member', { + state: () : Member => { + return { + token: uni.getStorageSync(import.meta.env.VITE_REQUEST_STORAGE_TOKEN_KEY), + info: null + } + }, + actions: { + async setToken(token : string) { + this.token = token + setToken(token) + await this.getMemberInfo() + }, + async getMemberInfo() { + if (!this.token) return + await getMemberInfo().then((res: any) => { + this.info = res.data + uni.setStorageSync('wap_member_id',res.data.member_id) + }).catch(async () => { + await this.logout() + }) + }, + async logout(isRedirect : boolean = false) { + if (!this.token) return + this.token = '' + this.info = null + uni.setStorageSync('autoLoginLock', true) + await logout().then(() => { + removeToken() + isRedirect && redirect({ url: '/app/pages/index/index', mode: 'switchTab' }) + }).catch(() => { + removeToken() + isRedirect && redirect({ url: '/app/pages/index/index', mode: 'switchTab' }) + }) + } + } +}) + +export default useMemberStore diff --git a/src/stores/system.ts b/src/stores/system.ts new file mode 100644 index 0000000..d3138c5 --- /dev/null +++ b/src/stores/system.ts @@ -0,0 +1,57 @@ +import {defineStore} from 'pinia' +import {getSiteInfo, getMap} from '@/app/api/system' +import {redirect} from '@/utils/common' + +interface System { + site: AnyObject | null, + siteApps: string[], + siteAddons: string[], + currRoute: string, + location: Object | null, // 定位信息 + mapConfig: Object +} + +const useSystemStore = defineStore('system', { + state: (): System => { + return { + site: null, + siteApps: [], + siteAddons: [], + currRoute: '', + location: null, + mapConfig: { + is_open: 1, + valid_time: 0 + } + } + }, + actions: { + async getSiteInfoFn() { + await getSiteInfo().then((res: any) => { + this.site = res.data + this.siteApps = res.data.app + this.siteAddons = res.data.site_addons.map((item: AnyObject) => { + return item.key + }) + }).catch((err) => { + }) + }, + async getMapFn() { + // 获取地图配置 + await getMap().then((res: any) => { + this.mapConfig.is_open = res.data.is_open; + this.mapConfig.valid_time = res.data.valid_time; + uni.setStorageSync('mapConfig', this.mapConfig); + }) + }, + setLocation(value: Object) { + var date = new Date(); + date.setSeconds(60 * this.mapConfig.valid_time); + value.valid_time = date.getTime() / 1000; // 定位信息 5分钟内有效,过期后将重新获取定位信息 + this.location = value; + uni.setStorageSync('location', value); // 初始化数据调用 + } + } +}) + +export default useSystemStore diff --git a/src/styles/account_info.scss b/src/styles/account_info.scss new file mode 100644 index 0000000..111ee03 --- /dev/null +++ b/src/styles/account_info.scss @@ -0,0 +1,41 @@ +.account-info-wrap{ + @apply bg-[#F5F6FA] min-h-[100vh]; + .account-info-head{ + @apply relative h-40; + .name{ + @apply ml-4 pt-7 text-white text-lg mb-3; + } + .content{ + @apply absolute bg-white left-3 right-3 rounded-lg p-5; + .money{ + @apply text-xl font-bold; + } + .text{ + @apply text-xs text-slate-500 mt-2; + } + .money-wrap{ + @apply mt-5 flex; + .money-item{ + @apply flex-1; + } + .money{ + @apply text-lg; + } + .text{ + @apply mt-1; + } + } + } + } + .account-info-btn{ + @apply flex mt-24 ml-3 mr-3; + .btn{ + &:first-of-type{ + @apply mr-1 rounded; + } + &:last-of-type{ + @apply ml-1 rounded; + } + } + } +} \ No newline at end of file diff --git a/src/styles/common.css b/src/styles/common.css new file mode 100644 index 0000000..3bc2acc --- /dev/null +++ b/src/styles/common.css @@ -0,0 +1 @@ +:root,page{--primary-color: #007aff;--primary-color-dark: #398ade;--primary-color-disabled: #9acafc;--primary-color-light: #ecf5ff;--page-bg-color: #f4f7f6}@font-face{font-family:"myFont";src:url("data:font/ttf;charset=utf-8;base64,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/+8ALP/LADH/7wAz/+8ANf/3ADYACgA3/8sAOAAKADkACgA6AAcAOwAKAED/3QBC/90AQ//dAET/3QBF//QARv/dAEz/6gBN/+oATv/dAE//6gBQ/90AUf/qAFL/3wBT//UAVP/sAFUACwBX//UAWP/1AFn/7wAPACMACAAl//IAKf/yADH/8gAz//IAQv/1AEP/9QBE//UARv/1AE7/9QBQ//UAVP/1AFX/8gBW//IAWP/yAAIAVf/3AFj/9wAEAFX/+gBX//gAWP/6AFn/+AACAFX/9QBY//kABQBC//MAQ//zAET/8wBG//MAUP/zAAYAQv/1AEP/9QBE//UARv/1AEj/9QBQ//UABABV//gAV//1AFj/+ABZ//cACgBA/+QAQv/kAEP/6gBE/+QARQALAEb/6gBO/+EAUP/qAFMAHABYAAoAAgBE//UATv/uAAgAQP/4AEL/+ABD//gARP/1AEUACABG//gATv/4AFD/+AAGAEL/9QBD//UARP/1AEb/9QBO/+oAUP/1AAgAQP/4AEL/+ABD//gARP/4AEUACABG//gATv/vAFD/+AAGAEL/9wBD//cARP/3AEb/9wBO//cAUP/3AAIACwAjACgAAAAqADQABgA2ADwAEQBAAEEAGABEAEUAGgBKAEoAHABOAE8AHQBRAFEAHwBTAFMAIABVAFUAIQBXAFkAIgAAAAAAAQAAAADVpCcIAAAAANbRI74AAAAA2D0KNg==") format("truetype");src:url("@/styles/custom.ttf") format("truetype")}.price-font{font-family:"myFont","-apple-system","BlinkMacSystemFont","Helvetica Neue","Helvetica","Segoe UI","Arial","Roboto","PingFang SC","Hiragino Sans GB","Microsoft Yahei","sans-serif"}uni-page-body{line-height:1.8;font-family:"PingFang SC","Roboto Medium","-apple-system","BlinkMacSystemFont","Helvetica Neue","Helvetica","Segoe UI","Arial","Roboto","PingFang SC","Hiragino Sans GB","Microsoft Yahei","sans-serif";font-size:28rpx;color:#303133}input,.uni-input{font-size:28rpx}button{font-size:28rpx;border-radius:10rpx;line-height:2.8}button:after,uni-button:after{border:none !important}button[type=primary],uni-button[type=primary]{background-color:var(--primary-color) !important}.using-hidden{word-break:break-all;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;white-space:break-spaces}.multi-hidden{word-break:break-all;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mb-ios{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.pb-ios{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.u-popup .u-transition{touch-action:none}.u-button.u-button--active:before{opacity:0 !important}.u-popup[type=bottom] .u-popup__content,.u-popup .u-slide-up-enter-to .u-popup__content{border-top-left-radius:16rpx;border-top-right-radius:16rpx;overflow:hidden}.u-popup :deep(.u-transition){z-index:999 !important}.u-cell-group .u-cell__body__content{line-height:1}.u-cell-group .u-cell__right-icon-wrap .uicon-arrow-right{font-size:28rpx !important;color:#999}.flex{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:center}.flex-center{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:center}.flex-center-start{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:flex-start}.flex-center-center{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:center}.flex-center-end{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:flex-end}.flex-center-between{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:space-between}.flex-center-around{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:space-around}.flex-center-evenly{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:space-evenly}.flex-start{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:center}.flex-start-start{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:flex-start}.flex-start-center{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:center}.flex-start-end{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:flex-end}.flex-start-between{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:space-between}.flex-start-around{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:space-around}.flex-start-evenly{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-start;justify-content:space-evenly}.flex-end{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:center}.flex-end-start{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:flex-start}.flex-end-center{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:center}.flex-end-end{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:flex-end}.flex-end-between{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:space-between}.flex-end-around{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:space-around}.flex-end-evenly{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:flex-end;justify-content:space-evenly}.row{flex-direction:row}.row-reverse{flex-direction:row-reverse}.column{flex-direction:column}.column-reverse{flex-direction:column-reverse}.wrap{flex-wrap:wrap}.nowrap{flex-wrap:nowrap}[class*=flex-].row,[class^=flex].row{flex-direction:row}[class*=flex-].row-reverse,[class^=flex].row-reverse{flex-direction:row-reverse}[class*=flex-].column,[class^=flex].column{flex-direction:column}[class*=flex-].column-reverse,[class^=flex].column-reverse{flex-direction:column-reverse}[class*=flex-].wrap,[class^=flex].wrap{flex-wrap:wrap}[class*=flex-].nowrap,[class^=flex].nowrap{flex-wrap:nowrap}.flex1{flex:1}.flex2{flex:2}.flex3{flex:3}.flex4{flex:4}.flex5{flex:5}.text-ellipsis-3,.text-ellipsis-2,.text-ellipsis-1,.text-ellipsis{text-overflow:ellipsis;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.text-ellipsis{--line: 1;-webkit-line-clamp:var(--line)}.text-ellipsis-1{-webkit-line-clamp:1}.text-ellipsis-2{-webkit-line-clamp:2}.text-ellipsis-3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/src/styles/common.scss b/src/styles/common.scss new file mode 100644 index 0000000..ce5d1c7 --- /dev/null +++ b/src/styles/common.scss @@ -0,0 +1,253 @@ +:root, page { + --primary-color: #007aff; + --primary-color-dark: #398ade; + --primary-color-disabled: #9acafc; + --primary-color-light: #ecf5ff; + --page-bg-color: #f4f7f6; +} + +// 字体设置 +@font-face { + font-family: 'myFont'; + /* #ifdef MP */ + src: url('data:font/ttf;charset=utf-8;base64,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/+8ALP/LADH/7wAz/+8ANf/3ADYACgA3/8sAOAAKADkACgA6AAcAOwAKAED/3QBC/90AQ//dAET/3QBF//QARv/dAEz/6gBN/+oATv/dAE//6gBQ/90AUf/qAFL/3wBT//UAVP/sAFUACwBX//UAWP/1AFn/7wAPACMACAAl//IAKf/yADH/8gAz//IAQv/1AEP/9QBE//UARv/1AE7/9QBQ//UAVP/1AFX/8gBW//IAWP/yAAIAVf/3AFj/9wAEAFX/+gBX//gAWP/6AFn/+AACAFX/9QBY//kABQBC//MAQ//zAET/8wBG//MAUP/zAAYAQv/1AEP/9QBE//UARv/1AEj/9QBQ//UABABV//gAV//1AFj/+ABZ//cACgBA/+QAQv/kAEP/6gBE/+QARQALAEb/6gBO/+EAUP/qAFMAHABYAAoAAgBE//UATv/uAAgAQP/4AEL/+ABD//gARP/1AEUACABG//gATv/4AFD/+AAGAEL/9QBD//UARP/1AEb/9QBO/+oAUP/1AAgAQP/4AEL/+ABD//gARP/4AEUACABG//gATv/vAFD/+AAGAEL/9wBD//cARP/3AEb/9wBO//cAUP/3AAIACwAjACgAAAAqADQABgA2ADwAEQBAAEEAGABEAEUAGgBKAEoAHABOAE8AHQBRAFEAHwBTAFMAIABVAFUAIQBXAFkAIgAAAAAAAQAAAADVpCcIAAAAANbRI74AAAAA2D0KNg==') format('truetype'); + /* #endif */ + /* #ifndef MP */ + src: url('@/styles/custom.ttf') format('truetype'); + /* #endif */ +} + +.price-font{ + font-family: 'myFont','-apple-system', 'BlinkMacSystemFont', 'Helvetica Neue', 'Helvetica', 'Segoe UI', 'Arial', 'Roboto', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei','sans-serif'; +} +// 全局基础样式 +uni-page-body { + line-height: 1.8; + font-family: 'PingFang SC', 'Roboto Medium', '-apple-system', 'BlinkMacSystemFont', 'Helvetica Neue', 'Helvetica', 'Segoe UI', 'Arial', 'Roboto', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei','sans-serif'; + font-size: 28rpx; + color: #303133; +} +input, .uni-input { + font-size: 28rpx; +} +button{ + font-size: 28rpx; + border-radius: 10rpx; + line-height: 2.8; +} +button:after,uni-button:after { + border: none !important; +} +button[type='primary'],uni-button[type='primary']{ + background-color: var(--primary-color) !important; +} + +/* 单行超出隐藏 */ +.using-hidden { + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + white-space: break-spaces; +} + +/* 多行超出隐藏 */ +.multi-hidden { + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.mb-ios{ + margin-bottom:constant(safe-area-inset-bottom); + margin-bottom:env(safe-area-inset-bottom); +} + +.pb-ios{ + padding-bottom:constant(safe-area-inset-bottom); + padding-bottom:env(safe-area-inset-bottom); +} + +// 防止穿透 +.u-popup .u-transition { + touch-action: none; +} + +// 去掉uveiew 点击时变灰【针对于微信小程序处理,官方提供的方法,在小程序中不起作用】 +.u-button.u-button--active:before{ + opacity: 0 !important; +} + +/****************** 弹窗-start *********************/ +// 弹窗圆角[从下往上弹窗] +.u-popup[type="bottom"] .u-popup__content, .u-popup .u-slide-up-enter-to .u-popup__content{ + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; + overflow: hidden; +} +// 防止覆盖住图片放大 +.u-popup :deep(.u-transition){ + z-index: 999 !important; +} +/****************** 弹窗-end *********************/ + +/****************** u-cell-start *********************/ +.u-cell-group .u-cell__body__content{ + line-height: 1; +} +.u-cell-group .u-cell__right-icon-wrap .uicon-arrow-right{ + font-size: 28rpx !important; + color: #999; +} +/****************** u-cell-end *********************/ + + + +/*============================= 弹性盒子 =============================*/ +@mixin displayFlex($align: center, $justify: center) { + display: flex; + flex-wrap: nowrap; + flex-direction: row; + align-items: $align; + justify-content: $justify; +} + +@mixin alignItems($align: center) { + @include displayFlex($align, center); + + &-start { + @include displayFlex($align, flex-start); + } + + &-center { + @include displayFlex($align, center); + } + + &-end { + @include displayFlex($align, flex-end); + } + + &-between { + @include displayFlex($align, space-between); + } + + &-around { + @include displayFlex($align, space-around); + } + + &-evenly { + @include displayFlex($align, space-evenly); + } +} + +.flex { + @include displayFlex; + + &-center { + @include alignItems(center); + } + + &-start { + @include alignItems(flex-start); + } + + &-end { + @include alignItems(flex-end); + } +} + +/* #ifdef MP-TOUTIAO */ +.row { + flex-direction: row; +} + +.row-reverse { + flex-direction: row-reverse; +} + +.column { + flex-direction: column; +} + +.column-reverse { + flex-direction: column-reverse; +} + +.wrap { + flex-wrap: wrap; +} + +.nowrap { + flex-wrap: nowrap; +} +/* #endif */ + +[class*="flex-"], +[class^="flex"] { + &.row { + flex-direction: row; + } + + &.row-reverse { + flex-direction: row-reverse; + } + + &.column { + flex-direction: column; + } + + &.column-reverse { + flex-direction: column-reverse; + } + + &.wrap { + flex-wrap: wrap; + } + + &.nowrap { + flex-wrap: nowrap; + } +} + +// 生成flex1等占位 +@for $i from 1 through 5 { + .flex#{$i} { + flex: #{$i}; + } +} + +/*============================= 文字溢出 =============================*/ + +%text-ellipsis-lint { + text-overflow: ellipsis; + white-space: normal; + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.text-ellipsis { + --line: 1; + @extend %text-ellipsis-lint; + -webkit-line-clamp: var(--line); + + &-1 { + @extend %text-ellipsis-lint; + -webkit-line-clamp: 1; + } + + &-2 { + @extend %text-ellipsis-lint; + -webkit-line-clamp: 2; + } + + &-3 { + @extend %text-ellipsis-lint; + -webkit-line-clamp: 3; + } +} diff --git a/src/styles/custom.ttf b/src/styles/custom.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6483758edc648384371173e84e02b7d40f75cf34 GIT binary patch literal 26800 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 .draggable-element.top-fixed-diy { + display: none; + } + } + + /* #ifdef H5 */ + :deep(.child-diy-template-wrap) { + .diy-group .draggable-element.top-fixed-diy { + display: block; + } + } + + /* #endif */ +} \ No newline at end of file diff --git a/src/styles/iconfont.css b/src/styles/iconfont.css new file mode 100644 index 0000000..4d8c305 --- /dev/null +++ b/src/styles/iconfont.css @@ -0,0 +1,994 @@ +@font-face { + font-family: "iconfont"; /* Project id 3952239 */ + src: url('//at.alicdn.com/t/c/font_3952239_d9jfnubjilt.woff2?t=1718190955432') format('woff2'), + url('//at.alicdn.com/t/c/font_3952239_d9jfnubjilt.woff?t=1718190955432') format('woff'), + url('//at.alicdn.com/t/c/font_3952239_d9jfnubjilt.ttf?t=1718190955432') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.iconrenminbiV6xx:before { + content: "\e680"; +} + +.iconxiaolian-1:before { + content: "\e653"; +} + +.iconxiaolian-2:before { + content: "\e654"; +} + +.iconwodezixun:before { + content: "\e645"; +} + +.iconwode-xian:before { + content: "\e60f"; +} + +.iconbalance:before { + content: "\e73b"; +} + +.iconweixinzhifu2:before { + content: "\e640"; +} + +.iconalipay:before { + content: "\e618"; +} + +.icona-shejianchangguan:before { + content: "\e647"; +} + +.icondunpai:before { + content: "\e80b"; +} + +.iconxiazai:before { + content: "\e69c"; +} + +.iconhuiyuanjiage:before { + content: "\e611"; +} + +.iconshuaxin:before { + content: "\e63e"; +} + +.iconyinlian:before { + content: "\e68b"; +} + +.iconkefu:before { + content: "\e612"; +} + +.icondianzan:before { + content: "\ec7f"; +} + +.icondache:before { + content: "\e615"; +} + +.iconjiantouarrow492:before { + content: "\e6b0"; +} + +.iconxuanze:before { + content: "\e63d"; +} + +.iconlianjie-tianchong:before { + content: "\e658"; +} + +.iconmendian:before { + content: "\e60a"; +} + +.iconico_yuyueguanli_yuyuebiangeng:before { + content: "\e94a"; +} + +.iconxinyongqia:before { + content: "\e785"; +} + +.iconquanbudingdan:before { + content: "\e601"; +} + +.iconico:before { + content: "\e646"; +} + +.iconkefu1:before { + content: "\e88f"; +} + +.iconWechat-Moments:before { + content: "\e7a8"; +} + +.iconlink-filling:before { + content: "\e898"; +} + +.icondaohang:before { + content: "\e6bd"; +} + +.iconkaidian:before { + content: "\e6fb"; +} + +.iconxiajiantou:before { + content: "\e602"; +} + +.iconyongjin:before { + content: "\e6e3"; +} + +.iconshangjiantou:before { + content: "\e604"; +} + +.iconshimingrenzheng-xian:before { + content: "\e89c"; +} + +.icondasuozi:before { + content: "\e608"; +} + +.iconfenxiao:before { + content: "\e61b"; +} + +.iconfenxiang2:before { + content: "\e635"; +} + +.iconxiangqing:before { + content: "\e61f"; +} + +.iconjiantouloukong-you:before { + content: "\e631"; +} + +.iconpinglun:before { + content: "\e60b"; +} + +.icongouwuche2:before { + content: "\e73d"; +} + +.iconshangjiadingdan:before { + content: "\ee00"; +} + +.iconzhankai:before { + content: "\e62c"; +} + +.iconshouqi:before { + content: "\e62d"; +} + +.icongouwuche-shangpin:before { + content: "\e637"; +} + +.iconguanzhu-weidianji:before { + content: "\e638"; +} + +.icondianpu-xiayibu:before { + content: "\e639"; +} + +.iconguanzhu-dianji:before { + content: "\e63c"; +} + +.iconshoucang1:before { + content: "\e621"; +} + +.iconfenxiang:before { + content: "\e610"; +} + +.icongouwuche:before { + content: "\e699"; +} + +.iconfenxiang3:before { + content: "\e655"; +} + +.icongouwuche3:before { + content: "\e63f"; +} + +.iconfenxiang1:before { + content: "\e64d"; +} + +.iconshezhi:before { + content: "\e600"; +} + +.iconjiahao1:before { + content: "\e84f"; +} + +.iconjianhao:before { + content: "\e850"; +} + +.iconshezhi1:before { + content: "\e8b7"; +} + +.iconshijian:before { + content: "\e6c8"; +} + +.iconxiangxiajiantou:before { + content: "\e65e"; +} + +.iconxiangxia:before { + content: "\e62f"; +} + +.iconxiangshang:before { + content: "\e630"; +} + +.iconxialajiantouxiao:before { + content: "\e87e"; +} + +.iconanniu-jiantouxiangyou_o:before { + content: "\eb8c"; +} + +.iconxiazai19:before { + content: "\e614"; +} + +.iconjiantou3:before { + content: "\e605"; +} + +.iconxiangyoujiantou:before { + content: "\e620"; +} + +.iconjiantoushang:before { + content: "\e619"; +} + +.iconxiazai17:before { + content: "\e613"; +} + +.iconguanbi:before { + content: "\e609"; +} + +.iconsousuo:before { + content: "\e8b9"; +} + +.iconbianji:before { + content: "\e6ee"; +} + +.iconshurutianxiebi:before { + content: "\e69f"; +} + +.iconshaixuan:before { + content: "\e888"; +} + +.iconshangpinliebiao:before { + content: "\e61c"; +} + +.iconfuzhi:before { + content: "\e62b"; +} + +.iconshuru:before { + content: "\e625"; +} + +.iconicon7:before { + content: "\e667"; +} + +.iconguanbi1:before { + content: "\e634"; +} + +.iconarrow-right:before { + content: "\e622"; +} + +.iconfanhui1:before { + content: "\e629"; +} + +.iconVector-104:before { + content: "\e724"; +} + +.iconVector-105:before { + content: "\e725"; +} + +.iconVector-108:before { + content: "\e726"; +} + +.iconVector-107:before { + content: "\e727"; +} + +.iconVector-106:before { + content: "\e729"; +} + +.iconVector-97:before { + content: "\e72a"; +} + +.iconVector-102:before { + content: "\e72b"; +} + +.iconVector-103:before { + content: "\e72c"; +} + +.iconVector-101:before { + content: "\e72d"; +} + +.iconVector-92:before { + content: "\e72e"; +} + +.iconVector-90:before { + content: "\e730"; +} + +.iconVector-98:before { + content: "\e731"; +} + +.iconVector-99:before { + content: "\e732"; +} + +.iconVector-100:before { + content: "\e733"; +} + +.iconVector-95:before { + content: "\e734"; +} + +.iconVector-96:before { + content: "\e735"; +} + +.iconVector-91:before { + content: "\e737"; +} + +.iconVector-93:before { + content: "\e738"; +} + +.iconVector-89:before { + content: "\e739"; +} + +.iconVector-84:before { + content: "\e73a"; +} + +.iconVector-83:before { + content: "\e73c"; +} + +.iconVector-88:before { + content: "\e73e"; +} + +.iconVector-82:before { + content: "\e73f"; +} + +.iconVector-86:before { + content: "\e740"; +} + +.iconVector-74:before { + content: "\e741"; +} + +.iconVector-81:before { + content: "\e743"; +} + +.iconVector-85:before { + content: "\e744"; +} + +.iconVector-87:before { + content: "\e745"; +} + +.iconVector-77:before { + content: "\e746"; +} + +.iconVector-79:before { + content: "\e747"; +} + +.iconVector-80:before { + content: "\e748"; +} + +.iconVector-75:before { + content: "\e749"; +} + +.iconVector-72:before { + content: "\e74a"; +} + +.iconVector-71:before { + content: "\e74b"; +} + +.iconVector-76:before { + content: "\e74c"; +} + +.iconVector-73:before { + content: "\e74d"; +} + +.iconVector-78:before { + content: "\e74e"; +} + +.iconVector-67:before { + content: "\e74f"; +} + +.iconVector-59:before { + content: "\e750"; +} + +.iconVector-60:before { + content: "\e751"; +} + +.iconVector-69:before { + content: "\e752"; +} + +.iconVector-58:before { + content: "\e753"; +} + +.iconVector-70:before { + content: "\e754"; +} + +.iconVector-54:before { + content: "\e755"; +} + +.iconVector-68:before { + content: "\e756"; +} + +.iconVector-65:before { + content: "\e757"; +} + +.iconVector-57:before { + content: "\e758"; +} + +.iconVector-64:before { + content: "\e759"; +} + +.iconVector-61:before { + content: "\e75a"; +} + +.iconVector-63:before { + content: "\e75b"; +} + +.iconVector-38:before { + content: "\e75c"; +} + +.iconVector-49:before { + content: "\e75d"; +} + +.iconVector-66:before { + content: "\e75e"; +} + +.iconVector-53:before { + content: "\e75f"; +} + +.iconVector-62:before { + content: "\e760"; +} + +.iconVector-46:before { + content: "\e761"; +} + +.iconVector-55:before { + content: "\e762"; +} + +.iconVector-56:before { + content: "\e763"; +} + +.iconVector-37:before { + content: "\e764"; +} + +.iconVector-51:before { + content: "\e765"; +} + +.iconVector-52:before { + content: "\e766"; +} + +.iconVector-50:before { + content: "\e767"; +} + +.iconVector-29:before { + content: "\e769"; +} + +.iconVector-47:before { + content: "\e76a"; +} + +.iconVector-48:before { + content: "\e76b"; +} + +.iconVector-45:before { + content: "\e76c"; +} + +.iconVector-39:before { + content: "\e76d"; +} + +.iconVector-32:before { + content: "\e76e"; +} + +.iconVector-44:before { + content: "\e76f"; +} + +.iconVector-41:before { + content: "\e770"; +} + +.iconVector-40:before { + content: "\e771"; +} + +.iconVector-33:before { + content: "\e772"; +} + +.iconVector-43:before { + content: "\e773"; +} + +.iconVector-22:before { + content: "\e774"; +} + +.iconVector-30:before { + content: "\e775"; +} + +.iconVector-36:before { + content: "\e776"; +} + +.iconVector-42:before { + content: "\e777"; +} + +.iconVector-35:before { + content: "\e778"; +} + +.iconVector-20:before { + content: "\e779"; +} + +.iconVector-31:before { + content: "\e77b"; +} + +.iconVector-28:before { + content: "\e77c"; +} + +.iconVector-34:before { + content: "\e77d"; +} + +.iconVector-24:before { + content: "\e77e"; +} + +.iconVector-17:before { + content: "\e77f"; +} + +.iconVector-27:before { + content: "\e780"; +} + +.iconVector-6:before { + content: "\e781"; +} + +.iconVector-26:before { + content: "\e783"; +} + +.iconVector-15:before { + content: "\e784"; +} + +.iconVector-21:before { + content: "\e786"; +} + +.iconVector-11:before { + content: "\e787"; +} + +.iconVector-5:before { + content: "\e788"; +} + +.iconVector-19:before { + content: "\e789"; +} + +.iconVector-23:before { + content: "\e78a"; +} + +.iconVector-16:before { + content: "\e78b"; +} + +.iconVector-14:before { + content: "\e78c"; +} + +.iconVector-8:before { + content: "\e78d"; +} + +.iconVector-13:before { + content: "\e78e"; +} + +.iconVector-12:before { + content: "\e78f"; +} + +.iconVector-18:before { + content: "\e790"; +} + +.icona-9:before { + content: "\e791"; +} + +.iconVector-1:before { + content: "\e793"; +} + +.iconVector-7:before { + content: "\e794"; +} + +.iconVector-2:before { + content: "\e795"; +} + +.iconVector-9:before { + content: "\e796"; +} + +.iconVector1:before { + content: "\e797"; +} + +.iconVector-10:before { + content: "\e798"; +} + +.iconVector-3:before { + content: "\e799"; +} + +.iconVector-4:before { + content: "\e79c"; +} + +.icona-Vector1Stroke:before { + content: "\e79f"; +} + +.iconq96:before { + content: "\e7aa"; +} + +.icona-Vector3Stroke-copy-copy:before { + content: "\e7ab"; +} + +.iconVector-25:before { + content: "\e70b"; +} + +.iconVector-94:before { + content: "\e6d4"; +} + +.iconqiandao:before { + content: "\e636"; +} + +.iconshangyibu:before { + content: "\e62a"; +} + +.iconxiayibu1:before { + content: "\e628"; +} + +.iconhexiao:before { + content: "\e64f"; +} + +.iconjiang-copy:before { + content: "\e624"; +} + +.icontiaoxingmasaomiao:before { + content: "\e63a"; +} + +.iconsaoma:before { + content: "\e69a"; +} + +.iconjilu:before { + content: "\e627"; +} + +.iconzhekou:before { + content: "\e623"; +} + +.iconxiayibu:before { + content: "\e60e"; +} + +.iconweixin11:before { + content: "\e63b"; +} + +.iconpengyouquan:before { + content: "\e66e"; +} + +.iconfuzhilianjie:before { + content: "\e65c"; +} + +.iconshouye1:before { + content: "\e62e"; +} + +.iconshangxiajiantouheise:before { + content: "\e809"; +} + +.iconjia:before { + content: "\e633"; +} + +.iconjian:before { + content: "\e64e"; +} + +.iconjiantou-you-cuxiantiao-fill:before { + content: "\e6ae"; +} + +.iconxuanzhongduigou:before { + content: "\e652"; +} + +.iconshuaxin1:before { + content: "\e782"; +} + +.icon24gl-questionCircle:before { + content: "\e97f"; +} + +.icondianhua:before { + content: "\e6be"; +} + +.iconzanwuwuliuxinxi:before { + content: "\e674"; +} + +.iconzhaoxiangji:before { + content: "\e664"; +} + +.icongouwuche1:before { + content: "\e682"; +} + +.iconshoucang_shoucang:before { + content: "\e607"; +} + +.icona-shoucang-weishoucang:before { + content: "\e6f2"; +} + +.iconjiahao2fill:before { + content: "\e728"; +} + +.iconliebiaoxingshi:before { + content: "\e742"; +} + +.iconqiuzhirenyuan:before { + content: "\e66d"; +} + +.icondianhua-xianxingyuankuang:before { + content: "\e8bc"; +} + +.iconshuangxiang:before { + content: "\e669"; +} + +.iconchuang1:before { + content: "\e61a"; +} + +.iconfangzi:before { + content: "\e8ff"; +} + +.iconpeople:before { + content: "\e617"; +} + +.iconlouceng:before { + content: "\e642"; +} + +.iconshuliang:before { + content: "\e61e"; +} + +.iconxingxing:before { + content: "\e60d"; +} + +.iconrili:before { + content: "\e696"; +} + +.iconzhixiang:before { + content: "\e72f"; +} + +.iconzuobiaofill:before { + content: "\e768"; +} + +.iconxuanze1:before { + content: "\e616"; +} + +.iconyuandianfengefu:before { + content: "\e603"; +} + +.iconshouye:before { + content: "\e606"; +} + +.iconjiantouxia:before { + content: "\e67e"; +} + +.iconcheckbox_nol:before { + content: "\e626"; +} + +.iconweixin1:before { + content: "\e878"; +} + +.iconzhifubaoxuanzhong:before { + content: "\e802"; +} + +.iconduigou:before { + content: "\e632"; +} + +.iconzhifushibai:before { + content: "\e663"; +} + +.iconshouye-zhihui:before { + content: "\e61d"; +} diff --git a/src/styles/index.scss b/src/styles/index.scss new file mode 100644 index 0000000..302dd2a --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,5 @@ +@import 'uview-plus/index.scss'; +@import 'common.scss'; +@import 'iconfont.css'; +@import 'official-iconfont.css'; + diff --git a/src/styles/member_record_detail.scss b/src/styles/member_record_detail.scss new file mode 100644 index 0000000..56682a3 --- /dev/null +++ b/src/styles/member_record_detail.scss @@ -0,0 +1,25 @@ +page{ + background-color: #f5f6fa; + @apply pt-4; +} +.member-record-detail{ + @apply m-4 mt-0 bg-white rounded-md px-4 py-6; + .money-wrap{ + @apply flex items-center flex-col mb-6; + text:first-of-type{ + @apply text-3xl font-bold mt-1; + } + text:last-of-type{ + @apply text-sm mt-3; + } + } + .line-wrap{ + @apply flex justify-between text-sm mt-3; + .label{ + @apply text-[#878787]; + } + .value{ + @apply text-[#222]; + } + } +} \ No newline at end of file diff --git a/src/styles/member_record_list.scss b/src/styles/member_record_list.scss new file mode 100644 index 0000000..79dcab1 --- /dev/null +++ b/src/styles/member_record_list.scss @@ -0,0 +1,21 @@ +.member-record-list{ + @apply min-h-[100vh]; + .member-record-item{ + @apply relative mx-4 border-solid border-t-0 border-l-0 border-r-0 border-b-1 border-[#ECEBEC] py-3; + .name{ + @apply text-sm; + } + .desc{ + @apply text-xs text-[#8D8C8D] mt-1; + } + .text-active{ + color: #FF0D3E; + } + .money{ + @apply absolute right-3 top-4 text-base font-bold; + } + .state{ + @apply absolute right-3 top-11 text-[#8D8C8D] text-xs; + } + } +} \ No newline at end of file diff --git a/src/styles/official-iconfont.css b/src/styles/official-iconfont.css new file mode 100644 index 0000000..4581b63 --- /dev/null +++ b/src/styles/official-iconfont.css @@ -0,0 +1,1294 @@ +@font-face { + font-family: "nc-iconfont"; /* Project id 4567203 */ + src: url('//at.alicdn.com/t/c/font_4567203_jiym07jhp7i.woff2?t=1718104706175') format('woff2'), + url('//at.alicdn.com/t/c/font_4567203_jiym07jhp7i.woff?t=1718104706175') format('woff'), + url('//at.alicdn.com/t/c/font_4567203_jiym07jhp7i.ttf?t=1718104706175') format('truetype'); +} + +.nc-iconfont { + font-family: "nc-iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.nc-icon-kefuV6xx1:before { + content: "\e76a"; +} + +.nc-icon-huiyuandengjiV6xx1:before { + content: "\e761"; +} + +.nc-icon-gerenzhongxinV6xx:before { + content: "\e762"; +} + +.nc-icon-gerenzhongxinV6mm1:before { + content: "\e763"; +} + +.nc-icon-chuangV6xx:before { + content: "\e764"; +} + +.nc-icon-zujiV6xx:before { + content: "\e765"; +} + +.nc-icon-gouwucheV6xx2:before { + content: "\e766"; +} + +.nc-icon-dianzanV6mm:before { + content: "\e767"; +} + +.nc-icon-pintuanV6xx:before { + content: "\e768"; +} + +.nc-icon-pintuanV6mm:before { + content: "\e769"; +} + +.nc-icon-zujiV6mm1:before { + content: "\e76b"; +} + +.nc-icon-dingweiV6mm:before { + content: "\e76f"; +} + +.nc-icon-dingweiV6mm-2:before { + content: "\e76d"; +} + +.nc-icon-xiaolian-2:before { + content: "\e6e8"; +} + +.nc-icon-xiaolian-1:before { + content: "\e6e9"; +} + +.nc-icon-sousuo-duanV6xx1:before { + content: "\e6f1"; +} + +.nc-icon-shanchu-yuangaizhiV6xx:before { + content: "\e6e7"; +} + +.nc-icon-dingweiV6xx1:before { + content: "\e6f0"; +} + +.nc-icon-dingweiV6xx-1:before { + content: "\e6ef"; +} + +.nc-icon-sousuoV6xx1:before { + content: "\e6e5"; +} + +.nc-icon-sousuo-duanV6xx:before { + content: "\e6e4"; +} + +.nc-icon-gouwucheV6mm1:before { + content: "\e6e3"; +} + +.nc-icon-gouwucheV6xx1:before { + content: "\e6e2"; +} + +.nc-icon-dingweiV6xx:before { + content: "\e6e6"; +} + +.nc-icon-yueV6xx1:before { + content: "\e641"; +} + +.nc-icon-youhuiV6xx1:before { + content: "\e642"; +} + +.nc-icon-shezhi-1V6xx:before { + content: "\e643"; +} + +.nc-icon-youhuiquanV6xx1:before { + content: "\e644"; +} + +.nc-icon-youhuiquanV6xx-11:before { + content: "\e645"; +} + +.nc-icon-wodeshoucangV6xx1:before { + content: "\e646"; +} + +.nc-icon-shoucangV6xx-11:before { + content: "\e647"; +} + +.nc-icon-bianjiV6xx:before { + content: "\e648"; +} + +.nc-icon-tuikuanV6xx1:before { + content: "\e649"; +} + +.nc-icon-wendangV6xx1:before { + content: "\e64a"; +} + +.nc-icon-shaixuanV6xx1:before { + content: "\e64b"; +} + +.nc-icon-jifenduihuanV6xx1:before { + content: "\e64c"; +} + +.nc-icon-fenxiangV6xx1:before { + content: "\e64d"; +} + +.nc-icon-shoucangV6xx1:before { + content: "\e64e"; +} + +.nc-icon-lianjieV6xx1:before { + content: "\e64f"; +} + +.nc-icon-shezhiV6xx1:before { + content: "\e650"; +} + +.nc-icon-fenxiaoV6xx1:before { + content: "\e651"; +} + +.nc-icon-chakanV6xx:before { + content: "\e653"; +} + +.nc-icon-wodedengjiV6xx1:before { + content: "\e652"; +} + +.nc-icon-duanxinV6xx1:before { + content: "\e654"; +} + +.nc-icon-liebiaoV6xx:before { + content: "\e655"; +} + +.nc-icon-biaoqianV6xx1:before { + content: "\e656"; +} + +.nc-icon-ruzhurenV6xx:before { + content: "\e657"; +} + +.nc-icon-xiugaiV6xx:before { + content: "\e658"; +} + +.nc-icon-bianjiV6xx1:before { + content: "\e659"; +} + +.nc-icon-shouyeV6xx1:before { + content: "\e65a"; +} + +.nc-icon-bangzhuV6mm:before { + content: "\e65b"; +} + +.nc-icon-tanhaoV6mm-1:before { + content: "\e65c"; +} + +.nc-icon-bangzhuV6mm-1:before { + content: "\e65d"; +} + +.nc-icon-tanhaoV6mm:before { + content: "\e65e"; +} + +.nc-icon-zhuyiV6mm:before { + content: "\e65f"; +} + +.nc-icon-tianjiaV6mm:before { + content: "\e660"; +} + +.nc-icon-duihaoV6mm:before { + content: "\e661"; +} + +.nc-icon-jianshaoV6mm:before { + content: "\e662"; +} + +.nc-icon-cuohaoV6mm:before { + content: "\e663"; +} + +.nc-icon-gouwucheV6mm-1:before { + content: "\e664"; +} + +.nc-icon-lishijiluV6mm:before { + content: "\e665"; +} + +.nc-icon-jiamengV6mm:before { + content: "\e666"; +} + +.nc-icon-hexiaotaiV6mm:before { + content: "\e667"; +} + +.nc-icon-yingyongzhongxinV6mm:before { + content: "\e668"; +} + +.nc-icon-jiaohuanV6mm:before { + content: "\e669"; +} + +.nc-icon-gouwucheV6mm:before { + content: "\e66a"; +} + +.nc-icon-yingyongzhongxinV6mm-1:before { + content: "\e66b"; +} + +.nc-icon-fenleiV6mm:before { + content: "\e66c"; +} + +.nc-icon-liebiaoV6mm:before { + content: "\e66d"; +} + +.nc-icon-yingyongV6mm:before { + content: "\e66e"; +} + +.nc-icon-yingyongliebiaoV6mm:before { + content: "\e66f"; +} + +.nc-icon-xiangyouV6mm:before { + content: "\e670"; +} + +.nc-icon-xiangzuoV6mm:before { + content: "\e671"; +} + +.nc-icon-ruzhurenV6mm:before { + content: "\e672"; +} + +.nc-icon-xiangxiaV6mm:before { + content: "\e673"; +} + +.nc-icon-xiangshangV6mm:before { + content: "\e674"; +} + +.nc-icon-shouyeV6mm:before { + content: "\e675"; +} + +.nc-icon-shezhiV6mm-2:before { + content: "\e676"; +} + +.nc-icon-youjianV6mm:before { + content: "\e677"; +} + +.nc-icon-xiaoxiV6mm:before { + content: "\e678"; +} + +.nc-icon-xinxiV6mm:before { + content: "\e679"; +} + +.nc-icon-woV6mm:before { + content: "\e67a"; +} + +.nc-icon-shezhiV6mm:before { + content: "\e67b"; +} + +.nc-icon-wodeV6mm:before { + content: "\e67c"; +} + +.nc-icon-shezhiV6mm-1:before { + content: "\e67d"; +} + +.nc-icon-kefuV6mm-1:before { + content: "\e67e"; +} + +.nc-icon-kefu-huatongV6mm:before { + content: "\e67f"; +} + +.nc-icon-qiuzhirenyuanV6mm:before { + content: "\e680"; +} + +.nc-icon-piaoxinxiV6mm:before { + content: "\e681"; +} + +.nc-icon-lianxikefuV6mm:before { + content: "\e682"; +} + +.nc-icon-kefu-erjiV6mm:before { + content: "\e683"; +} + +.nc-icon-dianxinxiV6mm:before { + content: "\e684"; +} + +.nc-icon-kefuV6mm-2:before { + content: "\e685"; +} + +.nc-icon-duanxinV6mm-1:before { + content: "\e686"; +} + +.nc-icon-gerenzhongxinV6mm:before { + content: "\e687"; +} + +.nc-icon-kefuV6mm:before { + content: "\e688"; +} + +.nc-icon-fenxiangV6mm:before { + content: "\e689"; +} + +.nc-icon-duanxinV6mm:before { + content: "\e68a"; +} + +.nc-icon-xiangjiV6mm-1:before { + content: "\e68b"; +} + +.nc-icon-wodeV6mm1:before { + content: "\e68c"; +} + +.nc-icon-shuaxinV6mm:before { + content: "\e68d"; +} + +.nc-icon-xiangjiV6mm:before { + content: "\e68e"; +} + +.nc-icon-sousuoV6mm:before { + content: "\e68f"; +} + +.nc-icon-shoucangV6mm-1:before { + content: "\e690"; +} + +.nc-icon-xihuanV6mm:before { + content: "\e691"; +} + +.nc-icon-wodeshoucangV6mm:before { + content: "\e692"; +} + +.nc-icon-shizhongV6mm:before { + content: "\e693"; +} + +.nc-icon-shoucangV6mm:before { + content: "\e694"; +} + +.nc-icon-naolingV6mm:before { + content: "\e695"; +} + +.nc-icon-shijianV6mm:before { + content: "\e696"; +} + +.nc-icon-naozhongV6mm:before { + content: "\e697"; +} + +.nc-icon-biaoqianV6mm:before { + content: "\e698"; +} + +.nc-icon-lingdangV6mm:before { + content: "\e699"; +} + +.nc-icon-biaoqianV6mm-1:before { + content: "\e69a"; +} + +.nc-icon-lishijiluV6mm1:before { + content: "\e69b"; +} + +.nc-icon-daifahuoV6mm:before { + content: "\e69c"; +} + +.nc-icon-jishibenV6mm:before { + content: "\e69d"; +} + +.nc-icon-bianqianV6mm:before { + content: "\e69e"; +} + +.nc-icon-bianjiV6mm:before { + content: "\e69f"; +} + +.nc-icon-bijiV6mm:before { + content: "\e6a0"; +} + +.nc-icon-bijiV6mm-1:before { + content: "\e6a1"; +} + +.nc-icon-youhuiquanV6mm:before { + content: "\e6a2"; +} + +.nc-icon-youhuiV6mm:before { + content: "\e6a3"; +} + +.nc-icon-shangchengV6mm:before { + content: "\e6a4"; +} + +.nc-icon-zhekouquanV6mm:before { + content: "\e6a5"; +} + +.nc-icon-youhuiquanV6mm-1:before { + content: "\e6a6"; +} + +.nc-icon-yueV6mm:before { + content: "\e6a7"; +} + +.nc-icon-qianbaoyueV6mm:before { + content: "\e6a8"; +} + +.nc-icon-qianbaoV6mm:before { + content: "\e6a9"; +} + +.nc-icon-liwuV6mm:before { + content: "\e6aa"; +} + +.nc-icon-jifenduihuanV6mm:before { + content: "\e6ab"; +} + +.nc-icon-biaoqianV6mm1:before { + content: "\e6ac"; +} + +.nc-icon-libaoV6mm:before { + content: "\e6ad"; +} + +.nc-icon-jinrongV6mm:before { + content: "\e6ae"; +} + +.nc-icon-wodetuiguangV6mm:before { + content: "\e6af"; +} + +.nc-icon-wodedengjiV6mm:before { + content: "\e6b0"; +} + +.nc-icon-tuiguangV6mm:before { + content: "\e6b1"; +} + +.nc-icon-yinhangkaV6mm:before { + content: "\e6b2"; +} + +.nc-icon-huiyuandengjiV6mm:before { + content: "\e6b3"; +} + +.nc-icon-meiriqiandaoV6mm:before { + content: "\e6b4"; +} + +.nc-icon-daifahuoV6mm1:before { + content: "\e6b5"; +} + +.nc-icon-riliV6mm:before { + content: "\e6b6"; +} + +.nc-icon-daifahuoV6mm-1:before { + content: "\e6b7"; +} + +.nc-icon-fenxiaoV6mm:before { + content: "\e6b8"; +} + +.nc-icon-daishouhuoV6mm:before { + content: "\e6b9"; +} + +.nc-icon-dizhiV6mm:before { + content: "\e6ba"; +} + +.nc-icon-lianjieV6mm:before { + content: "\e6bb"; +} + +.nc-icon-dianhuaV6mm:before { + content: "\e6bc"; +} + +.nc-icon-jifenV6mm:before { + content: "\e6bd"; +} + +.nc-icon-hexiaotaiV6mm1:before { + content: "\e6be"; +} + +.nc-icon-saomaV6mm:before { + content: "\e6bf"; +} + +.nc-icon-jiaohuanV6mm1:before { + content: "\e6c0"; +} + +.nc-icon-kuozhanV6mm:before { + content: "\e6c1"; +} + +.nc-icon-loucengV6mm:before { + content: "\e6c2"; +} + +.nc-icon-erweimaV6mm-1:before { + content: "\e6c3"; +} + +.nc-icon-fuzhiV6mm:before { + content: "\e6c4"; +} + +.nc-icon-erweimaV6mm:before { + content: "\e6c5"; +} + +.nc-icon-changjiantouV6mm:before { + content: "\e6c6"; +} + +.nc-icon-zujiV6mm:before { + content: "\e6c7"; +} + +.nc-icon-chakanV6mm:before { + content: "\e6c8"; +} + +.nc-icon-meiriqiandaoV6mm1:before { + content: "\e6c9"; +} + +.nc-icon-bijiV6mm1:before { + content: "\e6ca"; +} + +.nc-icon-shangxiajiantouV6mm:before { + content: "\e6cb"; +} + +.nc-icon-tiaoxingmaV6mm:before { + content: "\e6cc"; +} + +.nc-icon-xiayibuV6xx:before { + content: "\e6cd"; +} + +.nc-icon-duiV6mm:before { + content: "\e6ce"; +} + +.nc-icon-shangyibuV6xx:before { + content: "\e6cf"; +} + +.nc-icon-lianxidianhuaV6mm:before { + content: "\e6d0"; +} + +.nc-icon-lianxidianhuaV6xx:before { + content: "\e6d1"; +} + +.nc-icon-duiV6xx:before { + content: "\e6d2"; +} + +.nc-icon-pengyouquanV6mm-1:before { + content: "\e6d3"; +} + +.nc-icon-zhifubao-yuanV6mm:before { + content: "\e6d4"; +} + +.nc-icon-weixinV6mm-1:before { + content: "\e6d5"; +} + +.nc-icon-weixinV6mm:before { + content: "\e6d6"; +} + +.nc-icon-zhifubaoV6mm:before { + content: "\e6d7"; +} + +.nc-icon-zhifubao-fangV6mm:before { + content: "\e6d8"; +} + +.nc-icon-pengyouquanV6mm:before { + content: "\e6d9"; +} + +.nc-icon-shouye-xiaolianV6xx:before { + content: "\e6da"; +} + +.nc-icon-hexiaoV6xx:before { + content: "\e6db"; +} + +.nc-icon-hexiaoV6mm:before { + content: "\e6dc"; +} + +.nc-icon-kaifazhelianmengV6xx:before { + content: "\e6dd"; +} + +.nc-icon-kaifazhelianmengV6xx-1:before { + content: "\e6de"; +} + +.nc-icon-gerenziliaoV6xx:before { + content: "\e6df"; +} + +.nc-icon-gerenziliaoV6mm:before { + content: "\e6e0"; +} + +.nc-icon-fangziV6xx:before { + content: "\e6e1"; +} + +.nc-icon-guanbiV6xx:before { + content: "\e621"; +} + +.nc-icon-duihaoV6xx-1:before { + content: "\e622"; +} + +.nc-icon-bangzhuV6xx:before { + content: "\e623"; +} + +.nc-icon-duihaoV6xx:before { + content: "\e624"; +} + +.nc-icon-cuohaoV6xx:before { + content: "\e625"; +} + +.nc-icon-jiahaoV6xx:before { + content: "\e626"; +} + +.nc-icon-zhuyiV6xx:before { + content: "\e627"; +} + +.nc-icon-jianshaoV6xx:before { + content: "\e628"; +} + +.nc-icon-jianV6xx:before { + content: "\e629"; +} + +.nc-icon-zhixiang-youjiantouV6xx:before { + content: "\e62a"; +} + +.nc-icon-zuoV6xx:before { + content: "\e62b"; +} + +.nc-icon-zuoV6xx-1:before { + content: "\e62c"; +} + +.nc-icon-changjiantouV6xx:before { + content: "\e62d"; +} + +.nc-icon-xiangxiaV6xx-1:before { + content: "\e62e"; +} + +.nc-icon-xiangzuoV6xx:before { + content: "\e62f"; +} + +.nc-icon-xiangzuoV6xx-1:before { + content: "\e630"; +} + +.nc-icon-youV6xx:before { + content: "\e631"; +} + +.nc-icon-xiangyouV6xx-1:before { + content: "\e632"; +} + +.nc-icon-xiangyouV6xx:before { + content: "\e633"; +} + +.nc-icon-xiangyouV6xx-2:before { + content: "\e634"; +} + +.nc-icon-xiaV6xx-1:before { + content: "\e635"; +} + +.nc-icon-xiangxiaV6xx:before { + content: "\e636"; +} + +.nc-icon-tianjiaV6xx:before { + content: "\e637"; +} + +.nc-icon-tanhaoV6xx:before { + content: "\e638"; +} + +.nc-icon-xiangshangV6xx:before { + content: "\e639"; +} + +.nc-icon-xiangshangV6xx-1:before { + content: "\e63a"; +} + +.nc-icon-xiaV6xx:before { + content: "\e63b"; +} + +.nc-icon-tanhaoV6xx-1:before { + content: "\e63c"; +} + +.nc-icon-shangV6xx:before { + content: "\e63d"; +} + +.nc-icon-shangxiaxuanzeV6xx:before { + content: "\e63e"; +} + +.nc-icon-shangV6xx-1:before { + content: "\e63f"; +} + +.nc-icon-shangxiajiantouV6xx:before { + content: "\e640"; +} + +.nc-icon-jiamengV6xx:before { + content: "\e6f9"; +} + +.nc-icon-yingyongzhongxinV6xx-1:before { + content: "\e6f5"; +} + +.nc-icon-yingyongzhongxinV6xx:before { + content: "\e6fd"; +} + +.nc-icon-yingyongV6xx:before { + content: "\e6f4"; +} + +.nc-icon-gouwucheV6xx-2:before { + content: "\e6fe"; +} + +.nc-icon-shouyeV6xx:before { + content: "\e6ff"; +} + +.nc-icon-yingyongliebiaoV6xx:before { + content: "\e700"; +} + +.nc-icon-gouwucheV6xx-1:before { + content: "\e701"; +} + +.nc-icon-gouwucheV6xx:before { + content: "\e702"; +} + +.nc-icon-fenleiV6xx:before { + content: "\e703"; +} + +.nc-icon-jiamengV6xx1:before { + content: "\e704"; +} + +.nc-icon-wodeV6xx1:before { + content: "\e705"; +} + +.nc-icon-wodeV6xx-11:before { + content: "\e706"; +} + +.nc-icon-qiuzhirenyuanV6xx1:before { + content: "\e707"; +} + +.nc-icon-gerenzhongxinV6xx2:before { + content: "\e708"; +} + +.nc-icon-woV6xx1:before { + content: "\e709"; +} + +.nc-icon-ruzhurenV6xx1:before { + content: "\e70a"; +} + +.nc-icon-xiangjiV6xx:before { + content: "\e70b"; +} + +.nc-icon-shezhiV6xx-1:before { + content: "\e70c"; +} + +.nc-icon-sousuoV6xx:before { + content: "\e70d"; +} + +.nc-icon-xiangjiV6xx-1:before { + content: "\e70e"; +} + +.nc-icon-shuaxinV6xx:before { + content: "\e70f"; +} + +.nc-icon-shezhiV6xx-2:before { + content: "\e710"; +} + +.nc-icon-shaixuanV6xx:before { + content: "\e711"; +} + +.nc-icon-shezhiV6xx:before { + content: "\e712"; +} + +.nc-icon-fenxiangV6xx-1:before { + content: "\e713"; +} + +.nc-icon-fenxiangV6xx-2:before { + content: "\e714"; +} + +.nc-icon-fenxiangV6xx:before { + content: "\e715"; +} + +.nc-icon-xiaoxiV6xx:before { + content: "\e716"; +} + +.nc-icon-duanxinV6xx-1:before { + content: "\e717"; +} + +.nc-icon-xinxiV6xx:before { + content: "\e718"; +} + +.nc-icon-kefuV6xx:before { + content: "\e719"; +} + +.nc-icon-lianxikefuV6xx:before { + content: "\e71a"; +} + +.nc-icon-piaoxinxiV6xx:before { + content: "\e71b"; +} + +.nc-icon-kefuV6xx-4:before { + content: "\e71c"; +} + +.nc-icon-kefuV6xx-2:before { + content: "\e71d"; +} + +.nc-icon-kefuV6xx-1:before { + content: "\e71e"; +} + +.nc-icon-dakaixinxiV6xx:before { + content: "\e71f"; +} + +.nc-icon-dianxinxiV6xx:before { + content: "\e720"; +} + +.nc-icon-kefuV6xx-3:before { + content: "\e721"; +} + +.nc-icon-duanxinV6xx:before { + content: "\e722"; +} + +.nc-icon-wodeshoucangV6xx:before { + content: "\e723"; +} + +.nc-icon-naolingV6xx:before { + content: "\e724"; +} + +.nc-icon-shoucangV6xx:before { + content: "\e725"; +} + +.nc-icon-shoucangV6xx-1:before { + content: "\e726"; +} + +.nc-icon-shijianV6xx:before { + content: "\e727"; +} + +.nc-icon-lingdangV6xx:before { + content: "\e728"; +} + +.nc-icon-shizhongV6xx:before { + content: "\e729"; +} + +.nc-icon-guanzhuV6xx:before { + content: "\e72a"; +} + +.nc-icon-naozhongV6xx:before { + content: "\e72b"; +} + +.nc-icon-daifahuoV6xx:before { + content: "\e72c"; +} + +.nc-icon-shangchengV6xx:before { + content: "\e72d"; +} + +.nc-icon-youhuiV6xx:before { + content: "\e72e"; +} + +.nc-icon-zongjifenV6xx:before { + content: "\e72f"; +} + +.nc-icon-zhekouquanV6xx:before { + content: "\e730"; +} + +.nc-icon-jifenV6xx:before { + content: "\e731"; +} + +.nc-icon-youhuiquanV6xx-2:before { + content: "\e732"; +} + +.nc-icon-youhuiquanV6xx-1:before { + content: "\e733"; +} + +.nc-icon-jifenduihuanV6xx:before { + content: "\e734"; +} + +.nc-icon-youhuiquanV6xx:before { + content: "\e735"; +} + +.nc-icon-libaoV6xx:before { + content: "\e736"; +} + +.nc-icon-liwuV6xx:before { + content: "\e737"; +} + +.nc-icon-biaoqianV6xx:before { + content: "\e738"; +} + +.nc-icon-qianbaoyueV6xx:before { + content: "\e739"; +} + +.nc-icon-tuikuanV6xx:before { + content: "\e73a"; +} + +.nc-icon-qianbaoV6xx:before { + content: "\e73b"; +} + +.nc-icon-yueV6xx:before { + content: "\e73c"; +} + +.nc-icon-jinrongV6xx:before { + content: "\e73d"; +} + +.nc-icon-riliV6xx:before { + content: "\e73e"; +} + +.nc-icon-wodedengjiV6xx:before { + content: "\e73f"; +} + +.nc-icon-tuiguangV6xx:before { + content: "\e740"; +} + +.nc-icon-huiyuandengjiV6xx:before { + content: "\e741"; +} + +.nc-icon-wodetuiguangV6xx:before { + content: "\e742"; +} + +.nc-icon-fenxiaoV6xx:before { + content: "\e743"; +} + +.nc-icon-meiriqiandaoV6xx:before { + content: "\e744"; +} + +.nc-icon-dizhiguanliV6xx:before { + content: "\e745"; +} + +.nc-icon-daishouhuoV6xx:before { + content: "\e746"; +} + +.nc-icon-daishouhuoV6xx-3:before { + content: "\e747"; +} + +.nc-icon-daifahuoV6xx-2:before { + content: "\e748"; +} + +.nc-icon-yinhangkaV6xx:before { + content: "\e749"; +} + +.nc-icon-daifahuoV6xx-1:before { + content: "\e74a"; +} + +.nc-icon-daifahuoV6xx-3:before { + content: "\e74b"; +} + +.nc-icon-zhankai-yousuojinV6xx:before { + content: "\e74c"; +} + +.nc-icon-shouqi-zuosuojinV6xx:before { + content: "\e74d"; +} + +.nc-icon-wendangV6xx:before { + content: "\e74e"; +} + +.nc-icon-xiaolianV6xx:before { + content: "\e74f"; +} + +.nc-icon-jiaohuanV6xx:before { + content: "\e750"; +} + +.nc-icon-yuanquanV6xx:before { + content: "\e751"; +} + +.nc-icon-a-Group840V6xx:before { + content: "\e752"; +} + +.nc-icon-loucengV6xx:before { + content: "\e753"; +} + +.nc-icon-kuozhanV6xx:before { + content: "\e754"; +} + +.nc-icon-saoyisaoV6xx:before { + content: "\e755"; +} + +.nc-icon-saotiaoxingmaV6xx:before { + content: "\e756"; +} + +.nc-icon-saotiaoxingmaV6xx-1:before { + content: "\e757"; +} + +.nc-icon-erweimaV6xx-1:before { + content: "\e758"; +} + +.nc-icon-fuzhiV6xx:before { + content: "\e759"; +} + +.nc-icon-lianjieV6xx:before { + content: "\e75a"; +} + +.nc-icon-dianhuaV6xx:before { + content: "\e75b"; +} + +.nc-icon-hexiaotaiV6xx:before { + content: "\e75c"; +} + +.nc-icon-fengefuV6xx:before { + content: "\e75d"; +} + +.nc-icon-fangdaV6xx:before { + content: "\e75e"; +} + +.nc-icon-erweimaV6xx:before { + content: "\e75f"; +} + +.nc-icon-daifahuoV6xx-4:before { + content: "\e760"; +} diff --git a/src/styles/uview-theme.scss b/src/styles/uview-theme.scss new file mode 100644 index 0000000..c657289 --- /dev/null +++ b/src/styles/uview-theme.scss @@ -0,0 +1,40 @@ +$u-main-color: #303133; +$u-content-color: #606266; +$u-tips-color: #909193; +$u-light-color: #c0c4cc; +$u-border-color: #dadbde; +$u-bg-color: #f3f4f6; +$u-disabled-color: #c8c9cc; + +$u-primary: var(--primary-color); +$u-primary-dark: var(--primary-color-dark); +$u-primary-disabled: var(--primary-color-disabled); +$u-primary-light: var(--primary-color-light); + +$u-warning: #f9ae3d; +$u-warning-dark: #f1a532; +$u-warning-disabled: #f9d39b; +$u-warning-light: #fdf6ec; + +$u-success: #5ac725; +$u-success-dark: #53c21d; +$u-success-disabled: #a9e08f; +$u-success-light: #f5fff0; + +$u-error: #f56c6c; +$u-error-dark: #e45656; +$u-error-disabled: #f7b2b2; +$u-error-light: #fef0f0; + +$u-info: #909399; +$u-info-dark: #767a82; +$u-info-disabled: #c4c6c9; +$u-info-light: #f4f4f5; + +// scss混入,为了少写几行#ifndef +@mixin flex($direction: row) { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: $direction; +} diff --git a/src/types/global.d.ts b/src/types/global.d.ts new file mode 100644 index 0000000..ef73232 --- /dev/null +++ b/src/types/global.d.ts @@ -0,0 +1,21 @@ +declare interface redirectOptions { + url : string + mode ?: 'switchTab' | 'navigateTo' | 'reLaunch' | 'redirectTo' + param ?: AnyObject + success ?: () => {} + fail ?: () => {} + complete ?: () => {} +} + +declare interface requestMobileParam { + mobile : string, + captcha_code : string, + captcha_key : string, + type : string +} + +declare interface responseResult { + code : number, + data : any, + msg : string +} \ No newline at end of file diff --git a/src/types/weixin-js-sdk.d.ts b/src/types/weixin-js-sdk.d.ts new file mode 100644 index 0000000..b90ee8d --- /dev/null +++ b/src/types/weixin-js-sdk.d.ts @@ -0,0 +1,769 @@ +declare namespace WeixinJsSdk { + /** ************************************************************************** + * Type definations + ****************************************************************************/ + type JSApis = + | 'onMenuShareTimeline' + | 'onMenuShareAppMessage' + | 'onMenuShareQQ' + | 'onMenuShareWeibo' + | 'onMenuShareQZone' + | 'startRecord' + | 'stopRecord' + | 'onVoiceRecordEnd' + | 'playVoice' + | 'pauseVoice' + | 'stopVoice' + | 'onVoicePlayEnd' + | 'uploadVoice' + | 'downloadVoice' + | 'chooseImage' + | 'previewImage' + | 'uploadImage' + | 'downloadImage' + | 'translateVoice' + | 'getNetworkType' + | 'openLocation' + | 'getLocation' + | 'hideOptionMenu' + | 'showOptionMenu' + | 'hideMenuItems' + | 'showMenuItems' + | 'hideAllNonBaseMenuItem' + | 'showAllNonBaseMenuItem' + | 'closeWindow' + | 'scanQRCode' + | 'chooseWXPay' + | 'openProductSpecificView' + | 'addCard' + | 'chooseCard' + | 'openCard' + | 'checkJsApi' + | 'onRecordEnd' + | 'openWXDeviceLib' + | 'closeWXDeviceLib' + | 'configWXDeviceWiFi' + | 'getWXDeviceInfos' + | 'sendDataToWXDevice' + | 'startScanWXDevice' + | 'stopScanWXDevice' + | 'connectWXDevice' + | 'disconnectWXDevice' + | 'getWXDeviceTicket' + | 'WeixinJSBridgeReady' + | 'onWXDeviceBindStateChange' + | 'onWXDeviceStateChange' + | 'onScanWXDeviceResult' + | 'onReceiveDataFromWXDevice' + | 'onWXDeviceBluetoothStateChange' + | 'updateAppMessageShareData' + | 'updateTimelineShareData' + + type Menus = + | 'menuItem:exposeArticle' // 举报 + | 'menuItem:setFont' // 调整字体 + | 'menuItem:dayMode' // 日间模式 + | 'menuItem:nightMode' // 夜间模式 + | 'menuItem:refresh' // 刷新 + | 'menuItem:profile' // 查看公众号(已添加) + | 'menuItem:addContact' // 查看公众号(未添加) + | 'menuItem:share:appMessage' // 发送给朋友 + | 'menuItem:share:timeline' // 分享到朋友圈 + | 'menuItem:share:qq' // 分享到 QQ + | 'menuItem:share:weiboApp' // 分享到 Weibo + | 'menuItem:favorite' // 收藏 + | 'menuItem:share:facebook' // 分享到 Facebook + | 'menuItem:share:QZone' // 分享到 QQ 空间 + | 'menuItem:editTag' // 编辑标签 + | 'menuItem:delete' // 删除 + | 'menuItem:copyUrl' // 复制链接 + | 'menuItem:originPage' // 原网页 + | 'menuItem:readMode' // 阅读模式 + | 'menuItem:openWithQQBrowser' // 在QQ浏览器中打开 + | 'menuItem:openWithSafari' // 在Safari中打开 + | 'menuItem:share:email' // 邮件 + | 'menuItem:share:brand' // 一些特殊公众号 + + type scanTypes = + | 'qrCode' // 二维码 + | 'barCode' // 一维码 + + type ImageSize = 'original' | 'compressed' + type SourceType = 'album' | 'camera' + + /** ************************************************************************** + * Interface definations + ****************************************************************************/ + + interface ConfigOptions { + /** + * 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数, + * 可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 + */ + debug ?: boolean + + /** + * 公众号的唯一标识 + */ + appId : string + + /** + * 生成签名的时间戳 + */ + timestamp : string | number + + /** + * 生成签名的随机串 + */ + nonceStr : string + + /** + * 签名 + */ + signature : string + + /** + * 需要使用的JS接口列表 + */ + jsApiList : JSApis[] + /* beta */ + // beta: boolean + [x : string] : any + } + + /** + * 所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象, + * 除了每个接口本身需要传的参数之外,还有以下通用参数 + */ + interface Callbacks { + /** + * 接口调用成功时执行的回调函数。 + */ + success ?: (res : any) => void + + /** + * 接口调用失败时执行的回调函数。 + */ + fail ?: (res : any) => void + + /** + * 接口调用完成时执行的回调函数,无论成功或失败都会执行。 + */ + complete ?: (res : any) => void + + /** + * 用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。 + */ + cancel ?: (res : any) => void + } + + interface MenuCallbacks extends Callbacks { + /** + * 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。 + */ + trigger ?: (res : any) => void + } + + interface CheckJsApiOptions extends Callbacks { + /** + * 需要检测的JS接口列表 + */ + jsApiList : JSApis[] + } + + interface OnMenuShareTimelineOptions extends MenuCallbacks { + /** + * 分享标题 + */ + title : string + + /** + * 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + */ + link : string + + /** + * 分享图标 + */ + imgUrl ?: string + } + + interface OnMenuShareAppMessageOptions extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + + /** + * 分享类型,music、video或link,不填默认为link + */ + type ?: 'music' | 'video' | 'link' + + /** + * 如果type是music或video,则要提供数据链接,默认为空 + */ + dataUrl ?: string + } + + interface OnMenuShareQQ extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + } + + interface OnMenuShareWeibo extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + } + + interface OnMenuShareQZone extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + } + + interface ChooseImageOptions extends Callbacks { + /** + * 一次可选择图片数量 + * + * 默认为 9 + */ + count ?: number + + /** + * 可以指定是原图还是压缩图,默认二者都有 + */ + sizeType ?: ImageSize[] + + /** + * 可以指定来源是相册还是相机,默认二者都有 + */ + sourceType ?: SourceType[] + } + + interface PreviewImageOptions extends Callbacks { + /** + * 当前显示图片的 http 链接 + */ + current : string + + /** + * 需要预览的图片 http 链接列表 + */ + urls : string[] + } + + interface UploadImageOptions extends Callbacks { + /** + * 需要上传的图片的本地ID,由chooseImage接口获得 + */ + localId : string + + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface DownloadImageOptions extends Callbacks { + /** + * 需要下载的图片的服务器端ID,由uploadImage接口获得 + */ + serverId : string + + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface GetLocalImgDataOptions extends Callbacks { + /** + * 图片的localID + */ + localId : string + } + + interface LocalVoiceOptions extends Callbacks { + /** + * 本地ID,由 stopRecord 接口获得 + */ + localId : string + } + + interface UploadVoiceOptions extends LocalVoiceOptions { + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface DownloadVoiceOptions extends Callbacks { + /** + * 需要下载的音频的服务器端ID,由uploadVoice接口获得 + */ + serverId : string + + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface OpenLocationOptions extends Callbacks { + /** + * 纬度,浮点数,范围为90 ~ -90 + */ + latitude : number + + /** + * 经度,浮点数,范围为180 ~ -180。 + */ + longitude : number + + /** + * 位置名 + */ + name : string + + /** + * 地址详情说明 + */ + address : string + + /** + * 地图缩放级别,整形值,范围从1~28。默认为最大 + */ + scale ?: number + + /** + * 在查看位置界面底部显示的超链接,可点击跳转 + */ + infoUrl ?: string + } + + interface GetLocationOptions extends Callbacks { + /** + * 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' + */ + type : 'wgs84' | 'gcj02' + } + + interface StartSearchBeacons { + /** + * 摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面 + */ + ticket : string + } + + interface MenuOptions { + menuList : Menus[] + } + + interface ScanQRCodeOptions extends Callbacks { + /** + * 默认为0,扫描结果由微信处理,1则直接返回扫描结果 + */ + needResult ?: 0 | 1 + + /** + * 可以指定扫二维码还是一维码,默认二者都有 + */ + scanType ?: scanTypes[] + } + + interface OpenProductSpecificViewOptions { + /** + * 商品id + */ + productId : string + + /** + * 0.默认值,普通商品详情页 + * 1.扫一扫商品详情页 + * 2.小店商品详情页 + */ + viewType : 0 | 1 | 2 + } + + interface ChooseCardOptions extends Callbacks { + /** + * 门店Id + */ + shopId ?: string + + /** + * 卡券类型 + */ + cardType ?: string + + /** + * 卡券Id + */ + cardId ?: string + + /** + * 卡券签名时间戳 + */ + timestamp : number + + /** + * 卡券签名随机串 + */ + nonceStr : string + + /** + * 签名方式,默认'SHA1' + */ + signType : 'SHA1' + + /** + * 卡券签名 + */ + cardSign : string + } + + interface AddCard { + cardId : string + cardExt : string + } + + interface AddCardOptions extends Callbacks { + cardList : AddCard[] + } + + interface OpenCard { + cardId : string + code : string + } + + interface OpenCardOptions extends Callbacks { + cardList : OpenCard[] + } + + interface ChooseWXPayOptions extends Callbacks { + /** + * 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。 + * 但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 + */ + timestamp : string + + /** + * 支付签名随机串,不长于 32 位 + */ + nonceStr : string + + /** + * 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) + */ + package : string + + /** + * 签名方式,默认为'SHA1',使用新版支付需传入'MD5' + */ + signType : 'SHA1' | 'MD5' + + /** + * 支付签名 + */ + paySign : string + } + + /** ************************************************************************** + * 配置方法 + ****************************************************************************/ + + /** + * 注入权限验证配置 + * 所有需要使用 JS-SDK 的页面必须先注入配置信息,否则将无法调用。 + * (同一个 url 仅需调用一次,对于变化 url 的 SPA 的 web app 可在每次url变化时进行调用, + * 目前 Android 微信客户端不支持 pushState 的 H5 新特性, + * 所以使用 pushState 来实现 web app 的页面会导致签名失败, + * 此问题会在 Android6.2中修复。) + */ + function config(options : ConfigOptions) : void + + /** + * 处理成功验证 + * + * config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后, + * config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口, + * 则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口, + * 则可以直接调用,不需要放在ready函数中。 + */ + function ready(callback : () => void) : void + + /** + * 处理失败验证 + * + * config信息验证失败会执行error函数,如签名过期导致验证失败, + * 具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看, + * 对于SPA可以在这里更新签名。 + */ + function error(callback : (res : any) => void) : void + + /** + * 判断当前客户端版本是否支持指定JS接口 + * + * 备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口, + * 第一期开放的接口均可不使用checkJsApi来检测。 + */ + function checkJsApi(options : CheckJsApiOptions) : void + + /** ************************************************************************** + * 分享接口 + ****************************************************************************/ + + /** + * 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareTimeline(options : OnMenuShareTimelineOptions) : void + + /** + * 获取“分享给朋友”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareAppMessage(options : OnMenuShareAppMessageOptions) : void + + /** + * 获取“分享到QQ”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareQQ(options : OnMenuShareQQ) : void + + /** + * 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareWeibo(options : OnMenuShareWeibo) : void + + /** + * 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareQZone(options : OnMenuShareQZone) : void + + /** ************************************************************************** + * 图像接口 + ****************************************************************************/ + + /** + * 拍照或从手机相册中选图接口 + */ + function chooseImage(options : ChooseImageOptions) : void + + /** + * 预览图片接口 + */ + function previewImage(options : PreviewImageOptions) : void + + /** + * 上传图片接口 + * + * 备注:上传图片有效期3天,可用微信多媒体接口下载图片到自己的服务器,此处获得的 serverId 即 media_id。 + */ + function uploadImage(options : UploadImageOptions) : void + + /** + * 下载图片接口 + */ + function downloadImage(options : DownloadImageOptions) : void + + /** + * 获取本地图片接口 + */ + function getLocalImgData(options : GetLocalImgDataOptions) : void + + /** ************************************************************************** + * 音频接口 + ****************************************************************************/ + + /** + * 开始录音接口 + */ + function startRecord() : void + + /** + * 停止录音接口 + */ + function stopRecord(options : Callbacks) : void + + /** + * 监听录音自动停止接口 + */ + function onVoiceRecordEnd(options : Callbacks) : void + + /** + * 播放语音接口 + */ + function playVoice(options : LocalVoiceOptions) : void + + /** + * 暂停播放接口 + */ + function pauseVoice(options : LocalVoiceOptions) : void + + /** + * 停止播放接口 + */ + function stopVoice(options : LocalVoiceOptions) : void + + /** + * 监听语音播放完毕接口 + */ + function onVoicePlayEnd(options : Callbacks) : void + + /** + * 上传语音接口 + */ + function uploadVoice(options : UploadVoiceOptions) : void + + /** + * 下载语音接口 + */ + function downloadVoice(options : DownloadVoiceOptions) : void + + /** ************************************************************************** + * 智能接口 + ****************************************************************************/ + + /** + * 识别音频并返回识别结果接口 + */ + function translateVoice(options : UploadVoiceOptions) : void + + /** ************************************************************************** + * 设备信息 + ****************************************************************************/ + + /** + * 获取网络状态接口 + */ + function getNetworkType(options : Callbacks) : void + + /** ************************************************************************** + * 地理信息 + ****************************************************************************/ + + /** + * 使用微信内置地图查看位置接口 + */ + function openLocation(options : OpenLocationOptions) : void + + /** + * 获取地理位置接口 + */ + function getLocation(options : GetLocationOptions) : void + + /** ************************************************************************** + * 摇一摇周边 + ****************************************************************************/ + + /** + * 开启查找周边ibeacon设备接口 + */ + function startSearchBeacons(options : StartSearchBeacons) : void + + /** + * 关闭查找周边ibeacon设备接口 + */ + function stopSearchBeacons(options : Callbacks) : void + + /** + * 监听周边ibeacon设备接口 + * + * 备注:上述摇一摇周边接口使用注意事项及更多返回结果说明,请参考:摇一摇周边获取设备信息 + */ + function onSearchBeacons(options : Callbacks) : void + + /** ************************************************************************** + * 界面操作 + ****************************************************************************/ + + /** + * 关闭当前网页窗口接口 + */ + function closeWindow() : void + + /** + * 批量隐藏功能按钮接口 + */ + function hideMenuItems(options : MenuOptions) : void + + /** + * 批量显示功能按钮接口 + */ + function showMenuItems(options : MenuOptions) : void + + /** + * 隐藏所有非基础按钮接口 + */ + function hideAllNonBaseMenuItem() : void + + /** + * 显示所有功能按钮接口 + */ + function showAllNonBaseMenuItem() : void + + /** ************************************************************************** + * 微信扫一扫 + ****************************************************************************/ + + /** + * 调起微信扫一扫接口 + */ + function scanQRCode(options : ScanQRCodeOptions) : void + + /** ************************************************************************** + * 微信小店 + ****************************************************************************/ + + /** + * 跳转微信商品页接口 + */ + function openProductSpecificView( + options : OpenProductSpecificViewOptions + ) : void + + /** ************************************************************************** + * 微信卡券 + ****************************************************************************/ + + /** + * 拉取适用卡券列表并获取用户选择信息 + */ + function chooseCard(options : ChooseCardOptions) : void + + /** + * 批量添加卡券接口 + */ + function addCard(options : AddCardOptions) : void + + /** + * 查看微信卡包中的卡券接口 + */ + function openCard(options : OpenCardOptions) : void + + /** ************************************************************************** + * 微信支付 + ****************************************************************************/ + + /** + * 发起一个微信支付请求 + */ + function chooseWXPay(options : ChooseWXPayOptions) : void + + /** + * 分享给朋友 + */ + function updateAppMessageShareData(options : OnMenuShareAppMessageOptions) : void + + /** + * 分享到朋友圈 + */ + function updateTimelineShareData(options : OnMenuShareAppMessageOptions) : void +} + +declare module 'weixin-js-sdk' { + export = WeixinJsSdk +} \ No newline at end of file diff --git a/src/uni.scss b/src/uni.scss new file mode 100644 index 0000000..970ec93 --- /dev/null +++ b/src/uni.scss @@ -0,0 +1,79 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: var(--primary-color); +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$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: 12px; +$uni-font-size-base: 14px; +$uni-font-size-lg: 16; + +/* 图片尺寸 */ +$uni-img-size-sm: 20px; +$uni-img-size-base: 26px; +$uni-img-size-lg: 40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2c405a; // 文章标题颜色 +$uni-font-size-title: 20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle: 26px; +$uni-color-paragraph: #3f536e; // 文章段落颜色 +$uni-font-size-paragraph: 15px; + + +@import '@/styles/uview-theme.scss'; diff --git a/src/uni_modules/piaoyi-cityPicker/changelog.md b/src/uni_modules/piaoyi-cityPicker/changelog.md new file mode 100644 index 0000000..7554b0a --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/changelog.md @@ -0,0 +1,22 @@ +## 1.1.7(2024-10-29) +修复底部露出部分组件bug +## 1.1.6(2024-08-20) +更新本地数据源为最新数据源 +## 1.1.5(2024-06-12) +使用说明文档优化 +## 1.1.4(2024-06-12) +增加问题反馈描述 +## 1.1.3(2024-02-29) +更新使用文档 +## 1.1.2(2024-01-16) +解决Vue3项目导入导出报错问题 +## 1.1.1(2023-12-06) +defaultValue可以传入defaultValue:['河北省','唐山市','丰南区']数组类型以及defaultValue: '420103'地区编码字符串类型 +## 1.1.0(2023-12-05) +即默认值传入地区编码,也支持传入中文省市区数组 +## 1.0.9(2023-12-04) +优化 +## 1.0.8(2023-10-24) +修复东菀市和中山市下各镇的行政编码错误问题 +## 1.0.4(2023-09-15) +改为uni_modules规范 \ No newline at end of file diff --git a/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js new file mode 100644 index 0000000..cc05c11 --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js @@ -0,0 +1,10661 @@ +export const addressList = [{ + "code": "11", + "name": "北京市", + "children": [{ + "code": "1101", + "name": "市辖区", + "children": [{ + "code": "110101", + "name": "东城区" + }, { + "code": "110102", + "name": "西城区" + }, { + "code": "110105", + "name": "朝阳区" + }, { + "code": "110106", + "name": "丰台区" + }, { + "code": "110107", + "name": "石景山区" + }, { + "code": "110108", + "name": "海淀区" + }, { + "code": "110109", + "name": "门头沟区" + }, { + "code": "110111", + "name": "房山区" + }, { + "code": "110112", + "name": "通州区" + }, { + "code": "110113", + "name": "顺义区" + }, { + "code": "110114", + "name": "昌平区" + }, { + "code": "110115", + "name": "大兴区" + }, { + "code": "110116", + "name": "怀柔区" + }, { + "code": "110117", + "name": "平谷区" + }, { + "code": "110118", + "name": "密云区" + }, { + "code": "110119", + "name": "延庆区" + }] + }] +}, { + "code": "12", + "name": "天津市", + "children": [{ + "code": "1201", + "name": "市辖区", + "children": [{ + "code": "120101", + "name": "和平区" + }, { + "code": "120102", + "name": "河东区" + }, { + "code": "120103", + "name": "河西区" + }, { + "code": "120104", + "name": "南开区" + }, { + "code": "120105", + "name": "河北区" + }, { + "code": "120106", + "name": "红桥区" + }, { + "code": "120110", + "name": "东丽区" + }, { + "code": "120111", + "name": "西青区" + }, { + "code": "120112", + "name": "津南区" + }, { + "code": "120113", + "name": "北辰区" + }, { + "code": "120114", + "name": "武清区" + }, { + "code": "120115", + "name": "宝坻区" + }, { + "code": "120116", + "name": "滨海新区" + }, { + "code": "120117", + "name": "宁河区" + }, { + "code": "120118", + "name": "静海区" + }, { + "code": "120119", + "name": "蓟州区" + }] + }] +}, { + "code": "13", + "name": "河北省", + "children": [{ + "code": "1301", + "name": "石家庄市", + "children": [{ + "code": "130102", + "name": "长安区" + }, { + "code": "130104", + "name": "桥西区" + }, { + "code": "130105", + "name": "新华区" + }, { + "code": "130107", + "name": "井陉矿区" + }, { + "code": "130108", + "name": "裕华区" + }, { + "code": "130109", + "name": "藁城区" + }, { + "code": "130110", + "name": "鹿泉区" + }, { + "code": "130111", + "name": "栾城区" + }, { + "code": "130121", + "name": "井陉县" + }, { + "code": "130123", + "name": "正定县" + }, { + "code": "130125", + "name": "行唐县" + }, { + "code": "130126", + "name": "灵寿县" + }, { + "code": "130127", + "name": "高邑县" + }, { + "code": "130128", + "name": "深泽县" + }, { + "code": "130129", + "name": "赞皇县" + }, { + "code": "130130", + "name": "无极县" + }, { + "code": "130131", + "name": "平山县" + }, { + "code": "130132", + "name": "元氏县" + }, { + "code": "130133", + "name": "赵县" + }, { + "code": "130171", + "name": "石家庄高新技术产业开发区" + }, { + "code": "130172", + "name": "石家庄循环化工园区" + }, { + "code": "130181", + "name": "辛集市" + }, { + "code": "130183", + "name": "晋州市" + }, { + "code": "130184", + "name": "新乐市" + }] + }, { + "code": "1302", + "name": "唐山市", + "children": [{ + "code": "130202", + "name": "路南区" + }, { + "code": "130203", + "name": "路北区" + }, { + "code": "130204", + "name": "古冶区" + }, { + "code": "130205", + "name": "开平区" + }, { + "code": "130207", + "name": "丰南区" + }, { + "code": "130208", + "name": "丰润区" + }, { + "code": "130209", + "name": "曹妃甸区" + }, { + "code": "130224", + "name": "滦南县" + }, { + "code": "130225", + "name": "乐亭县" + }, { + "code": "130227", + "name": "迁西县" + }, { + "code": "130229", + "name": "玉田县" + }, { + "code": "130271", + "name": "河北唐山芦台经济开发区" + }, { + "code": "130272", + "name": "唐山市汉沽管理区" + }, { + "code": "130273", + "name": "唐山高新技术产业开发区" + }, { + "code": "130274", + "name": "河北唐山海港经济开发区" + }, { + "code": "130281", + "name": "遵化市" + }, { + "code": "130283", + "name": "迁安市" + }, { + "code": "130284", + "name": "滦州市" + }] + }, { + "code": "1303", + "name": "秦皇岛市", + "children": [{ + "code": "130302", + "name": "海港区" + }, { + "code": "130303", + "name": "山海关区" + }, { + "code": "130304", + "name": "北戴河区" + }, { + "code": "130306", + "name": "抚宁区" + }, { + "code": "130321", + "name": "青龙满族自治县" + }, { + "code": "130322", + "name": "昌黎县" + }, { + "code": "130324", + "name": "卢龙县" + }, { + "code": "130371", + "name": "秦皇岛市经济技术开发区" + }, { + "code": "130372", + "name": "北戴河新区" + }] + }, { + "code": "1304", + "name": "邯郸市", + "children": [{ + "code": "130402", + "name": "邯山区" + }, { + "code": "130403", + "name": "丛台区" + }, { + "code": "130404", + "name": "复兴区" + }, { + "code": "130406", + "name": "峰峰矿区" + }, { + "code": "130407", + "name": "肥乡区" + }, { + "code": "130408", + "name": "永年区" + }, { + "code": "130423", + "name": "临漳县" + }, { + "code": "130424", + "name": "成安县" + }, { + "code": "130425", + "name": "大名县" + }, { + "code": "130426", + "name": "涉县" + }, { + "code": "130427", + "name": "磁县" + }, { + "code": "130430", + "name": "邱县" + }, { + "code": "130431", + "name": "鸡泽县" + }, { + "code": "130432", + "name": "广平县" + }, { + "code": "130433", + "name": "馆陶县" + }, { + "code": "130434", + "name": "魏县" + }, { + "code": "130435", + "name": "曲周县" + }, { + "code": "130471", + "name": "邯郸经济技术开发区" + }, { + "code": "130473", + "name": "邯郸冀南新区" + }, { + "code": "130481", + "name": "武安市" + }] + }, { + "code": "1305", + "name": "邢台市", + "children": [{ + "code": "130502", + "name": "襄都区" + }, { + "code": "130503", + "name": "信都区" + }, { + "code": "130505", + "name": "任泽区" + }, { + "code": "130506", + "name": "南和区" + }, { + "code": "130522", + "name": "临城县" + }, { + "code": "130523", + "name": "内丘县" + }, { + "code": "130524", + "name": "柏乡县" + }, { + "code": "130525", + "name": "隆尧县" + }, { + "code": "130528", + "name": "宁晋县" + }, { + "code": "130529", + "name": "巨鹿县" + }, { + "code": "130530", + "name": "新河县" + }, { + "code": "130531", + "name": "广宗县" + }, { + "code": "130532", + "name": "平乡县" + }, { + "code": "130533", + "name": "威县" + }, { + "code": "130534", + "name": "清河县" + }, { + "code": "130535", + "name": "临西县" + }, { + "code": "130571", + "name": "河北邢台经济开发区" + }, { + "code": "130581", + "name": "南宫市" + }, { + "code": "130582", + "name": "沙河市" + }] + }, { + "code": "1306", + "name": "保定市", + "children": [{ + "code": "130602", + "name": "竞秀区" + }, { + "code": "130606", + "name": "莲池区" + }, { + "code": "130607", + "name": "满城区" + }, { + "code": "130608", + "name": "清苑区" + }, { + "code": "130609", + "name": "徐水区" + }, { + "code": "130623", + "name": "涞水县" + }, { + "code": "130624", + "name": "阜平县" + }, { + "code": "130626", + "name": "定兴县" + }, { + "code": "130627", + "name": "唐县" + }, { + "code": "130628", + "name": "高阳县" + }, { + "code": "130629", + "name": "容城县" + }, { + "code": "130630", + "name": "涞源县" + }, { + "code": "130631", + "name": "望都县" + }, { + "code": "130632", + "name": "安新县" + }, { + "code": "130633", + "name": "易县" + }, { + "code": "130634", + "name": "曲阳县" + }, { + "code": "130635", + "name": "蠡县" + }, { + "code": "130636", + "name": "顺平县" + }, { + "code": "130637", + "name": "博野县" + }, { + "code": "130638", + "name": "雄县" + }, { + "code": "130671", + "name": "保定高新技术产业开发区" + }, { + "code": "130672", + "name": "保定白沟新城" + }, { + "code": "130681", + "name": "涿州市" + }, { + "code": "130682", + "name": "定州市" + }, { + "code": "130683", + "name": "安国市" + }, { + "code": "130684", + "name": "高碑店市" + }] + }, { + "code": "1307", + "name": "张家口市", + "children": [{ + "code": "130702", + "name": "桥东区" + }, { + "code": "130703", + "name": "桥西区" + }, { + "code": "130705", + "name": "宣化区" + }, { + "code": "130706", + "name": "下花园区" + }, { + "code": "130708", + "name": "万全区" + }, { + "code": "130709", + "name": "崇礼区" + }, { + "code": "130722", + "name": "张北县" + }, { + "code": "130723", + "name": "康保县" + }, { + "code": "130724", + "name": "沽源县" + }, { + "code": "130725", + "name": "尚义县" + }, { + "code": "130726", + "name": "蔚县" + }, { + "code": "130727", + "name": "阳原县" + }, { + "code": "130728", + "name": "怀安县" + }, { + "code": "130730", + "name": "怀来县" + }, { + "code": "130731", + "name": "涿鹿县" + }, { + "code": "130732", + "name": "赤城县" + }, { + "code": "130771", + "name": "张家口经济开发区" + }, { + "code": "130772", + "name": "张家口市察北管理区" + }, { + "code": "130773", + "name": "张家口市塞北管理区" + }] + }, { + "code": "1308", + "name": "承德市", + "children": [{ + "code": "130802", + "name": "双桥区" + }, { + "code": "130803", + "name": "双滦区" + }, { + "code": "130804", + "name": "鹰手营子矿区" + }, { + "code": "130821", + "name": "承德县" + }, { + "code": "130822", + "name": "兴隆县" + }, { + "code": "130824", + "name": "滦平县" + }, { + "code": "130825", + "name": "隆化县" + }, { + "code": "130826", + "name": "丰宁满族自治县" + }, { + "code": "130827", + "name": "宽城满族自治县" + }, { + "code": "130828", + "name": "围场满族蒙古族自治县" + }, { + "code": "130871", + "name": "承德高新技术产业开发区" + }, { + "code": "130881", + "name": "平泉市" + }] + }, { + "code": "1309", + "name": "沧州市", + "children": [{ + "code": "130902", + "name": "新华区" + }, { + "code": "130903", + "name": "运河区" + }, { + "code": "130921", + "name": "沧县" + }, { + "code": "130922", + "name": "青县" + }, { + "code": "130923", + "name": "东光县" + }, { + "code": "130924", + "name": "海兴县" + }, { + "code": "130925", + "name": "盐山县" + }, { + "code": "130926", + "name": "肃宁县" + }, { + "code": "130927", + "name": "南皮县" + }, { + "code": "130928", + "name": "吴桥县" + }, { + "code": "130929", + "name": "献县" + }, { + "code": "130930", + "name": "孟村回族自治县" + }, { + "code": "130971", + "name": "河北沧州经济开发区" + }, { + "code": "130972", + "name": "沧州高新技术产业开发区" + }, { + "code": "130973", + "name": "沧州渤海新区" + }, { + "code": "130981", + "name": "泊头市" + }, { + "code": "130982", + "name": "任丘市" + }, { + "code": "130983", + "name": "黄骅市" + }, { + "code": "130984", + "name": "河间市" + }] + }, { + "code": "1310", + "name": "廊坊市", + "children": [{ + "code": "131002", + "name": "安次区" + }, { + "code": "131003", + "name": "广阳区" + }, { + "code": "131022", + "name": "固安县" + }, { + "code": "131023", + "name": "永清县" + }, { + "code": "131024", + "name": "香河县" + }, { + "code": "131025", + "name": "大城县" + }, { + "code": "131026", + "name": "文安县" + }, { + "code": "131028", + "name": "大厂回族自治县" + }, { + "code": "131071", + "name": "廊坊经济技术开发区" + }, { + "code": "131081", + "name": "霸州市" + }, { + "code": "131082", + "name": "三河市" + }] + }, { + "code": "1311", + "name": "衡水市", + "children": [{ + "code": "131102", + "name": "桃城区" + }, { + "code": "131103", + "name": "冀州区" + }, { + "code": "131121", + "name": "枣强县" + }, { + "code": "131122", + "name": "武邑县" + }, { + "code": "131123", + "name": "武强县" + }, { + "code": "131124", + "name": "饶阳县" + }, { + "code": "131125", + "name": "安平县" + }, { + "code": "131126", + "name": "故城县" + }, { + "code": "131127", + "name": "景县" + }, { + "code": "131128", + "name": "阜城县" + }, { + "code": "131171", + "name": "河北衡水高新技术产业开发区" + }, { + "code": "131172", + "name": "衡水滨湖新区" + }, { + "code": "131182", + "name": "深州市" + }] + }] +}, { + "code": "14", + "name": "山西省", + "children": [{ + "code": "1401", + "name": "太原市", + "children": [{ + "code": "140105", + "name": "小店区" + }, { + "code": "140106", + "name": "迎泽区" + }, { + "code": "140107", + "name": "杏花岭区" + }, { + "code": "140108", + "name": "尖草坪区" + }, { + "code": "140109", + "name": "万柏林区" + }, { + "code": "140110", + "name": "晋源区" + }, { + "code": "140121", + "name": "清徐县" + }, { + "code": "140122", + "name": "阳曲县" + }, { + "code": "140123", + "name": "娄烦县" + }, { + "code": "140171", + "name": "山西转型综合改革示范区" + }, { + "code": "140181", + "name": "古交市" + }] + }, { + "code": "1402", + "name": "大同市", + "children": [{ + "code": "140212", + "name": "新荣区" + }, { + "code": "140213", + "name": "平城区" + }, { + "code": "140214", + "name": "云冈区" + }, { + "code": "140215", + "name": "云州区" + }, { + "code": "140221", + "name": "阳高县" + }, { + "code": "140222", + "name": "天镇县" + }, { + "code": "140223", + "name": "广灵县" + }, { + "code": "140224", + "name": "灵丘县" + }, { + "code": "140225", + "name": "浑源县" + }, { + "code": "140226", + "name": "左云县" + }, { + "code": "140271", + "name": "山西大同经济开发区" + }] + }, { + "code": "1403", + "name": "阳泉市", + "children": [{ + "code": "140302", + "name": "城区" + }, { + "code": "140303", + "name": "矿区" + }, { + "code": "140311", + "name": "郊区" + }, { + "code": "140321", + "name": "平定县" + }, { + "code": "140322", + "name": "盂县" + }] + }, { + "code": "1404", + "name": "长治市", + "children": [{ + "code": "140403", + "name": "潞州区" + }, { + "code": "140404", + "name": "上党区" + }, { + "code": "140405", + "name": "屯留区" + }, { + "code": "140406", + "name": "潞城区" + }, { + "code": "140423", + "name": "襄垣县" + }, { + "code": "140425", + "name": "平顺县" + }, { + "code": "140426", + "name": "黎城县" + }, { + "code": "140427", + "name": "壶关县" + }, { + "code": "140428", + "name": "长子县" + }, { + "code": "140429", + "name": "武乡县" + }, { + "code": "140430", + "name": "沁县" + }, { + "code": "140431", + "name": "沁源县" + }] + }, { + "code": "1405", + "name": "晋城市", + "children": [{ + "code": "140502", + "name": "城区" + }, { + "code": "140521", + "name": "沁水县" + }, { + "code": "140522", + "name": "阳城县" + }, { + "code": "140524", + "name": "陵川县" + }, { + "code": "140525", + "name": "泽州县" + }, { + "code": "140581", + "name": "高平市" + }] + }, { + "code": "1406", + "name": "朔州市", + "children": [{ + "code": "140602", + "name": "朔城区" + }, { + "code": "140603", + "name": "平鲁区" + }, { + "code": "140621", + "name": "山阴县" + }, { + "code": "140622", + "name": "应县" + }, { + "code": "140623", + "name": "右玉县" + }, { + "code": "140671", + "name": "山西朔州经济开发区" + }, { + "code": "140681", + "name": "怀仁市" + }] + }, { + "code": "1407", + "name": "晋中市", + "children": [{ + "code": "140702", + "name": "榆次区" + }, { + "code": "140703", + "name": "太谷区" + }, { + "code": "140721", + "name": "榆社县" + }, { + "code": "140722", + "name": "左权县" + }, { + "code": "140723", + "name": "和顺县" + }, { + "code": "140724", + "name": "昔阳县" + }, { + "code": "140725", + "name": "寿阳县" + }, { + "code": "140727", + "name": "祁县" + }, { + "code": "140728", + "name": "平遥县" + }, { + "code": "140729", + "name": "灵石县" + }, { + "code": "140781", + "name": "介休市" + }] + }, { + "code": "1408", + "name": "运城市", + "children": [{ + "code": "140802", + "name": "盐湖区" + }, { + "code": "140821", + "name": "临猗县" + }, { + "code": "140822", + "name": "万荣县" + }, { + "code": "140823", + "name": "闻喜县" + }, { + "code": "140824", + "name": "稷山县" + }, { + "code": "140825", + "name": "新绛县" + }, { + "code": "140826", + "name": "绛县" + }, { + "code": "140827", + "name": "垣曲县" + }, { + "code": "140828", + "name": "夏县" + }, { + "code": "140829", + "name": "平陆县" + }, { + "code": "140830", + "name": "芮城县" + }, { + "code": "140881", + "name": "永济市" + }, { + "code": "140882", + "name": "河津市" + }] + }, { + "code": "1409", + "name": "忻州市", + "children": [{ + "code": "140902", + "name": "忻府区" + }, { + "code": "140921", + "name": "定襄县" + }, { + "code": "140922", + "name": "五台县" + }, { + "code": "140923", + "name": "代县" + }, { + "code": "140924", + "name": "繁峙县" + }, { + "code": "140925", + "name": "宁武县" + }, { + "code": "140926", + "name": "静乐县" + }, { + "code": "140927", + "name": "神池县" + }, { + "code": "140928", + "name": "五寨县" + }, { + "code": "140929", + "name": "岢岚县" + }, { + "code": "140930", + "name": "河曲县" + }, { + "code": "140931", + "name": "保德县" + }, { + "code": "140932", + "name": "偏关县" + }, { + "code": "140971", + "name": "五台山风景名胜区" + }, { + "code": "140981", + "name": "原平市" + }] + }, { + "code": "1410", + "name": "临汾市", + "children": [{ + "code": "141002", + "name": "尧都区" + }, { + "code": "141021", + "name": "曲沃县" + }, { + "code": "141022", + "name": "翼城县" + }, { + "code": "141023", + "name": "襄汾县" + }, { + "code": "141024", + "name": "洪洞县" + }, { + "code": "141025", + "name": "古县" + }, { + "code": "141026", + "name": "安泽县" + }, { + "code": "141027", + "name": "浮山县" + }, { + "code": "141028", + "name": "吉县" + }, { + "code": "141029", + "name": "乡宁县" + }, { + "code": "141030", + "name": "大宁县" + }, { + "code": "141031", + "name": "隰县" + }, { + "code": "141032", + "name": "永和县" + }, { + "code": "141033", + "name": "蒲县" + }, { + "code": "141034", + "name": "汾西县" + }, { + "code": "141081", + "name": "侯马市" + }, { + "code": "141082", + "name": "霍州市" + }] + }, { + "code": "1411", + "name": "吕梁市", + "children": [{ + "code": "141102", + "name": "离石区" + }, { + "code": "141121", + "name": "文水县" + }, { + "code": "141122", + "name": "交城县" + }, { + "code": "141123", + "name": "兴县" + }, { + "code": "141124", + "name": "临县" + }, { + "code": "141125", + "name": "柳林县" + }, { + "code": "141126", + "name": "石楼县" + }, { + "code": "141127", + "name": "岚县" + }, { + "code": "141128", + "name": "方山县" + }, { + "code": "141129", + "name": "中阳县" + }, { + "code": "141130", + "name": "交口县" + }, { + "code": "141181", + "name": "孝义市" + }, { + "code": "141182", + "name": "汾阳市" + }] + }] +}, { + "code": "15", + "name": "内蒙古自治区", + "children": [{ + "code": "1501", + "name": "呼和浩特市", + "children": [{ + "code": "150102", + "name": "新城区" + }, { + "code": "150103", + "name": "回民区" + }, { + "code": "150104", + "name": "玉泉区" + }, { + "code": "150105", + "name": "赛罕区" + }, { + "code": "150121", + "name": "土默特左旗" + }, { + "code": "150122", + "name": "托克托县" + }, { + "code": "150123", + "name": "和林格尔县" + }, { + "code": "150124", + "name": "清水河县" + }, { + "code": "150125", + "name": "武川县" + }, { + "code": "150172", + "name": "呼和浩特经济技术开发区" + }] + }, { + "code": "1502", + "name": "包头市", + "children": [{ + "code": "150202", + "name": "东河区" + }, { + "code": "150203", + "name": "昆都仑区" + }, { + "code": "150204", + "name": "青山区" + }, { + "code": "150205", + "name": "石拐区" + }, { + "code": "150206", + "name": "白云鄂博矿区" + }, { + "code": "150207", + "name": "九原区" + }, { + "code": "150221", + "name": "土默特右旗" + }, { + "code": "150222", + "name": "固阳县" + }, { + "code": "150223", + "name": "达尔罕茂明安联合旗" + }, { + "code": "150271", + "name": "包头稀土高新技术产业开发区" + }] + }, { + "code": "1503", + "name": "乌海市", + "children": [{ + "code": "150302", + "name": "海勃湾区" + }, { + "code": "150303", + "name": "海南区" + }, { + "code": "150304", + "name": "乌达区" + }] + }, { + "code": "1504", + "name": "赤峰市", + "children": [{ + "code": "150402", + "name": "红山区" + }, { + "code": "150403", + "name": "元宝山区" + }, { + "code": "150404", + "name": "松山区" + }, { + "code": "150421", + "name": "阿鲁科尔沁旗" + }, { + "code": "150422", + "name": "巴林左旗" + }, { + "code": "150423", + "name": "巴林右旗" + }, { + "code": "150424", + "name": "林西县" + }, { + "code": "150425", + "name": "克什克腾旗" + }, { + "code": "150426", + "name": "翁牛特旗" + }, { + "code": "150428", + "name": "喀喇沁旗" + }, { + "code": "150429", + "name": "宁城县" + }, { + "code": "150430", + "name": "敖汉旗" + }] + }, { + "code": "1505", + "name": "通辽市", + "children": [{ + "code": "150502", + "name": "科尔沁区" + }, { + "code": "150521", + "name": "科尔沁左翼中旗" + }, { + "code": "150522", + "name": "科尔沁左翼后旗" + }, { + "code": "150523", + "name": "开鲁县" + }, { + "code": "150524", + "name": "库伦旗" + }, { + "code": "150525", + "name": "奈曼旗" + }, { + "code": "150526", + "name": "扎鲁特旗" + }, { + "code": "150571", + "name": "通辽经济技术开发区" + }, { + "code": "150581", + "name": "霍林郭勒市" + }] + }, { + "code": "1506", + "name": "鄂尔多斯市", + "children": [{ + "code": "150602", + "name": "东胜区" + }, { + "code": "150603", + "name": "康巴什区" + }, { + "code": "150621", + "name": "达拉特旗" + }, { + "code": "150622", + "name": "准格尔旗" + }, { + "code": "150623", + "name": "鄂托克前旗" + }, { + "code": "150624", + "name": "鄂托克旗" + }, { + "code": "150625", + "name": "杭锦旗" + }, { + "code": "150626", + "name": "乌审旗" + }, { + "code": "150627", + "name": "伊金霍洛旗" + }] + }, { + "code": "1507", + "name": "呼伦贝尔市", + "children": [{ + "code": "150702", + "name": "海拉尔区" + }, { + "code": "150703", + "name": "扎赉诺尔区" + }, { + "code": "150721", + "name": "阿荣旗" + }, { + "code": "150722", + "name": "莫力达瓦达斡尔族自治旗" + }, { + "code": "150723", + "name": "鄂伦春自治旗" + }, { + "code": "150724", + "name": "鄂温克族自治旗" + }, { + "code": "150725", + "name": "陈巴尔虎旗" + }, { + "code": "150726", + "name": "新巴尔虎左旗" + }, { + "code": "150727", + "name": "新巴尔虎右旗" + }, { + "code": "150781", + "name": "满洲里市" + }, { + "code": "150782", + "name": "牙克石市" + }, { + "code": "150783", + "name": "扎兰屯市" + }, { + "code": "150784", + "name": "额尔古纳市" + }, { + "code": "150785", + "name": "根河市" + }] + }, { + "code": "1508", + "name": "巴彦淖尔市", + "children": [{ + "code": "150802", + "name": "临河区" + }, { + "code": "150821", + "name": "五原县" + }, { + "code": "150822", + "name": "磴口县" + }, { + "code": "150823", + "name": "乌拉特前旗" + }, { + "code": "150824", + "name": "乌拉特中旗" + }, { + "code": "150825", + "name": "乌拉特后旗" + }, { + "code": "150826", + "name": "杭锦后旗" + }] + }, { + "code": "1509", + "name": "乌兰察布市", + "children": [{ + "code": "150902", + "name": "集宁区" + }, { + "code": "150921", + "name": "卓资县" + }, { + "code": "150922", + "name": "化德县" + }, { + "code": "150923", + "name": "商都县" + }, { + "code": "150924", + "name": "兴和县" + }, { + "code": "150925", + "name": "凉城县" + }, { + "code": "150926", + "name": "察哈尔右翼前旗" + }, { + "code": "150927", + "name": "察哈尔右翼中旗" + }, { + "code": "150928", + "name": "察哈尔右翼后旗" + }, { + "code": "150929", + "name": "四子王旗" + }, { + "code": "150981", + "name": "丰镇市" + }] + }, { + "code": "1522", + "name": "兴安盟", + "children": [{ + "code": "152201", + "name": "乌兰浩特市" + }, { + "code": "152202", + "name": "阿尔山市" + }, { + "code": "152221", + "name": "科尔沁右翼前旗" + }, { + "code": "152222", + "name": "科尔沁右翼中旗" + }, { + "code": "152223", + "name": "扎赉特旗" + }, { + "code": "152224", + "name": "突泉县" + }] + }, { + "code": "1525", + "name": "锡林郭勒盟", + "children": [{ + "code": "152501", + "name": "二连浩特市" + }, { + "code": "152502", + "name": "锡林浩特市" + }, { + "code": "152522", + "name": "阿巴嘎旗" + }, { + "code": "152523", + "name": "苏尼特左旗" + }, { + "code": "152524", + "name": "苏尼特右旗" + }, { + "code": "152525", + "name": "东乌珠穆沁旗" + }, { + "code": "152526", + "name": "西乌珠穆沁旗" + }, { + "code": "152527", + "name": "太仆寺旗" + }, { + "code": "152528", + "name": "镶黄旗" + }, { + "code": "152529", + "name": "正镶白旗" + }, { + "code": "152530", + "name": "正蓝旗" + }, { + "code": "152531", + "name": "多伦县" + }, { + "code": "152571", + "name": "乌拉盖管理区管委会" + }] + }, { + "code": "1529", + "name": "阿拉善盟", + "children": [{ + "code": "152921", + "name": "阿拉善左旗" + }, { + "code": "152922", + "name": "阿拉善右旗" + }, { + "code": "152923", + "name": "额济纳旗" + }, { + "code": "152971", + "name": "内蒙古阿拉善高新技术产业开发区" + }] + }] +}, { + "code": "21", + "name": "辽宁省", + "children": [{ + "code": "2101", + "name": "沈阳市", + "children": [{ + "code": "210102", + "name": "和平区" + }, { + "code": "210103", + "name": "沈河区" + }, { + "code": "210104", + "name": "大东区" + }, { + "code": "210105", + "name": "皇姑区" + }, { + "code": "210106", + "name": "铁西区" + }, { + "code": "210111", + "name": "苏家屯区" + }, { + "code": "210112", + "name": "浑南区" + }, { + "code": "210113", + "name": "沈北新区" + }, { + "code": "210114", + "name": "于洪区" + }, { + "code": "210115", + "name": "辽中区" + }, { + "code": "210123", + "name": "康平县" + }, { + "code": "210124", + "name": "法库县" + }, { + "code": "210181", + "name": "新民市" + }] + }, { + "code": "2102", + "name": "大连市", + "children": [{ + "code": "210202", + "name": "中山区" + }, { + "code": "210203", + "name": "西岗区" + }, { + "code": "210204", + "name": "沙河口区" + }, { + "code": "210211", + "name": "甘井子区" + }, { + "code": "210212", + "name": "旅顺口区" + }, { + "code": "210213", + "name": "金州区" + }, { + "code": "210214", + "name": "普兰店区" + }, { + "code": "210224", + "name": "长海县" + }, { + "code": "210281", + "name": "瓦房店市" + }, { + "code": "210283", + "name": "庄河市" + }] + }, { + "code": "2103", + "name": "鞍山市", + "children": [{ + "code": "210302", + "name": "铁东区" + }, { + "code": "210303", + "name": "铁西区" + }, { + "code": "210304", + "name": "立山区" + }, { + "code": "210311", + "name": "千山区" + }, { + "code": "210321", + "name": "台安县" + }, { + "code": "210323", + "name": "岫岩满族自治县" + }, { + "code": "210381", + "name": "海城市" + }] + }, { + "code": "2104", + "name": "抚顺市", + "children": [{ + "code": "210402", + "name": "新抚区" + }, { + "code": "210403", + "name": "东洲区" + }, { + "code": "210404", + "name": "望花区" + }, { + "code": "210411", + "name": "顺城区" + }, { + "code": "210421", + "name": "抚顺县" + }, { + "code": "210422", + "name": "新宾满族自治县" + }, { + "code": "210423", + "name": "清原满族自治县" + }] + }, { + "code": "2105", + "name": "本溪市", + "children": [{ + "code": "210502", + "name": "平山区" + }, { + "code": "210503", + "name": "溪湖区" + }, { + "code": "210504", + "name": "明山区" + }, { + "code": "210505", + "name": "南芬区" + }, { + "code": "210521", + "name": "本溪满族自治县" + }, { + "code": "210522", + "name": "桓仁满族自治县" + }] + }, { + "code": "2106", + "name": "丹东市", + "children": [{ + "code": "210602", + "name": "元宝区" + }, { + "code": "210603", + "name": "振兴区" + }, { + "code": "210604", + "name": "振安区" + }, { + "code": "210624", + "name": "宽甸满族自治县" + }, { + "code": "210681", + "name": "东港市" + }, { + "code": "210682", + "name": "凤城市" + }] + }, { + "code": "2107", + "name": "锦州市", + "children": [{ + "code": "210702", + "name": "古塔区" + }, { + "code": "210703", + "name": "凌河区" + }, { + "code": "210711", + "name": "太和区" + }, { + "code": "210726", + "name": "黑山县" + }, { + "code": "210727", + "name": "义县" + }, { + "code": "210781", + "name": "凌海市" + }, { + "code": "210782", + "name": "北镇市" + }] + }, { + "code": "2108", + "name": "营口市", + "children": [{ + "code": "210802", + "name": "站前区" + }, { + "code": "210803", + "name": "西市区" + }, { + "code": "210804", + "name": "鲅鱼圈区" + }, { + "code": "210811", + "name": "老边区" + }, { + "code": "210881", + "name": "盖州市" + }, { + "code": "210882", + "name": "大石桥市" + }] + }, { + "code": "2109", + "name": "阜新市", + "children": [{ + "code": "210902", + "name": "海州区" + }, { + "code": "210903", + "name": "新邱区" + }, { + "code": "210904", + "name": "太平区" + }, { + "code": "210905", + "name": "清河门区" + }, { + "code": "210911", + "name": "细河区" + }, { + "code": "210921", + "name": "阜新蒙古族自治县" + }, { + "code": "210922", + "name": "彰武县" + }] + }, { + "code": "2110", + "name": "辽阳市", + "children": [{ + "code": "211002", + "name": "白塔区" + }, { + "code": "211003", + "name": "文圣区" + }, { + "code": "211004", + "name": "宏伟区" + }, { + "code": "211005", + "name": "弓长岭区" + }, { + "code": "211011", + "name": "太子河区" + }, { + "code": "211021", + "name": "辽阳县" + }, { + "code": "211081", + "name": "灯塔市" + }] + }, { + "code": "2111", + "name": "盘锦市", + "children": [{ + "code": "211102", + "name": "双台子区" + }, { + "code": "211103", + "name": "兴隆台区" + }, { + "code": "211104", + "name": "大洼区" + }, { + "code": "211122", + "name": "盘山县" + }] + }, { + "code": "2112", + "name": "铁岭市", + "children": [{ + "code": "211202", + "name": "银州区" + }, { + "code": "211204", + "name": "清河区" + }, { + "code": "211221", + "name": "铁岭县" + }, { + "code": "211223", + "name": "西丰县" + }, { + "code": "211224", + "name": "昌图县" + }, { + "code": "211281", + "name": "调兵山市" + }, { + "code": "211282", + "name": "开原市" + }] + }, { + "code": "2113", + "name": "朝阳市", + "children": [{ + "code": "211302", + "name": "双塔区" + }, { + "code": "211303", + "name": "龙城区" + }, { + "code": "211321", + "name": "朝阳县" + }, { + "code": "211322", + "name": "建平县" + }, { + "code": "211324", + "name": "喀喇沁左翼蒙古族自治县" + }, { + "code": "211381", + "name": "北票市" + }, { + "code": "211382", + "name": "凌源市" + }] + }, { + "code": "2114", + "name": "葫芦岛市", + "children": [{ + "code": "211402", + "name": "连山区" + }, { + "code": "211403", + "name": "龙港区" + }, { + "code": "211404", + "name": "南票区" + }, { + "code": "211421", + "name": "绥中县" + }, { + "code": "211422", + "name": "建昌县" + }, { + "code": "211481", + "name": "兴城市" + }] + }] +}, { + "code": "22", + "name": "吉林省", + "children": [{ + "code": "2201", + "name": "长春市", + "children": [{ + "code": "220102", + "name": "南关区" + }, { + "code": "220103", + "name": "宽城区" + }, { + "code": "220104", + "name": "朝阳区" + }, { + "code": "220105", + "name": "二道区" + }, { + "code": "220106", + "name": "绿园区" + }, { + "code": "220112", + "name": "双阳区" + }, { + "code": "220113", + "name": "九台区" + }, { + "code": "220122", + "name": "农安县" + }, { + "code": "220171", + "name": "长春经济技术开发区" + }, { + "code": "220172", + "name": "长春净月高新技术产业开发区" + }, { + "code": "220173", + "name": "长春高新技术产业开发区" + }, { + "code": "220174", + "name": "长春汽车经济技术开发区" + }, { + "code": "220182", + "name": "榆树市" + }, { + "code": "220183", + "name": "德惠市" + }, { + "code": "220184", + "name": "公主岭市" + }] + }, { + "code": "2202", + "name": "吉林市", + "children": [{ + "code": "220202", + "name": "昌邑区" + }, { + "code": "220203", + "name": "龙潭区" + }, { + "code": "220204", + "name": "船营区" + }, { + "code": "220211", + "name": "丰满区" + }, { + "code": "220221", + "name": "永吉县" + }, { + "code": "220271", + "name": "吉林经济开发区" + }, { + "code": "220272", + "name": "吉林高新技术产业开发区" + }, { + "code": "220273", + "name": "吉林中国新加坡食品区" + }, { + "code": "220281", + "name": "蛟河市" + }, { + "code": "220282", + "name": "桦甸市" + }, { + "code": "220283", + "name": "舒兰市" + }, { + "code": "220284", + "name": "磐石市" + }] + }, { + "code": "2203", + "name": "四平市", + "children": [{ + "code": "220302", + "name": "铁西区" + }, { + "code": "220303", + "name": "铁东区" + }, { + "code": "220322", + "name": "梨树县" + }, { + "code": "220323", + "name": "伊通满族自治县" + }, { + "code": "220382", + "name": "双辽市" + }] + }, { + "code": "2204", + "name": "辽源市", + "children": [{ + "code": "220402", + "name": "龙山区" + }, { + "code": "220403", + "name": "西安区" + }, { + "code": "220421", + "name": "东丰县" + }, { + "code": "220422", + "name": "东辽县" + }] + }, { + "code": "2205", + "name": "通化市", + "children": [{ + "code": "220502", + "name": "东昌区" + }, { + "code": "220503", + "name": "二道江区" + }, { + "code": "220521", + "name": "通化县" + }, { + "code": "220523", + "name": "辉南县" + }, { + "code": "220524", + "name": "柳河县" + }, { + "code": "220581", + "name": "梅河口市" + }, { + "code": "220582", + "name": "集安市" + }] + }, { + "code": "2206", + "name": "白山市", + "children": [{ + "code": "220602", + "name": "浑江区" + }, { + "code": "220605", + "name": "江源区" + }, { + "code": "220621", + "name": "抚松县" + }, { + "code": "220622", + "name": "靖宇县" + }, { + "code": "220623", + "name": "长白朝鲜族自治县" + }, { + "code": "220681", + "name": "临江市" + }] + }, { + "code": "2207", + "name": "松原市", + "children": [{ + "code": "220702", + "name": "宁江区" + }, { + "code": "220721", + "name": "前郭尔罗斯蒙古族自治县" + }, { + "code": "220722", + "name": "长岭县" + }, { + "code": "220723", + "name": "乾安县" + }, { + "code": "220771", + "name": "吉林松原经济开发区" + }, { + "code": "220781", + "name": "扶余市" + }] + }, { + "code": "2208", + "name": "白城市", + "children": [{ + "code": "220802", + "name": "洮北区" + }, { + "code": "220821", + "name": "镇赉县" + }, { + "code": "220822", + "name": "通榆县" + }, { + "code": "220871", + "name": "吉林白城经济开发区" + }, { + "code": "220881", + "name": "洮南市" + }, { + "code": "220882", + "name": "大安市" + }] + }, { + "code": "2224", + "name": "延边朝鲜族自治州", + "children": [{ + "code": "222401", + "name": "延吉市" + }, { + "code": "222402", + "name": "图们市" + }, { + "code": "222403", + "name": "敦化市" + }, { + "code": "222404", + "name": "珲春市" + }, { + "code": "222405", + "name": "龙井市" + }, { + "code": "222406", + "name": "和龙市" + }, { + "code": "222424", + "name": "汪清县" + }, { + "code": "222426", + "name": "安图县" + }] + }] +}, { + "code": "23", + "name": "黑龙江省", + "children": [{ + "code": "2301", + "name": "哈尔滨市", + "children": [{ + "code": "230102", + "name": "道里区" + }, { + "code": "230103", + "name": "南岗区" + }, { + "code": "230104", + "name": "道外区" + }, { + "code": "230108", + "name": "平房区" + }, { + "code": "230109", + "name": "松北区" + }, { + "code": "230110", + "name": "香坊区" + }, { + "code": "230111", + "name": "呼兰区" + }, { + "code": "230112", + "name": "阿城区" + }, { + "code": "230113", + "name": "双城区" + }, { + "code": "230123", + "name": "依兰县" + }, { + "code": "230124", + "name": "方正县" + }, { + "code": "230125", + "name": "宾县" + }, { + "code": "230126", + "name": "巴彦县" + }, { + "code": "230127", + "name": "木兰县" + }, { + "code": "230128", + "name": "通河县" + }, { + "code": "230129", + "name": "延寿县" + }, { + "code": "230183", + "name": "尚志市" + }, { + "code": "230184", + "name": "五常市" + }] + }, { + "code": "2302", + "name": "齐齐哈尔市", + "children": [{ + "code": "230202", + "name": "龙沙区" + }, { + "code": "230203", + "name": "建华区" + }, { + "code": "230204", + "name": "铁锋区" + }, { + "code": "230205", + "name": "昂昂溪区" + }, { + "code": "230206", + "name": "富拉尔基区" + }, { + "code": "230207", + "name": "碾子山区" + }, { + "code": "230208", + "name": "梅里斯达斡尔族区" + }, { + "code": "230221", + "name": "龙江县" + }, { + "code": "230223", + "name": "依安县" + }, { + "code": "230224", + "name": "泰来县" + }, { + "code": "230225", + "name": "甘南县" + }, { + "code": "230227", + "name": "富裕县" + }, { + "code": "230229", + "name": "克山县" + }, { + "code": "230230", + "name": "克东县" + }, { + "code": "230231", + "name": "拜泉县" + }, { + "code": "230281", + "name": "讷河市" + }] + }, { + "code": "2303", + "name": "鸡西市", + "children": [{ + "code": "230302", + "name": "鸡冠区" + }, { + "code": "230303", + "name": "恒山区" + }, { + "code": "230304", + "name": "滴道区" + }, { + "code": "230305", + "name": "梨树区" + }, { + "code": "230306", + "name": "城子河区" + }, { + "code": "230307", + "name": "麻山区" + }, { + "code": "230321", + "name": "鸡东县" + }, { + "code": "230381", + "name": "虎林市" + }, { + "code": "230382", + "name": "密山市" + }] + }, { + "code": "2304", + "name": "鹤岗市", + "children": [{ + "code": "230402", + "name": "向阳区" + }, { + "code": "230403", + "name": "工农区" + }, { + "code": "230404", + "name": "南山区" + }, { + "code": "230405", + "name": "兴安区" + }, { + "code": "230406", + "name": "东山区" + }, { + "code": "230407", + "name": "兴山区" + }, { + "code": "230421", + "name": "萝北县" + }, { + "code": "230422", + "name": "绥滨县" + }] + }, { + "code": "2305", + "name": "双鸭山市", + "children": [{ + "code": "230502", + "name": "尖山区" + }, { + "code": "230503", + "name": "岭东区" + }, { + "code": "230505", + "name": "四方台区" + }, { + "code": "230506", + "name": "宝山区" + }, { + "code": "230521", + "name": "集贤县" + }, { + "code": "230522", + "name": "友谊县" + }, { + "code": "230523", + "name": "宝清县" + }, { + "code": "230524", + "name": "饶河县" + }] + }, { + "code": "2306", + "name": "大庆市", + "children": [{ + "code": "230602", + "name": "萨尔图区" + }, { + "code": "230603", + "name": "龙凤区" + }, { + "code": "230604", + "name": "让胡路区" + }, { + "code": "230605", + "name": "红岗区" + }, { + "code": "230606", + "name": "大同区" + }, { + "code": "230621", + "name": "肇州县" + }, { + "code": "230622", + "name": "肇源县" + }, { + "code": "230623", + "name": "林甸县" + }, { + "code": "230624", + "name": "杜尔伯特蒙古族自治县" + }, { + "code": "230671", + "name": "大庆高新技术产业开发区" + }] + }, { + "code": "2307", + "name": "伊春市", + "children": [{ + "code": "230717", + "name": "伊美区" + }, { + "code": "230718", + "name": "乌翠区" + }, { + "code": "230719", + "name": "友好区" + }, { + "code": "230722", + "name": "嘉荫县" + }, { + "code": "230723", + "name": "汤旺县" + }, { + "code": "230724", + "name": "丰林县" + }, { + "code": "230725", + "name": "大箐山县" + }, { + "code": "230726", + "name": "南岔县" + }, { + "code": "230751", + "name": "金林区" + }, { + "code": "230781", + "name": "铁力市" + }] + }, { + "code": "2308", + "name": "佳木斯市", + "children": [{ + "code": "230803", + "name": "向阳区" + }, { + "code": "230804", + "name": "前进区" + }, { + "code": "230805", + "name": "东风区" + }, { + "code": "230811", + "name": "郊区" + }, { + "code": "230822", + "name": "桦南县" + }, { + "code": "230826", + "name": "桦川县" + }, { + "code": "230828", + "name": "汤原县" + }, { + "code": "230881", + "name": "同江市" + }, { + "code": "230882", + "name": "富锦市" + }, { + "code": "230883", + "name": "抚远市" + }] + }, { + "code": "2309", + "name": "七台河市", + "children": [{ + "code": "230902", + "name": "新兴区" + }, { + "code": "230903", + "name": "桃山区" + }, { + "code": "230904", + "name": "茄子河区" + }, { + "code": "230921", + "name": "勃利县" + }] + }, { + "code": "2310", + "name": "牡丹江市", + "children": [{ + "code": "231002", + "name": "东安区" + }, { + "code": "231003", + "name": "阳明区" + }, { + "code": "231004", + "name": "爱民区" + }, { + "code": "231005", + "name": "西安区" + }, { + "code": "231025", + "name": "林口县" + }, { + "code": "231081", + "name": "绥芬河市" + }, { + "code": "231083", + "name": "海林市" + }, { + "code": "231084", + "name": "宁安市" + }, { + "code": "231085", + "name": "穆棱市" + }, { + "code": "231086", + "name": "东宁市" + }] + }, { + "code": "2311", + "name": "黑河市", + "children": [{ + "code": "231102", + "name": "爱辉区" + }, { + "code": "231123", + "name": "逊克县" + }, { + "code": "231124", + "name": "孙吴县" + }, { + "code": "231181", + "name": "北安市" + }, { + "code": "231182", + "name": "五大连池市" + }, { + "code": "231183", + "name": "嫩江市" + }] + }, { + "code": "2312", + "name": "绥化市", + "children": [{ + "code": "231202", + "name": "北林区" + }, { + "code": "231221", + "name": "望奎县" + }, { + "code": "231222", + "name": "兰西县" + }, { + "code": "231223", + "name": "青冈县" + }, { + "code": "231224", + "name": "庆安县" + }, { + "code": "231225", + "name": "明水县" + }, { + "code": "231226", + "name": "绥棱县" + }, { + "code": "231281", + "name": "安达市" + }, { + "code": "231282", + "name": "肇东市" + }, { + "code": "231283", + "name": "海伦市" + }] + }, { + "code": "2327", + "name": "大兴安岭地区", + "children": [{ + "code": "232701", + "name": "漠河市" + }, { + "code": "232721", + "name": "呼玛县" + }, { + "code": "232722", + "name": "塔河县" + }, { + "code": "232761", + "name": "加格达奇区" + }, { + "code": "232762", + "name": "松岭区" + }, { + "code": "232763", + "name": "新林区" + }, { + "code": "232764", + "name": "呼中区" + }] + }] +}, { + "code": "31", + "name": "上海市", + "children": [{ + "code": "3101", + "name": "市辖区", + "children": [{ + "code": "310101", + "name": "黄浦区" + }, { + "code": "310104", + "name": "徐汇区" + }, { + "code": "310105", + "name": "长宁区" + }, { + "code": "310106", + "name": "静安区" + }, { + "code": "310107", + "name": "普陀区" + }, { + "code": "310109", + "name": "虹口区" + }, { + "code": "310110", + "name": "杨浦区" + }, { + "code": "310112", + "name": "闵行区" + }, { + "code": "310113", + "name": "宝山区" + }, { + "code": "310114", + "name": "嘉定区" + }, { + "code": "310115", + "name": "浦东新区" + }, { + "code": "310116", + "name": "金山区" + }, { + "code": "310117", + "name": "松江区" + }, { + "code": "310118", + "name": "青浦区" + }, { + "code": "310120", + "name": "奉贤区" + }, { + "code": "310151", + "name": "崇明区" + }] + }] +}, { + "code": "32", + "name": "江苏省", + "children": [{ + "code": "3201", + "name": "南京市", + "children": [{ + "code": "320102", + "name": "玄武区" + }, { + "code": "320104", + "name": "秦淮区" + }, { + "code": "320105", + "name": "建邺区" + }, { + "code": "320106", + "name": "鼓楼区" + }, { + "code": "320111", + "name": "浦口区" + }, { + "code": "320113", + "name": "栖霞区" + }, { + "code": "320114", + "name": "雨花台区" + }, { + "code": "320115", + "name": "江宁区" + }, { + "code": "320116", + "name": "六合区" + }, { + "code": "320117", + "name": "溧水区" + }, { + "code": "320118", + "name": "高淳区" + }] + }, { + "code": "3202", + "name": "无锡市", + "children": [{ + "code": "320205", + "name": "锡山区" + }, { + "code": "320206", + "name": "惠山区" + }, { + "code": "320211", + "name": "滨湖区" + }, { + "code": "320213", + "name": "梁溪区" + }, { + "code": "320214", + "name": "新吴区" + }, { + "code": "320281", + "name": "江阴市" + }, { + "code": "320282", + "name": "宜兴市" + }] + }, { + "code": "3203", + "name": "徐州市", + "children": [{ + "code": "320302", + "name": "鼓楼区" + }, { + "code": "320303", + "name": "云龙区" + }, { + "code": "320305", + "name": "贾汪区" + }, { + "code": "320311", + "name": "泉山区" + }, { + "code": "320312", + "name": "铜山区" + }, { + "code": "320321", + "name": "丰县" + }, { + "code": "320322", + "name": "沛县" + }, { + "code": "320324", + "name": "睢宁县" + }, { + "code": "320371", + "name": "徐州经济技术开发区" + }, { + "code": "320381", + "name": "新沂市" + }, { + "code": "320382", + "name": "邳州市" + }] + }, { + "code": "3204", + "name": "常州市", + "children": [{ + "code": "320402", + "name": "天宁区" + }, { + "code": "320404", + "name": "钟楼区" + }, { + "code": "320411", + "name": "新北区" + }, { + "code": "320412", + "name": "武进区" + }, { + "code": "320413", + "name": "金坛区" + }, { + "code": "320481", + "name": "溧阳市" + }] + }, { + "code": "3205", + "name": "苏州市", + "children": [{ + "code": "320505", + "name": "虎丘区" + }, { + "code": "320506", + "name": "吴中区" + }, { + "code": "320507", + "name": "相城区" + }, { + "code": "320508", + "name": "姑苏区" + }, { + "code": "320509", + "name": "吴江区" + }, { + "code": "320576", + "name": "苏州工业园区" + }, { + "code": "320581", + "name": "常熟市" + }, { + "code": "320582", + "name": "张家港市" + }, { + "code": "320583", + "name": "昆山市" + }, { + "code": "320585", + "name": "太仓市" + }] + }, { + "code": "3206", + "name": "南通市", + "children": [{ + "code": "320612", + "name": "通州区" + }, { + "code": "320613", + "name": "崇川区" + }, { + "code": "320614", + "name": "海门区" + }, { + "code": "320623", + "name": "如东县" + }, { + "code": "320671", + "name": "南通经济技术开发区" + }, { + "code": "320681", + "name": "启东市" + }, { + "code": "320682", + "name": "如皋市" + }, { + "code": "320685", + "name": "海安市" + }] + }, { + "code": "3207", + "name": "连云港市", + "children": [{ + "code": "320703", + "name": "连云区" + }, { + "code": "320706", + "name": "海州区" + }, { + "code": "320707", + "name": "赣榆区" + }, { + "code": "320722", + "name": "东海县" + }, { + "code": "320723", + "name": "灌云县" + }, { + "code": "320724", + "name": "灌南县" + }, { + "code": "320771", + "name": "连云港经济技术开发区" + }] + }, { + "code": "3208", + "name": "淮安市", + "children": [{ + "code": "320803", + "name": "淮安区" + }, { + "code": "320804", + "name": "淮阴区" + }, { + "code": "320812", + "name": "清江浦区" + }, { + "code": "320813", + "name": "洪泽区" + }, { + "code": "320826", + "name": "涟水县" + }, { + "code": "320830", + "name": "盱眙县" + }, { + "code": "320831", + "name": "金湖县" + }, { + "code": "320871", + "name": "淮安经济技术开发区" + }] + }, { + "code": "3209", + "name": "盐城市", + "children": [{ + "code": "320902", + "name": "亭湖区" + }, { + "code": "320903", + "name": "盐都区" + }, { + "code": "320904", + "name": "大丰区" + }, { + "code": "320921", + "name": "响水县" + }, { + "code": "320922", + "name": "滨海县" + }, { + "code": "320923", + "name": "阜宁县" + }, { + "code": "320924", + "name": "射阳县" + }, { + "code": "320925", + "name": "建湖县" + }, { + "code": "320971", + "name": "盐城经济技术开发区" + }, { + "code": "320981", + "name": "东台市" + }] + }, { + "code": "3210", + "name": "扬州市", + "children": [{ + "code": "321002", + "name": "广陵区" + }, { + "code": "321003", + "name": "邗江区" + }, { + "code": "321012", + "name": "江都区" + }, { + "code": "321023", + "name": "宝应县" + }, { + "code": "321071", + "name": "扬州经济技术开发区" + }, { + "code": "321081", + "name": "仪征市" + }, { + "code": "321084", + "name": "高邮市" + }] + }, { + "code": "3211", + "name": "镇江市", + "children": [{ + "code": "321102", + "name": "京口区" + }, { + "code": "321111", + "name": "润州区" + }, { + "code": "321112", + "name": "丹徒区" + }, { + "code": "321171", + "name": "镇江新区" + }, { + "code": "321181", + "name": "丹阳市" + }, { + "code": "321182", + "name": "扬中市" + }, { + "code": "321183", + "name": "句容市" + }] + }, { + "code": "3212", + "name": "泰州市", + "children": [{ + "code": "321202", + "name": "海陵区" + }, { + "code": "321203", + "name": "高港区" + }, { + "code": "321204", + "name": "姜堰区" + }, { + "code": "321281", + "name": "兴化市" + }, { + "code": "321282", + "name": "靖江市" + }, { + "code": "321283", + "name": "泰兴市" + }] + }, { + "code": "3213", + "name": "宿迁市", + "children": [{ + "code": "321302", + "name": "宿城区" + }, { + "code": "321311", + "name": "宿豫区" + }, { + "code": "321322", + "name": "沭阳县" + }, { + "code": "321323", + "name": "泗阳县" + }, { + "code": "321324", + "name": "泗洪县" + }, { + "code": "321371", + "name": "宿迁经济技术开发区" + }] + }] +}, { + "code": "33", + "name": "浙江省", + "children": [{ + "code": "3301", + "name": "杭州市", + "children": [{ + "code": "330102", + "name": "上城区" + }, { + "code": "330105", + "name": "拱墅区" + }, { + "code": "330106", + "name": "西湖区" + }, { + "code": "330108", + "name": "滨江区" + }, { + "code": "330109", + "name": "萧山区" + }, { + "code": "330110", + "name": "余杭区" + }, { + "code": "330111", + "name": "富阳区" + }, { + "code": "330112", + "name": "临安区" + }, { + "code": "330113", + "name": "临平区" + }, { + "code": "330114", + "name": "钱塘区" + }, { + "code": "330122", + "name": "桐庐县" + }, { + "code": "330127", + "name": "淳安县" + }, { + "code": "330182", + "name": "建德市" + }] + }, { + "code": "3302", + "name": "宁波市", + "children": [{ + "code": "330203", + "name": "海曙区" + }, { + "code": "330205", + "name": "江北区" + }, { + "code": "330206", + "name": "北仑区" + }, { + "code": "330211", + "name": "镇海区" + }, { + "code": "330212", + "name": "鄞州区" + }, { + "code": "330213", + "name": "奉化区" + }, { + "code": "330225", + "name": "象山县" + }, { + "code": "330226", + "name": "宁海县" + }, { + "code": "330281", + "name": "余姚市" + }, { + "code": "330282", + "name": "慈溪市" + }] + }, { + "code": "3303", + "name": "温州市", + "children": [{ + "code": "330302", + "name": "鹿城区" + }, { + "code": "330303", + "name": "龙湾区" + }, { + "code": "330304", + "name": "瓯海区" + }, { + "code": "330305", + "name": "洞头区" + }, { + "code": "330324", + "name": "永嘉县" + }, { + "code": "330326", + "name": "平阳县" + }, { + "code": "330327", + "name": "苍南县" + }, { + "code": "330328", + "name": "文成县" + }, { + "code": "330329", + "name": "泰顺县" + }, { + "code": "330381", + "name": "瑞安市" + }, { + "code": "330382", + "name": "乐清市" + }, { + "code": "330383", + "name": "龙港市" + }] + }, { + "code": "3304", + "name": "嘉兴市", + "children": [{ + "code": "330402", + "name": "南湖区" + }, { + "code": "330411", + "name": "秀洲区" + }, { + "code": "330421", + "name": "嘉善县" + }, { + "code": "330424", + "name": "海盐县" + }, { + "code": "330481", + "name": "海宁市" + }, { + "code": "330482", + "name": "平湖市" + }, { + "code": "330483", + "name": "桐乡市" + }] + }, { + "code": "3305", + "name": "湖州市", + "children": [{ + "code": "330502", + "name": "吴兴区" + }, { + "code": "330503", + "name": "南浔区" + }, { + "code": "330521", + "name": "德清县" + }, { + "code": "330522", + "name": "长兴县" + }, { + "code": "330523", + "name": "安吉县" + }] + }, { + "code": "3306", + "name": "绍兴市", + "children": [{ + "code": "330602", + "name": "越城区" + }, { + "code": "330603", + "name": "柯桥区" + }, { + "code": "330604", + "name": "上虞区" + }, { + "code": "330624", + "name": "新昌县" + }, { + "code": "330681", + "name": "诸暨市" + }, { + "code": "330683", + "name": "嵊州市" + }] + }, { + "code": "3307", + "name": "金华市", + "children": [{ + "code": "330702", + "name": "婺城区" + }, { + "code": "330703", + "name": "金东区" + }, { + "code": "330723", + "name": "武义县" + }, { + "code": "330726", + "name": "浦江县" + }, { + "code": "330727", + "name": "磐安县" + }, { + "code": "330781", + "name": "兰溪市" + }, { + "code": "330782", + "name": "义乌市" + }, { + "code": "330783", + "name": "东阳市" + }, { + "code": "330784", + "name": "永康市" + }] + }, { + "code": "3308", + "name": "衢州市", + "children": [{ + "code": "330802", + "name": "柯城区" + }, { + "code": "330803", + "name": "衢江区" + }, { + "code": "330822", + "name": "常山县" + }, { + "code": "330824", + "name": "开化县" + }, { + "code": "330825", + "name": "龙游县" + }, { + "code": "330881", + "name": "江山市" + }] + }, { + "code": "3309", + "name": "舟山市", + "children": [{ + "code": "330902", + "name": "定海区" + }, { + "code": "330903", + "name": "普陀区" + }, { + "code": "330921", + "name": "岱山县" + }, { + "code": "330922", + "name": "嵊泗县" + }] + }, { + "code": "3310", + "name": "台州市", + "children": [{ + "code": "331002", + "name": "椒江区" + }, { + "code": "331003", + "name": "黄岩区" + }, { + "code": "331004", + "name": "路桥区" + }, { + "code": "331022", + "name": "三门县" + }, { + "code": "331023", + "name": "天台县" + }, { + "code": "331024", + "name": "仙居县" + }, { + "code": "331081", + "name": "温岭市" + }, { + "code": "331082", + "name": "临海市" + }, { + "code": "331083", + "name": "玉环市" + }] + }, { + "code": "3311", + "name": "丽水市", + "children": [{ + "code": "331102", + "name": "莲都区" + }, { + "code": "331121", + "name": "青田县" + }, { + "code": "331122", + "name": "缙云县" + }, { + "code": "331123", + "name": "遂昌县" + }, { + "code": "331124", + "name": "松阳县" + }, { + "code": "331125", + "name": "云和县" + }, { + "code": "331126", + "name": "庆元县" + }, { + "code": "331127", + "name": "景宁畲族自治县" + }, { + "code": "331181", + "name": "龙泉市" + }] + }] +}, { + "code": "34", + "name": "安徽省", + "children": [{ + "code": "3401", + "name": "合肥市", + "children": [{ + "code": "340102", + "name": "瑶海区" + }, { + "code": "340103", + "name": "庐阳区" + }, { + "code": "340104", + "name": "蜀山区" + }, { + "code": "340111", + "name": "包河区" + }, { + "code": "340121", + "name": "长丰县" + }, { + "code": "340122", + "name": "肥东县" + }, { + "code": "340123", + "name": "肥西县" + }, { + "code": "340124", + "name": "庐江县" + }, { + "code": "340176", + "name": "合肥高新技术产业开发区" + }, { + "code": "340177", + "name": "合肥经济技术开发区" + }, { + "code": "340178", + "name": "合肥新站高新技术产业开发区" + }, { + "code": "340181", + "name": "巢湖市" + }] + }, { + "code": "3402", + "name": "芜湖市", + "children": [{ + "code": "340202", + "name": "镜湖区" + }, { + "code": "340207", + "name": "鸠江区" + }, { + "code": "340209", + "name": "弋江区" + }, { + "code": "340210", + "name": "湾沚区" + }, { + "code": "340212", + "name": "繁昌区" + }, { + "code": "340223", + "name": "南陵县" + }, { + "code": "340271", + "name": "芜湖经济技术开发区" + }, { + "code": "340272", + "name": "安徽芜湖三山经济开发区" + }, { + "code": "340281", + "name": "无为市" + }] + }, { + "code": "3403", + "name": "蚌埠市", + "children": [{ + "code": "340302", + "name": "龙子湖区" + }, { + "code": "340303", + "name": "蚌山区" + }, { + "code": "340304", + "name": "禹会区" + }, { + "code": "340311", + "name": "淮上区" + }, { + "code": "340321", + "name": "怀远县" + }, { + "code": "340322", + "name": "五河县" + }, { + "code": "340323", + "name": "固镇县" + }, { + "code": "340371", + "name": "蚌埠市高新技术开发区" + }, { + "code": "340372", + "name": "蚌埠市经济开发区" + }] + }, { + "code": "3404", + "name": "淮南市", + "children": [{ + "code": "340402", + "name": "大通区" + }, { + "code": "340403", + "name": "田家庵区" + }, { + "code": "340404", + "name": "谢家集区" + }, { + "code": "340405", + "name": "八公山区" + }, { + "code": "340406", + "name": "潘集区" + }, { + "code": "340421", + "name": "凤台县" + }, { + "code": "340422", + "name": "寿县" + }] + }, { + "code": "3405", + "name": "马鞍山市", + "children": [{ + "code": "340503", + "name": "花山区" + }, { + "code": "340504", + "name": "雨山区" + }, { + "code": "340506", + "name": "博望区" + }, { + "code": "340521", + "name": "当涂县" + }, { + "code": "340522", + "name": "含山县" + }, { + "code": "340523", + "name": "和县" + }] + }, { + "code": "3406", + "name": "淮北市", + "children": [{ + "code": "340602", + "name": "杜集区" + }, { + "code": "340603", + "name": "相山区" + }, { + "code": "340604", + "name": "烈山区" + }, { + "code": "340621", + "name": "濉溪县" + }] + }, { + "code": "3407", + "name": "铜陵市", + "children": [{ + "code": "340705", + "name": "铜官区" + }, { + "code": "340706", + "name": "义安区" + }, { + "code": "340711", + "name": "郊区" + }, { + "code": "340722", + "name": "枞阳县" + }] + }, { + "code": "3408", + "name": "安庆市", + "children": [{ + "code": "340802", + "name": "迎江区" + }, { + "code": "340803", + "name": "大观区" + }, { + "code": "340811", + "name": "宜秀区" + }, { + "code": "340822", + "name": "怀宁县" + }, { + "code": "340825", + "name": "太湖县" + }, { + "code": "340826", + "name": "宿松县" + }, { + "code": "340827", + "name": "望江县" + }, { + "code": "340828", + "name": "岳西县" + }, { + "code": "340871", + "name": "安徽安庆经济开发区" + }, { + "code": "340881", + "name": "桐城市" + }, { + "code": "340882", + "name": "潜山市" + }] + }, { + "code": "3410", + "name": "黄山市", + "children": [{ + "code": "341002", + "name": "屯溪区" + }, { + "code": "341003", + "name": "黄山区" + }, { + "code": "341004", + "name": "徽州区" + }, { + "code": "341021", + "name": "歙县" + }, { + "code": "341022", + "name": "休宁县" + }, { + "code": "341023", + "name": "黟县" + }, { + "code": "341024", + "name": "祁门县" + }] + }, { + "code": "3411", + "name": "滁州市", + "children": [{ + "code": "341102", + "name": "琅琊区" + }, { + "code": "341103", + "name": "南谯区" + }, { + "code": "341122", + "name": "来安县" + }, { + "code": "341124", + "name": "全椒县" + }, { + "code": "341125", + "name": "定远县" + }, { + "code": "341126", + "name": "凤阳县" + }, { + "code": "341171", + "name": "中新苏滁高新技术产业开发区" + }, { + "code": "341172", + "name": "滁州经济技术开发区" + }, { + "code": "341181", + "name": "天长市" + }, { + "code": "341182", + "name": "明光市" + }] + }, { + "code": "3412", + "name": "阜阳市", + "children": [{ + "code": "341202", + "name": "颍州区" + }, { + "code": "341203", + "name": "颍东区" + }, { + "code": "341204", + "name": "颍泉区" + }, { + "code": "341221", + "name": "临泉县" + }, { + "code": "341222", + "name": "太和县" + }, { + "code": "341225", + "name": "阜南县" + }, { + "code": "341226", + "name": "颍上县" + }, { + "code": "341271", + "name": "阜阳合肥现代产业园区" + }, { + "code": "341272", + "name": "阜阳经济技术开发区" + }, { + "code": "341282", + "name": "界首市" + }] + }, { + "code": "3413", + "name": "宿州市", + "children": [{ + "code": "341302", + "name": "埇桥区" + }, { + "code": "341321", + "name": "砀山县" + }, { + "code": "341322", + "name": "萧县" + }, { + "code": "341323", + "name": "灵璧县" + }, { + "code": "341324", + "name": "泗县" + }, { + "code": "341371", + "name": "宿州马鞍山现代产业园区" + }, { + "code": "341372", + "name": "宿州经济技术开发区" + }] + }, { + "code": "3415", + "name": "六安市", + "children": [{ + "code": "341502", + "name": "金安区" + }, { + "code": "341503", + "name": "裕安区" + }, { + "code": "341504", + "name": "叶集区" + }, { + "code": "341522", + "name": "霍邱县" + }, { + "code": "341523", + "name": "舒城县" + }, { + "code": "341524", + "name": "金寨县" + }, { + "code": "341525", + "name": "霍山县" + }] + }, { + "code": "3416", + "name": "亳州市", + "children": [{ + "code": "341602", + "name": "谯城区" + }, { + "code": "341621", + "name": "涡阳县" + }, { + "code": "341622", + "name": "蒙城县" + }, { + "code": "341623", + "name": "利辛县" + }] + }, { + "code": "3417", + "name": "池州市", + "children": [{ + "code": "341702", + "name": "贵池区" + }, { + "code": "341721", + "name": "东至县" + }, { + "code": "341722", + "name": "石台县" + }, { + "code": "341723", + "name": "青阳县" + }] + }, { + "code": "3418", + "name": "宣城市", + "children": [{ + "code": "341802", + "name": "宣州区" + }, { + "code": "341821", + "name": "郎溪县" + }, { + "code": "341823", + "name": "泾县" + }, { + "code": "341824", + "name": "绩溪县" + }, { + "code": "341825", + "name": "旌德县" + }, { + "code": "341871", + "name": "宣城市经济开发区" + }, { + "code": "341881", + "name": "宁国市" + }, { + "code": "341882", + "name": "广德市" + }] + }] +}, { + "code": "35", + "name": "福建省", + "children": [{ + "code": "3501", + "name": "福州市", + "children": [{ + "code": "350102", + "name": "鼓楼区" + }, { + "code": "350103", + "name": "台江区" + }, { + "code": "350104", + "name": "仓山区" + }, { + "code": "350105", + "name": "马尾区" + }, { + "code": "350111", + "name": "晋安区" + }, { + "code": "350112", + "name": "长乐区" + }, { + "code": "350121", + "name": "闽侯县" + }, { + "code": "350122", + "name": "连江县" + }, { + "code": "350123", + "name": "罗源县" + }, { + "code": "350124", + "name": "闽清县" + }, { + "code": "350125", + "name": "永泰县" + }, { + "code": "350128", + "name": "平潭县" + }, { + "code": "350181", + "name": "福清市" + }] + }, { + "code": "3502", + "name": "厦门市", + "children": [{ + "code": "350203", + "name": "思明区" + }, { + "code": "350205", + "name": "海沧区" + }, { + "code": "350206", + "name": "湖里区" + }, { + "code": "350211", + "name": "集美区" + }, { + "code": "350212", + "name": "同安区" + }, { + "code": "350213", + "name": "翔安区" + }] + }, { + "code": "3503", + "name": "莆田市", + "children": [{ + "code": "350302", + "name": "城厢区" + }, { + "code": "350303", + "name": "涵江区" + }, { + "code": "350304", + "name": "荔城区" + }, { + "code": "350305", + "name": "秀屿区" + }, { + "code": "350322", + "name": "仙游县" + }] + }, { + "code": "3504", + "name": "三明市", + "children": [{ + "code": "350404", + "name": "三元区" + }, { + "code": "350405", + "name": "沙县区" + }, { + "code": "350421", + "name": "明溪县" + }, { + "code": "350423", + "name": "清流县" + }, { + "code": "350424", + "name": "宁化县" + }, { + "code": "350425", + "name": "大田县" + }, { + "code": "350426", + "name": "尤溪县" + }, { + "code": "350428", + "name": "将乐县" + }, { + "code": "350429", + "name": "泰宁县" + }, { + "code": "350430", + "name": "建宁县" + }, { + "code": "350481", + "name": "永安市" + }] + }, { + "code": "3505", + "name": "泉州市", + "children": [{ + "code": "350502", + "name": "鲤城区" + }, { + "code": "350503", + "name": "丰泽区" + }, { + "code": "350504", + "name": "洛江区" + }, { + "code": "350505", + "name": "泉港区" + }, { + "code": "350521", + "name": "惠安县" + }, { + "code": "350524", + "name": "安溪县" + }, { + "code": "350525", + "name": "永春县" + }, { + "code": "350526", + "name": "德化县" + }, { + "code": "350527", + "name": "金门县" + }, { + "code": "350581", + "name": "石狮市" + }, { + "code": "350582", + "name": "晋江市" + }, { + "code": "350583", + "name": "南安市" + }] + }, { + "code": "3506", + "name": "漳州市", + "children": [{ + "code": "350602", + "name": "芗城区" + }, { + "code": "350603", + "name": "龙文区" + }, { + "code": "350604", + "name": "龙海区" + }, { + "code": "350605", + "name": "长泰区" + }, { + "code": "350622", + "name": "云霄县" + }, { + "code": "350623", + "name": "漳浦县" + }, { + "code": "350624", + "name": "诏安县" + }, { + "code": "350626", + "name": "东山县" + }, { + "code": "350627", + "name": "南靖县" + }, { + "code": "350628", + "name": "平和县" + }, { + "code": "350629", + "name": "华安县" + }] + }, { + "code": "3507", + "name": "南平市", + "children": [{ + "code": "350702", + "name": "延平区" + }, { + "code": "350703", + "name": "建阳区" + }, { + "code": "350721", + "name": "顺昌县" + }, { + "code": "350722", + "name": "浦城县" + }, { + "code": "350723", + "name": "光泽县" + }, { + "code": "350724", + "name": "松溪县" + }, { + "code": "350725", + "name": "政和县" + }, { + "code": "350781", + "name": "邵武市" + }, { + "code": "350782", + "name": "武夷山市" + }, { + "code": "350783", + "name": "建瓯市" + }] + }, { + "code": "3508", + "name": "龙岩市", + "children": [{ + "code": "350802", + "name": "新罗区" + }, { + "code": "350803", + "name": "永定区" + }, { + "code": "350821", + "name": "长汀县" + }, { + "code": "350823", + "name": "上杭县" + }, { + "code": "350824", + "name": "武平县" + }, { + "code": "350825", + "name": "连城县" + }, { + "code": "350881", + "name": "漳平市" + }] + }, { + "code": "3509", + "name": "宁德市", + "children": [{ + "code": "350902", + "name": "蕉城区" + }, { + "code": "350921", + "name": "霞浦县" + }, { + "code": "350922", + "name": "古田县" + }, { + "code": "350923", + "name": "屏南县" + }, { + "code": "350924", + "name": "寿宁县" + }, { + "code": "350925", + "name": "周宁县" + }, { + "code": "350926", + "name": "柘荣县" + }, { + "code": "350981", + "name": "福安市" + }, { + "code": "350982", + "name": "福鼎市" + }] + }] +}, { + "code": "36", + "name": "江西省", + "children": [{ + "code": "3601", + "name": "南昌市", + "children": [{ + "code": "360102", + "name": "东湖区" + }, { + "code": "360103", + "name": "西湖区" + }, { + "code": "360104", + "name": "青云谱区" + }, { + "code": "360111", + "name": "青山湖区" + }, { + "code": "360112", + "name": "新建区" + }, { + "code": "360113", + "name": "红谷滩区" + }, { + "code": "360121", + "name": "南昌县" + }, { + "code": "360123", + "name": "安义县" + }, { + "code": "360124", + "name": "进贤县" + }] + }, { + "code": "3602", + "name": "景德镇市", + "children": [{ + "code": "360202", + "name": "昌江区" + }, { + "code": "360203", + "name": "珠山区" + }, { + "code": "360222", + "name": "浮梁县" + }, { + "code": "360281", + "name": "乐平市" + }] + }, { + "code": "3603", + "name": "萍乡市", + "children": [{ + "code": "360302", + "name": "安源区" + }, { + "code": "360313", + "name": "湘东区" + }, { + "code": "360321", + "name": "莲花县" + }, { + "code": "360322", + "name": "上栗县" + }, { + "code": "360323", + "name": "芦溪县" + }] + }, { + "code": "3604", + "name": "九江市", + "children": [{ + "code": "360402", + "name": "濂溪区" + }, { + "code": "360403", + "name": "浔阳区" + }, { + "code": "360404", + "name": "柴桑区" + }, { + "code": "360423", + "name": "武宁县" + }, { + "code": "360424", + "name": "修水县" + }, { + "code": "360425", + "name": "永修县" + }, { + "code": "360426", + "name": "德安县" + }, { + "code": "360428", + "name": "都昌县" + }, { + "code": "360429", + "name": "湖口县" + }, { + "code": "360430", + "name": "彭泽县" + }, { + "code": "360481", + "name": "瑞昌市" + }, { + "code": "360482", + "name": "共青城市" + }, { + "code": "360483", + "name": "庐山市" + }] + }, { + "code": "3605", + "name": "新余市", + "children": [{ + "code": "360502", + "name": "渝水区" + }, { + "code": "360521", + "name": "分宜县" + }] + }, { + "code": "3606", + "name": "鹰潭市", + "children": [{ + "code": "360602", + "name": "月湖区" + }, { + "code": "360603", + "name": "余江区" + }, { + "code": "360681", + "name": "贵溪市" + }] + }, { + "code": "3607", + "name": "赣州市", + "children": [{ + "code": "360702", + "name": "章贡区" + }, { + "code": "360703", + "name": "南康区" + }, { + "code": "360704", + "name": "赣县区" + }, { + "code": "360722", + "name": "信丰县" + }, { + "code": "360723", + "name": "大余县" + }, { + "code": "360724", + "name": "上犹县" + }, { + "code": "360725", + "name": "崇义县" + }, { + "code": "360726", + "name": "安远县" + }, { + "code": "360728", + "name": "定南县" + }, { + "code": "360729", + "name": "全南县" + }, { + "code": "360730", + "name": "宁都县" + }, { + "code": "360731", + "name": "于都县" + }, { + "code": "360732", + "name": "兴国县" + }, { + "code": "360733", + "name": "会昌县" + }, { + "code": "360734", + "name": "寻乌县" + }, { + "code": "360735", + "name": "石城县" + }, { + "code": "360781", + "name": "瑞金市" + }, { + "code": "360783", + "name": "龙南市" + }] + }, { + "code": "3608", + "name": "吉安市", + "children": [{ + "code": "360802", + "name": "吉州区" + }, { + "code": "360803", + "name": "青原区" + }, { + "code": "360821", + "name": "吉安县" + }, { + "code": "360822", + "name": "吉水县" + }, { + "code": "360823", + "name": "峡江县" + }, { + "code": "360824", + "name": "新干县" + }, { + "code": "360825", + "name": "永丰县" + }, { + "code": "360826", + "name": "泰和县" + }, { + "code": "360827", + "name": "遂川县" + }, { + "code": "360828", + "name": "万安县" + }, { + "code": "360829", + "name": "安福县" + }, { + "code": "360830", + "name": "永新县" + }, { + "code": "360881", + "name": "井冈山市" + }] + }, { + "code": "3609", + "name": "宜春市", + "children": [{ + "code": "360902", + "name": "袁州区" + }, { + "code": "360921", + "name": "奉新县" + }, { + "code": "360922", + "name": "万载县" + }, { + "code": "360923", + "name": "上高县" + }, { + "code": "360924", + "name": "宜丰县" + }, { + "code": "360925", + "name": "靖安县" + }, { + "code": "360926", + "name": "铜鼓县" + }, { + "code": "360981", + "name": "丰城市" + }, { + "code": "360982", + "name": "樟树市" + }, { + "code": "360983", + "name": "高安市" + }] + }, { + "code": "3610", + "name": "抚州市", + "children": [{ + "code": "361002", + "name": "临川区" + }, { + "code": "361003", + "name": "东乡区" + }, { + "code": "361021", + "name": "南城县" + }, { + "code": "361022", + "name": "黎川县" + }, { + "code": "361023", + "name": "南丰县" + }, { + "code": "361024", + "name": "崇仁县" + }, { + "code": "361025", + "name": "乐安县" + }, { + "code": "361026", + "name": "宜黄县" + }, { + "code": "361027", + "name": "金溪县" + }, { + "code": "361028", + "name": "资溪县" + }, { + "code": "361030", + "name": "广昌县" + }] + }, { + "code": "3611", + "name": "上饶市", + "children": [{ + "code": "361102", + "name": "信州区" + }, { + "code": "361103", + "name": "广丰区" + }, { + "code": "361104", + "name": "广信区" + }, { + "code": "361123", + "name": "玉山县" + }, { + "code": "361124", + "name": "铅山县" + }, { + "code": "361125", + "name": "横峰县" + }, { + "code": "361126", + "name": "弋阳县" + }, { + "code": "361127", + "name": "余干县" + }, { + "code": "361128", + "name": "鄱阳县" + }, { + "code": "361129", + "name": "万年县" + }, { + "code": "361130", + "name": "婺源县" + }, { + "code": "361181", + "name": "德兴市" + }] + }] +}, { + "code": "37", + "name": "山东省", + "children": [{ + "code": "3701", + "name": "济南市", + "children": [{ + "code": "370102", + "name": "历下区" + }, { + "code": "370103", + "name": "市中区" + }, { + "code": "370104", + "name": "槐荫区" + }, { + "code": "370105", + "name": "天桥区" + }, { + "code": "370112", + "name": "历城区" + }, { + "code": "370113", + "name": "长清区" + }, { + "code": "370114", + "name": "章丘区" + }, { + "code": "370115", + "name": "济阳区" + }, { + "code": "370116", + "name": "莱芜区" + }, { + "code": "370117", + "name": "钢城区" + }, { + "code": "370124", + "name": "平阴县" + }, { + "code": "370126", + "name": "商河县" + }, { + "code": "370176", + "name": "济南高新技术产业开发区" + }] + }, { + "code": "3702", + "name": "青岛市", + "children": [{ + "code": "370202", + "name": "市南区" + }, { + "code": "370203", + "name": "市北区" + }, { + "code": "370211", + "name": "黄岛区" + }, { + "code": "370212", + "name": "崂山区" + }, { + "code": "370213", + "name": "李沧区" + }, { + "code": "370214", + "name": "城阳区" + }, { + "code": "370215", + "name": "即墨区" + }, { + "code": "370281", + "name": "胶州市" + }, { + "code": "370283", + "name": "平度市" + }, { + "code": "370285", + "name": "莱西市" + }] + }, { + "code": "3703", + "name": "淄博市", + "children": [{ + "code": "370302", + "name": "淄川区" + }, { + "code": "370303", + "name": "张店区" + }, { + "code": "370304", + "name": "博山区" + }, { + "code": "370305", + "name": "临淄区" + }, { + "code": "370306", + "name": "周村区" + }, { + "code": "370321", + "name": "桓台县" + }, { + "code": "370322", + "name": "高青县" + }, { + "code": "370323", + "name": "沂源县" + }] + }, { + "code": "3704", + "name": "枣庄市", + "children": [{ + "code": "370402", + "name": "市中区" + }, { + "code": "370403", + "name": "薛城区" + }, { + "code": "370404", + "name": "峄城区" + }, { + "code": "370405", + "name": "台儿庄区" + }, { + "code": "370406", + "name": "山亭区" + }, { + "code": "370481", + "name": "滕州市" + }] + }, { + "code": "3705", + "name": "东营市", + "children": [{ + "code": "370502", + "name": "东营区" + }, { + "code": "370503", + "name": "河口区" + }, { + "code": "370505", + "name": "垦利区" + }, { + "code": "370522", + "name": "利津县" + }, { + "code": "370523", + "name": "广饶县" + }, { + "code": "370571", + "name": "东营经济技术开发区" + }, { + "code": "370572", + "name": "东营港经济开发区" + }] + }, { + "code": "3706", + "name": "烟台市", + "children": [{ + "code": "370602", + "name": "芝罘区" + }, { + "code": "370611", + "name": "福山区" + }, { + "code": "370612", + "name": "牟平区" + }, { + "code": "370613", + "name": "莱山区" + }, { + "code": "370614", + "name": "蓬莱区" + }, { + "code": "370671", + "name": "烟台高新技术产业开发区" + }, { + "code": "370676", + "name": "烟台经济技术开发区" + }, { + "code": "370681", + "name": "龙口市" + }, { + "code": "370682", + "name": "莱阳市" + }, { + "code": "370683", + "name": "莱州市" + }, { + "code": "370685", + "name": "招远市" + }, { + "code": "370686", + "name": "栖霞市" + }, { + "code": "370687", + "name": "海阳市" + }] + }, { + "code": "3707", + "name": "潍坊市", + "children": [{ + "code": "370702", + "name": "潍城区" + }, { + "code": "370703", + "name": "寒亭区" + }, { + "code": "370704", + "name": "坊子区" + }, { + "code": "370705", + "name": "奎文区" + }, { + "code": "370724", + "name": "临朐县" + }, { + "code": "370725", + "name": "昌乐县" + }, { + "code": "370772", + "name": "潍坊滨海经济技术开发区" + }, { + "code": "370781", + "name": "青州市" + }, { + "code": "370782", + "name": "诸城市" + }, { + "code": "370783", + "name": "寿光市" + }, { + "code": "370784", + "name": "安丘市" + }, { + "code": "370785", + "name": "高密市" + }, { + "code": "370786", + "name": "昌邑市" + }] + }, { + "code": "3708", + "name": "济宁市", + "children": [{ + "code": "370811", + "name": "任城区" + }, { + "code": "370812", + "name": "兖州区" + }, { + "code": "370826", + "name": "微山县" + }, { + "code": "370827", + "name": "鱼台县" + }, { + "code": "370828", + "name": "金乡县" + }, { + "code": "370829", + "name": "嘉祥县" + }, { + "code": "370830", + "name": "汶上县" + }, { + "code": "370831", + "name": "泗水县" + }, { + "code": "370832", + "name": "梁山县" + }, { + "code": "370871", + "name": "济宁高新技术产业开发区" + }, { + "code": "370881", + "name": "曲阜市" + }, { + "code": "370883", + "name": "邹城市" + }] + }, { + "code": "3709", + "name": "泰安市", + "children": [{ + "code": "370902", + "name": "泰山区" + }, { + "code": "370911", + "name": "岱岳区" + }, { + "code": "370921", + "name": "宁阳县" + }, { + "code": "370923", + "name": "东平县" + }, { + "code": "370982", + "name": "新泰市" + }, { + "code": "370983", + "name": "肥城市" + }] + }, { + "code": "3710", + "name": "威海市", + "children": [{ + "code": "371002", + "name": "环翠区" + }, { + "code": "371003", + "name": "文登区" + }, { + "code": "371071", + "name": "威海火炬高技术产业开发区" + }, { + "code": "371072", + "name": "威海经济技术开发区" + }, { + "code": "371073", + "name": "威海临港经济技术开发区" + }, { + "code": "371082", + "name": "荣成市" + }, { + "code": "371083", + "name": "乳山市" + }] + }, { + "code": "3711", + "name": "日照市", + "children": [{ + "code": "371102", + "name": "东港区" + }, { + "code": "371103", + "name": "岚山区" + }, { + "code": "371121", + "name": "五莲县" + }, { + "code": "371122", + "name": "莒县" + }, { + "code": "371171", + "name": "日照经济技术开发区" + }] + }, { + "code": "3713", + "name": "临沂市", + "children": [{ + "code": "371302", + "name": "兰山区" + }, { + "code": "371311", + "name": "罗庄区" + }, { + "code": "371312", + "name": "河东区" + }, { + "code": "371321", + "name": "沂南县" + }, { + "code": "371322", + "name": "郯城县" + }, { + "code": "371323", + "name": "沂水县" + }, { + "code": "371324", + "name": "兰陵县" + }, { + "code": "371325", + "name": "费县" + }, { + "code": "371326", + "name": "平邑县" + }, { + "code": "371327", + "name": "莒南县" + }, { + "code": "371328", + "name": "蒙阴县" + }, { + "code": "371329", + "name": "临沭县" + }, { + "code": "371371", + "name": "临沂高新技术产业开发区" + }] + }, { + "code": "3714", + "name": "德州市", + "children": [{ + "code": "371402", + "name": "德城区" + }, { + "code": "371403", + "name": "陵城区" + }, { + "code": "371422", + "name": "宁津县" + }, { + "code": "371423", + "name": "庆云县" + }, { + "code": "371424", + "name": "临邑县" + }, { + "code": "371425", + "name": "齐河县" + }, { + "code": "371426", + "name": "平原县" + }, { + "code": "371427", + "name": "夏津县" + }, { + "code": "371428", + "name": "武城县" + }, { + "code": "371471", + "name": "德州天衢新区" + }, { + "code": "371481", + "name": "乐陵市" + }, { + "code": "371482", + "name": "禹城市" + }] + }, { + "code": "3715", + "name": "聊城市", + "children": [{ + "code": "371502", + "name": "东昌府区" + }, { + "code": "371503", + "name": "茌平区" + }, { + "code": "371521", + "name": "阳谷县" + }, { + "code": "371522", + "name": "莘县" + }, { + "code": "371524", + "name": "东阿县" + }, { + "code": "371525", + "name": "冠县" + }, { + "code": "371526", + "name": "高唐县" + }, { + "code": "371581", + "name": "临清市" + }] + }, { + "code": "3716", + "name": "滨州市", + "children": [{ + "code": "371602", + "name": "滨城区" + }, { + "code": "371603", + "name": "沾化区" + }, { + "code": "371621", + "name": "惠民县" + }, { + "code": "371622", + "name": "阳信县" + }, { + "code": "371623", + "name": "无棣县" + }, { + "code": "371625", + "name": "博兴县" + }, { + "code": "371681", + "name": "邹平市" + }] + }, { + "code": "3717", + "name": "菏泽市", + "children": [{ + "code": "371702", + "name": "牡丹区" + }, { + "code": "371703", + "name": "定陶区" + }, { + "code": "371721", + "name": "曹县" + }, { + "code": "371722", + "name": "单县" + }, { + "code": "371723", + "name": "成武县" + }, { + "code": "371724", + "name": "巨野县" + }, { + "code": "371725", + "name": "郓城县" + }, { + "code": "371726", + "name": "鄄城县" + }, { + "code": "371728", + "name": "东明县" + }, { + "code": "371771", + "name": "菏泽经济技术开发区" + }, { + "code": "371772", + "name": "菏泽高新技术开发区" + }] + }] +}, { + "code": "41", + "name": "河南省", + "children": [{ + "code": "4101", + "name": "郑州市", + "children": [{ + "code": "410102", + "name": "中原区" + }, { + "code": "410103", + "name": "二七区" + }, { + "code": "410104", + "name": "管城回族区" + }, { + "code": "410105", + "name": "金水区" + }, { + "code": "410106", + "name": "上街区" + }, { + "code": "410108", + "name": "惠济区" + }, { + "code": "410122", + "name": "中牟县" + }, { + "code": "410171", + "name": "郑州经济技术开发区" + }, { + "code": "410172", + "name": "郑州高新技术产业开发区" + }, { + "code": "410173", + "name": "郑州航空港经济综合实验区" + }, { + "code": "410181", + "name": "巩义市" + }, { + "code": "410182", + "name": "荥阳市" + }, { + "code": "410183", + "name": "新密市" + }, { + "code": "410184", + "name": "新郑市" + }, { + "code": "410185", + "name": "登封市" + }] + }, { + "code": "4102", + "name": "开封市", + "children": [{ + "code": "410202", + "name": "龙亭区" + }, { + "code": "410203", + "name": "顺河回族区" + }, { + "code": "410204", + "name": "鼓楼区" + }, { + "code": "410205", + "name": "禹王台区" + }, { + "code": "410212", + "name": "祥符区" + }, { + "code": "410221", + "name": "杞县" + }, { + "code": "410222", + "name": "通许县" + }, { + "code": "410223", + "name": "尉氏县" + }, { + "code": "410225", + "name": "兰考县" + }] + }, { + "code": "4103", + "name": "洛阳市", + "children": [{ + "code": "410302", + "name": "老城区" + }, { + "code": "410303", + "name": "西工区" + }, { + "code": "410304", + "name": "瀍河回族区" + }, { + "code": "410305", + "name": "涧西区" + }, { + "code": "410307", + "name": "偃师区" + }, { + "code": "410308", + "name": "孟津区" + }, { + "code": "410311", + "name": "洛龙区" + }, { + "code": "410323", + "name": "新安县" + }, { + "code": "410324", + "name": "栾川县" + }, { + "code": "410325", + "name": "嵩县" + }, { + "code": "410326", + "name": "汝阳县" + }, { + "code": "410327", + "name": "宜阳县" + }, { + "code": "410328", + "name": "洛宁县" + }, { + "code": "410329", + "name": "伊川县" + }, { + "code": "410371", + "name": "洛阳高新技术产业开发区" + }] + }, { + "code": "4104", + "name": "平顶山市", + "children": [{ + "code": "410402", + "name": "新华区" + }, { + "code": "410403", + "name": "卫东区" + }, { + "code": "410404", + "name": "石龙区" + }, { + "code": "410411", + "name": "湛河区" + }, { + "code": "410421", + "name": "宝丰县" + }, { + "code": "410422", + "name": "叶县" + }, { + "code": "410423", + "name": "鲁山县" + }, { + "code": "410425", + "name": "郏县" + }, { + "code": "410471", + "name": "平顶山高新技术产业开发区" + }, { + "code": "410472", + "name": "平顶山市城乡一体化示范区" + }, { + "code": "410481", + "name": "舞钢市" + }, { + "code": "410482", + "name": "汝州市" + }] + }, { + "code": "4105", + "name": "安阳市", + "children": [{ + "code": "410502", + "name": "文峰区" + }, { + "code": "410503", + "name": "北关区" + }, { + "code": "410505", + "name": "殷都区" + }, { + "code": "410506", + "name": "龙安区" + }, { + "code": "410522", + "name": "安阳县" + }, { + "code": "410523", + "name": "汤阴县" + }, { + "code": "410526", + "name": "滑县" + }, { + "code": "410527", + "name": "内黄县" + }, { + "code": "410571", + "name": "安阳高新技术产业开发区" + }, { + "code": "410581", + "name": "林州市" + }] + }, { + "code": "4106", + "name": "鹤壁市", + "children": [{ + "code": "410602", + "name": "鹤山区" + }, { + "code": "410603", + "name": "山城区" + }, { + "code": "410611", + "name": "淇滨区" + }, { + "code": "410621", + "name": "浚县" + }, { + "code": "410622", + "name": "淇县" + }, { + "code": "410671", + "name": "鹤壁经济技术开发区" + }] + }, { + "code": "4107", + "name": "新乡市", + "children": [{ + "code": "410702", + "name": "红旗区" + }, { + "code": "410703", + "name": "卫滨区" + }, { + "code": "410704", + "name": "凤泉区" + }, { + "code": "410711", + "name": "牧野区" + }, { + "code": "410721", + "name": "新乡县" + }, { + "code": "410724", + "name": "获嘉县" + }, { + "code": "410725", + "name": "原阳县" + }, { + "code": "410726", + "name": "延津县" + }, { + "code": "410727", + "name": "封丘县" + }, { + "code": "410771", + "name": "新乡高新技术产业开发区" + }, { + "code": "410772", + "name": "新乡经济技术开发区" + }, { + "code": "410773", + "name": "新乡市平原城乡一体化示范区" + }, { + "code": "410781", + "name": "卫辉市" + }, { + "code": "410782", + "name": "辉县市" + }, { + "code": "410783", + "name": "长垣市" + }] + }, { + "code": "4108", + "name": "焦作市", + "children": [{ + "code": "410802", + "name": "解放区" + }, { + "code": "410803", + "name": "中站区" + }, { + "code": "410804", + "name": "马村区" + }, { + "code": "410811", + "name": "山阳区" + }, { + "code": "410821", + "name": "修武县" + }, { + "code": "410822", + "name": "博爱县" + }, { + "code": "410823", + "name": "武陟县" + }, { + "code": "410825", + "name": "温县" + }, { + "code": "410871", + "name": "焦作城乡一体化示范区" + }, { + "code": "410882", + "name": "沁阳市" + }, { + "code": "410883", + "name": "孟州市" + }] + }, { + "code": "4109", + "name": "濮阳市", + "children": [{ + "code": "410902", + "name": "华龙区" + }, { + "code": "410922", + "name": "清丰县" + }, { + "code": "410923", + "name": "南乐县" + }, { + "code": "410926", + "name": "范县" + }, { + "code": "410927", + "name": "台前县" + }, { + "code": "410928", + "name": "濮阳县" + }, { + "code": "410971", + "name": "河南濮阳工业园区" + }, { + "code": "410972", + "name": "濮阳经济技术开发区" + }] + }, { + "code": "4110", + "name": "许昌市", + "children": [{ + "code": "411002", + "name": "魏都区" + }, { + "code": "411003", + "name": "建安区" + }, { + "code": "411024", + "name": "鄢陵县" + }, { + "code": "411025", + "name": "襄城县" + }, { + "code": "411071", + "name": "许昌经济技术开发区" + }, { + "code": "411081", + "name": "禹州市" + }, { + "code": "411082", + "name": "长葛市" + }] + }, { + "code": "4111", + "name": "漯河市", + "children": [{ + "code": "411102", + "name": "源汇区" + }, { + "code": "411103", + "name": "郾城区" + }, { + "code": "411104", + "name": "召陵区" + }, { + "code": "411121", + "name": "舞阳县" + }, { + "code": "411122", + "name": "临颍县" + }, { + "code": "411171", + "name": "漯河经济技术开发区" + }] + }, { + "code": "4112", + "name": "三门峡市", + "children": [{ + "code": "411202", + "name": "湖滨区" + }, { + "code": "411203", + "name": "陕州区" + }, { + "code": "411221", + "name": "渑池县" + }, { + "code": "411224", + "name": "卢氏县" + }, { + "code": "411271", + "name": "河南三门峡经济开发区" + }, { + "code": "411281", + "name": "义马市" + }, { + "code": "411282", + "name": "灵宝市" + }] + }, { + "code": "4113", + "name": "南阳市", + "children": [{ + "code": "411302", + "name": "宛城区" + }, { + "code": "411303", + "name": "卧龙区" + }, { + "code": "411321", + "name": "南召县" + }, { + "code": "411322", + "name": "方城县" + }, { + "code": "411323", + "name": "西峡县" + }, { + "code": "411324", + "name": "镇平县" + }, { + "code": "411325", + "name": "内乡县" + }, { + "code": "411326", + "name": "淅川县" + }, { + "code": "411327", + "name": "社旗县" + }, { + "code": "411328", + "name": "唐河县" + }, { + "code": "411329", + "name": "新野县" + }, { + "code": "411330", + "name": "桐柏县" + }, { + "code": "411371", + "name": "南阳高新技术产业开发区" + }, { + "code": "411372", + "name": "南阳市城乡一体化示范区" + }, { + "code": "411381", + "name": "邓州市" + }] + }, { + "code": "4114", + "name": "商丘市", + "children": [{ + "code": "411402", + "name": "梁园区" + }, { + "code": "411403", + "name": "睢阳区" + }, { + "code": "411421", + "name": "民权县" + }, { + "code": "411422", + "name": "睢县" + }, { + "code": "411423", + "name": "宁陵县" + }, { + "code": "411424", + "name": "柘城县" + }, { + "code": "411425", + "name": "虞城县" + }, { + "code": "411426", + "name": "夏邑县" + }, { + "code": "411471", + "name": "豫东综合物流产业聚集区" + }, { + "code": "411472", + "name": "河南商丘经济开发区" + }, { + "code": "411481", + "name": "永城市" + }] + }, { + "code": "4115", + "name": "信阳市", + "children": [{ + "code": "411502", + "name": "浉河区" + }, { + "code": "411503", + "name": "平桥区" + }, { + "code": "411521", + "name": "罗山县" + }, { + "code": "411522", + "name": "光山县" + }, { + "code": "411523", + "name": "新县" + }, { + "code": "411524", + "name": "商城县" + }, { + "code": "411525", + "name": "固始县" + }, { + "code": "411526", + "name": "潢川县" + }, { + "code": "411527", + "name": "淮滨县" + }, { + "code": "411528", + "name": "息县" + }, { + "code": "411571", + "name": "信阳高新技术产业开发区" + }] + }, { + "code": "4116", + "name": "周口市", + "children": [{ + "code": "411602", + "name": "川汇区" + }, { + "code": "411603", + "name": "淮阳区" + }, { + "code": "411621", + "name": "扶沟县" + }, { + "code": "411622", + "name": "西华县" + }, { + "code": "411623", + "name": "商水县" + }, { + "code": "411624", + "name": "沈丘县" + }, { + "code": "411625", + "name": "郸城县" + }, { + "code": "411627", + "name": "太康县" + }, { + "code": "411628", + "name": "鹿邑县" + }, { + "code": "411671", + "name": "周口临港开发区" + }, { + "code": "411681", + "name": "项城市" + }] + }, { + "code": "4117", + "name": "驻马店市", + "children": [{ + "code": "411702", + "name": "驿城区" + }, { + "code": "411721", + "name": "西平县" + }, { + "code": "411722", + "name": "上蔡县" + }, { + "code": "411723", + "name": "平舆县" + }, { + "code": "411724", + "name": "正阳县" + }, { + "code": "411725", + "name": "确山县" + }, { + "code": "411726", + "name": "泌阳县" + }, { + "code": "411727", + "name": "汝南县" + }, { + "code": "411728", + "name": "遂平县" + }, { + "code": "411729", + "name": "新蔡县" + }, { + "code": "411771", + "name": "河南驻马店经济开发区" + }] + }, { + "code": "4190", + "name": "省直辖县级行政区划", + "children": [{ + "code": "419001", + "name": "济源市" + }] + }] +}, { + "code": "42", + "name": "湖北省", + "children": [{ + "code": "4201", + "name": "武汉市", + "children": [{ + "code": "420102", + "name": "江岸区" + }, { + "code": "420103", + "name": "江汉区" + }, { + "code": "420104", + "name": "硚口区" + }, { + "code": "420105", + "name": "汉阳区" + }, { + "code": "420106", + "name": "武昌区" + }, { + "code": "420107", + "name": "青山区" + }, { + "code": "420111", + "name": "洪山区" + }, { + "code": "420112", + "name": "东西湖区" + }, { + "code": "420113", + "name": "汉南区" + }, { + "code": "420114", + "name": "蔡甸区" + }, { + "code": "420115", + "name": "江夏区" + }, { + "code": "420116", + "name": "黄陂区" + }, { + "code": "420117", + "name": "新洲区" + }] + }, { + "code": "4202", + "name": "黄石市", + "children": [{ + "code": "420202", + "name": "黄石港区" + }, { + "code": "420203", + "name": "西塞山区" + }, { + "code": "420204", + "name": "下陆区" + }, { + "code": "420205", + "name": "铁山区" + }, { + "code": "420222", + "name": "阳新县" + }, { + "code": "420281", + "name": "大冶市" + }] + }, { + "code": "4203", + "name": "十堰市", + "children": [{ + "code": "420302", + "name": "茅箭区" + }, { + "code": "420303", + "name": "张湾区" + }, { + "code": "420304", + "name": "郧阳区" + }, { + "code": "420322", + "name": "郧西县" + }, { + "code": "420323", + "name": "竹山县" + }, { + "code": "420324", + "name": "竹溪县" + }, { + "code": "420325", + "name": "房县" + }, { + "code": "420381", + "name": "丹江口市" + }] + }, { + "code": "4205", + "name": "宜昌市", + "children": [{ + "code": "420502", + "name": "西陵区" + }, { + "code": "420503", + "name": "伍家岗区" + }, { + "code": "420504", + "name": "点军区" + }, { + "code": "420505", + "name": "猇亭区" + }, { + "code": "420506", + "name": "夷陵区" + }, { + "code": "420525", + "name": "远安县" + }, { + "code": "420526", + "name": "兴山县" + }, { + "code": "420527", + "name": "秭归县" + }, { + "code": "420528", + "name": "长阳土家族自治县" + }, { + "code": "420529", + "name": "五峰土家族自治县" + }, { + "code": "420581", + "name": "宜都市" + }, { + "code": "420582", + "name": "当阳市" + }, { + "code": "420583", + "name": "枝江市" + }] + }, { + "code": "4206", + "name": "襄阳市", + "children": [{ + "code": "420602", + "name": "襄城区" + }, { + "code": "420606", + "name": "樊城区" + }, { + "code": "420607", + "name": "襄州区" + }, { + "code": "420624", + "name": "南漳县" + }, { + "code": "420625", + "name": "谷城县" + }, { + "code": "420626", + "name": "保康县" + }, { + "code": "420682", + "name": "老河口市" + }, { + "code": "420683", + "name": "枣阳市" + }, { + "code": "420684", + "name": "宜城市" + }] + }, { + "code": "4207", + "name": "鄂州市", + "children": [{ + "code": "420702", + "name": "梁子湖区" + }, { + "code": "420703", + "name": "华容区" + }, { + "code": "420704", + "name": "鄂城区" + }] + }, { + "code": "4208", + "name": "荆门市", + "children": [{ + "code": "420802", + "name": "东宝区" + }, { + "code": "420804", + "name": "掇刀区" + }, { + "code": "420822", + "name": "沙洋县" + }, { + "code": "420881", + "name": "钟祥市" + }, { + "code": "420882", + "name": "京山市" + }] + }, { + "code": "4209", + "name": "孝感市", + "children": [{ + "code": "420902", + "name": "孝南区" + }, { + "code": "420921", + "name": "孝昌县" + }, { + "code": "420922", + "name": "大悟县" + }, { + "code": "420923", + "name": "云梦县" + }, { + "code": "420981", + "name": "应城市" + }, { + "code": "420982", + "name": "安陆市" + }, { + "code": "420984", + "name": "汉川市" + }] + }, { + "code": "4210", + "name": "荆州市", + "children": [{ + "code": "421002", + "name": "沙市区" + }, { + "code": "421003", + "name": "荆州区" + }, { + "code": "421022", + "name": "公安县" + }, { + "code": "421024", + "name": "江陵县" + }, { + "code": "421071", + "name": "荆州经济技术开发区" + }, { + "code": "421081", + "name": "石首市" + }, { + "code": "421083", + "name": "洪湖市" + }, { + "code": "421087", + "name": "松滋市" + }, { + "code": "421088", + "name": "监利市" + }] + }, { + "code": "4211", + "name": "黄冈市", + "children": [{ + "code": "421102", + "name": "黄州区" + }, { + "code": "421121", + "name": "团风县" + }, { + "code": "421122", + "name": "红安县" + }, { + "code": "421123", + "name": "罗田县" + }, { + "code": "421124", + "name": "英山县" + }, { + "code": "421125", + "name": "浠水县" + }, { + "code": "421126", + "name": "蕲春县" + }, { + "code": "421127", + "name": "黄梅县" + }, { + "code": "421171", + "name": "龙感湖管理区" + }, { + "code": "421181", + "name": "麻城市" + }, { + "code": "421182", + "name": "武穴市" + }] + }, { + "code": "4212", + "name": "咸宁市", + "children": [{ + "code": "421202", + "name": "咸安区" + }, { + "code": "421221", + "name": "嘉鱼县" + }, { + "code": "421222", + "name": "通城县" + }, { + "code": "421223", + "name": "崇阳县" + }, { + "code": "421224", + "name": "通山县" + }, { + "code": "421281", + "name": "赤壁市" + }] + }, { + "code": "4213", + "name": "随州市", + "children": [{ + "code": "421303", + "name": "曾都区" + }, { + "code": "421321", + "name": "随县" + }, { + "code": "421381", + "name": "广水市" + }] + }, { + "code": "4228", + "name": "恩施土家族苗族自治州", + "children": [{ + "code": "422801", + "name": "恩施市" + }, { + "code": "422802", + "name": "利川市" + }, { + "code": "422822", + "name": "建始县" + }, { + "code": "422823", + "name": "巴东县" + }, { + "code": "422825", + "name": "宣恩县" + }, { + "code": "422826", + "name": "咸丰县" + }, { + "code": "422827", + "name": "来凤县" + }, { + "code": "422828", + "name": "鹤峰县" + }] + }, { + "code": "4290", + "name": "省直辖县级行政区划", + "children": [{ + "code": "429004", + "name": "仙桃市" + }, { + "code": "429005", + "name": "潜江市" + }, { + "code": "429006", + "name": "天门市" + }, { + "code": "429021", + "name": "神农架林区" + }] + }] +}, { + "code": "43", + "name": "湖南省", + "children": [{ + "code": "4301", + "name": "长沙市", + "children": [{ + "code": "430102", + "name": "芙蓉区" + }, { + "code": "430103", + "name": "天心区" + }, { + "code": "430104", + "name": "岳麓区" + }, { + "code": "430105", + "name": "开福区" + }, { + "code": "430111", + "name": "雨花区" + }, { + "code": "430112", + "name": "望城区" + }, { + "code": "430121", + "name": "长沙县" + }, { + "code": "430181", + "name": "浏阳市" + }, { + "code": "430182", + "name": "宁乡市" + }] + }, { + "code": "4302", + "name": "株洲市", + "children": [{ + "code": "430202", + "name": "荷塘区" + }, { + "code": "430203", + "name": "芦淞区" + }, { + "code": "430204", + "name": "石峰区" + }, { + "code": "430211", + "name": "天元区" + }, { + "code": "430212", + "name": "渌口区" + }, { + "code": "430223", + "name": "攸县" + }, { + "code": "430224", + "name": "茶陵县" + }, { + "code": "430225", + "name": "炎陵县" + }, { + "code": "430281", + "name": "醴陵市" + }] + }, { + "code": "4303", + "name": "湘潭市", + "children": [{ + "code": "430302", + "name": "雨湖区" + }, { + "code": "430304", + "name": "岳塘区" + }, { + "code": "430321", + "name": "湘潭县" + }, { + "code": "430371", + "name": "湖南湘潭高新技术产业园区" + }, { + "code": "430372", + "name": "湘潭昭山示范区" + }, { + "code": "430373", + "name": "湘潭九华示范区" + }, { + "code": "430381", + "name": "湘乡市" + }, { + "code": "430382", + "name": "韶山市" + }] + }, { + "code": "4304", + "name": "衡阳市", + "children": [{ + "code": "430405", + "name": "珠晖区" + }, { + "code": "430406", + "name": "雁峰区" + }, { + "code": "430407", + "name": "石鼓区" + }, { + "code": "430408", + "name": "蒸湘区" + }, { + "code": "430412", + "name": "南岳区" + }, { + "code": "430421", + "name": "衡阳县" + }, { + "code": "430422", + "name": "衡南县" + }, { + "code": "430423", + "name": "衡山县" + }, { + "code": "430424", + "name": "衡东县" + }, { + "code": "430426", + "name": "祁东县" + }, { + "code": "430473", + "name": "湖南衡阳松木经济开发区" + }, { + "code": "430476", + "name": "湖南衡阳高新技术产业园区" + }, { + "code": "430481", + "name": "耒阳市" + }, { + "code": "430482", + "name": "常宁市" + }] + }, { + "code": "4305", + "name": "邵阳市", + "children": [{ + "code": "430502", + "name": "双清区" + }, { + "code": "430503", + "name": "大祥区" + }, { + "code": "430511", + "name": "北塔区" + }, { + "code": "430522", + "name": "新邵县" + }, { + "code": "430523", + "name": "邵阳县" + }, { + "code": "430524", + "name": "隆回县" + }, { + "code": "430525", + "name": "洞口县" + }, { + "code": "430527", + "name": "绥宁县" + }, { + "code": "430528", + "name": "新宁县" + }, { + "code": "430529", + "name": "城步苗族自治县" + }, { + "code": "430581", + "name": "武冈市" + }, { + "code": "430582", + "name": "邵东市" + }] + }, { + "code": "4306", + "name": "岳阳市", + "children": [{ + "code": "430602", + "name": "岳阳楼区" + }, { + "code": "430603", + "name": "云溪区" + }, { + "code": "430611", + "name": "君山区" + }, { + "code": "430621", + "name": "岳阳县" + }, { + "code": "430623", + "name": "华容县" + }, { + "code": "430624", + "name": "湘阴县" + }, { + "code": "430626", + "name": "平江县" + }, { + "code": "430671", + "name": "岳阳市屈原管理区" + }, { + "code": "430681", + "name": "汨罗市" + }, { + "code": "430682", + "name": "临湘市" + }] + }, { + "code": "4307", + "name": "常德市", + "children": [{ + "code": "430702", + "name": "武陵区" + }, { + "code": "430703", + "name": "鼎城区" + }, { + "code": "430721", + "name": "安乡县" + }, { + "code": "430722", + "name": "汉寿县" + }, { + "code": "430723", + "name": "澧县" + }, { + "code": "430724", + "name": "临澧县" + }, { + "code": "430725", + "name": "桃源县" + }, { + "code": "430726", + "name": "石门县" + }, { + "code": "430771", + "name": "常德市西洞庭管理区" + }, { + "code": "430781", + "name": "津市市" + }] + }, { + "code": "4308", + "name": "张家界市", + "children": [{ + "code": "430802", + "name": "永定区" + }, { + "code": "430811", + "name": "武陵源区" + }, { + "code": "430821", + "name": "慈利县" + }, { + "code": "430822", + "name": "桑植县" + }] + }, { + "code": "4309", + "name": "益阳市", + "children": [{ + "code": "430902", + "name": "资阳区" + }, { + "code": "430903", + "name": "赫山区" + }, { + "code": "430921", + "name": "南县" + }, { + "code": "430922", + "name": "桃江县" + }, { + "code": "430923", + "name": "安化县" + }, { + "code": "430971", + "name": "益阳市大通湖管理区" + }, { + "code": "430972", + "name": "湖南益阳高新技术产业园区" + }, { + "code": "430981", + "name": "沅江市" + }] + }, { + "code": "4310", + "name": "郴州市", + "children": [{ + "code": "431002", + "name": "北湖区" + }, { + "code": "431003", + "name": "苏仙区" + }, { + "code": "431021", + "name": "桂阳县" + }, { + "code": "431022", + "name": "宜章县" + }, { + "code": "431023", + "name": "永兴县" + }, { + "code": "431024", + "name": "嘉禾县" + }, { + "code": "431025", + "name": "临武县" + }, { + "code": "431026", + "name": "汝城县" + }, { + "code": "431027", + "name": "桂东县" + }, { + "code": "431028", + "name": "安仁县" + }, { + "code": "431081", + "name": "资兴市" + }] + }, { + "code": "4311", + "name": "永州市", + "children": [{ + "code": "431102", + "name": "零陵区" + }, { + "code": "431103", + "name": "冷水滩区" + }, { + "code": "431122", + "name": "东安县" + }, { + "code": "431123", + "name": "双牌县" + }, { + "code": "431124", + "name": "道县" + }, { + "code": "431125", + "name": "江永县" + }, { + "code": "431126", + "name": "宁远县" + }, { + "code": "431127", + "name": "蓝山县" + }, { + "code": "431128", + "name": "新田县" + }, { + "code": "431129", + "name": "江华瑶族自治县" + }, { + "code": "431171", + "name": "永州经济技术开发区" + }, { + "code": "431173", + "name": "永州市回龙圩管理区" + }, { + "code": "431181", + "name": "祁阳市" + }] + }, { + "code": "4312", + "name": "怀化市", + "children": [{ + "code": "431202", + "name": "鹤城区" + }, { + "code": "431221", + "name": "中方县" + }, { + "code": "431222", + "name": "沅陵县" + }, { + "code": "431223", + "name": "辰溪县" + }, { + "code": "431224", + "name": "溆浦县" + }, { + "code": "431225", + "name": "会同县" + }, { + "code": "431226", + "name": "麻阳苗族自治县" + }, { + "code": "431227", + "name": "新晃侗族自治县" + }, { + "code": "431228", + "name": "芷江侗族自治县" + }, { + "code": "431229", + "name": "靖州苗族侗族自治县" + }, { + "code": "431230", + "name": "通道侗族自治县" + }, { + "code": "431271", + "name": "怀化市洪江管理区" + }, { + "code": "431281", + "name": "洪江市" + }] + }, { + "code": "4313", + "name": "娄底市", + "children": [{ + "code": "431302", + "name": "娄星区" + }, { + "code": "431321", + "name": "双峰县" + }, { + "code": "431322", + "name": "新化县" + }, { + "code": "431381", + "name": "冷水江市" + }, { + "code": "431382", + "name": "涟源市" + }] + }, { + "code": "4331", + "name": "湘西土家族苗族自治州", + "children": [{ + "code": "433101", + "name": "吉首市" + }, { + "code": "433122", + "name": "泸溪县" + }, { + "code": "433123", + "name": "凤凰县" + }, { + "code": "433124", + "name": "花垣县" + }, { + "code": "433125", + "name": "保靖县" + }, { + "code": "433126", + "name": "古丈县" + }, { + "code": "433127", + "name": "永顺县" + }, { + "code": "433130", + "name": "龙山县" + }] + }] +}, { + "code": "44", + "name": "广东省", + "children": [{ + "code": "4401", + "name": "广州市", + "children": [{ + "code": "440103", + "name": "荔湾区" + }, { + "code": "440104", + "name": "越秀区" + }, { + "code": "440105", + "name": "海珠区" + }, { + "code": "440106", + "name": "天河区" + }, { + "code": "440111", + "name": "白云区" + }, { + "code": "440112", + "name": "黄埔区" + }, { + "code": "440113", + "name": "番禺区" + }, { + "code": "440114", + "name": "花都区" + }, { + "code": "440115", + "name": "南沙区" + }, { + "code": "440117", + "name": "从化区" + }, { + "code": "440118", + "name": "增城区" + }] + }, { + "code": "4402", + "name": "韶关市", + "children": [{ + "code": "440203", + "name": "武江区" + }, { + "code": "440204", + "name": "浈江区" + }, { + "code": "440205", + "name": "曲江区" + }, { + "code": "440222", + "name": "始兴县" + }, { + "code": "440224", + "name": "仁化县" + }, { + "code": "440229", + "name": "翁源县" + }, { + "code": "440232", + "name": "乳源瑶族自治县" + }, { + "code": "440233", + "name": "新丰县" + }, { + "code": "440281", + "name": "乐昌市" + }, { + "code": "440282", + "name": "南雄市" + }] + }, { + "code": "4403", + "name": "深圳市", + "children": [{ + "code": "440303", + "name": "罗湖区" + }, { + "code": "440304", + "name": "福田区" + }, { + "code": "440305", + "name": "南山区" + }, { + "code": "440306", + "name": "宝安区" + }, { + "code": "440307", + "name": "龙岗区" + }, { + "code": "440308", + "name": "盐田区" + }, { + "code": "440309", + "name": "龙华区" + }, { + "code": "440310", + "name": "坪山区" + }, { + "code": "440311", + "name": "光明区" + }] + }, { + "code": "4404", + "name": "珠海市", + "children": [{ + "code": "440402", + "name": "香洲区" + }, { + "code": "440403", + "name": "斗门区" + }, { + "code": "440404", + "name": "金湾区" + }] + }, { + "code": "4405", + "name": "汕头市", + "children": [{ + "code": "440507", + "name": "龙湖区" + }, { + "code": "440511", + "name": "金平区" + }, { + "code": "440512", + "name": "濠江区" + }, { + "code": "440513", + "name": "潮阳区" + }, { + "code": "440514", + "name": "潮南区" + }, { + "code": "440515", + "name": "澄海区" + }, { + "code": "440523", + "name": "南澳县" + }] + }, { + "code": "4406", + "name": "佛山市", + "children": [{ + "code": "440604", + "name": "禅城区" + }, { + "code": "440605", + "name": "南海区" + }, { + "code": "440606", + "name": "顺德区" + }, { + "code": "440607", + "name": "三水区" + }, { + "code": "440608", + "name": "高明区" + }] + }, { + "code": "4407", + "name": "江门市", + "children": [{ + "code": "440703", + "name": "蓬江区" + }, { + "code": "440704", + "name": "江海区" + }, { + "code": "440705", + "name": "新会区" + }, { + "code": "440781", + "name": "台山市" + }, { + "code": "440783", + "name": "开平市" + }, { + "code": "440784", + "name": "鹤山市" + }, { + "code": "440785", + "name": "恩平市" + }] + }, { + "code": "4408", + "name": "湛江市", + "children": [{ + "code": "440802", + "name": "赤坎区" + }, { + "code": "440803", + "name": "霞山区" + }, { + "code": "440804", + "name": "坡头区" + }, { + "code": "440811", + "name": "麻章区" + }, { + "code": "440823", + "name": "遂溪县" + }, { + "code": "440825", + "name": "徐闻县" + }, { + "code": "440881", + "name": "廉江市" + }, { + "code": "440882", + "name": "雷州市" + }, { + "code": "440883", + "name": "吴川市" + }] + }, { + "code": "4409", + "name": "茂名市", + "children": [{ + "code": "440902", + "name": "茂南区" + }, { + "code": "440904", + "name": "电白区" + }, { + "code": "440981", + "name": "高州市" + }, { + "code": "440982", + "name": "化州市" + }, { + "code": "440983", + "name": "信宜市" + }] + }, { + "code": "4412", + "name": "肇庆市", + "children": [{ + "code": "441202", + "name": "端州区" + }, { + "code": "441203", + "name": "鼎湖区" + }, { + "code": "441204", + "name": "高要区" + }, { + "code": "441223", + "name": "广宁县" + }, { + "code": "441224", + "name": "怀集县" + }, { + "code": "441225", + "name": "封开县" + }, { + "code": "441226", + "name": "德庆县" + }, { + "code": "441284", + "name": "四会市" + }] + }, { + "code": "4413", + "name": "惠州市", + "children": [{ + "code": "441302", + "name": "惠城区" + }, { + "code": "441303", + "name": "惠阳区" + }, { + "code": "441322", + "name": "博罗县" + }, { + "code": "441323", + "name": "惠东县" + }, { + "code": "441324", + "name": "龙门县" + }] + }, { + "code": "4414", + "name": "梅州市", + "children": [{ + "code": "441402", + "name": "梅江区" + }, { + "code": "441403", + "name": "梅县区" + }, { + "code": "441422", + "name": "大埔县" + }, { + "code": "441423", + "name": "丰顺县" + }, { + "code": "441424", + "name": "五华县" + }, { + "code": "441426", + "name": "平远县" + }, { + "code": "441427", + "name": "蕉岭县" + }, { + "code": "441481", + "name": "兴宁市" + }] + }, { + "code": "4415", + "name": "汕尾市", + "children": [{ + "code": "441502", + "name": "城区" + }, { + "code": "441521", + "name": "海丰县" + }, { + "code": "441523", + "name": "陆河县" + }, { + "code": "441581", + "name": "陆丰市" + }] + }, { + "code": "4416", + "name": "河源市", + "children": [{ + "code": "441602", + "name": "源城区" + }, { + "code": "441621", + "name": "紫金县" + }, { + "code": "441622", + "name": "龙川县" + }, { + "code": "441623", + "name": "连平县" + }, { + "code": "441624", + "name": "和平县" + }, { + "code": "441625", + "name": "东源县" + }] + }, { + "code": "4417", + "name": "阳江市", + "children": [{ + "code": "441702", + "name": "江城区" + }, { + "code": "441704", + "name": "阳东区" + }, { + "code": "441721", + "name": "阳西县" + }, { + "code": "441781", + "name": "阳春市" + }] + }, { + "code": "4418", + "name": "清远市", + "children": [{ + "code": "441802", + "name": "清城区" + }, { + "code": "441803", + "name": "清新区" + }, { + "code": "441821", + "name": "佛冈县" + }, { + "code": "441823", + "name": "阳山县" + }, { + "code": "441825", + "name": "连山壮族瑶族自治县" + }, { + "code": "441826", + "name": "连南瑶族自治县" + }, { + "code": "441881", + "name": "英德市" + }, { + "code": "441882", + "name": "连州市" + }] + }, { + "code": "4419", + "name": "东莞市", + "children": [{ + "code": "441900003", + "name": "东城街道" + }, { + "code": "441900004", + "name": "南城街道" + }, { + "code": "441900005", + "name": "万江街道" + }, { + "code": "441900006", + "name": "莞城街道" + }, { + "code": "441900101", + "name": "石碣镇" + }, { + "code": "441900102", + "name": "石龙镇" + }, { + "code": "441900103", + "name": "茶山镇" + }, { + "code": "441900104", + "name": "石排镇" + }, { + "code": "441900105", + "name": "企石镇" + }, { + "code": "441900106", + "name": "横沥镇" + }, { + "code": "441900107", + "name": "桥头镇" + }, { + "code": "441900108", + "name": "谢岗镇" + }, { + "code": "441900109", + "name": "东坑镇" + }, { + "code": "441900110", + "name": "常平镇" + }, { + "code": "441900111", + "name": "寮步镇" + }, { + "code": "441900112", + "name": "樟木头镇" + }, { + "code": "441900113", + "name": "大朗镇" + }, { + "code": "441900114", + "name": "黄江镇" + }, { + "code": "441900115", + "name": "清溪镇" + }, { + "code": "441900116", + "name": "塘厦镇" + }, { + "code": "441900117", + "name": "凤岗镇" + }, { + "code": "441900118", + "name": "大岭山镇" + }, { + "code": "441900119", + "name": "长安镇" + }, { + "code": "441900121", + "name": "虎门镇" + }, { + "code": "441900122", + "name": "厚街镇" + }, { + "code": "441900123", + "name": "沙田镇" + }, { + "code": "441900124", + "name": "道滘镇" + }, { + "code": "441900125", + "name": "洪梅镇" + }, { + "code": "441900126", + "name": "麻涌镇" + }, { + "code": "441900127", + "name": "望牛墩镇" + }, { + "code": "441900128", + "name": "中堂镇" + }, { + "code": "441900129", + "name": "高埗镇" + }, { + "code": "441900401", + "name": "松山湖" + }, { + "code": "441900402", + "name": "东莞港" + }, { + "code": "441900403", + "name": "东莞生态园" + }, { + "code": "441900404", + "name": "东莞滨海湾新区" + }] + }, { + "code": "4420", + "name": "中山市", + "children": [{ + "code": "442000001", + "name": "石岐街道" + }, { + "code": "442000002", + "name": "东区街道" + }, { + "code": "442000003", + "name": "中山港街道" + }, { + "code": "442000004", + "name": "西区街道" + }, { + "code": "442000005", + "name": "南区街道" + }, { + "code": "442000006", + "name": "五桂山街道" + }, { + "code": "442000007", + "name": "民众街道" + }, { + "code": "442000008", + "name": "南朗街道" + }, { + "code": "442000101", + "name": "黄圃镇" + }, { + "code": "442000103", + "name": "东凤镇" + }, { + "code": "442000105", + "name": "古镇镇" + }, { + "code": "442000106", + "name": "沙溪镇" + }, { + "code": "442000107", + "name": "坦洲镇" + }, { + "code": "442000108", + "name": "港口镇" + }, { + "code": "442000109", + "name": "三角镇" + }, { + "code": "442000110", + "name": "横栏镇" + }, { + "code": "442000111", + "name": "南头镇" + }, { + "code": "442000112", + "name": "阜沙镇" + }, { + "code": "442000114", + "name": "三乡镇" + }, { + "code": "442000115", + "name": "板芙镇" + }, { + "code": "442000116", + "name": "大涌镇" + }, { + "code": "442000117", + "name": "神湾镇" + }, { + "code": "442000118", + "name": "小榄镇" + }] + }, { + "code": "4451", + "name": "潮州市", + "children": [{ + "code": "445102", + "name": "湘桥区" + }, { + "code": "445103", + "name": "潮安区" + }, { + "code": "445122", + "name": "饶平县" + }] + }, { + "code": "4452", + "name": "揭阳市", + "children": [{ + "code": "445202", + "name": "榕城区" + }, { + "code": "445203", + "name": "揭东区" + }, { + "code": "445222", + "name": "揭西县" + }, { + "code": "445224", + "name": "惠来县" + }, { + "code": "445281", + "name": "普宁市" + }] + }, { + "code": "4453", + "name": "云浮市", + "children": [{ + "code": "445302", + "name": "云城区" + }, { + "code": "445303", + "name": "云安区" + }, { + "code": "445321", + "name": "新兴县" + }, { + "code": "445322", + "name": "郁南县" + }, { + "code": "445381", + "name": "罗定市" + }] + }] +}, { + "code": "45", + "name": "广西壮族自治区", + "children": [{ + "code": "4501", + "name": "南宁市", + "children": [{ + "code": "450102", + "name": "兴宁区" + }, { + "code": "450103", + "name": "青秀区" + }, { + "code": "450105", + "name": "江南区" + }, { + "code": "450107", + "name": "西乡塘区" + }, { + "code": "450108", + "name": "良庆区" + }, { + "code": "450109", + "name": "邕宁区" + }, { + "code": "450110", + "name": "武鸣区" + }, { + "code": "450123", + "name": "隆安县" + }, { + "code": "450124", + "name": "马山县" + }, { + "code": "450125", + "name": "上林县" + }, { + "code": "450126", + "name": "宾阳县" + }, { + "code": "450181", + "name": "横州市" + }] + }, { + "code": "4502", + "name": "柳州市", + "children": [{ + "code": "450202", + "name": "城中区" + }, { + "code": "450203", + "name": "鱼峰区" + }, { + "code": "450204", + "name": "柳南区" + }, { + "code": "450205", + "name": "柳北区" + }, { + "code": "450206", + "name": "柳江区" + }, { + "code": "450222", + "name": "柳城县" + }, { + "code": "450223", + "name": "鹿寨县" + }, { + "code": "450224", + "name": "融安县" + }, { + "code": "450225", + "name": "融水苗族自治县" + }, { + "code": "450226", + "name": "三江侗族自治县" + }] + }, { + "code": "4503", + "name": "桂林市", + "children": [{ + "code": "450302", + "name": "秀峰区" + }, { + "code": "450303", + "name": "叠彩区" + }, { + "code": "450304", + "name": "象山区" + }, { + "code": "450305", + "name": "七星区" + }, { + "code": "450311", + "name": "雁山区" + }, { + "code": "450312", + "name": "临桂区" + }, { + "code": "450321", + "name": "阳朔县" + }, { + "code": "450323", + "name": "灵川县" + }, { + "code": "450324", + "name": "全州县" + }, { + "code": "450325", + "name": "兴安县" + }, { + "code": "450326", + "name": "永福县" + }, { + "code": "450327", + "name": "灌阳县" + }, { + "code": "450328", + "name": "龙胜各族自治县" + }, { + "code": "450329", + "name": "资源县" + }, { + "code": "450330", + "name": "平乐县" + }, { + "code": "450332", + "name": "恭城瑶族自治县" + }, { + "code": "450381", + "name": "荔浦市" + }] + }, { + "code": "4504", + "name": "梧州市", + "children": [{ + "code": "450403", + "name": "万秀区" + }, { + "code": "450405", + "name": "长洲区" + }, { + "code": "450406", + "name": "龙圩区" + }, { + "code": "450421", + "name": "苍梧县" + }, { + "code": "450422", + "name": "藤县" + }, { + "code": "450423", + "name": "蒙山县" + }, { + "code": "450481", + "name": "岑溪市" + }] + }, { + "code": "4505", + "name": "北海市", + "children": [{ + "code": "450502", + "name": "海城区" + }, { + "code": "450503", + "name": "银海区" + }, { + "code": "450512", + "name": "铁山港区" + }, { + "code": "450521", + "name": "合浦县" + }] + }, { + "code": "4506", + "name": "防城港市", + "children": [{ + "code": "450602", + "name": "港口区" + }, { + "code": "450603", + "name": "防城区" + }, { + "code": "450621", + "name": "上思县" + }, { + "code": "450681", + "name": "东兴市" + }] + }, { + "code": "4507", + "name": "钦州市", + "children": [{ + "code": "450702", + "name": "钦南区" + }, { + "code": "450703", + "name": "钦北区" + }, { + "code": "450721", + "name": "灵山县" + }, { + "code": "450722", + "name": "浦北县" + }] + }, { + "code": "4508", + "name": "贵港市", + "children": [{ + "code": "450802", + "name": "港北区" + }, { + "code": "450803", + "name": "港南区" + }, { + "code": "450804", + "name": "覃塘区" + }, { + "code": "450821", + "name": "平南县" + }, { + "code": "450881", + "name": "桂平市" + }] + }, { + "code": "4509", + "name": "玉林市", + "children": [{ + "code": "450902", + "name": "玉州区" + }, { + "code": "450903", + "name": "福绵区" + }, { + "code": "450921", + "name": "容县" + }, { + "code": "450922", + "name": "陆川县" + }, { + "code": "450923", + "name": "博白县" + }, { + "code": "450924", + "name": "兴业县" + }, { + "code": "450981", + "name": "北流市" + }] + }, { + "code": "4510", + "name": "百色市", + "children": [{ + "code": "451002", + "name": "右江区" + }, { + "code": "451003", + "name": "田阳区" + }, { + "code": "451022", + "name": "田东县" + }, { + "code": "451024", + "name": "德保县" + }, { + "code": "451026", + "name": "那坡县" + }, { + "code": "451027", + "name": "凌云县" + }, { + "code": "451028", + "name": "乐业县" + }, { + "code": "451029", + "name": "田林县" + }, { + "code": "451030", + "name": "西林县" + }, { + "code": "451031", + "name": "隆林各族自治县" + }, { + "code": "451081", + "name": "靖西市" + }, { + "code": "451082", + "name": "平果市" + }] + }, { + "code": "4511", + "name": "贺州市", + "children": [{ + "code": "451102", + "name": "八步区" + }, { + "code": "451103", + "name": "平桂区" + }, { + "code": "451121", + "name": "昭平县" + }, { + "code": "451122", + "name": "钟山县" + }, { + "code": "451123", + "name": "富川瑶族自治县" + }] + }, { + "code": "4512", + "name": "河池市", + "children": [{ + "code": "451202", + "name": "金城江区" + }, { + "code": "451203", + "name": "宜州区" + }, { + "code": "451221", + "name": "南丹县" + }, { + "code": "451222", + "name": "天峨县" + }, { + "code": "451223", + "name": "凤山县" + }, { + "code": "451224", + "name": "东兰县" + }, { + "code": "451225", + "name": "罗城仫佬族自治县" + }, { + "code": "451226", + "name": "环江毛南族自治县" + }, { + "code": "451227", + "name": "巴马瑶族自治县" + }, { + "code": "451228", + "name": "都安瑶族自治县" + }, { + "code": "451229", + "name": "大化瑶族自治县" + }] + }, { + "code": "4513", + "name": "来宾市", + "children": [{ + "code": "451302", + "name": "兴宾区" + }, { + "code": "451321", + "name": "忻城县" + }, { + "code": "451322", + "name": "象州县" + }, { + "code": "451323", + "name": "武宣县" + }, { + "code": "451324", + "name": "金秀瑶族自治县" + }, { + "code": "451381", + "name": "合山市" + }] + }, { + "code": "4514", + "name": "崇左市", + "children": [{ + "code": "451402", + "name": "江州区" + }, { + "code": "451421", + "name": "扶绥县" + }, { + "code": "451422", + "name": "宁明县" + }, { + "code": "451423", + "name": "龙州县" + }, { + "code": "451424", + "name": "大新县" + }, { + "code": "451425", + "name": "天等县" + }, { + "code": "451481", + "name": "凭祥市" + }] + }] +}, { + "code": "46", + "name": "海南省", + "children": [{ + "code": "4601", + "name": "海口市", + "children": [{ + "code": "460105", + "name": "秀英区" + }, { + "code": "460106", + "name": "龙华区" + }, { + "code": "460107", + "name": "琼山区" + }, { + "code": "460108", + "name": "美兰区" + }] + }, { + "code": "4602", + "name": "三亚市", + "children": [{ + "code": "460202", + "name": "海棠区" + }, { + "code": "460203", + "name": "吉阳区" + }, { + "code": "460204", + "name": "天涯区" + }, { + "code": "460205", + "name": "崖州区" + }] + }, { + "code": "4603", + "name": "三沙市", + "children": [{ + "code": "460321", + "name": "西沙群岛" + }, { + "code": "460322", + "name": "南沙群岛" + }, { + "code": "460323", + "name": "中沙群岛的岛礁及其海域" + }] + }, { + "code": "4604", + "name": "儋州市", + "children": [{ + "code": "460400100", + "name": "那大镇" + }, { + "code": "460400101", + "name": "和庆镇" + }, { + "code": "460400102", + "name": "南丰镇" + }, { + "code": "460400103", + "name": "大成镇" + }, { + "code": "460400104", + "name": "雅星镇" + }, { + "code": "460400105", + "name": "兰洋镇" + }, { + "code": "460400106", + "name": "光村镇" + }, { + "code": "460400107", + "name": "木棠镇" + }, { + "code": "460400108", + "name": "海头镇" + }, { + "code": "460400109", + "name": "峨蔓镇" + }, { + "code": "460400111", + "name": "王五镇" + }, { + "code": "460400112", + "name": "白马井镇" + }, { + "code": "460400113", + "name": "中和镇" + }, { + "code": "460400114", + "name": "排浦镇" + }, { + "code": "460400115", + "name": "东成镇" + }, { + "code": "460400116", + "name": "新州镇" + }, { + "code": "460400499", + "name": "洋浦经济开发区" + }, { + "code": "460400500", + "name": "华南热作学院" + }] + }, { + "code": "4690", + "name": "省直辖县级行政区划", + "children": [{ + "code": "469001", + "name": "五指山市" + }, { + "code": "469002", + "name": "琼海市" + }, { + "code": "469005", + "name": "文昌市" + }, { + "code": "469006", + "name": "万宁市" + }, { + "code": "469007", + "name": "东方市" + }, { + "code": "469021", + "name": "定安县" + }, { + "code": "469022", + "name": "屯昌县" + }, { + "code": "469023", + "name": "澄迈县" + }, { + "code": "469024", + "name": "临高县" + }, { + "code": "469025", + "name": "白沙黎族自治县" + }, { + "code": "469026", + "name": "昌江黎族自治县" + }, { + "code": "469027", + "name": "乐东黎族自治县" + }, { + "code": "469028", + "name": "陵水黎族自治县" + }, { + "code": "469029", + "name": "保亭黎族苗族自治县" + }, { + "code": "469030", + "name": "琼中黎族苗族自治县" + }] + }] +}, { + "code": "50", + "name": "重庆市", + "children": [{ + "code": "5001", + "name": "市辖区", + "children": [{ + "code": "500101", + "name": "万州区" + }, { + "code": "500102", + "name": "涪陵区" + }, { + "code": "500103", + "name": "渝中区" + }, { + "code": "500104", + "name": "大渡口区" + }, { + "code": "500105", + "name": "江北区" + }, { + "code": "500106", + "name": "沙坪坝区" + }, { + "code": "500107", + "name": "九龙坡区" + }, { + "code": "500108", + "name": "南岸区" + }, { + "code": "500109", + "name": "北碚区" + }, { + "code": "500110", + "name": "綦江区" + }, { + "code": "500111", + "name": "大足区" + }, { + "code": "500112", + "name": "渝北区" + }, { + "code": "500113", + "name": "巴南区" + }, { + "code": "500114", + "name": "黔江区" + }, { + "code": "500115", + "name": "长寿区" + }, { + "code": "500116", + "name": "江津区" + }, { + "code": "500117", + "name": "合川区" + }, { + "code": "500118", + "name": "永川区" + }, { + "code": "500119", + "name": "南川区" + }, { + "code": "500120", + "name": "璧山区" + }, { + "code": "500151", + "name": "铜梁区" + }, { + "code": "500152", + "name": "潼南区" + }, { + "code": "500153", + "name": "荣昌区" + }, { + "code": "500154", + "name": "开州区" + }, { + "code": "500155", + "name": "梁平区" + }, { + "code": "500156", + "name": "武隆区" + }] + }, { + "code": "5002", + "name": "县", + "children": [{ + "code": "500229", + "name": "城口县" + }, { + "code": "500230", + "name": "丰都县" + }, { + "code": "500231", + "name": "垫江县" + }, { + "code": "500233", + "name": "忠县" + }, { + "code": "500235", + "name": "云阳县" + }, { + "code": "500236", + "name": "奉节县" + }, { + "code": "500237", + "name": "巫山县" + }, { + "code": "500238", + "name": "巫溪县" + }, { + "code": "500240", + "name": "石柱土家族自治县" + }, { + "code": "500241", + "name": "秀山土家族苗族自治县" + }, { + "code": "500242", + "name": "酉阳土家族苗族自治县" + }, { + "code": "500243", + "name": "彭水苗族土家族自治县" + }] + }] +}, { + "code": "51", + "name": "四川省", + "children": [{ + "code": "5101", + "name": "成都市", + "children": [{ + "code": "510104", + "name": "锦江区" + }, { + "code": "510105", + "name": "青羊区" + }, { + "code": "510106", + "name": "金牛区" + }, { + "code": "510107", + "name": "武侯区" + }, { + "code": "510108", + "name": "成华区" + }, { + "code": "510112", + "name": "龙泉驿区" + }, { + "code": "510113", + "name": "青白江区" + }, { + "code": "510114", + "name": "新都区" + }, { + "code": "510115", + "name": "温江区" + }, { + "code": "510116", + "name": "双流区" + }, { + "code": "510117", + "name": "郫都区" + }, { + "code": "510118", + "name": "新津区" + }, { + "code": "510121", + "name": "金堂县" + }, { + "code": "510129", + "name": "大邑县" + }, { + "code": "510131", + "name": "蒲江县" + }, { + "code": "510181", + "name": "都江堰市" + }, { + "code": "510182", + "name": "彭州市" + }, { + "code": "510183", + "name": "邛崃市" + }, { + "code": "510184", + "name": "崇州市" + }, { + "code": "510185", + "name": "简阳市" + }] + }, { + "code": "5103", + "name": "自贡市", + "children": [{ + "code": "510302", + "name": "自流井区" + }, { + "code": "510303", + "name": "贡井区" + }, { + "code": "510304", + "name": "大安区" + }, { + "code": "510311", + "name": "沿滩区" + }, { + "code": "510321", + "name": "荣县" + }, { + "code": "510322", + "name": "富顺县" + }] + }, { + "code": "5104", + "name": "攀枝花市", + "children": [{ + "code": "510402", + "name": "东区" + }, { + "code": "510403", + "name": "西区" + }, { + "code": "510411", + "name": "仁和区" + }, { + "code": "510421", + "name": "米易县" + }, { + "code": "510422", + "name": "盐边县" + }] + }, { + "code": "5105", + "name": "泸州市", + "children": [{ + "code": "510502", + "name": "江阳区" + }, { + "code": "510503", + "name": "纳溪区" + }, { + "code": "510504", + "name": "龙马潭区" + }, { + "code": "510521", + "name": "泸县" + }, { + "code": "510522", + "name": "合江县" + }, { + "code": "510524", + "name": "叙永县" + }, { + "code": "510525", + "name": "古蔺县" + }] + }, { + "code": "5106", + "name": "德阳市", + "children": [{ + "code": "510603", + "name": "旌阳区" + }, { + "code": "510604", + "name": "罗江区" + }, { + "code": "510623", + "name": "中江县" + }, { + "code": "510681", + "name": "广汉市" + }, { + "code": "510682", + "name": "什邡市" + }, { + "code": "510683", + "name": "绵竹市" + }] + }, { + "code": "5107", + "name": "绵阳市", + "children": [{ + "code": "510703", + "name": "涪城区" + }, { + "code": "510704", + "name": "游仙区" + }, { + "code": "510705", + "name": "安州区" + }, { + "code": "510722", + "name": "三台县" + }, { + "code": "510723", + "name": "盐亭县" + }, { + "code": "510725", + "name": "梓潼县" + }, { + "code": "510726", + "name": "北川羌族自治县" + }, { + "code": "510727", + "name": "平武县" + }, { + "code": "510781", + "name": "江油市" + }] + }, { + "code": "5108", + "name": "广元市", + "children": [{ + "code": "510802", + "name": "利州区" + }, { + "code": "510811", + "name": "昭化区" + }, { + "code": "510812", + "name": "朝天区" + }, { + "code": "510821", + "name": "旺苍县" + }, { + "code": "510822", + "name": "青川县" + }, { + "code": "510823", + "name": "剑阁县" + }, { + "code": "510824", + "name": "苍溪县" + }] + }, { + "code": "5109", + "name": "遂宁市", + "children": [{ + "code": "510903", + "name": "船山区" + }, { + "code": "510904", + "name": "安居区" + }, { + "code": "510921", + "name": "蓬溪县" + }, { + "code": "510923", + "name": "大英县" + }, { + "code": "510981", + "name": "射洪市" + }] + }, { + "code": "5110", + "name": "内江市", + "children": [{ + "code": "511002", + "name": "市中区" + }, { + "code": "511011", + "name": "东兴区" + }, { + "code": "511024", + "name": "威远县" + }, { + "code": "511025", + "name": "资中县" + }, { + "code": "511083", + "name": "隆昌市" + }] + }, { + "code": "5111", + "name": "乐山市", + "children": [{ + "code": "511102", + "name": "市中区" + }, { + "code": "511111", + "name": "沙湾区" + }, { + "code": "511112", + "name": "五通桥区" + }, { + "code": "511113", + "name": "金口河区" + }, { + "code": "511123", + "name": "犍为县" + }, { + "code": "511124", + "name": "井研县" + }, { + "code": "511126", + "name": "夹江县" + }, { + "code": "511129", + "name": "沐川县" + }, { + "code": "511132", + "name": "峨边彝族自治县" + }, { + "code": "511133", + "name": "马边彝族自治县" + }, { + "code": "511181", + "name": "峨眉山市" + }] + }, { + "code": "5113", + "name": "南充市", + "children": [{ + "code": "511302", + "name": "顺庆区" + }, { + "code": "511303", + "name": "高坪区" + }, { + "code": "511304", + "name": "嘉陵区" + }, { + "code": "511321", + "name": "南部县" + }, { + "code": "511322", + "name": "营山县" + }, { + "code": "511323", + "name": "蓬安县" + }, { + "code": "511324", + "name": "仪陇县" + }, { + "code": "511325", + "name": "西充县" + }, { + "code": "511381", + "name": "阆中市" + }] + }, { + "code": "5114", + "name": "眉山市", + "children": [{ + "code": "511402", + "name": "东坡区" + }, { + "code": "511403", + "name": "彭山区" + }, { + "code": "511421", + "name": "仁寿县" + }, { + "code": "511423", + "name": "洪雅县" + }, { + "code": "511424", + "name": "丹棱县" + }, { + "code": "511425", + "name": "青神县" + }] + }, { + "code": "5115", + "name": "宜宾市", + "children": [{ + "code": "511502", + "name": "翠屏区" + }, { + "code": "511503", + "name": "南溪区" + }, { + "code": "511504", + "name": "叙州区" + }, { + "code": "511523", + "name": "江安县" + }, { + "code": "511524", + "name": "长宁县" + }, { + "code": "511525", + "name": "高县" + }, { + "code": "511526", + "name": "珙县" + }, { + "code": "511527", + "name": "筠连县" + }, { + "code": "511528", + "name": "兴文县" + }, { + "code": "511529", + "name": "屏山县" + }] + }, { + "code": "5116", + "name": "广安市", + "children": [{ + "code": "511602", + "name": "广安区" + }, { + "code": "511603", + "name": "前锋区" + }, { + "code": "511621", + "name": "岳池县" + }, { + "code": "511622", + "name": "武胜县" + }, { + "code": "511623", + "name": "邻水县" + }, { + "code": "511681", + "name": "华蓥市" + }] + }, { + "code": "5117", + "name": "达州市", + "children": [{ + "code": "511702", + "name": "通川区" + }, { + "code": "511703", + "name": "达川区" + }, { + "code": "511722", + "name": "宣汉县" + }, { + "code": "511723", + "name": "开江县" + }, { + "code": "511724", + "name": "大竹县" + }, { + "code": "511725", + "name": "渠县" + }, { + "code": "511781", + "name": "万源市" + }] + }, { + "code": "5118", + "name": "雅安市", + "children": [{ + "code": "511802", + "name": "雨城区" + }, { + "code": "511803", + "name": "名山区" + }, { + "code": "511822", + "name": "荥经县" + }, { + "code": "511823", + "name": "汉源县" + }, { + "code": "511824", + "name": "石棉县" + }, { + "code": "511825", + "name": "天全县" + }, { + "code": "511826", + "name": "芦山县" + }, { + "code": "511827", + "name": "宝兴县" + }] + }, { + "code": "5119", + "name": "巴中市", + "children": [{ + "code": "511902", + "name": "巴州区" + }, { + "code": "511903", + "name": "恩阳区" + }, { + "code": "511921", + "name": "通江县" + }, { + "code": "511922", + "name": "南江县" + }, { + "code": "511923", + "name": "平昌县" + }] + }, { + "code": "5120", + "name": "资阳市", + "children": [{ + "code": "512002", + "name": "雁江区" + }, { + "code": "512021", + "name": "安岳县" + }, { + "code": "512022", + "name": "乐至县" + }] + }, { + "code": "5132", + "name": "阿坝藏族羌族自治州", + "children": [{ + "code": "513201", + "name": "马尔康市" + }, { + "code": "513221", + "name": "汶川县" + }, { + "code": "513222", + "name": "理县" + }, { + "code": "513223", + "name": "茂县" + }, { + "code": "513224", + "name": "松潘县" + }, { + "code": "513225", + "name": "九寨沟县" + }, { + "code": "513226", + "name": "金川县" + }, { + "code": "513227", + "name": "小金县" + }, { + "code": "513228", + "name": "黑水县" + }, { + "code": "513230", + "name": "壤塘县" + }, { + "code": "513231", + "name": "阿坝县" + }, { + "code": "513232", + "name": "若尔盖县" + }, { + "code": "513233", + "name": "红原县" + }] + }, { + "code": "5133", + "name": "甘孜藏族自治州", + "children": [{ + "code": "513301", + "name": "康定市" + }, { + "code": "513322", + "name": "泸定县" + }, { + "code": "513323", + "name": "丹巴县" + }, { + "code": "513324", + "name": "九龙县" + }, { + "code": "513325", + "name": "雅江县" + }, { + "code": "513326", + "name": "道孚县" + }, { + "code": "513327", + "name": "炉霍县" + }, { + "code": "513328", + "name": "甘孜县" + }, { + "code": "513329", + "name": "新龙县" + }, { + "code": "513330", + "name": "德格县" + }, { + "code": "513331", + "name": "白玉县" + }, { + "code": "513332", + "name": "石渠县" + }, { + "code": "513333", + "name": "色达县" + }, { + "code": "513334", + "name": "理塘县" + }, { + "code": "513335", + "name": "巴塘县" + }, { + "code": "513336", + "name": "乡城县" + }, { + "code": "513337", + "name": "稻城县" + }, { + "code": "513338", + "name": "得荣县" + }] + }, { + "code": "5134", + "name": "凉山彝族自治州", + "children": [{ + "code": "513401", + "name": "西昌市" + }, { + "code": "513402", + "name": "会理市" + }, { + "code": "513422", + "name": "木里藏族自治县" + }, { + "code": "513423", + "name": "盐源县" + }, { + "code": "513424", + "name": "德昌县" + }, { + "code": "513426", + "name": "会东县" + }, { + "code": "513427", + "name": "宁南县" + }, { + "code": "513428", + "name": "普格县" + }, { + "code": "513429", + "name": "布拖县" + }, { + "code": "513430", + "name": "金阳县" + }, { + "code": "513431", + "name": "昭觉县" + }, { + "code": "513432", + "name": "喜德县" + }, { + "code": "513433", + "name": "冕宁县" + }, { + "code": "513434", + "name": "越西县" + }, { + "code": "513435", + "name": "甘洛县" + }, { + "code": "513436", + "name": "美姑县" + }, { + "code": "513437", + "name": "雷波县" + }] + }] +}, { + "code": "52", + "name": "贵州省", + "children": [{ + "code": "5201", + "name": "贵阳市", + "children": [{ + "code": "520102", + "name": "南明区" + }, { + "code": "520103", + "name": "云岩区" + }, { + "code": "520111", + "name": "花溪区" + }, { + "code": "520112", + "name": "乌当区" + }, { + "code": "520113", + "name": "白云区" + }, { + "code": "520115", + "name": "观山湖区" + }, { + "code": "520121", + "name": "开阳县" + }, { + "code": "520122", + "name": "息烽县" + }, { + "code": "520123", + "name": "修文县" + }, { + "code": "520181", + "name": "清镇市" + }] + }, { + "code": "5202", + "name": "六盘水市", + "children": [{ + "code": "520201", + "name": "钟山区" + }, { + "code": "520203", + "name": "六枝特区" + }, { + "code": "520204", + "name": "水城区" + }, { + "code": "520281", + "name": "盘州市" + }] + }, { + "code": "5203", + "name": "遵义市", + "children": [{ + "code": "520302", + "name": "红花岗区" + }, { + "code": "520303", + "name": "汇川区" + }, { + "code": "520304", + "name": "播州区" + }, { + "code": "520322", + "name": "桐梓县" + }, { + "code": "520323", + "name": "绥阳县" + }, { + "code": "520324", + "name": "正安县" + }, { + "code": "520325", + "name": "道真仡佬族苗族自治县" + }, { + "code": "520326", + "name": "务川仡佬族苗族自治县" + }, { + "code": "520327", + "name": "凤冈县" + }, { + "code": "520328", + "name": "湄潭县" + }, { + "code": "520329", + "name": "余庆县" + }, { + "code": "520330", + "name": "习水县" + }, { + "code": "520381", + "name": "赤水市" + }, { + "code": "520382", + "name": "仁怀市" + }] + }, { + "code": "5204", + "name": "安顺市", + "children": [{ + "code": "520402", + "name": "西秀区" + }, { + "code": "520403", + "name": "平坝区" + }, { + "code": "520422", + "name": "普定县" + }, { + "code": "520423", + "name": "镇宁布依族苗族自治县" + }, { + "code": "520424", + "name": "关岭布依族苗族自治县" + }, { + "code": "520425", + "name": "紫云苗族布依族自治县" + }] + }, { + "code": "5205", + "name": "毕节市", + "children": [{ + "code": "520502", + "name": "七星关区" + }, { + "code": "520521", + "name": "大方县" + }, { + "code": "520523", + "name": "金沙县" + }, { + "code": "520524", + "name": "织金县" + }, { + "code": "520525", + "name": "纳雍县" + }, { + "code": "520526", + "name": "威宁彝族回族苗族自治县" + }, { + "code": "520527", + "name": "赫章县" + }, { + "code": "520581", + "name": "黔西市" + }] + }, { + "code": "5206", + "name": "铜仁市", + "children": [{ + "code": "520602", + "name": "碧江区" + }, { + "code": "520603", + "name": "万山区" + }, { + "code": "520621", + "name": "江口县" + }, { + "code": "520622", + "name": "玉屏侗族自治县" + }, { + "code": "520623", + "name": "石阡县" + }, { + "code": "520624", + "name": "思南县" + }, { + "code": "520625", + "name": "印江土家族苗族自治县" + }, { + "code": "520626", + "name": "德江县" + }, { + "code": "520627", + "name": "沿河土家族自治县" + }, { + "code": "520628", + "name": "松桃苗族自治县" + }] + }, { + "code": "5223", + "name": "黔西南布依族苗族自治州", + "children": [{ + "code": "522301", + "name": "兴义市" + }, { + "code": "522302", + "name": "兴仁市" + }, { + "code": "522323", + "name": "普安县" + }, { + "code": "522324", + "name": "晴隆县" + }, { + "code": "522325", + "name": "贞丰县" + }, { + "code": "522326", + "name": "望谟县" + }, { + "code": "522327", + "name": "册亨县" + }, { + "code": "522328", + "name": "安龙县" + }] + }, { + "code": "5226", + "name": "黔东南苗族侗族自治州", + "children": [{ + "code": "522601", + "name": "凯里市" + }, { + "code": "522622", + "name": "黄平县" + }, { + "code": "522623", + "name": "施秉县" + }, { + "code": "522624", + "name": "三穗县" + }, { + "code": "522625", + "name": "镇远县" + }, { + "code": "522626", + "name": "岑巩县" + }, { + "code": "522627", + "name": "天柱县" + }, { + "code": "522628", + "name": "锦屏县" + }, { + "code": "522629", + "name": "剑河县" + }, { + "code": "522630", + "name": "台江县" + }, { + "code": "522631", + "name": "黎平县" + }, { + "code": "522632", + "name": "榕江县" + }, { + "code": "522633", + "name": "从江县" + }, { + "code": "522634", + "name": "雷山县" + }, { + "code": "522635", + "name": "麻江县" + }, { + "code": "522636", + "name": "丹寨县" + }] + }, { + "code": "5227", + "name": "黔南布依族苗族自治州", + "children": [{ + "code": "522701", + "name": "都匀市" + }, { + "code": "522702", + "name": "福泉市" + }, { + "code": "522722", + "name": "荔波县" + }, { + "code": "522723", + "name": "贵定县" + }, { + "code": "522725", + "name": "瓮安县" + }, { + "code": "522726", + "name": "独山县" + }, { + "code": "522727", + "name": "平塘县" + }, { + "code": "522728", + "name": "罗甸县" + }, { + "code": "522729", + "name": "长顺县" + }, { + "code": "522730", + "name": "龙里县" + }, { + "code": "522731", + "name": "惠水县" + }, { + "code": "522732", + "name": "三都水族自治县" + }] + }] +}, { + "code": "53", + "name": "云南省", + "children": [{ + "code": "5301", + "name": "昆明市", + "children": [{ + "code": "530102", + "name": "五华区" + }, { + "code": "530103", + "name": "盘龙区" + }, { + "code": "530111", + "name": "官渡区" + }, { + "code": "530112", + "name": "西山区" + }, { + "code": "530113", + "name": "东川区" + }, { + "code": "530114", + "name": "呈贡区" + }, { + "code": "530115", + "name": "晋宁区" + }, { + "code": "530124", + "name": "富民县" + }, { + "code": "530125", + "name": "宜良县" + }, { + "code": "530126", + "name": "石林彝族自治县" + }, { + "code": "530127", + "name": "嵩明县" + }, { + "code": "530128", + "name": "禄劝彝族苗族自治县" + }, { + "code": "530129", + "name": "寻甸回族彝族自治县" + }, { + "code": "530181", + "name": "安宁市" + }] + }, { + "code": "5303", + "name": "曲靖市", + "children": [{ + "code": "530302", + "name": "麒麟区" + }, { + "code": "530303", + "name": "沾益区" + }, { + "code": "530304", + "name": "马龙区" + }, { + "code": "530322", + "name": "陆良县" + }, { + "code": "530323", + "name": "师宗县" + }, { + "code": "530324", + "name": "罗平县" + }, { + "code": "530325", + "name": "富源县" + }, { + "code": "530326", + "name": "会泽县" + }, { + "code": "530381", + "name": "宣威市" + }] + }, { + "code": "5304", + "name": "玉溪市", + "children": [{ + "code": "530402", + "name": "红塔区" + }, { + "code": "530403", + "name": "江川区" + }, { + "code": "530423", + "name": "通海县" + }, { + "code": "530424", + "name": "华宁县" + }, { + "code": "530425", + "name": "易门县" + }, { + "code": "530426", + "name": "峨山彝族自治县" + }, { + "code": "530427", + "name": "新平彝族傣族自治县" + }, { + "code": "530428", + "name": "元江哈尼族彝族傣族自治县" + }, { + "code": "530481", + "name": "澄江市" + }] + }, { + "code": "5305", + "name": "保山市", + "children": [{ + "code": "530502", + "name": "隆阳区" + }, { + "code": "530521", + "name": "施甸县" + }, { + "code": "530523", + "name": "龙陵县" + }, { + "code": "530524", + "name": "昌宁县" + }, { + "code": "530581", + "name": "腾冲市" + }] + }, { + "code": "5306", + "name": "昭通市", + "children": [{ + "code": "530602", + "name": "昭阳区" + }, { + "code": "530621", + "name": "鲁甸县" + }, { + "code": "530622", + "name": "巧家县" + }, { + "code": "530623", + "name": "盐津县" + }, { + "code": "530624", + "name": "大关县" + }, { + "code": "530625", + "name": "永善县" + }, { + "code": "530626", + "name": "绥江县" + }, { + "code": "530627", + "name": "镇雄县" + }, { + "code": "530628", + "name": "彝良县" + }, { + "code": "530629", + "name": "威信县" + }, { + "code": "530681", + "name": "水富市" + }] + }, { + "code": "5307", + "name": "丽江市", + "children": [{ + "code": "530702", + "name": "古城区" + }, { + "code": "530721", + "name": "玉龙纳西族自治县" + }, { + "code": "530722", + "name": "永胜县" + }, { + "code": "530723", + "name": "华坪县" + }, { + "code": "530724", + "name": "宁蒗彝族自治县" + }] + }, { + "code": "5308", + "name": "普洱市", + "children": [{ + "code": "530802", + "name": "思茅区" + }, { + "code": "530821", + "name": "宁洱哈尼族彝族自治县" + }, { + "code": "530822", + "name": "墨江哈尼族自治县" + }, { + "code": "530823", + "name": "景东彝族自治县" + }, { + "code": "530824", + "name": "景谷傣族彝族自治县" + }, { + "code": "530825", + "name": "镇沅彝族哈尼族拉祜族自治县" + }, { + "code": "530826", + "name": "江城哈尼族彝族自治县" + }, { + "code": "530827", + "name": "孟连傣族拉祜族佤族自治县" + }, { + "code": "530828", + "name": "澜沧拉祜族自治县" + }, { + "code": "530829", + "name": "西盟佤族自治县" + }] + }, { + "code": "5309", + "name": "临沧市", + "children": [{ + "code": "530902", + "name": "临翔区" + }, { + "code": "530921", + "name": "凤庆县" + }, { + "code": "530922", + "name": "云县" + }, { + "code": "530923", + "name": "永德县" + }, { + "code": "530924", + "name": "镇康县" + }, { + "code": "530925", + "name": "双江拉祜族佤族布朗族傣族自治县" + }, { + "code": "530926", + "name": "耿马傣族佤族自治县" + }, { + "code": "530927", + "name": "沧源佤族自治县" + }] + }, { + "code": "5323", + "name": "楚雄彝族自治州", + "children": [{ + "code": "532301", + "name": "楚雄市" + }, { + "code": "532302", + "name": "禄丰市" + }, { + "code": "532322", + "name": "双柏县" + }, { + "code": "532323", + "name": "牟定县" + }, { + "code": "532324", + "name": "南华县" + }, { + "code": "532325", + "name": "姚安县" + }, { + "code": "532326", + "name": "大姚县" + }, { + "code": "532327", + "name": "永仁县" + }, { + "code": "532328", + "name": "元谋县" + }, { + "code": "532329", + "name": "武定县" + }] + }, { + "code": "5325", + "name": "红河哈尼族彝族自治州", + "children": [{ + "code": "532501", + "name": "个旧市" + }, { + "code": "532502", + "name": "开远市" + }, { + "code": "532503", + "name": "蒙自市" + }, { + "code": "532504", + "name": "弥勒市" + }, { + "code": "532523", + "name": "屏边苗族自治县" + }, { + "code": "532524", + "name": "建水县" + }, { + "code": "532525", + "name": "石屏县" + }, { + "code": "532527", + "name": "泸西县" + }, { + "code": "532528", + "name": "元阳县" + }, { + "code": "532529", + "name": "红河县" + }, { + "code": "532530", + "name": "金平苗族瑶族傣族自治县" + }, { + "code": "532531", + "name": "绿春县" + }, { + "code": "532532", + "name": "河口瑶族自治县" + }] + }, { + "code": "5326", + "name": "文山壮族苗族自治州", + "children": [{ + "code": "532601", + "name": "文山市" + }, { + "code": "532622", + "name": "砚山县" + }, { + "code": "532623", + "name": "西畴县" + }, { + "code": "532624", + "name": "麻栗坡县" + }, { + "code": "532625", + "name": "马关县" + }, { + "code": "532626", + "name": "丘北县" + }, { + "code": "532627", + "name": "广南县" + }, { + "code": "532628", + "name": "富宁县" + }] + }, { + "code": "5328", + "name": "西双版纳傣族自治州", + "children": [{ + "code": "532801", + "name": "景洪市" + }, { + "code": "532822", + "name": "勐海县" + }, { + "code": "532823", + "name": "勐腊县" + }] + }, { + "code": "5329", + "name": "大理白族自治州", + "children": [{ + "code": "532901", + "name": "大理市" + }, { + "code": "532922", + "name": "漾濞彝族自治县" + }, { + "code": "532923", + "name": "祥云县" + }, { + "code": "532924", + "name": "宾川县" + }, { + "code": "532925", + "name": "弥渡县" + }, { + "code": "532926", + "name": "南涧彝族自治县" + }, { + "code": "532927", + "name": "巍山彝族回族自治县" + }, { + "code": "532928", + "name": "永平县" + }, { + "code": "532929", + "name": "云龙县" + }, { + "code": "532930", + "name": "洱源县" + }, { + "code": "532931", + "name": "剑川县" + }, { + "code": "532932", + "name": "鹤庆县" + }] + }, { + "code": "5331", + "name": "德宏傣族景颇族自治州", + "children": [{ + "code": "533102", + "name": "瑞丽市" + }, { + "code": "533103", + "name": "芒市" + }, { + "code": "533122", + "name": "梁河县" + }, { + "code": "533123", + "name": "盈江县" + }, { + "code": "533124", + "name": "陇川县" + }] + }, { + "code": "5333", + "name": "怒江傈僳族自治州", + "children": [{ + "code": "533301", + "name": "泸水市" + }, { + "code": "533323", + "name": "福贡县" + }, { + "code": "533324", + "name": "贡山独龙族怒族自治县" + }, { + "code": "533325", + "name": "兰坪白族普米族自治县" + }] + }, { + "code": "5334", + "name": "迪庆藏族自治州", + "children": [{ + "code": "533401", + "name": "香格里拉市" + }, { + "code": "533422", + "name": "德钦县" + }, { + "code": "533423", + "name": "维西傈僳族自治县" + }] + }] +}, { + "code": "54", + "name": "西藏自治区", + "children": [{ + "code": "5401", + "name": "拉萨市", + "children": [{ + "code": "540102", + "name": "城关区" + }, { + "code": "540103", + "name": "堆龙德庆区" + }, { + "code": "540104", + "name": "达孜区" + }, { + "code": "540121", + "name": "林周县" + }, { + "code": "540122", + "name": "当雄县" + }, { + "code": "540123", + "name": "尼木县" + }, { + "code": "540124", + "name": "曲水县" + }, { + "code": "540127", + "name": "墨竹工卡县" + }, { + "code": "540171", + "name": "格尔木藏青工业园区" + }, { + "code": "540172", + "name": "拉萨经济技术开发区" + }, { + "code": "540173", + "name": "西藏文化旅游创意园区" + }, { + "code": "540174", + "name": "达孜工业园区" + }] + }, { + "code": "5402", + "name": "日喀则市", + "children": [{ + "code": "540202", + "name": "桑珠孜区" + }, { + "code": "540221", + "name": "南木林县" + }, { + "code": "540222", + "name": "江孜县" + }, { + "code": "540223", + "name": "定日县" + }, { + "code": "540224", + "name": "萨迦县" + }, { + "code": "540225", + "name": "拉孜县" + }, { + "code": "540226", + "name": "昂仁县" + }, { + "code": "540227", + "name": "谢通门县" + }, { + "code": "540228", + "name": "白朗县" + }, { + "code": "540229", + "name": "仁布县" + }, { + "code": "540230", + "name": "康马县" + }, { + "code": "540231", + "name": "定结县" + }, { + "code": "540232", + "name": "仲巴县" + }, { + "code": "540233", + "name": "亚东县" + }, { + "code": "540234", + "name": "吉隆县" + }, { + "code": "540235", + "name": "聂拉木县" + }, { + "code": "540236", + "name": "萨嘎县" + }, { + "code": "540237", + "name": "岗巴县" + }] + }, { + "code": "5403", + "name": "昌都市", + "children": [{ + "code": "540302", + "name": "卡若区" + }, { + "code": "540321", + "name": "江达县" + }, { + "code": "540322", + "name": "贡觉县" + }, { + "code": "540323", + "name": "类乌齐县" + }, { + "code": "540324", + "name": "丁青县" + }, { + "code": "540325", + "name": "察雅县" + }, { + "code": "540326", + "name": "八宿县" + }, { + "code": "540327", + "name": "左贡县" + }, { + "code": "540328", + "name": "芒康县" + }, { + "code": "540329", + "name": "洛隆县" + }, { + "code": "540330", + "name": "边坝县" + }] + }, { + "code": "5404", + "name": "林芝市", + "children": [{ + "code": "540402", + "name": "巴宜区" + }, { + "code": "540421", + "name": "工布江达县" + }, { + "code": "540423", + "name": "墨脱县" + }, { + "code": "540424", + "name": "波密县" + }, { + "code": "540425", + "name": "察隅县" + }, { + "code": "540426", + "name": "朗县" + }, { + "code": "540481", + "name": "米林市" + }] + }, { + "code": "5405", + "name": "山南市", + "children": [{ + "code": "540502", + "name": "乃东区" + }, { + "code": "540521", + "name": "扎囊县" + }, { + "code": "540522", + "name": "贡嘎县" + }, { + "code": "540523", + "name": "桑日县" + }, { + "code": "540524", + "name": "琼结县" + }, { + "code": "540525", + "name": "曲松县" + }, { + "code": "540526", + "name": "措美县" + }, { + "code": "540527", + "name": "洛扎县" + }, { + "code": "540528", + "name": "加查县" + }, { + "code": "540529", + "name": "隆子县" + }, { + "code": "540531", + "name": "浪卡子县" + }, { + "code": "540581", + "name": "错那市" + }] + }, { + "code": "5406", + "name": "那曲市", + "children": [{ + "code": "540602", + "name": "色尼区" + }, { + "code": "540621", + "name": "嘉黎县" + }, { + "code": "540622", + "name": "比如县" + }, { + "code": "540623", + "name": "聂荣县" + }, { + "code": "540624", + "name": "安多县" + }, { + "code": "540625", + "name": "申扎县" + }, { + "code": "540626", + "name": "索县" + }, { + "code": "540627", + "name": "班戈县" + }, { + "code": "540628", + "name": "巴青县" + }, { + "code": "540629", + "name": "尼玛县" + }, { + "code": "540630", + "name": "双湖县" + }] + }, { + "code": "5425", + "name": "阿里地区", + "children": [{ + "code": "542521", + "name": "普兰县" + }, { + "code": "542522", + "name": "札达县" + }, { + "code": "542523", + "name": "噶尔县" + }, { + "code": "542524", + "name": "日土县" + }, { + "code": "542525", + "name": "革吉县" + }, { + "code": "542526", + "name": "改则县" + }, { + "code": "542527", + "name": "措勤县" + }] + }] +}, { + "code": "61", + "name": "陕西省", + "children": [{ + "code": "6101", + "name": "西安市", + "children": [{ + "code": "610102", + "name": "新城区" + }, { + "code": "610103", + "name": "碑林区" + }, { + "code": "610104", + "name": "莲湖区" + }, { + "code": "610111", + "name": "灞桥区" + }, { + "code": "610112", + "name": "未央区" + }, { + "code": "610113", + "name": "雁塔区" + }, { + "code": "610114", + "name": "阎良区" + }, { + "code": "610115", + "name": "临潼区" + }, { + "code": "610116", + "name": "长安区" + }, { + "code": "610117", + "name": "高陵区" + }, { + "code": "610118", + "name": "鄠邑区" + }, { + "code": "610122", + "name": "蓝田县" + }, { + "code": "610124", + "name": "周至县" + }] + }, { + "code": "6102", + "name": "铜川市", + "children": [{ + "code": "610202", + "name": "王益区" + }, { + "code": "610203", + "name": "印台区" + }, { + "code": "610204", + "name": "耀州区" + }, { + "code": "610222", + "name": "宜君县" + }] + }, { + "code": "6103", + "name": "宝鸡市", + "children": [{ + "code": "610302", + "name": "渭滨区" + }, { + "code": "610303", + "name": "金台区" + }, { + "code": "610304", + "name": "陈仓区" + }, { + "code": "610305", + "name": "凤翔区" + }, { + "code": "610323", + "name": "岐山县" + }, { + "code": "610324", + "name": "扶风县" + }, { + "code": "610326", + "name": "眉县" + }, { + "code": "610327", + "name": "陇县" + }, { + "code": "610328", + "name": "千阳县" + }, { + "code": "610329", + "name": "麟游县" + }, { + "code": "610330", + "name": "凤县" + }, { + "code": "610331", + "name": "太白县" + }] + }, { + "code": "6104", + "name": "咸阳市", + "children": [{ + "code": "610402", + "name": "秦都区" + }, { + "code": "610403", + "name": "杨陵区" + }, { + "code": "610404", + "name": "渭城区" + }, { + "code": "610422", + "name": "三原县" + }, { + "code": "610423", + "name": "泾阳县" + }, { + "code": "610424", + "name": "乾县" + }, { + "code": "610425", + "name": "礼泉县" + }, { + "code": "610426", + "name": "永寿县" + }, { + "code": "610428", + "name": "长武县" + }, { + "code": "610429", + "name": "旬邑县" + }, { + "code": "610430", + "name": "淳化县" + }, { + "code": "610431", + "name": "武功县" + }, { + "code": "610481", + "name": "兴平市" + }, { + "code": "610482", + "name": "彬州市" + }] + }, { + "code": "6105", + "name": "渭南市", + "children": [{ + "code": "610502", + "name": "临渭区" + }, { + "code": "610503", + "name": "华州区" + }, { + "code": "610522", + "name": "潼关县" + }, { + "code": "610523", + "name": "大荔县" + }, { + "code": "610524", + "name": "合阳县" + }, { + "code": "610525", + "name": "澄城县" + }, { + "code": "610526", + "name": "蒲城县" + }, { + "code": "610527", + "name": "白水县" + }, { + "code": "610528", + "name": "富平县" + }, { + "code": "610581", + "name": "韩城市" + }, { + "code": "610582", + "name": "华阴市" + }] + }, { + "code": "6106", + "name": "延安市", + "children": [{ + "code": "610602", + "name": "宝塔区" + }, { + "code": "610603", + "name": "安塞区" + }, { + "code": "610621", + "name": "延长县" + }, { + "code": "610622", + "name": "延川县" + }, { + "code": "610625", + "name": "志丹县" + }, { + "code": "610626", + "name": "吴起县" + }, { + "code": "610627", + "name": "甘泉县" + }, { + "code": "610628", + "name": "富县" + }, { + "code": "610629", + "name": "洛川县" + }, { + "code": "610630", + "name": "宜川县" + }, { + "code": "610631", + "name": "黄龙县" + }, { + "code": "610632", + "name": "黄陵县" + }, { + "code": "610681", + "name": "子长市" + }] + }, { + "code": "6107", + "name": "汉中市", + "children": [{ + "code": "610702", + "name": "汉台区" + }, { + "code": "610703", + "name": "南郑区" + }, { + "code": "610722", + "name": "城固县" + }, { + "code": "610723", + "name": "洋县" + }, { + "code": "610724", + "name": "西乡县" + }, { + "code": "610725", + "name": "勉县" + }, { + "code": "610726", + "name": "宁强县" + }, { + "code": "610727", + "name": "略阳县" + }, { + "code": "610728", + "name": "镇巴县" + }, { + "code": "610729", + "name": "留坝县" + }, { + "code": "610730", + "name": "佛坪县" + }] + }, { + "code": "6108", + "name": "榆林市", + "children": [{ + "code": "610802", + "name": "榆阳区" + }, { + "code": "610803", + "name": "横山区" + }, { + "code": "610822", + "name": "府谷县" + }, { + "code": "610824", + "name": "靖边县" + }, { + "code": "610825", + "name": "定边县" + }, { + "code": "610826", + "name": "绥德县" + }, { + "code": "610827", + "name": "米脂县" + }, { + "code": "610828", + "name": "佳县" + }, { + "code": "610829", + "name": "吴堡县" + }, { + "code": "610830", + "name": "清涧县" + }, { + "code": "610831", + "name": "子洲县" + }, { + "code": "610881", + "name": "神木市" + }] + }, { + "code": "6109", + "name": "安康市", + "children": [{ + "code": "610902", + "name": "汉滨区" + }, { + "code": "610921", + "name": "汉阴县" + }, { + "code": "610922", + "name": "石泉县" + }, { + "code": "610923", + "name": "宁陕县" + }, { + "code": "610924", + "name": "紫阳县" + }, { + "code": "610925", + "name": "岚皋县" + }, { + "code": "610926", + "name": "平利县" + }, { + "code": "610927", + "name": "镇坪县" + }, { + "code": "610929", + "name": "白河县" + }, { + "code": "610981", + "name": "旬阳市" + }] + }, { + "code": "6110", + "name": "商洛市", + "children": [{ + "code": "611002", + "name": "商州区" + }, { + "code": "611021", + "name": "洛南县" + }, { + "code": "611022", + "name": "丹凤县" + }, { + "code": "611023", + "name": "商南县" + }, { + "code": "611024", + "name": "山阳县" + }, { + "code": "611025", + "name": "镇安县" + }, { + "code": "611026", + "name": "柞水县" + }] + }] +}, { + "code": "62", + "name": "甘肃省", + "children": [{ + "code": "6201", + "name": "兰州市", + "children": [{ + "code": "620102", + "name": "城关区" + }, { + "code": "620103", + "name": "七里河区" + }, { + "code": "620104", + "name": "西固区" + }, { + "code": "620105", + "name": "安宁区" + }, { + "code": "620111", + "name": "红古区" + }, { + "code": "620121", + "name": "永登县" + }, { + "code": "620122", + "name": "皋兰县" + }, { + "code": "620123", + "name": "榆中县" + }, { + "code": "620171", + "name": "兰州新区" + }] + }, { + "code": "6202", + "name": "嘉峪关市", + "children": [{ + "code": "620201001", + "name": "雄关街道" + }, { + "code": "620201002", + "name": "钢城街道" + }, { + "code": "620201100", + "name": "新城镇" + }, { + "code": "620201101", + "name": "峪泉镇" + }, { + "code": "620201102", + "name": "文殊镇" + }] + }, { + "code": "6203", + "name": "金昌市", + "children": [{ + "code": "620302", + "name": "金川区" + }, { + "code": "620321", + "name": "永昌县" + }] + }, { + "code": "6204", + "name": "白银市", + "children": [{ + "code": "620402", + "name": "白银区" + }, { + "code": "620403", + "name": "平川区" + }, { + "code": "620421", + "name": "靖远县" + }, { + "code": "620422", + "name": "会宁县" + }, { + "code": "620423", + "name": "景泰县" + }] + }, { + "code": "6205", + "name": "天水市", + "children": [{ + "code": "620502", + "name": "秦州区" + }, { + "code": "620503", + "name": "麦积区" + }, { + "code": "620521", + "name": "清水县" + }, { + "code": "620522", + "name": "秦安县" + }, { + "code": "620523", + "name": "甘谷县" + }, { + "code": "620524", + "name": "武山县" + }, { + "code": "620525", + "name": "张家川回族自治县" + }] + }, { + "code": "6206", + "name": "武威市", + "children": [{ + "code": "620602", + "name": "凉州区" + }, { + "code": "620621", + "name": "民勤县" + }, { + "code": "620622", + "name": "古浪县" + }, { + "code": "620623", + "name": "天祝藏族自治县" + }] + }, { + "code": "6207", + "name": "张掖市", + "children": [{ + "code": "620702", + "name": "甘州区" + }, { + "code": "620721", + "name": "肃南裕固族自治县" + }, { + "code": "620722", + "name": "民乐县" + }, { + "code": "620723", + "name": "临泽县" + }, { + "code": "620724", + "name": "高台县" + }, { + "code": "620725", + "name": "山丹县" + }] + }, { + "code": "6208", + "name": "平凉市", + "children": [{ + "code": "620802", + "name": "崆峒区" + }, { + "code": "620821", + "name": "泾川县" + }, { + "code": "620822", + "name": "灵台县" + }, { + "code": "620823", + "name": "崇信县" + }, { + "code": "620825", + "name": "庄浪县" + }, { + "code": "620826", + "name": "静宁县" + }, { + "code": "620881", + "name": "华亭市" + }] + }, { + "code": "6209", + "name": "酒泉市", + "children": [{ + "code": "620902", + "name": "肃州区" + }, { + "code": "620921", + "name": "金塔县" + }, { + "code": "620922", + "name": "瓜州县" + }, { + "code": "620923", + "name": "肃北蒙古族自治县" + }, { + "code": "620924", + "name": "阿克塞哈萨克族自治县" + }, { + "code": "620981", + "name": "玉门市" + }, { + "code": "620982", + "name": "敦煌市" + }] + }, { + "code": "6210", + "name": "庆阳市", + "children": [{ + "code": "621002", + "name": "西峰区" + }, { + "code": "621021", + "name": "庆城县" + }, { + "code": "621022", + "name": "环县" + }, { + "code": "621023", + "name": "华池县" + }, { + "code": "621024", + "name": "合水县" + }, { + "code": "621025", + "name": "正宁县" + }, { + "code": "621026", + "name": "宁县" + }, { + "code": "621027", + "name": "镇原县" + }] + }, { + "code": "6211", + "name": "定西市", + "children": [{ + "code": "621102", + "name": "安定区" + }, { + "code": "621121", + "name": "通渭县" + }, { + "code": "621122", + "name": "陇西县" + }, { + "code": "621123", + "name": "渭源县" + }, { + "code": "621124", + "name": "临洮县" + }, { + "code": "621125", + "name": "漳县" + }, { + "code": "621126", + "name": "岷县" + }] + }, { + "code": "6212", + "name": "陇南市", + "children": [{ + "code": "621202", + "name": "武都区" + }, { + "code": "621221", + "name": "成县" + }, { + "code": "621222", + "name": "文县" + }, { + "code": "621223", + "name": "宕昌县" + }, { + "code": "621224", + "name": "康县" + }, { + "code": "621225", + "name": "西和县" + }, { + "code": "621226", + "name": "礼县" + }, { + "code": "621227", + "name": "徽县" + }, { + "code": "621228", + "name": "两当县" + }] + }, { + "code": "6229", + "name": "临夏回族自治州", + "children": [{ + "code": "622901", + "name": "临夏市" + }, { + "code": "622921", + "name": "临夏县" + }, { + "code": "622922", + "name": "康乐县" + }, { + "code": "622923", + "name": "永靖县" + }, { + "code": "622924", + "name": "广河县" + }, { + "code": "622925", + "name": "和政县" + }, { + "code": "622926", + "name": "东乡族自治县" + }, { + "code": "622927", + "name": "积石山保安族东乡族撒拉族自治县" + }] + }, { + "code": "6230", + "name": "甘南藏族自治州", + "children": [{ + "code": "623001", + "name": "合作市" + }, { + "code": "623021", + "name": "临潭县" + }, { + "code": "623022", + "name": "卓尼县" + }, { + "code": "623023", + "name": "舟曲县" + }, { + "code": "623024", + "name": "迭部县" + }, { + "code": "623025", + "name": "玛曲县" + }, { + "code": "623026", + "name": "碌曲县" + }, { + "code": "623027", + "name": "夏河县" + }] + }] +}, { + "code": "63", + "name": "青海省", + "children": [{ + "code": "6301", + "name": "西宁市", + "children": [{ + "code": "630102", + "name": "城东区" + }, { + "code": "630103", + "name": "城中区" + }, { + "code": "630104", + "name": "城西区" + }, { + "code": "630105", + "name": "城北区" + }, { + "code": "630106", + "name": "湟中区" + }, { + "code": "630121", + "name": "大通回族土族自治县" + }, { + "code": "630123", + "name": "湟源县" + }] + }, { + "code": "6302", + "name": "海东市", + "children": [{ + "code": "630202", + "name": "乐都区" + }, { + "code": "630203", + "name": "平安区" + }, { + "code": "630222", + "name": "民和回族土族自治县" + }, { + "code": "630223", + "name": "互助土族自治县" + }, { + "code": "630224", + "name": "化隆回族自治县" + }, { + "code": "630225", + "name": "循化撒拉族自治县" + }] + }, { + "code": "6322", + "name": "海北藏族自治州", + "children": [{ + "code": "632221", + "name": "门源回族自治县" + }, { + "code": "632222", + "name": "祁连县" + }, { + "code": "632223", + "name": "海晏县" + }, { + "code": "632224", + "name": "刚察县" + }] + }, { + "code": "6323", + "name": "黄南藏族自治州", + "children": [{ + "code": "632301", + "name": "同仁市" + }, { + "code": "632322", + "name": "尖扎县" + }, { + "code": "632323", + "name": "泽库县" + }, { + "code": "632324", + "name": "河南蒙古族自治县" + }] + }, { + "code": "6325", + "name": "海南藏族自治州", + "children": [{ + "code": "632521", + "name": "共和县" + }, { + "code": "632522", + "name": "同德县" + }, { + "code": "632523", + "name": "贵德县" + }, { + "code": "632524", + "name": "兴海县" + }, { + "code": "632525", + "name": "贵南县" + }] + }, { + "code": "6326", + "name": "果洛藏族自治州", + "children": [{ + "code": "632621", + "name": "玛沁县" + }, { + "code": "632622", + "name": "班玛县" + }, { + "code": "632623", + "name": "甘德县" + }, { + "code": "632624", + "name": "达日县" + }, { + "code": "632625", + "name": "久治县" + }, { + "code": "632626", + "name": "玛多县" + }] + }, { + "code": "6327", + "name": "玉树藏族自治州", + "children": [{ + "code": "632701", + "name": "玉树市" + }, { + "code": "632722", + "name": "杂多县" + }, { + "code": "632723", + "name": "称多县" + }, { + "code": "632724", + "name": "治多县" + }, { + "code": "632725", + "name": "囊谦县" + }, { + "code": "632726", + "name": "曲麻莱县" + }] + }, { + "code": "6328", + "name": "海西蒙古族藏族自治州", + "children": [{ + "code": "632801", + "name": "格尔木市" + }, { + "code": "632802", + "name": "德令哈市" + }, { + "code": "632803", + "name": "茫崖市" + }, { + "code": "632821", + "name": "乌兰县" + }, { + "code": "632822", + "name": "都兰县" + }, { + "code": "632823", + "name": "天峻县" + }, { + "code": "632857", + "name": "大柴旦行政委员会" + }] + }] +}, { + "code": "64", + "name": "宁夏回族自治区", + "children": [{ + "code": "6401", + "name": "银川市", + "children": [{ + "code": "640104", + "name": "兴庆区" + }, { + "code": "640105", + "name": "西夏区" + }, { + "code": "640106", + "name": "金凤区" + }, { + "code": "640121", + "name": "永宁县" + }, { + "code": "640122", + "name": "贺兰县" + }, { + "code": "640181", + "name": "灵武市" + }] + }, { + "code": "6402", + "name": "石嘴山市", + "children": [{ + "code": "640202", + "name": "大武口区" + }, { + "code": "640205", + "name": "惠农区" + }, { + "code": "640221", + "name": "平罗县" + }] + }, { + "code": "6403", + "name": "吴忠市", + "children": [{ + "code": "640302", + "name": "利通区" + }, { + "code": "640303", + "name": "红寺堡区" + }, { + "code": "640323", + "name": "盐池县" + }, { + "code": "640324", + "name": "同心县" + }, { + "code": "640381", + "name": "青铜峡市" + }] + }, { + "code": "6404", + "name": "固原市", + "children": [{ + "code": "640402", + "name": "原州区" + }, { + "code": "640422", + "name": "西吉县" + }, { + "code": "640423", + "name": "隆德县" + }, { + "code": "640424", + "name": "泾源县" + }, { + "code": "640425", + "name": "彭阳县" + }] + }, { + "code": "6405", + "name": "中卫市", + "children": [{ + "code": "640502", + "name": "沙坡头区" + }, { + "code": "640521", + "name": "中宁县" + }, { + "code": "640522", + "name": "海原县" + }] + }] +}, { + "code": "65", + "name": "新疆维吾尔自治区", + "children": [{ + "code": "6501", + "name": "乌鲁木齐市", + "children": [{ + "code": "650102", + "name": "天山区" + }, { + "code": "650103", + "name": "沙依巴克区" + }, { + "code": "650104", + "name": "新市区" + }, { + "code": "650105", + "name": "水磨沟区" + }, { + "code": "650106", + "name": "头屯河区" + }, { + "code": "650107", + "name": "达坂城区" + }, { + "code": "650109", + "name": "米东区" + }, { + "code": "650121", + "name": "乌鲁木齐县" + }] + }, { + "code": "6502", + "name": "克拉玛依市", + "children": [{ + "code": "650202", + "name": "独山子区" + }, { + "code": "650203", + "name": "克拉玛依区" + }, { + "code": "650204", + "name": "白碱滩区" + }, { + "code": "650205", + "name": "乌尔禾区" + }] + }, { + "code": "6504", + "name": "吐鲁番市", + "children": [{ + "code": "650402", + "name": "高昌区" + }, { + "code": "650421", + "name": "鄯善县" + }, { + "code": "650422", + "name": "托克逊县" + }] + }, { + "code": "6505", + "name": "哈密市", + "children": [{ + "code": "650502", + "name": "伊州区" + }, { + "code": "650521", + "name": "巴里坤哈萨克自治县" + }, { + "code": "650522", + "name": "伊吾县" + }] + }, { + "code": "6523", + "name": "昌吉回族自治州", + "children": [{ + "code": "652301", + "name": "昌吉市" + }, { + "code": "652302", + "name": "阜康市" + }, { + "code": "652323", + "name": "呼图壁县" + }, { + "code": "652324", + "name": "玛纳斯县" + }, { + "code": "652325", + "name": "奇台县" + }, { + "code": "652327", + "name": "吉木萨尔县" + }, { + "code": "652328", + "name": "木垒哈萨克自治县" + }] + }, { + "code": "6527", + "name": "博尔塔拉蒙古自治州", + "children": [{ + "code": "652701", + "name": "博乐市" + }, { + "code": "652702", + "name": "阿拉山口市" + }, { + "code": "652722", + "name": "精河县" + }, { + "code": "652723", + "name": "温泉县" + }] + }, { + "code": "6528", + "name": "巴音郭楞蒙古自治州", + "children": [{ + "code": "652801", + "name": "库尔勒市" + }, { + "code": "652822", + "name": "轮台县" + }, { + "code": "652823", + "name": "尉犁县" + }, { + "code": "652824", + "name": "若羌县" + }, { + "code": "652825", + "name": "且末县" + }, { + "code": "652826", + "name": "焉耆回族自治县" + }, { + "code": "652827", + "name": "和静县" + }, { + "code": "652828", + "name": "和硕县" + }, { + "code": "652829", + "name": "博湖县" + }] + }, { + "code": "6529", + "name": "阿克苏地区", + "children": [{ + "code": "652901", + "name": "阿克苏市" + }, { + "code": "652902", + "name": "库车市" + }, { + "code": "652922", + "name": "温宿县" + }, { + "code": "652924", + "name": "沙雅县" + }, { + "code": "652925", + "name": "新和县" + }, { + "code": "652926", + "name": "拜城县" + }, { + "code": "652927", + "name": "乌什县" + }, { + "code": "652928", + "name": "阿瓦提县" + }, { + "code": "652929", + "name": "柯坪县" + }] + }, { + "code": "6530", + "name": "克孜勒苏柯尔克孜自治州", + "children": [{ + "code": "653001", + "name": "阿图什市" + }, { + "code": "653022", + "name": "阿克陶县" + }, { + "code": "653023", + "name": "阿合奇县" + }, { + "code": "653024", + "name": "乌恰县" + }] + }, { + "code": "6531", + "name": "喀什地区", + "children": [{ + "code": "653101", + "name": "喀什市" + }, { + "code": "653121", + "name": "疏附县" + }, { + "code": "653122", + "name": "疏勒县" + }, { + "code": "653123", + "name": "英吉沙县" + }, { + "code": "653124", + "name": "泽普县" + }, { + "code": "653125", + "name": "莎车县" + }, { + "code": "653126", + "name": "叶城县" + }, { + "code": "653127", + "name": "麦盖提县" + }, { + "code": "653128", + "name": "岳普湖县" + }, { + "code": "653129", + "name": "伽师县" + }, { + "code": "653130", + "name": "巴楚县" + }, { + "code": "653131", + "name": "塔什库尔干塔吉克自治县" + }] + }, { + "code": "6532", + "name": "和田地区", + "children": [{ + "code": "653201", + "name": "和田市" + }, { + "code": "653221", + "name": "和田县" + }, { + "code": "653222", + "name": "墨玉县" + }, { + "code": "653223", + "name": "皮山县" + }, { + "code": "653224", + "name": "洛浦县" + }, { + "code": "653225", + "name": "策勒县" + }, { + "code": "653226", + "name": "于田县" + }, { + "code": "653227", + "name": "民丰县" + }] + }, { + "code": "6540", + "name": "伊犁哈萨克自治州", + "children": [{ + "code": "654002", + "name": "伊宁市" + }, { + "code": "654003", + "name": "奎屯市" + }, { + "code": "654004", + "name": "霍尔果斯市" + }, { + "code": "654021", + "name": "伊宁县" + }, { + "code": "654022", + "name": "察布查尔锡伯自治县" + }, { + "code": "654023", + "name": "霍城县" + }, { + "code": "654024", + "name": "巩留县" + }, { + "code": "654025", + "name": "新源县" + }, { + "code": "654026", + "name": "昭苏县" + }, { + "code": "654027", + "name": "特克斯县" + }, { + "code": "654028", + "name": "尼勒克县" + }] + }, { + "code": "6542", + "name": "塔城地区", + "children": [{ + "code": "654201", + "name": "塔城市" + }, { + "code": "654202", + "name": "乌苏市" + }, { + "code": "654203", + "name": "沙湾市" + }, { + "code": "654221", + "name": "额敏县" + }, { + "code": "654224", + "name": "托里县" + }, { + "code": "654225", + "name": "裕民县" + }, { + "code": "654226", + "name": "和布克赛尔蒙古自治县" + }] + }, { + "code": "6543", + "name": "阿勒泰地区", + "children": [{ + "code": "654301", + "name": "阿勒泰市" + }, { + "code": "654321", + "name": "布尔津县" + }, { + "code": "654322", + "name": "富蕴县" + }, { + "code": "654323", + "name": "福海县" + }, { + "code": "654324", + "name": "哈巴河县" + }, { + "code": "654325", + "name": "青河县" + }, { + "code": "654326", + "name": "吉木乃县" + }] + }, { + "code": "6590", + "name": "自治区直辖县级行政区划", + "children": [{ + "code": "659001", + "name": "石河子市" + }, { + "code": "659002", + "name": "阿拉尔市" + }, { + "code": "659003", + "name": "图木舒克市" + }, { + "code": "659004", + "name": "五家渠市" + }, { + "code": "659005", + "name": "北屯市" + }, { + "code": "659006", + "name": "铁门关市" + }, { + "code": "659007", + "name": "双河市" + }, { + "code": "659008", + "name": "可克达拉市" + }, { + "code": "659009", + "name": "昆玉市" + }, { + "code": "659010", + "name": "胡杨河市" + }, { + "code": "659011", + "name": "新星市" + }, { + "code": "659012", + "name": "白杨市" + }] + }] +}] \ No newline at end of file diff --git a/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue new file mode 100644 index 0000000..20faead --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/uni_modules/piaoyi-cityPicker/package.json b/src/uni_modules/piaoyi-cityPicker/package.json new file mode 100644 index 0000000..7165c44 --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/package.json @@ -0,0 +1,17 @@ +{ + "id": "piaoyi-cityPicker", + "name": " data-cityPicker省市区地址选择器", + "displayName": " data-cityPicker省市区地址选择器(兼容vue3)", + "version": "1.1.7", + "description": "常用省市区选择器,可反选,自定义模态框、兼容vue3", + "keywords": [ + "省市区", + "选择器", + "可反选", + "自定义模态框和弹框", + "兼容vue3" + ], + "dcloudext": { + "type": "component-vue" + } +} \ No newline at end of file diff --git a/src/uni_modules/piaoyi-cityPicker/readme.md b/src/uni_modules/piaoyi-cityPicker/readme.md new file mode 100644 index 0000000..445a149 --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/readme.md @@ -0,0 +1,106 @@ +## 1.0.7(2023-09-15) +改为uni_modules规范 +### cityPicker 省市区选择器(兼容vue3) + +**使用方法:** + +``` + + + + + + +``` + +### 注:近期收到使用用户反馈,存在以下一个问题(如有好的建议,期待私信,谢谢) + +1、之前只支持默认值传入地区编码,已更新可以支持传入中文省市区数组 + +defaultValue可以传入defaultValue:['河北省','唐山市','丰南区']数组类型以及defaultValue: '420103'地区编码字符串类型 + +可以使用const reg =/([\u4e00-\u9fa5]+省|自治区|[\u4e00-\u9fa5]+市|[\u4e00-\u9fa5]+区)/g;将自己的省市区数据进行处理为数组再传入 + +2、有些用户反馈vue3下watch监听有问题 + +我自己创建一个vue项目,导入插件后,按照示例原封不动进行测试,没有发现问题; 发现有问题的朋友可以提供一下可以复现的demo给我,我这边看看具体什么情况 + +3、有些用户返回无法关闭弹框 + +不要把插件放到scroll-view里面,请务必放到最外层进行使用 + +#### 事件说明 + +| 事件名 | 返回值 | 描述 | +| :---------: | :----: | :------------: | +| @confirm | 对象(code,完整地区名称) | 点击确定的回调 | +| @cancel | 无 | 点击取消的回调 | + +#### Prop + +| 参数名称 | 描述 | +| -------- | ------------------------------ | +| visible | 控制选择器显示和隐藏 | +| column | 可选值2和3,2是省市两列选择;3是省市区三列选择 | +| maskCloseAble | 点击模态框是否关闭弹框 | +| defaultValue | 初始地区编码(例:420102或者['河北省','唐山市','丰南区']) | + +### 数据来源:[点击查看省市区数据来源](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca-code.json) +### 可接定制化组件开发 +### 右侧有本人代表作小程序二维码,可以扫码体验 +### 如使用过程中有问题或有一些好的建议,欢迎加QQ群互相学习交流:120594820 \ No newline at end of file diff --git a/src/utils/auth.ts b/src/utils/auth.ts new file mode 100644 index 0000000..7118c40 --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,18 @@ +import { useLogin } from '@/hooks/useLogin' +import { getToken } from '@/utils/common' +import { getNeedLoginPages } from '@/utils/pages' + +const loginBack = useLogin() + +/** + * 检测是否需要登录 + */ +export function checkNeedLogin(route: AnyObject){ + const pages = getNeedLoginPages() + + if (pages.includes(route.path) && !getToken()) { + setTimeout(() => { + loginBack.setLoginBack({ url: route.path, param: route.query || {} }) + }, 100) + } +} diff --git a/src/utils/common.ts b/src/utils/common.ts new file mode 100644 index 0000000..a72c79d --- /dev/null +++ b/src/utils/common.ts @@ -0,0 +1,548 @@ +import { getTabbarPages } from './pages' +import useDiyStore from '@/app/stores/diy' +import useMemberStore from '@/stores/member' +import useSystemStore from '@/stores/system' + +/** +* 跳转页面 +*/ +export const redirect = (redirect: redirectOptions) => { + // 装修模式禁止跳转 + if (useDiyStore().mode == 'decorate') return + + let { url, mode, param, success, fail, complete } = redirect + mode = mode || 'navigateTo' + const tabBar = getTabbarPages() + tabBar.includes(url) && (mode = 'switchTab') + + mode != 'switchTab' && param && Object.keys(param).length && (url += uni.$u.queryParams(param)) + + switch (mode) { + case 'switchTab': + uni.switchTab({ + url, + success: () => { success && success() }, + fail: () => { fail && fail() }, + complete: () => { complete && complete() } + }) + break; + case 'navigateTo': + uni.navigateTo({ + url, + success: () => { success && success() }, + fail: () => { fail && fail() }, + complete: () => { complete && complete() } + }) + break; + case 'reLaunch': + uni.reLaunch({ + url, + success: () => { success && success() }, + fail: () => { fail && fail() }, + complete: () => { complete && complete() } + }) + break; + case 'redirectTo': + uni.redirectTo({ + url, + success: () => { success && success() }, + fail: () => { fail && fail() }, + complete: () => { complete && complete() } + }) + break; + } +} + +/** +* 自定义跳转链接 +* @param {Object} link +*/ +export const diyRedirect = (link: any) => { + const diyStore = useDiyStore(); + // 装修模式禁止跳转 + if (diyStore.mode == 'decorate') return; + + if (link == null || Object.keys(link).length == 1) return; + + // 外部链接 + if (link.url && (link.url.indexOf('https') != -1 || link.url.indexOf('http') != -1)) { + + // #ifdef H5 + window.location.href = link.url; + // #endif + + // #ifdef MP + redirect({ + url: '/app/pages/webview/index', + param: { src: encodeURIComponent(link.url) } + }); + // #endif + } else if (link.appid) { + // 跳转其他小程序 + + // #ifdef MP + uni.navigateToMiniProgram({ + appId: link.appid, + path: link.page + }) + // #endif + } else if (link.name == 'DIY_MAKE_PHONE_CALL' && link.mobile) { + // 拨打电话 + + uni.makePhoneCall({ + phoneNumber: link.mobile, + success: (res) => { }, + fail: (res) => { } + }); + + } else { + redirect({ url: link.url }); + } +} + +/** +* 获取当前路由 +*/ +export const currRoute = () => { + const pages = getCurrentPages() + const route = pages[pages.length - 1] + return route ? route.route : '' +} + +// 获取分享路由 +export const currShareRoute = () => { + const pages = getCurrentPages() + if (pages.length == 0) { + return { + path: '/', + params: {} + } + } + let currentRoute = pages[pages.length - 1].route //获取当前页面路由 + + // #ifdef H5 + let currentParam = pages[pages.length - 1].$page.options; //获取路由参数 + // #endif + + // #ifdef MP + let currentParam = pages[pages.length - 1].options || {}; //获取路由参数 + // #endif + + // 拼接参数 + let params = {}; + for (let key in currentParam) { + params[key] = currentParam[key] + } + let currentPath = '/' + currentRoute; + + return { + path: currentPath, + params: params + } +} + +/** +* 获取token +* @returns +*/ +export function getToken(): null | string { + return useMemberStore().token +} + +/** +* 设置token +* @param token +* @returns +*/ +export function setToken(token: string): void { + uni.setStorageSync(import.meta.env.VITE_REQUEST_STORAGE_TOKEN_KEY, token) +} + +/** +* 移除token +* @returns +*/ +export function removeToken(): void { + uni.removeStorageSync(import.meta.env.VITE_REQUEST_STORAGE_TOKEN_KEY) +} + +/** +* 将url 解构为 { path: ***, query: {} } +*/ +export function urlDeconstruction(url: string) { + const query = {} + const [path, param] = url.split('?') + + param && param.split('&').forEach((str: string) => { + let [name, value] = str.split('=') + query[name] = value + }) + + return { path, query } +} + +/** +* 判断是否是url +* @param str +* @returns +*/ +export function isUrl(str: string): boolean { + return str && (str.indexOf('http://') != -1 || str.indexOf('https://') != -1) || false +} + +/** +* 图片输出 +* @param path +* @returns +*/ +export function img(path: string): string { + // #ifdef H5 + return isUrl(path) ? path : `${import.meta.env.VITE_IMG_DOMAIN || location.origin}/${path}` + // #endif + + // #ifndef H5 + return isUrl(path) ? path : `${import.meta.env.VITE_IMG_DOMAIN}/${path}` + // #endif +} + +/** + * 手机号隐藏 + */ +export function mobileHide(mobile: string) { + return mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') +} + +/** +* 判断是否是微信浏览器 +*/ +export function isWeixinBrowser(): boolean { + // #ifndef H5 + return false + // #endif + let ua = navigator.userAgent.toLowerCase() + return /micromessenger/.test(ua) ? true : false +} + +/** +* 获取应用场景值 +*/ +export function getAppChannel(): string { + // #ifdef APP-PLUS + return 'app' + // #endif + // #ifdef MP-WEIXIN + return 'weapp' + // #endif + // #ifdef H5 + return isWeixinBrowser() ? 'wechat' : 'h5' + // #endif +} + +/** +* 金额格式化 +*/ +export function moneyFormat(money: string): string { + return isNaN(parseFloat(money)) ? money : parseFloat(money).toFixed(2) +} + +/** + * 手机号隐藏 + */ +export function mobileConceal(mobile: string): string { + return mobile.substring(0, 3) + "****" + mobile.substr(mobile.length - 4); +} + +export function hideIDCard(idCard: string | number) { + // 检查身份证号是否是有效的字符串,且长度为 18 个字符(或 15 个字符) + if (typeof idCard !== 'string' || (idCard.length !== 18 && idCard.length !== 15)) { + throw new Error('无效的身份证号'); + } + + // 对于 18 位身份证号,将前 3 位和后 4 位显示,其余用 * 替换 + if (idCard.length === 18) { + return idCard.slice(0, 3) + '**********' + idCard.slice(-4); + } + + // 对于 15 位身份证号,将前 3 位和后 3 位显示,其余用 * 替换 + if (idCard.length === 15) { + return idCard.slice(0, 3) + '*********' + idCard.slice(-3); + } +} + + +/** + * 获取站点id + */ +export function getSiteId(siteId: number | string) { + // #ifdef H5 + const match = location.href.match(/\/wap\/(\d*)\//); + match && (siteId = match[1]) + // #endif + + // #ifdef MP-WEIXIN + if (uni.getExtConfigSync) { + const extConfig = uni.getExtConfigSync() + extConfig.site_id && (siteId = extConfig.site_id) + } + // #endif + + return siteId +} + +/** + * 时间戳转日期格式 + * @param {Object} timeStamp + */ +export function timeStampTurnTime(timeStamp, type = "") { + if (timeStamp != undefined && timeStamp != "" && timeStamp > 0) { + var date = new Date(); + date.setTime(timeStamp * 1000); + var y = date.getFullYear(); + var m = date.getMonth() + 1; + m = m < 10 ? ('0' + m) : m; + var d = date.getDate(); + d = d < 10 ? ('0' + d) : d; + var h = date.getHours(); + h = h < 10 ? ('0' + h) : h; + var minute = date.getMinutes(); + var second = date.getSeconds(); + minute = minute < 10 ? ('0' + minute) : minute; + second = second < 10 ? ('0' + second) : second; + if (type) { + if (type == 'yearMonthDay') { + return y + '年' + m + '月' + d + '日'; + } + return y + '-' + m + '-' + d; + } else { + return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; + } + + } else { + return ""; + } +} + +/** + * 复制 + * @param {Object} value + * @param {Object} callback + */ +export function copy(value, callback) { + // #ifdef H5 + var oInput = document.createElement('input'); //创建一个隐藏input(重要!) + oInput.value = value; //赋值 + oInput.setAttribute("readonly", "readonly"); + document.body.appendChild(oInput); + oInput.select(); // 选择对象 + document.execCommand("Copy"); // 执行浏览器复制命令 + oInput.className = 'oInput'; + oInput.style.display = 'none'; + uni.hideKeyboard(); + uni.showToast({ + title: '复制成功', + icon: 'none' + }); + + typeof callback == 'function' && callback(); + // #endif + + // #ifdef MP || APP-PLUS + uni.setClipboardData({ + data: value, + success: () => { + typeof callback == 'function' && callback(); + }, + fail: (res) => { + // 在隐私协议中没有声明chooseLocation:fail api作用域 + if (res.errMsg && res.errno) { + if (res.errno == 104) { + let msg = '用户未授权隐私权限,设置剪贴板数据失败'; + uni.showToast({ title: msg, icon: 'none' }) + } else if (res.errno == 112) { + let msg = '隐私协议中未声明,设置剪贴板数据失败'; + uni.showToast({ title: msg, icon: 'none' }) + } else { + uni.showToast({ title: res.errMsg, icon: 'none' }) + } + } + } + }); + // #endif +} + +/** + * 处理onLoad传递的参数 + * @param option + */ +export function handleOnloadParams(option: any) { + let params: any = {}; + + // 处理小程序扫码进入的场景值参数 + if (option.scene) { + var sceneParams = decodeURIComponent(option.scene).split('&'); + if (sceneParams.length) { + sceneParams.forEach(item => { + let arr = item.split('-'); + params[arr[0]] = arr[1]; + if (arr[0] == 'mid') { + uni.setStorageSync('pid', arr[1]) + } + }); + } + } else { + params = option; + } + return params; +} + +/** + * 获取定位信息 + */ +export function getLocation(param = {}) { + uni.getLocation({ + type: param.type ?? 'gcj02', + success: res => { + const systemStore = useSystemStore() + systemStore.setLocation(res); + typeof param.success == 'function' && param.success(res); + }, + fail: res => { + typeof param.fail == 'function' && param.fail(res); + }, + complete: res => { + typeof param.complete == 'function' && param.complete(res); + } + }); +} + +/** + * 定位信息(缓存) + */ +export function locationStorage() { + let data = uni.getStorageSync('location'); + let mapConfig = uni.getStorageSync('mapConfig'); + if (data) { + var date = new Date(); + if (mapConfig.valid_time > 0) { + data.is_expired = (date.getTime() / 1000) > data.valid_time; // 是否过期 + } else { + data.is_expired = false; + } + } + return data; +} + +/** + * @description 深度克隆 + * @param {object} obj 需要深度克隆的对象 + * @returns {*} 克隆后的对象或者原值(不是对象) + */ +export function deepClone(obj: object) { + // 对常见的“非”值,直接返回原来值 + if ([null, undefined, NaN, false].includes(obj)) return obj + if (typeof obj !== 'object' && typeof obj !== 'function') { + // 原始类型直接返回 + return obj + } + const o = isArray(obj) ? [] : {} + for (const i in obj) { + if (obj.hasOwnProperty(i)) { + o[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i] + } + } + return o +} + +/** + * 防抖函数 + * @param fn + * @param delay + * @returns + */ +export function debounce(fn: (args?: any) => any, delay: number = 300) { + let timer: null | number = null + return function (...args) { + if (timer != null) { + clearTimeout(timer) + timer = null + } + timer = setTimeout(() => { + fn.call(this, ...args) + }, delay); + } +} + +/** + * 节流函数 + * @param fn + * @param delay + * @returns + */ +export function throttle(func: (...args: any[]) => void, wait: number) { + let lastTime = 0; + + return function (this: any, ...args: any[]) { + const now = Date.now(); + if (now - lastTime >= wait) { + lastTime = now; + func.apply(this, args); + } + }; +} + +const isArray = (value: any) => { + if (typeof Array.isArray === 'function') { + return Array.isArray(value) + } + return Object.prototype.toString.call(value) === '[object Array]' +} + + +/** + * 判断是否为空对象 + */ + +export function isEmptyObject(obj: object) { + return obj && typeof obj === 'object' && Object.keys(obj).length === 0; +} + +export function haversine(lat1, lon1, lat2, lon2) { + // 将纬度和经度从度数转换为弧度 + const toRad = angle => (Math.PI / 180) * angle; + lat1 = toRad(lat1); + lon1 = toRad(lon1); + lat2 = toRad(lat2); + lon2 = toRad(lon2); + + // 差值计算 + const dLat = lat2 - lat1; + const dLon = lon2 - lon1; + + // Haversine 公式 + const a = Math.sin(dLat / 2) ** 2 + Math.cos(lat1) * Math.cos(lat2) * Math.sin(dLon / 2) ** 2; + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + + // 地球半径(km) + const R = 6371.0; + const distance = R * c; + + return distance.toFixed(2); +} + + +export function transformTreeToPickerData(treeData, level = 0, columns = []) { + // 如果没有此层的数据,则初始化为空数组 + if (!columns[level]) columns[level] = []; + + // 遍历当前层级的数据 + treeData.forEach((node) => { + columns[level].push({ ...node }); + + // 如果有子节点,递归处理下一层级 + if (node.children) { + transformTreeToPickerData(node.children, level + 1, columns); + } + }); + + return columns; +} \ No newline at end of file diff --git a/src/utils/interceptor.ts b/src/utils/interceptor.ts new file mode 100644 index 0000000..3f6308c --- /dev/null +++ b/src/utils/interceptor.ts @@ -0,0 +1,127 @@ +import { language } from '@/locale' +import { checkNeedLogin } from '@/utils/auth' +import { redirect, getToken, getSiteId, isWeixinBrowser } from '@/utils/common' +import { memberLog } from '@/app/api/auth' +import useConfigStore from "@/stores/config"; +import { useShare } from '@/hooks/useShare' + +/** + * 页面跳转拦截器 + */ +export const redirectInterceptor = (route: { path: string, query: object }) => { + route.path = `/${ route.path }` + + // 检测当前访问的是系统(app)还是插件 + setAddonName(route.path) + + // 开发模式下,如果未配置站点ID,则跳转到开发环境配置页面 + // #ifdef H5 + if (process.env.NODE_ENV == 'development') { + if ((getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) === '') && route.path != '/app/pages/index/develop') { + redirect({ url: '/app/pages/index/develop', mode: 'reLaunch' }) + } + } + + // #endif + + // #ifdef MP + route.path.indexOf('addon') != -1 && language.loadAllLocaleMessages('addon', uni.getLocale()) + // #endif + + // 校验是否需要登录 + checkNeedLogin(route) + + loadShare() + + // 添加会员访问日志 + if (getToken()) memberLog({ + route: route.path, + params: JSON.stringify(route.query), + pre_route: getCurrentPages()[0]?.route + }) +} + +/** + * 应用初始化拦截器 + */ +export const launchInterceptor = () => { + const launch = uni.getLaunchOptionsSync() + launch.path = `/${ launch.path }` + + // 开发模式下,如果未配置站点ID,则跳转到开发环境配置页面 + // #ifdef H5 + if (process.env.NODE_ENV == 'development') { + // 后台DIY装修页面时,获取站点ID + + if (location.search.indexOf('site_id=') != -1) { + let site_id = location.search.substr(location.search.indexOf('site_id=') + 8); + uni.setStorageSync('wap_site_id', site_id); + } + if (getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) === '') { + launch.path = '/app/pages/index/develop'; + uni.setStorageSync('develop_before_path', launch.path); + redirect({ url: '/app/pages/index/develop', mode: 'reLaunch' }) + } + } + + // #endif + + // 检测当前访问的是系统(app)还是插件 + setAddonName(launch.path); + + // 加载语言包 + language.loadAllLocaleMessages('app', uni.getLocale()) + + // #ifdef H5 + language.loadAllLocaleMessages('addon', uni.getLocale()) + // #endif + + // 校验是否需要登录 + checkNeedLogin(launch) + + // 存储分享会员id + if (launch.query && launch.query.mid) { + uni.setStorageSync('pid', launch.query.mid) + } + + loadShare() + + // 添加会员访问日志 + if (getToken()) memberLog({ route: launch.path, params: JSON.stringify(launch.query || {}), pre_route: '' }) +} + +/** + * 检测当前访问的是系统(app)还是插件 + * 设置插件的底部导航 + * 设置插件应用的主色调 + * @param path + */ +const setAddonName = async(path: string) => { + let pathArr = path.split('/') + let route = pathArr[1] == 'addon' ? pathArr[2] : 'app'; + + // 设置底部导航 + const configStore = useConfigStore() + if (configStore.addon != route) { + configStore.addon = route; + } + + // 设置插件应用的主色调,排除系统 + if (route != 'app') { + try { + const theme = await import(`../addon/${ route }/utils/theme.json`) + configStore.themeColor = theme.default + uni.setStorageSync('current_theme_color', JSON.stringify(theme.default)); + } catch (e) { + // 设置插件应用的主色调发生错误,若不存在则使用最后有效的主色调 + } + + } + +} + +// 加载分享 +const loadShare = () => { + const { setShare } = useShare() + setShare() +} \ No newline at end of file diff --git a/src/utils/mixin.ts b/src/utils/mixin.ts new file mode 100644 index 0000000..79c60fb --- /dev/null +++ b/src/utils/mixin.ts @@ -0,0 +1,50 @@ +import { currRoute } from './common' +import { redirectInterceptor } from './interceptor' +import useConfigStore from "@/stores/config"; +import useSystemStore from '@/stores/system' +import {useShare} from '@/hooks/useShare' + +export default { + install(vue) { + vue.mixin({ + data() { + return { + query: {} + } + }, + onLoad: (data: object) => { + const route = currRoute() ?? '' + + this.query = data + + useSystemStore().$patch((state) => { + state.currRoute = route + }) + }, + onShow: () => { + const route = currRoute() ?? '' + + useSystemStore().$patch((state) => { + state.currRoute = route + }) + + redirectInterceptor({ + path: route, + query: this.query + }) + }, + onShareAppMessage(){ + useShare().onShareAppMessage() + }, + onShareTimeline(){ + useShare().onShareTimeline() + }, + methods:{ + themeColor(){ + const configStore = useConfigStore() + return configStore.getThemeColor(); + } + } + }); + }, +}; diff --git a/src/utils/pages.ts b/src/utils/pages.ts new file mode 100644 index 0000000..4b82706 --- /dev/null +++ b/src/utils/pages.ts @@ -0,0 +1,60 @@ +import pagesJson from '@/pages.json' + +/** + * 获取需要登录的页面 + */ +export function getNeedLoginPages() { + const pages = [] + // 获取主包中需要登录的页面 + pagesJson.pages.forEach(item => { + if (item.needLogin) pages.push(`/${item.path}`) + }) + // 获取分包中需要登录的页面 + if (pagesJson.subPackages) { + pagesJson.subPackages.forEach(subPackages => { + subPackages.pages.forEach(item => { + if (item.needLogin) pages.push(`/${subPackages.root}/${item.path}`) + }) + }) + } + return pages +} + +/** + * 获取所有页面 + */ +export function getAppPages() { + const pages = [] + // 获取主包中需要登录的页面 + pagesJson.pages.forEach(item => { + pages.push(`/${item.path}`) + }) + return pages +} + +export function getSubPackagesPages() { + const pages = [] + // 获取分包中需要登录的页面 + if (pagesJson.subPackages) { + pagesJson.subPackages.forEach(subPackages => { + subPackages.pages.forEach(item => { + pages.push(`/${subPackages.root}/${item.path}`) + }) + }) + } + return pages +} + +/** + * 获取tabbar + */ +export function getTabbarPages() { + return pagesJson.tabBar.list.map(item => { return `/${item.pagePath}` }) +} + +/** + * 获取首页路径 + */ +export function getFirstPage() { + return '/' + pagesJson.pages[0].path +} diff --git a/src/utils/request.ts b/src/utils/request.ts new file mode 100644 index 0000000..c29b624 --- /dev/null +++ b/src/utils/request.ts @@ -0,0 +1,196 @@ +import useMemberStore from '@/stores/member' +import { t } from '@/locale' +import {getToken, getAppChannel, getSiteId, redirect} from './common' +import qs from 'qs' + +interface RequestConfig { + showErrorMessage ?: boolean + showSuccessMessage ?: boolean +} + +interface RequestOptions extends UniNamespace.RequestOptions, RequestOptions { } + +class Request { + private baseUrl : string + + private config : RequestOptions = { + url: '', + header: {} + } + + constructor() { + // #ifdef H5 + this.baseUrl = import.meta.env.VITE_APP_BASE_URL || `${location.origin}/api/` + // #endif + // #ifndef H5 + this.baseUrl = import.meta.env.VITE_APP_BASE_URL + // #endif + this.baseUrl.substr(-1) != '/' && (this.baseUrl += '/') + + try { + if (process.env.NODE_ENV == 'development') { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) + } else { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID) + } + this.config.header[import.meta.env.VITE_REQUEST_HEADER_CHANNEL_KEY] = getAppChannel() + } catch (e) { + } + + } + + /** + * 请求拦截器 + */ + private requestInterceptors() { + // 携带token site-id + try { + getToken() && (this.config.header[import.meta.env.VITE_REQUEST_HEADER_TOKEN_KEY] = getToken()) + this.config.header[import.meta.env.VITE_REQUEST_HEADER_CHANNEL_KEY] = getAppChannel() + if (process.env.NODE_ENV == 'development') { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) + } else { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID) + } + } catch (e) { + } + } + + public get(url : string, data : AnyObject = {}, config : RequestConfig = {}) { + return this.request('GET', url, data, config) + } + + public post(url : string, data : AnyObject = {}, config : RequestConfig = {}) { + return this.request('POST', url, data, config) + } + + public put(url : string, data : AnyObject = {}, config : RequestConfig = {}) { + return this.request('PUT', url, data, config) + } + + public delete(url : string, config : RequestConfig = {}) { + return this.request('DELETE', url, {}, config) + } + + /** + * 发送上传请求 + */ + public upload(url : string, data : AnyObject = {}, config : RequestConfig = {}) { + this.requestInterceptors() + + const params = Object.assign(uni.$u.deepClone(this.config), config, { + url: this.baseUrl + url, + ...data + }) + + return new Promise((resolve, reject) => { + uni.uploadFile({ + ...params, + success: res => { + const data = JSON.parse(res.data) + if (data.code == 1) { + this.config.showSuccessMessage && uni.showToast({ title: data.msg, icon: 'none' }) + resolve(data) + } else { + if (data.code == 0 || data.code == 400) { + if (this.config.showErrorMessage !== false) uni.showToast({ title: data.msg, icon: 'none' }) + } else { + this.handleAuthError(data.code) + } + reject(data) + } + }, + fail: res => { + reject(res) + } + }) + }) + } + + /** + * 发送请求 + */ + private request(method : string, url : string, data ?: AnyObject, config : RequestConfig = {}) { + this.requestInterceptors() + + const params = Object.assign(uni.$u.deepClone(this.config), config,{ + url: this.baseUrl + url, + method + }) + + if (params.method.toUpperCase() == 'GET') { + params.url += '?' + qs.stringify(data); + } else { + params.data = data; + } + + return new Promise((resolve, reject) => { + uni.request({ + ...params, + success: res => { + const data = res.data + if (data.code == 1) { + config.showSuccessMessage && uni.showToast({ title: data.msg, icon: 'none' }) + resolve(data) + } else { + if (data.code == 0 || data.code == 400) { + if (config.showErrorMessage !== false) uni.showToast({ title: data.msg, icon: 'none' }) + } else { + this.handleAuthError(data.code) + } + reject(data) + } + }, + fail: res => { + reject(res) + }, + complete: (res) => { + this.handleRequestFail(res) + } + }) + }) + } + + private handleAuthError(code : number) { + switch (code) { + case 401: + // useMemberStore().logout() + uni.showToast({ title:'请登录~',icon:'none',mask:true }) + setTimeout(() => { + uni.navigateTo({ url:'/app/pages/auth/login' }) + }, 1500); + break; + case 402: + redirect({url: '/app/pages/index/close', mode: 'reLaunch'}) + break; + case 403: + redirect({url: '/app/pages/index/nosite', mode: 'reLaunch'}) + break; + } + } + + private handleRequestFail(res) { + if (res.errMsg && res.errMsg == "request:ok") { + if (typeof res.data == 'string') { + // #ifdef H5 + const err = (isUrl(this.baseUrl) ? this.baseUrl : location.origin + this.baseUrl) + t('baseUrlError') + // #endif + // #ifndef H5 + const err = this.baseUrl + t('baseUrlError') + // #endif + uni.showToast({icon: 'none', title: err }) + return + } + } + if (res.errMsg == 'request:fail') { + uni.showToast({ icon: 'none', title: this.baseUrl + t('requestFail') }) + return + } + if (res.errMsg && res.errMsg == 'request:fail url not in domain list') { + uni.showToast({ icon: 'none', title: this.baseUrl + t('notInDomainList') }); + return + } + } +} + +export default new Request() diff --git a/src/utils/storage.ts b/src/utils/storage.ts new file mode 100644 index 0000000..5883789 --- /dev/null +++ b/src/utils/storage.ts @@ -0,0 +1,43 @@ +import { getSiteId } from './common' + +const handleKey = (key: string) : string => { + const siteid = getSiteId(0) + const storageKey = (siteid ? `site${siteid}.` : '') + key + return storageKey +} + +export function uniStorage(){ + const setStorageSync = uni.setStorageSync + const setStorage = uni.setStorage + const getStorage = uni.getStorage + const getStorageSync = uni.getStorageSync + const removeStorage = uni.removeStorage + const removeStorageSync = uni.removeStorageSync + + uni.setStorage = (options: UniNamespace.SetStorageOptions)=> { + options.key = handleKey(options.key) + setStorage(options) + } + + uni.setStorageSync = (key: string, data: any) => { + setStorageSync(handleKey(key), data) + } + + uni.getStorage = (options: UniNamespace.GetStorageOptions) => { + options.key = handleKey(options.key) + getStorage(options) + } + + uni.getStorageSync = (key: string) => { + return getStorageSync(handleKey(key)) + } + + uni.removeStorage = (options: UniNamespace.RemoveStorageOptions) => { + options.key = handleKey(options.key) + removeStorage(options) + } + + uni.removeStorageSync = (key: string) => { + return removeStorageSync(handleKey(key)) + } +} \ No newline at end of file diff --git a/src/utils/wechat.ts b/src/utils/wechat.ts new file mode 100644 index 0000000..c483737 --- /dev/null +++ b/src/utils/wechat.ts @@ -0,0 +1,68 @@ +// #ifdef H5 +import wx from 'weixin-js-sdk' +// #endif +import { getWechatSkdConfig } from '@/app/api/system' +import { isWeixinBrowser } from '@/utils/common' + +class Wechat { + constructor() { + // #ifdef H5 + // isWeixinBrowser() && this.init() + // #endif + } + + public init() { + getWechatSkdConfig({ + url: uni.getSystemInfoSync().platform == 'ios' ? uni.getStorageSync('initUrl') : location.href + }).then((res : responseResult) => { + const { data } = res + wx.config({ + debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 + appId: data.appId, // 必填,公众号的唯一标识 + timestamp: data.timestamp, // 必填,生成签名的时间戳 + nonceStr: data.nonceStr, // 必填,生成签名的随机串 + signature: data.signature,// 必填,签名 + jsApiList: ['chooseWXPay', 'updateAppMessageShareData', 'updateTimelineShareData', 'scanQRCode'] // 必填,需要使用的JS接口列表 + }); + }) + } + + /** + * 发起支付 + */ + public pay(options : WeixinJsSdk.ChooseWXPayOptions) { + wx.ready(() => { + wx.chooseWXPay(options) + }) + } + + /** + * 分享设置 + */ + public share(options : WeixinJsSdk.OnMenuShareAppMessageOptions) { + wx.ready(() => { + // 分享给朋友 + wx.updateAppMessageShareData(options) + // 分享到朋友圈 + wx.updateTimelineShareData(options) + }) + } + + /** + * 扫一扫 + * @param {Object} callback + */ + public scanQRCode(callback:AnyFunction){ + wx.ready(()=> { + wx.scanQRCode({ + needResult: 1, + scanType: ["qrCode"], + success: function (res) { + typeof callback == 'function' && callback(res); + } + }); + }) + } +} + +export default new Wechat() diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..11fffd2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@vue/tsconfig/tsconfig.json", + "compilerOptions": { + "sourceMap": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "lib": ["esnext", "dom"], + "types": ["@dcloudio/types"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..54912ee --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,28 @@ +import {defineConfig} from 'vite' +import uni from '@dcloudio/vite-plugin-uni' +import WindiCSS from 'vite-plugin-windicss' +import MiniProgramTailwind from '@dcasia/mini-program-tailwind-webpack-plugin/rollup' + +const plugins = [ + uni(), + WindiCSS({ + scan: { + dirs: ['.'], // 当前目录下所有文件 + fileExtensions: ['vue', 'js', 'ts'] // 同时启用扫描vue/js/ts + } + }) +] + +process.env.UNI_PLATFORM == 'mp-weixin' && plugins.push(MiniProgramTailwind()) + +export default defineConfig({ + server: { + host: '0.0.0.0', + // port: 6666, + // open:true // vite项目启动时自动打开浏览器 + }, + plugins, + optimizeDeps: { + include: ['dayjs'] + } +}) diff --git a/windi.config.ts b/windi.config.ts new file mode 100644 index 0000000..497da31 --- /dev/null +++ b/windi.config.ts @@ -0,0 +1,77 @@ +import { defineConfig } from 'windicss/helpers' + +export default defineConfig({ + prefixer: false, + preflight: false, + extract: { + exclude: ['node_modules', '.git', 'dist'] + }, + theme: { + extend: { + fontSize: { + xs: ['0.75rem', '1rem'], // 12px + sm: ['0.875rem', '1.25rem'], // 14px + base: ['1rem', '1.5rem'], // 16px + lg: ['1.125rem', '1.75rem'], // 18px + xl: ['1.66rem', '1.75rem'], // 20px + '2xl': ['1.75rem', '2.25rem'] // 28px + }, + colors: { + primary: { + DEFAULT: 'var(--primary-color)', + dark: 'var(--primary-color-dark)', + light: 'var(--primary-color-light)' + }, + red: { + DEFAULT: '#ED1B26', + dark: '#94171D' + }, + blue: '#276EF1', + brown: '#99644C', + green: { + DEFAULT: '#219653', + dark: '#21531C' + }, + orange: '#FB6939', + purple: '#7356BF', + yellow: '#EEAB27', + black: { + DEFAULT: '#161616', + light: '#363636', + pure: '#000000' + }, + gray: { + DEFAULT: '#222222', + pressed: '#2b2b2b', + subtitle: '#757575', + description: '#AFAFAF', + skeleton: '#2c2c2c', + indicator: '#353535', + placeholder: '#c0c4cc' + }, + white: '#FFFFFF', + background: '#282828', + border: 'rgba(117, 117, 117, 0.1)', + page: 'var(--page-bg-color)', + price: '#fc5227' + }, + spacing: { + half: '50%', + '7.5': '1.875rem', + '22': '5.375rem' + }, + borderRadius: { + none: '0', + sm: '0.125rem', + DEFAULT: '0.25rem', + md: '0.375rem', + lg: '0.5rem', + full: '9999px', + large: '12px' + } + } + }, + corePlugins: { + container: false + } +})