commit 7d879ff3bc7f7e6a5a699cc1cbca2d37fb9b8ebb
Author: wtq <2394975549@qq.com>
Date: Thu Nov 13 14:42:30 2025 +0800
'!'
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2561bb4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+.DS_Store
+node_modules/
+unpackage/
+dist/
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.project
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw*
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..a1c56ae
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,27 @@
+{
+ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version" : "0.0",
+ "configurations" : [
+ {
+ "app-plus" : {
+ "launchtype" : "local"
+ },
+ "default" : {
+ "launchtype" : "local"
+ },
+ "mp-weixin" : {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ },
+ {
+ "playground" : "custom",
+ "type" : "uni-app:app-android"
+ },
+ {
+ "playground" : "custom",
+ "type" : "uni-app:app-ios"
+ }
+ ]
+}
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..1ad9917
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,5 @@
+{
+ "singleQuote": true,
+ "semi": false,
+ "trailingComma": "none"
+}
\ No newline at end of file
diff --git a/.stignore b/.stignore
new file mode 100644
index 0000000..ac33e3c
--- /dev/null
+++ b/.stignore
@@ -0,0 +1,3 @@
+node_modules/
+dist/
+.git/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7b1419e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,353 @@
+# 京西菜市商家版
+- 开发:
+ 张树伟
+- 日期:
+ 2022年12月05日
+- 项目说明:
+ 京西菜市商家版本,兼容《微信小程序》《Android》《Ios》
+- 技术栈:Vue3/VueX/Ts/Vite/UniApp
+- 【注意】:请勿使用pinia
+- node版本:16.18.0
+
+## 项目仓库名字
+- jx-Applets-Android-Ios
+
+## 微信小程序
+- 分支名字:微信小程序
+- https://e.coding.net/rosydev/jx-Applets-Android-Ios/zsw-jx-store.git
+
+## 苹果安卓App
+- 分支名字:苹果和微信
+- https://e.coding.net/rosydev/jx-Applets-Android-Ios/zsw-jx-store.git
+
+## 主分支master
+- 微信小程序和苹果安卓App都是从主分支分出来的,主分支受到保护不允许修改,分支不允许合并
+
+# 目录解构
+- 【注意】:由于是小程序与App公用这个书名文件,可能有些文件没有
+```
+├── dist # 编译后的文件
+├── nativeplugins # 原生插件
+├── node_modules # 依赖文件
+├── src # 项目文件
+│ │
+│ ├── api # api接口管理
+│ │ │
+│ │ ├── https # 分模块接口管理
+│ │ │ ├── login.ts # 登录类接口
+│ │ │ ├── merchant.ts # 商家管理类接口
+│ │ │ ├── order.ts # 订单管理类接口
+│ │ │ └── shopping.ts # 商品管理类接口
+│ │ │
+│ │ ├── config.ts # 环境配置文件
+│ │ ├── index.ts # 接汇总导出文件
+│ │ └── request.ts # 接口请求文件
+│ │
+│ ├── components # 组件
+│ │ │
+│ │ ├── dialog # 兼容安卓自定义弹窗
+│ │ ├── globalAlert # 兼容安卓与IOS全局弹窗
+│ │ ├── jx-empty # 空状态占位组件
+│ │ ├── jx-icon # icon图标组件
+│ │ ├── jx-input # 三段式input输入组件
+│ │ ├── jx-ios-android # 安卓与ios渲染判断组件
+│ │ ├── jx-loading # 数据加载loading组件
+│ │ ├── jx-load-more # 上拉加载更多展示组件
+│ │ ├── jx-login-empty # 未登录展示组件
+│ │ ├── jx-price # 自动格式化价格组件
+│ │ ├── jx-real-income # 京西菜市订单单价组件
+│ │ ├── jx-real-income-jxgy # 京西果园订单单价组件
+│ │ ├── jx-update # 软件更新组件
+│ │ └── jx-upload-img # 七牛云图片上传组件
+│ │
+│ ├── composables # 公共hooks
+│ │ │
+│ │ ├── useGlobalFunc.ts # 全局公用 hooks
+│ │ └── useOrderInfo.ts # 订单专用 hooks
+│ │
+│ ├── pages # tabbar页面
+│ │ │
+│ │ ├── goods-manager # 商品管理页面
+│ │ ├── merchant # 商家中心页面
+│ │ └── order-manager # 订单管理页面
+│ │
+│ ├── static # 静态文件
+│ │ │
+│ │ ├── agreement # 静态版权文件
+│ │ ├── audio # 项目音频文件
+│ │ ├── font # 项目图标文件
+│ │ ├── image # 项目图片文件
+│ │ ├── merchant-icon # 商家中心图标文件
+│ │ └── style # 公共样式文件
+│ │
+│ ├── store # vuex状态管理
+│ │ │
+│ │ ├── useServeInfoStore # 项目服务类vuex模块
+│ │ ├── useStoreInfoStore # 项目门店类vuex模块
+│ │ └── index.ts # vuex 入口文件
+│ │
+│ ├── subPages # 分包页面
+│ │ │
+│ │ ├── agreement # 静态版权文件
+│ │ ├── login # 登录相关类页面
+│ │ ├── merchantChild # 商家中心类子页面
+│ │ │ │
+│ │ │ ├── activity # 活动信息页面
+│ │ │ ├── backstageApp # 后天运行能力页面
+│ │ │ ├── bill # 我的账单页面
+│ │ │ ├── billDetaile # 账单详情页面
+│ │ │ ├── businessLicense # 营业资质页面
+│ │ │ ├── enterGroupChat # 进入群聊页面
+│ │ │ ├── evaluateM # 评价管理页面
+│ │ │ ├── helpCenter # 帮助中心页面
+│ │ │ ├── message # 消息列表页面
+│ │ │ ├── messageDetail # 消息详情页面
+│ │ │ ├── modifyPrice # 调价包页面
+│ │ │ ├── orderRealTime # 京西菜市营业数据页面
+│ │ │ ├── orderRealTimeJxgy # 京西果园营业数据页面
+│ │ │ ├── platformM # 已开通店铺店铺页面
+│ │ │ ├── printerSetUp # 蓝牙打印机设置页面
+│ │ │ ├── setUp # 设置页面
+│ │ │ ├── storeScore # 门店评分页面
+│ │ │ ├── storeScoreDetaile # 评分详情页面
+│ │ │ ├── useInfo # 个人信息页面
+│ │ │ ├── waitGoods # 待配商品页面
+│ │ │ ├── accountBalance # 配送余额
+│ │ │ └── waitGoodsDetaile # 商品详情页面
+│ │ │
+│ │ ├── orderChild # 订单类子页面
+│ │ │ │
+│ │ │ ├── afterSalesOrderDetail # 售后订单页面
+│ │ │ ├── createAfterSales # 异常订单页面
+│ │ │ ├── deliverManager # 配送管理页面
+│ │ │ ├── getPhone # 联系平台页面
+│ │ │ └── orderDetail # 订单详情页面
+│ │ │
+│ │ ├── shoppingChild # 商品管理类子页面
+│ │ │ │
+│ │ │ └── createGoods # 创建商品
+│ │ │
+│ │ └── switchStore # 切换门店
+│ │
+│ ├── utils # 工具
+│ │ │
+│ │ ├── bluetoothPrinter # 蓝牙打印机类工具
+│ │ ├── android_ios.ts # 安卓插件类工具
+│ │ ├── configCms.ts # 项目系统配置文件
+│ │ ├── location.ts # 本地存储工具
+│ │ ├── toast.ts # 公共请提示工具
+│ │ └── tools.ts # 混合类处理工具
+│ │
+│ ├── androidPrivacy.json # 安卓打包文件
+│ ├── App.ts # 根组件逻辑
+│ ├── App.vue # 根组件页面
+│ ├── apple-app-site-association # ios 关联域
+│ ├── env.d.ts # type 授权文件
+│ ├── main.ts # 入口文件
+│ ├── manifest.json # 打包配置文件
+│ ├── pages.json # 页面路径配置
+│ └── uni.scss # 公共样式
+│
+├── package-lock.json # ***
+├── package.json # 包管理文件
+├── README.md # README
+├── tsconfig.node.json # ts配置文件
+└── vite.config.ts # vite 配置
+```
+
+# 路径管理
+
+## 验证登录
+
+
+路径:
+/subPages/login/index
+
+### 选择门店
+
+
+路径:
+/subPages/switchStore/switchStore
+
+#### 商家中心
+
+
+##### 帮助中心
+
+
+路径:
+/subPages/merchantChild/helpCenter/helpCenter
+
+##### 营业数据
+
+
+###### 京西菜市
+
+
+路径:
+/subPages/merchantChild/orderRealTime/orderRealTime
+
+###### 京西果园
+
+
+路径:
+/subPages/merchantChild/orderRealTimeJxgy/orderRealTimeJxgy
+
+##### 已开通店铺
+
+
+路径:
+/subPages/merchantChild/platformM/platformM
+
+##### 调价包
+
+
+路径:
+/subPages/merchantChild/modifyPrice/modifyPrice
+
+##### 我的账单
+
+
+路径:
+/subPages/merchantChild/bill/bill
+
+##### 账单详情
+
+
+路径:
+/subPages/merchantChild/billDetaile/billDetaile
+
+##### 评价管理
+
+
+路径:
+/subPages/merchantChild/evaluateM/evaluateM
+
+##### 门店评分
+
+
+路径:
+/subPages/merchantChild/storeScore/storeScore
+
+##### 评分详情
+
+
+路径:
+/subPages/merchantChild/storeScoreDetaile/storeScoreDetaile
+
+##### 待配商品
+
+
+路径:
+/subPages/merchantChild/waitGoods/waitGoods
+
+##### 商品详情
+
+
+路径:
+/subPages/merchantChild/waitGoodsDetaile/waitGoodsDetaile
+
+##### 进入群聊
+
+
+路径:
+/subPages/merchantChild/enterGroupChat/enterGroupChat
+
+##### 消息列表
+
+
+路径:
+/subPages/merchantChild/message/message
+
+##### 最新消息
+
+
+路径:
+/subPages/merchantChild/messageDetail/messageDetail
+
+##### 活动信息
+
+
+路径:
+/subPages/merchantChild/activity/activity
+
+##### 设置
+
+
+路径:
+/subPages/merchantChild/setUp/setUp
+
+##### 蓝牙打印机设置
+
+
+路径:
+/subPages/merchantChild/printerSetUp/printerSetUp
+
+##### 营业资质
+
+
+路径:
+/subPages/merchantChild/businessLicense/businessLicense
+
+##### 后台运行优化
+
+
+路径:
+/subPages/merchantChild/backstageApp/backstageApp
+
+##### 个人信息
+
+
+路径:
+/subPages/merchantChild/useInfo/useInfo
+
+##### 配送余额
+
+
+路径:
+/subPages/merchantChild/accountBalance/accountBalance
+
+#### 消息
+
+
+#### 商品管理
+
+
+##### 创建商品
+
+
+路径:
+/subPages/shoppingChild/createGoods/createGoods
+
+#### 订单管理
+
+
+##### 联系平台
+
+
+路劲:
+/subPages/orderChild/getPhone/getPhone
+
+##### 订单详情
+
+
+路劲:
+/subPages/orderChild/orderDetail/orderDetail
+
+##### 配送管理
+
+
+路劲:
+/subPages/orderChild/deliverManager/deliverManager
+
+##### 售后详情
+
+
+路劲:
+/subPages/orderChild/afterSalesOrderDetail/afterSalesOrderDetail
+
+##### 创建售后订单
+
+
+路劲:
+/subPages/orderChild/createAfterSales/createAfterSales
\ No newline at end of file
diff --git a/dfslkf b/dfslkf
new file mode 100644
index 0000000..8420b37
--- /dev/null
+++ b/dfslkf
@@ -0,0 +1,59 @@
+[33mcommit 7901bd96fe23f9d130bbedfe0bc441fab52fc59e[m[33m ([m[1;36mHEAD -> [m[1;32mmaster[m[33m, [m[1;31morigin/master[m[33m, [m[1;31morigin/HEAD[m[33m)[m
+Author: ZSW <2966211270@qq.com>
+Date: Wed Jan 4 18:39:57 2023 +0800
+
+ 2023-01-04提交
+
+[33mcommit f6d6996ffbad8d07f1b129f3f1304c819c53e561[m
+Author: ZSW <2966211270@qq.com>
+Date: Tue Jan 3 18:43:00 2023 +0800
+
+ !
+
+[33mcommit 9b41c0ff3a3c875ef455e2d5e8958568f21face2[m
+Author: ZSW <2966211270@qq.com>
+Date: Fri Dec 30 18:32:55 2022 +0800
+
+ 开发新商家版,手写虚拟列表
+
+[33mcommit 9658b3d85f6f872d7b72102a3448b52c29bd456d[m
+Author: ZSW <2966211270@qq.com>
+Date: Wed Dec 28 18:34:01 2022 +0800
+
+ !
+
+[33mcommit 79b2c5bdb5137a457f5f9f690f7ac6b4ac020ca7[m
+Author: ZSW <2966211270@qq.com>
+Date: Tue Dec 27 18:34:44 2022 +0800
+
+ 重写京西菜市商家版
+
+[33mcommit 1b8cf88cc744e9f0726645082a26124f6567baa6[m
+Author: ZSW <2966211270@qq.com>
+Date: Mon Dec 26 18:38:37 2022 +0800
+
+ 新京西菜市商家版开发中
+
+[33mcommit 7270386733f06f60a35ebd538b49b5dc6a9af967[m
+Author: ZSW <2966211270@qq.com>
+Date: Thu Dec 15 11:53:30 2022 +0800
+
+ !
+
+[33mcommit dd19476dcecbe77d51d14bd4b25254b1f737b535[m
+Author: ZSW <2966211270@qq.com>
+Date: Mon Dec 12 18:29:15 2022 +0800
+
+ 登录界面向店铺切换兼容已经处理
+
+[33mcommit 38c0633c4276496845d87e8193fc5f9c121ac051[m
+Author: ZSW <2966211270@qq.com>
+Date: Fri Dec 9 18:53:54 2022 +0800
+
+ 创建新编京西菜市商家版,兼容微信小程序,安卓App,iso
+
+[33mcommit 6095cb13ce5472a9ea46781bf0be4c4c8b107117[m
+Author: 张树伟 <2966211270@qq.com>
+Date: Fri Dec 9 18:50:54 2022 +0800
+
+ Initial Commit
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..2b9bfe5
--- /dev/null
+++ b/index.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..cf75248
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,7014 @@
+{
+ "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-3061820230117001",
+ "@dcloudio/uni-app-plus": "3.0.0-3061820230117001",
+ "@dcloudio/uni-components": "3.0.0-3061820230117001",
+ "@dcloudio/uni-h5": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-alipay": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-baidu": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-kuaishou": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-lark": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-qq": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-toutiao": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-3061820230117001",
+ "@dcloudio/uni-quickapp-webview": "3.0.0-3061820230117001",
+ "@dcloudio/uni-ui": "^1.4.23",
+ "@rollup/plugin-commonjs": "^25.0.1",
+ "add": "^2.0.6",
+ "crypto-js": "^4.1.1",
+ "js-md5": "^0.7.3",
+ "vue": "3.2.45",
+ "vue-i18n": "9.2.2",
+ "vuex": "^4.0.2"
+ },
+ "devDependencies": {
+ "@dcloudio/types": "3.2.11",
+ "@dcloudio/uni-automator": "3.0.0-3061820230117001",
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-stacktracey": "3.0.0-3061820230117001",
+ "@dcloudio/vite-plugin-uni": "3.0.0-3061820230117001",
+ "@types/js-md5": "^0.4.3",
+ "@types/node": "^18.11.11",
+ "sass": "^1.56.1",
+ "typescript": "^4.8.4",
+ "vite": "3.2.4"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.20.5.tgz",
+ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.20.5.tgz",
+ "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-module-transforms": "^7.20.2",
+ "@babel/helpers": "^7.20.5",
+ "@babel/parser": "^7.20.5",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.20.5.tgz",
+ "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==",
+ "dependencies": {
+ "@babel/types": "^7.20.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+ "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.20.0",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
+ "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "dependencies": {
+ "@babel/template": "^7.18.10",
+ "@babel/types": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
+ "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
+ "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.20.2",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
+ "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/traverse": "^7.19.1",
+ "@babel/types": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "dependencies": {
+ "@babel/types": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.20.6.tgz",
+ "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==",
+ "dependencies": {
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz",
+ "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.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-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz",
+ "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.20.2",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-typescript": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/standalone": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmmirror.com/@babel/standalone/-/standalone-7.20.6.tgz",
+ "integrity": "sha512-u5at/CbBLETf7kx2LOY4XdhseD79Y099WZKAOMXeT8qvd9OSR515my2UNBBLY4qIht/Qi9KySeQHQwQwxJN4Sw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.20.5.tgz",
+ "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz",
+ "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@dcloudio/types": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.2.11.tgz",
+ "integrity": "sha512-Ws+pUiQMvCcSjg0soF+vTTwwsdNlK/1cxIfo5LBBDFPoXfUAAh6k9HnCt5cudERNhY0M3wE7ATMx/1Cb9bmUig=="
+ },
+ "node_modules/@dcloudio/uni-app": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-djQ/vtYqjbwctrs4DMQPTKAY1+8mb3MVCJqO6tis34jIOkMUqI/weB4VxZyR1rMT+bahaNtwKrUMr5bNUktArw==",
+ "dependencies": {
+ "@dcloudio/uni-cloud": "3.0.0-3061820230117001",
+ "@dcloudio/uni-components": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-push": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-stat": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ },
+ "peerDependencies": {
+ "@dcloudio/types": "^3.0.20"
+ }
+ },
+ "node_modules/@dcloudio/uni-app-plus": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-+0/CEKKBOq+5jiZsi1Lz9B7rPN781VShJaQY6Urgp5t4ne5sAF68XW00whHKGwdOlloIVHXN4qdblUP7qO9GGw==",
+ "dependencies": {
+ "@dcloudio/uni-app-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-app-vue": "3.0.0-3061820230117001"
+ }
+ },
+ "node_modules/@dcloudio/uni-app-vite": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-KMMOIzvTxjOnvX15JBLWULXKMU+pBQ/GTerM0KsNEMUnhKo5F8WuO6ZPQBUBgnncD+iQyGbAYn2IWlrRY+ftiQ==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-nvue-styler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@rollup/pluginutils": "^4.2.0",
+ "@vitejs/plugin-vue": "^3.2.0",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "debug": "^4.3.3",
+ "fs-extra": "^10.0.0",
+ "picocolors": "^1.0.0",
+ "rollup": "^2.79.1"
+ }
+ },
+ "node_modules/@dcloudio/uni-app-vue": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-+EXrTPN13Dt6t8/mdTPsIwKoeekl36S6Rq7Qq+oEVN937BHapRZ8BifwwbRkZI/lvPs3oLS8M4LlH17pEQ2ljg=="
+ },
+ "node_modules/@dcloudio/uni-automator": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-28Li+A3vXHxK34xcyoQyXCy/2NXtpGqc2XUf4Hm73X/cl2zXyUy5oClzolsWQlnN1gAqQhagcHLu4h+zc7J1Dw==",
+ "dev": true,
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "address": "^1.1.2",
+ "cross-env": "^7.0.3",
+ "debug": "^4.3.3",
+ "default-gateway": "^6.0.3",
+ "fs-extra": "^10.0.0",
+ "licia": "^1.29.0",
+ "postcss-selector-parser": "^6.0.6",
+ "qrcode-reader": "^1.0.4",
+ "qrcode-terminal": "^0.12.0",
+ "ws": "^8.4.2"
+ }
+ },
+ "node_modules/@dcloudio/uni-cli-shared": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-MOk7IG2U6iMF4t+2hZsCpWC+ulkC5jU556C9Vh9qpq5ofjs4vqeQ3irz+Z+XcysG6oaneL53pXx0saItQey7fA==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.1.2",
+ "@babel/core": "^7.19.6",
+ "@babel/parser": "^7.19.6",
+ "@babel/types": "^7.20.0",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@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.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "autoprefixer": "^10.4.13",
+ "base64url": "^3.0.1",
+ "chokidar": "^3.5.3",
+ "compare-versions": "^3.6.0",
+ "debug": "^4.3.3",
+ "es-module-lexer": "^0.9.3",
+ "esbuild": "^0.15.9",
+ "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.26.7",
+ "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-cloud": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-YeDLoA3DTfuU6kSpFk96AIcJKtvbJbGcF+bbZBtW9htkKx7zhpDRTL0Q5zOqsGU9YJn8i3h79k/rusM0XpoG6g==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45",
+ "fast-glob": "^3.2.11"
+ }
+ },
+ "node_modules/@dcloudio/uni-components": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-QL24hL7EzgZj5bNF7xMCg85EVveSaOfb7aYBsSs/3Gv6iq9cXurh7jRA/nJyhb+7G9yt7H3ab9b6DvP/XjwFCg=="
+ },
+ "node_modules/@dcloudio/uni-h5": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-C600DG4DTVkIPvlPcnR/Z2DiyQnk30zQWrGNjotjH0OZPlInDxvBikXxOStAhbHA9/0sJAb++ZQiDAME2c85HA==",
+ "dependencies": {
+ "@dcloudio/uni-h5-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-h5-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "localstorage-polyfill": "^1.0.1",
+ "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-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-vdyx0Hd5dNWydgElNtZz3cgPJYGUDa1e7TGcpVubcnX6Dda6WhxZhidughyx76j0G/nADY9d7vBZFhA0Xg8nNg==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@rollup/pluginutils": "^4.2.0",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "debug": "^4.3.3",
+ "fs-extra": "^10.0.0",
+ "mime": "^3.0.0",
+ "module-alias": "^2.2.2"
+ }
+ },
+ "node_modules/@dcloudio/uni-h5-vue": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-HsO8I2RfR/87QEmop0T+Heaso/j4FryQrnxzu2mJA2oCtq4sPs3uJvaTA7V2rpYFKsXUVE4rMRq+FkjHCAIlGA==",
+ "dependencies": {
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001"
+ }
+ },
+ "node_modules/@dcloudio/uni-i18n": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-Zi9W62ASUJ5302mXi9Ux4cM2cesmmzluYdAUMYyWWhgsycaIMbI8tYEWlIk5j6KAap7Be2hxgIo/O34X9IzJCA=="
+ },
+ "node_modules/@dcloudio/uni-mp-alipay": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-Me5Zw6lxr8L0J1g7cTmTVlICW5xjrC4gT15IKjs2ZLVnxpiU/t7J/WbE2KKOHg8mRMDmM77k88PL+MmLMJrc7g==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-baidu": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-dCZ+wrh06JvxCAYXvL8WsZDEUz8IQVGD25TAgJ8Uez+CWTScmYYrO6/gP5u6o5a/rAR85ldI1Pv4Xlqyp95MXg==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-compiler": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-wxPSdSXs5y+3QPLuxcp3TOzV33/NiBkewWAN0Mij33dLiErZrjRvvUuef7MptOzgc1TJoQizzS5f0PKYmqnhNg==",
+ "dependencies": {
+ "@babel/generator": "^7.19.6",
+ "@babel/parser": "^7.19.6",
+ "@babel/types": "^7.20.0",
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "estree-walker": "^2.0.2"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-kuaishou": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-u9vsslqwWmxSSVtHUNIDADXLeumNzSs/L0JlYlX7ofgPEoVLwQqBIRxKoR/RdDtiywPYS9J3VzGeArD9LdZefw==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-lark": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-dZKho5F15CzNZqIALDzlG1GX3Ny5R0zqMYd1Ny6J/rcmtPbxXblHb5uGxBYbDTv3z7/yjRqoqQCQk+9tW9Lb/g==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-toutiao": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-qq": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-MmPR703fqxz8uvqHvagAGPSS8whIf9pxPerbaM1AVXiQfiawOxyhqyIxlIvTFDMbA0Nyq0Zd2U+KjT5yn4f9LQ==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45",
+ "fs-extra": "^10.0.0"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-toutiao": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-5tKFOXv4JTKA1pfGoWD8AwN28RAe6cPRxSaUkLsNdIzldZ3fozX6vrsfOMkUBSQwcp9au35q5X+mk+KPesBnnA==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-vite": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-zyX0DD8NZm7S1qXGp6dUNqK7klkDx4M9onxT61ilSEwCdBHCEs33zjDT/EIyWLXC+8uis+3KmlAUZUgkwXzx1A==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "debug": "^4.3.3"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-vue": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-J/wAfFh269Lx3nZ5CEJonq3dzAxeM1uc+pnGs1MQwBT3ZK8TNopYRUgri4hrEF+srVuCcZWM9RNw8RXsSBosaw==",
+ "dependencies": {
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-mp-weixin": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-qH4TbUPcqCccso8YIir9r9Vu/dyD9VrK3btAWxXY39gq6AahHomO5Y0Jl4+ODvS2qeQMBIDGyg5twL3G+uKPpw==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-nvue-styler": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-tAR+wYThaojYFCg2aUv3G6nva9DMDIOkeYZ4WeCTf3cO+V1PAETElJEiPa3De5Apg7Jqb48SiKTFTm9PX9yxUw==",
+ "dependencies": {
+ "@vue/shared": "3.2.45",
+ "parse-css-font": "^4.0.0",
+ "postcss": "^8.4.18"
+ }
+ },
+ "node_modules/@dcloudio/uni-push": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-ilhEPcdZSlih9/6ztm8J87XZJH82/FT0swlpz2EMq8fzRGlk1kSNy7MWpNF9QN3S2WGA/Q2TlMr9qg4buhdAHw==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001"
+ }
+ },
+ "node_modules/@dcloudio/uni-quickapp-webview": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-a1O/Wpe2lI0PHLZnDVtEzAYYZ/JGgQ8OAKbJflAD29kgVynpRKx3Imepjqsk1vk1xac2CZvi7C9MBaBA73D6Cw==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-shared": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-vgvBeR5yxQ7quBOT63BN02RbfD2Si1fyll3j1SXqp37wdyRILBzaveFg8xQCMI0DdPL8kdIHTeG8d23ct6W9aQ==",
+ "dependencies": {
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@dcloudio/uni-stacktracey": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-BDNZQWjD14BaOvzs9YU/ajX9KxOqubJXVfbwsXZnHCURNzPYE5j7EtW7Na6f9n8f79X0nkPRvEdIeKHUe3rNtw==",
+ "dev": true
+ },
+ "node_modules/@dcloudio/uni-stat": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-wYC/cUSEwPmSbT13PcphSywLOK+XrsYGrfRaNfDY5IdGlrHIhtX/BvsJiYh7crAsQEUhgmCcA7VvJmkiQM3DAg==",
+ "dependencies": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "debug": "^4.3.3"
+ }
+ },
+ "node_modules/@dcloudio/uni-ui": {
+ "version": "1.4.23",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.4.23.tgz",
+ "integrity": "sha512-FJRkhL240gin9WvOunY38Yi2/0FzTLVlEI3dxcjzaV1oYa81o+IWEf/29YDiRrsHuvYDk9g600QgiZLC+A6ycA=="
+ },
+ "node_modules/@dcloudio/vite-plugin-uni": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-ANAsCstpdd/FQUIShqYt5V8C7YC2J6LQcfqd5I7jqLiS/VTz7nC3TTA1EzsU0H7jdwJ9mvr9ro3nFXmqF2Hsmw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.19.6",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-transform-typescript": "^7.20.0",
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@rollup/pluginutils": "^4.2.0",
+ "@vitejs/plugin-legacy": "^2.3.1",
+ "@vitejs/plugin-vue": "^3.2.0",
+ "@vitejs/plugin-vue-jsx": "^2.1.1",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "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",
+ "picocolors": "^1.0.0",
+ "terser": "^5.4.0"
+ },
+ "bin": {
+ "uni": "bin/uni.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "3.2.4"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
+ "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
+ "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "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/@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "devOptional": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "devOptional": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "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": "25.0.1",
+ "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.1.tgz",
+ "integrity": "sha512-2DJ4kv4b1xfTJopWhu61ANdNRHvzQZ2fpaIrlgaP2jOfUv1wDJ0Ucqy8AZlbFmn/iUjiwKoqki9j55Y6L8kyNQ==",
+ "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.0.2",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "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"
+ },
+ "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==",
+ "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/@types/estree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz",
+ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
+ },
+ "node_modules/@types/js-md5": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmmirror.com/@types/js-md5/-/js-md5-0.4.3.tgz",
+ "integrity": "sha512-BIga/WEqTi35ccnGysOuO4RmwVnpajv9oDB/sDQSY2b7/Ac7RyYR30bv7otZwByMvOJV9Vqq6/O1DFAnOzE4Pg==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "18.11.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz",
+ "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==",
+ "devOptional": true
+ },
+ "node_modules/@vitejs/plugin-legacy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-2.3.1.tgz",
+ "integrity": "sha512-J5KaGBlSt2tEYPVjM/C8dA6DkRzkFkbPe+Xb4IX5G+XOV5OGbVAfkMjKywdrkO3gGynO8S98i71Lmsff4cWkCQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/standalone": "^7.20.0",
+ "core-js": "^3.26.0",
+ "magic-string": "^0.26.7",
+ "regenerator-runtime": "^0.13.10",
+ "systemjs": "^6.13.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "terser": "^5.4.0",
+ "vite": "^3.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
+ "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==",
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue-jsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-2.1.1.tgz",
+ "integrity": "sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.19.6",
+ "@babel/plugin-transform-typescript": "^7.20.0",
+ "@vue/babel-plugin-jsx": "^1.1.1"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0",
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@vue/babel-helper-vue-transform-on": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz",
+ "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==",
+ "dev": true
+ },
+ "node_modules/@vue/babel-plugin-jsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz",
+ "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.0.0",
+ "@babel/types": "^7.0.0",
+ "@vue/babel-helper-vue-transform-on": "^1.0.2",
+ "camelcase": "^6.0.0",
+ "html-tags": "^3.1.0",
+ "svg-tags": "^1.0.0"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
+ "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.45",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
+ "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
+ "dependencies": {
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
+ "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-ssr": "3.2.45",
+ "@vue/reactivity-transform": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "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.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
+ "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.4.5",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz",
+ "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz",
+ "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
+ "dependencies": {
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@vue/reactivity-transform": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
+ "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "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/runtime-core": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
+ "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
+ "dependencies": {
+ "@vue/reactivity": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
+ "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
+ "dependencies": {
+ "@vue/runtime-core": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "csstype": "^2.6.8"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
+ "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.2.45",
+ "@vue/shared": "3.2.45"
+ },
+ "peerDependencies": {
+ "vue": "3.2.45"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
+ "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
+ },
+ "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.8.1",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "devOptional": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/add": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/add/-/add-2.0.6.tgz",
+ "integrity": "sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q=="
+ },
+ "node_modules/address": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/address/-/address-1.2.1.tgz",
+ "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "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/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/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/autoprefixer": {
+ "version": "10.4.13",
+ "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "caniuse-lite": "^1.0.30001426",
+ "fraction.js": "^4.2.0",
+ "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/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "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/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "dev": true,
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "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.1",
+ "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/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "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/browserslist": {
+ "version": "4.21.4",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz",
+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "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.30001436",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz",
+ "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg=="
+ },
+ "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/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "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/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=="
+ },
+ "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/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.4",
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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=="
+ },
+ "node_modules/cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "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.26.1",
+ "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.26.1.tgz",
+ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==",
+ "dev": true,
+ "hasInstallScript": true
+ },
+ "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/crypto-js": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz",
+ "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
+ },
+ "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-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/csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+ },
+ "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/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/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/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.284",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
+ },
+ "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/es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
+ },
+ "node_modules/esbuild": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.18.tgz",
+ "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.15.18",
+ "@esbuild/linux-loong64": "0.15.18",
+ "esbuild-android-64": "0.15.18",
+ "esbuild-android-arm64": "0.15.18",
+ "esbuild-darwin-64": "0.15.18",
+ "esbuild-darwin-arm64": "0.15.18",
+ "esbuild-freebsd-64": "0.15.18",
+ "esbuild-freebsd-arm64": "0.15.18",
+ "esbuild-linux-32": "0.15.18",
+ "esbuild-linux-64": "0.15.18",
+ "esbuild-linux-arm": "0.15.18",
+ "esbuild-linux-arm64": "0.15.18",
+ "esbuild-linux-mips64le": "0.15.18",
+ "esbuild-linux-ppc64le": "0.15.18",
+ "esbuild-linux-riscv64": "0.15.18",
+ "esbuild-linux-s390x": "0.15.18",
+ "esbuild-netbsd-64": "0.15.18",
+ "esbuild-openbsd-64": "0.15.18",
+ "esbuild-sunos-64": "0.15.18",
+ "esbuild-windows-32": "0.15.18",
+ "esbuild-windows-64": "0.15.18",
+ "esbuild-windows-arm64": "0.15.18"
+ }
+ },
+ "node_modules/esbuild-android-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
+ "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
+ "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
+ "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
+ "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
+ "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
+ "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
+ "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
+ "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
+ "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
+ "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
+ "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
+ "cpu": [
+ "mips64el"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
+ "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
+ "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
+ "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
+ "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
+ "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
+ "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
+ "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
+ "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
+ "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "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/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/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/express": {
+ "version": "4.18.2",
+ "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "dev": true,
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.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/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "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/fastq": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz",
+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "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/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.2.0",
+ "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz",
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
+ "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=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "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-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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==",
+ "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/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/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "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-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/html-tags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz",
+ "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/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/immutable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz",
+ "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
+ "devOptional": true
+ },
+ "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==",
+ "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=="
+ },
+ "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-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.11.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "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-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-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "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/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/js-md5": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
+ "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+ },
+ "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/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/json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+ },
+ "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/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/licia": {
+ "version": "1.37.0",
+ "resolved": "https://registry.npmmirror.com/licia/-/licia-1.37.0.tgz",
+ "integrity": "sha512-jX49+WmzikOPGNrcy/giS23HCI8Pb7RF585Ei5d7oWF4WMelaZWv4odqQNdT0jtHkoUxqSvPz67Jvyq06xamUA==",
+ "dev": true
+ },
+ "node_modules/lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/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/magic-string": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz",
+ "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==",
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/module-alias": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz",
+ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q=="
+ },
+ "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/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "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-releases": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz",
+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
+ },
+ "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/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true
+ },
+ "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==",
+ "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/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/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-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/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "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/postcss": {
+ "version": "8.4.19",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz",
+ "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==",
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "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.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
+ "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
+ "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
+ "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.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
+ "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
+ "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.11",
+ "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "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/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/qrcode-reader": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz",
+ "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
+ "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/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.1",
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "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/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/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==",
+ "dev": true
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ }
+ },
+ "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/rollup": {
+ "version": "2.79.1",
+ "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz",
+ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=10.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.56.1",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.56.1.tgz",
+ "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==",
+ "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": ">=12.0.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "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/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.4",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "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/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.0.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "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/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/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/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-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/systemjs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.13.0.tgz",
+ "integrity": "sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==",
+ "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/terser": {
+ "version": "5.16.1",
+ "resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "devOptional": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/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/typescript": {
+ "version": "4.9.4",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "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.10",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist-lint": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "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/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": "3.2.4",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz",
+ "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==",
+ "dependencies": {
+ "esbuild": "^0.15.9",
+ "postcss": "^8.4.18",
+ "resolve": "^1.22.1",
+ "rollup": "^2.79.1"
+ },
+ "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/vue": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
+ "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/runtime-dom": "3.2.45",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/vue-i18n": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz",
+ "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==",
+ "dependencies": {
+ "@intlify/core-base": "9.2.2",
+ "@intlify/shared": "9.2.2",
+ "@intlify/vue-devtools": "9.2.2",
+ "@vue/devtools-api": "^6.2.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/vue-i18n/node_modules/@intlify/core-base": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz",
+ "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==",
+ "dependencies": {
+ "@intlify/devtools-if": "9.2.2",
+ "@intlify/message-compiler": "9.2.2",
+ "@intlify/shared": "9.2.2",
+ "@intlify/vue-devtools": "9.2.2"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/vue-i18n/node_modules/@intlify/devtools-if": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz",
+ "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==",
+ "dependencies": {
+ "@intlify/shared": "9.2.2"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/vue-i18n/node_modules/@intlify/message-compiler": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz",
+ "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==",
+ "dependencies": {
+ "@intlify/shared": "9.2.2",
+ "source-map": "0.6.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/vue-i18n/node_modules/@intlify/shared": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz",
+ "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/vue-i18n/node_modules/@intlify/vue-devtools": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz",
+ "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==",
+ "dependencies": {
+ "@intlify/core-base": "9.2.2",
+ "@intlify/shared": "9.2.2"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/vue-router": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz",
+ "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.4.5"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "node_modules/vuex": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.0.2.tgz",
+ "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.0.0-beta.11"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.2"
+ }
+ },
+ "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/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/ws": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+ "dev": true,
+ "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/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/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ }
+ },
+ "dependencies": {
+ "@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.20.5.tgz",
+ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g=="
+ },
+ "@babel/core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.20.5.tgz",
+ "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==",
+ "requires": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-module-transforms": "^7.20.2",
+ "@babel/helpers": "^7.20.5",
+ "@babel/parser": "^7.20.5",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.20.5.tgz",
+ "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==",
+ "requires": {
+ "@babel/types": "^7.20.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+ "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "requires": {
+ "@babel/compat-data": "^7.20.0",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
+ },
+ "@babel/helper-function-name": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
+ "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "requires": {
+ "@babel/template": "^7.18.10",
+ "@babel/types": "^7.19.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
+ "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
+ "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.20.2",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "dev": true
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
+ "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/traverse": "^7.19.1",
+ "@babel/types": "^7.19.0"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "requires": {
+ "@babel/types": "^7.20.2"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
+ },
+ "@babel/helpers": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.20.6.tgz",
+ "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==",
+ "requires": {
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz",
+ "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA=="
+ },
+ "@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-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz",
+ "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.20.2",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-typescript": "^7.20.0"
+ }
+ },
+ "@babel/standalone": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmmirror.com/@babel/standalone/-/standalone-7.20.6.tgz",
+ "integrity": "sha512-u5at/CbBLETf7kx2LOY4XdhseD79Y099WZKAOMXeT8qvd9OSR515my2UNBBLY4qIht/Qi9KySeQHQwQwxJN4Sw==",
+ "dev": true
+ },
+ "@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.20.5.tgz",
+ "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz",
+ "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@dcloudio/types": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.2.11.tgz",
+ "integrity": "sha512-Ws+pUiQMvCcSjg0soF+vTTwwsdNlK/1cxIfo5LBBDFPoXfUAAh6k9HnCt5cudERNhY0M3wE7ATMx/1Cb9bmUig=="
+ },
+ "@dcloudio/uni-app": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-djQ/vtYqjbwctrs4DMQPTKAY1+8mb3MVCJqO6tis34jIOkMUqI/weB4VxZyR1rMT+bahaNtwKrUMr5bNUktArw==",
+ "requires": {
+ "@dcloudio/uni-cloud": "3.0.0-3061820230117001",
+ "@dcloudio/uni-components": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-push": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-stat": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-app-plus": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-+0/CEKKBOq+5jiZsi1Lz9B7rPN781VShJaQY6Urgp5t4ne5sAF68XW00whHKGwdOlloIVHXN4qdblUP7qO9GGw==",
+ "requires": {
+ "@dcloudio/uni-app-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-app-vue": "3.0.0-3061820230117001"
+ }
+ },
+ "@dcloudio/uni-app-vite": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-KMMOIzvTxjOnvX15JBLWULXKMU+pBQ/GTerM0KsNEMUnhKo5F8WuO6ZPQBUBgnncD+iQyGbAYn2IWlrRY+ftiQ==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-nvue-styler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@rollup/pluginutils": "^4.2.0",
+ "@vitejs/plugin-vue": "^3.2.0",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "debug": "^4.3.3",
+ "fs-extra": "^10.0.0",
+ "picocolors": "^1.0.0",
+ "rollup": "^2.79.1"
+ }
+ },
+ "@dcloudio/uni-app-vue": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-+EXrTPN13Dt6t8/mdTPsIwKoeekl36S6Rq7Qq+oEVN937BHapRZ8BifwwbRkZI/lvPs3oLS8M4LlH17pEQ2ljg=="
+ },
+ "@dcloudio/uni-automator": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-28Li+A3vXHxK34xcyoQyXCy/2NXtpGqc2XUf4Hm73X/cl2zXyUy5oClzolsWQlnN1gAqQhagcHLu4h+zc7J1Dw==",
+ "dev": true,
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "address": "^1.1.2",
+ "cross-env": "^7.0.3",
+ "debug": "^4.3.3",
+ "default-gateway": "^6.0.3",
+ "fs-extra": "^10.0.0",
+ "licia": "^1.29.0",
+ "postcss-selector-parser": "^6.0.6",
+ "qrcode-reader": "^1.0.4",
+ "qrcode-terminal": "^0.12.0",
+ "ws": "^8.4.2"
+ }
+ },
+ "@dcloudio/uni-cli-shared": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-MOk7IG2U6iMF4t+2hZsCpWC+ulkC5jU556C9Vh9qpq5ofjs4vqeQ3irz+Z+XcysG6oaneL53pXx0saItQey7fA==",
+ "requires": {
+ "@ampproject/remapping": "^2.1.2",
+ "@babel/core": "^7.19.6",
+ "@babel/parser": "^7.19.6",
+ "@babel/types": "^7.20.0",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@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.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "autoprefixer": "^10.4.13",
+ "base64url": "^3.0.1",
+ "chokidar": "^3.5.3",
+ "compare-versions": "^3.6.0",
+ "debug": "^4.3.3",
+ "es-module-lexer": "^0.9.3",
+ "esbuild": "^0.15.9",
+ "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.26.7",
+ "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"
+ }
+ },
+ "@dcloudio/uni-cloud": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-YeDLoA3DTfuU6kSpFk96AIcJKtvbJbGcF+bbZBtW9htkKx7zhpDRTL0Q5zOqsGU9YJn8i3h79k/rusM0XpoG6g==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45",
+ "fast-glob": "^3.2.11"
+ }
+ },
+ "@dcloudio/uni-components": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-QL24hL7EzgZj5bNF7xMCg85EVveSaOfb7aYBsSs/3Gv6iq9cXurh7jRA/nJyhb+7G9yt7H3ab9b6DvP/XjwFCg=="
+ },
+ "@dcloudio/uni-h5": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-C600DG4DTVkIPvlPcnR/Z2DiyQnk30zQWrGNjotjH0OZPlInDxvBikXxOStAhbHA9/0sJAb++ZQiDAME2c85HA==",
+ "requires": {
+ "@dcloudio/uni-h5-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-h5-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "localstorage-polyfill": "^1.0.1",
+ "safe-area-insets": "^1.4.1",
+ "vue-router": "^4.1.6",
+ "xmlhttprequest": "^1.8.0"
+ }
+ },
+ "@dcloudio/uni-h5-vite": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-vdyx0Hd5dNWydgElNtZz3cgPJYGUDa1e7TGcpVubcnX6Dda6WhxZhidughyx76j0G/nADY9d7vBZFhA0Xg8nNg==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@rollup/pluginutils": "^4.2.0",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "debug": "^4.3.3",
+ "fs-extra": "^10.0.0",
+ "mime": "^3.0.0",
+ "module-alias": "^2.2.2"
+ }
+ },
+ "@dcloudio/uni-h5-vue": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-HsO8I2RfR/87QEmop0T+Heaso/j4FryQrnxzu2mJA2oCtq4sPs3uJvaTA7V2rpYFKsXUVE4rMRq+FkjHCAIlGA==",
+ "requires": {
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001"
+ }
+ },
+ "@dcloudio/uni-i18n": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-Zi9W62ASUJ5302mXi9Ux4cM2cesmmzluYdAUMYyWWhgsycaIMbI8tYEWlIk5j6KAap7Be2hxgIo/O34X9IzJCA=="
+ },
+ "@dcloudio/uni-mp-alipay": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-Me5Zw6lxr8L0J1g7cTmTVlICW5xjrC4gT15IKjs2ZLVnxpiU/t7J/WbE2KKOHg8mRMDmM77k88PL+MmLMJrc7g==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-mp-baidu": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-dCZ+wrh06JvxCAYXvL8WsZDEUz8IQVGD25TAgJ8Uez+CWTScmYYrO6/gP5u6o5a/rAR85ldI1Pv4Xlqyp95MXg==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-mp-compiler": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-wxPSdSXs5y+3QPLuxcp3TOzV33/NiBkewWAN0Mij33dLiErZrjRvvUuef7MptOzgc1TJoQizzS5f0PKYmqnhNg==",
+ "requires": {
+ "@babel/generator": "^7.19.6",
+ "@babel/parser": "^7.19.6",
+ "@babel/types": "^7.20.0",
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "estree-walker": "^2.0.2"
+ }
+ },
+ "@dcloudio/uni-mp-kuaishou": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-u9vsslqwWmxSSVtHUNIDADXLeumNzSs/L0JlYlX7ofgPEoVLwQqBIRxKoR/RdDtiywPYS9J3VzGeArD9LdZefw==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-mp-lark": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-dZKho5F15CzNZqIALDzlG1GX3Ny5R0zqMYd1Ny6J/rcmtPbxXblHb5uGxBYbDTv3z7/yjRqoqQCQk+9tW9Lb/g==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-toutiao": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-mp-qq": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-MmPR703fqxz8uvqHvagAGPSS8whIf9pxPerbaM1AVXiQfiawOxyhqyIxlIvTFDMbA0Nyq0Zd2U+KjT5yn4f9LQ==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45",
+ "fs-extra": "^10.0.0"
+ }
+ },
+ "@dcloudio/uni-mp-toutiao": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-5tKFOXv4JTKA1pfGoWD8AwN28RAe6cPRxSaUkLsNdIzldZ3fozX6vrsfOMkUBSQwcp9au35q5X+mk+KPesBnnA==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-mp-vite": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-zyX0DD8NZm7S1qXGp6dUNqK7klkDx4M9onxT61ilSEwCdBHCEs33zjDT/EIyWLXC+8uis+3KmlAUZUgkwXzx1A==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-i18n": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-compiler": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "debug": "^4.3.3"
+ }
+ },
+ "@dcloudio/uni-mp-vue": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-J/wAfFh269Lx3nZ5CEJonq3dzAxeM1uc+pnGs1MQwBT3ZK8TNopYRUgri4hrEF+srVuCcZWM9RNw8RXsSBosaw==",
+ "requires": {
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-mp-weixin": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-qH4TbUPcqCccso8YIir9r9Vu/dyD9VrK3btAWxXY39gq6AahHomO5Y0Jl4+ODvS2qeQMBIDGyg5twL3G+uKPpw==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-nvue-styler": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-tAR+wYThaojYFCg2aUv3G6nva9DMDIOkeYZ4WeCTf3cO+V1PAETElJEiPa3De5Apg7Jqb48SiKTFTm9PX9yxUw==",
+ "requires": {
+ "@vue/shared": "3.2.45",
+ "parse-css-font": "^4.0.0",
+ "postcss": "^8.4.18"
+ }
+ },
+ "@dcloudio/uni-push": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-ilhEPcdZSlih9/6ztm8J87XZJH82/FT0swlpz2EMq8fzRGlk1kSNy7MWpNF9QN3S2WGA/Q2TlMr9qg4buhdAHw==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001"
+ }
+ },
+ "@dcloudio/uni-quickapp-webview": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-a1O/Wpe2lI0PHLZnDVtEzAYYZ/JGgQ8OAKbJflAD29kgVynpRKx3Imepjqsk1vk1xac2CZvi7C9MBaBA73D6Cw==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vite": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-vue": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-shared": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-vgvBeR5yxQ7quBOT63BN02RbfD2Si1fyll3j1SXqp37wdyRILBzaveFg8xQCMI0DdPL8kdIHTeG8d23ct6W9aQ==",
+ "requires": {
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@dcloudio/uni-stacktracey": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-BDNZQWjD14BaOvzs9YU/ajX9KxOqubJXVfbwsXZnHCURNzPYE5j7EtW7Na6f9n8f79X0nkPRvEdIeKHUe3rNtw==",
+ "dev": true
+ },
+ "@dcloudio/uni-stat": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-wYC/cUSEwPmSbT13PcphSywLOK+XrsYGrfRaNfDY5IdGlrHIhtX/BvsJiYh7crAsQEUhgmCcA7VvJmkiQM3DAg==",
+ "requires": {
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "debug": "^4.3.3"
+ }
+ },
+ "@dcloudio/uni-ui": {
+ "version": "1.4.23",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.4.23.tgz",
+ "integrity": "sha512-FJRkhL240gin9WvOunY38Yi2/0FzTLVlEI3dxcjzaV1oYa81o+IWEf/29YDiRrsHuvYDk9g600QgiZLC+A6ycA=="
+ },
+ "@dcloudio/vite-plugin-uni": {
+ "version": "3.0.0-3061820230117001",
+ "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3061820230117001.tgz",
+ "integrity": "sha512-ANAsCstpdd/FQUIShqYt5V8C7YC2J6LQcfqd5I7jqLiS/VTz7nC3TTA1EzsU0H7jdwJ9mvr9ro3nFXmqF2Hsmw==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.19.6",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-transform-typescript": "^7.20.0",
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-shared": "3.0.0-3061820230117001",
+ "@rollup/pluginutils": "^4.2.0",
+ "@vitejs/plugin-legacy": "^2.3.1",
+ "@vitejs/plugin-vue": "^3.2.0",
+ "@vitejs/plugin-vue-jsx": "^2.1.1",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "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",
+ "picocolors": "^1.0.0",
+ "terser": "^5.4.0"
+ }
+ },
+ "@esbuild/android-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
+ "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
+ "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
+ "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"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "devOptional": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "devOptional": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "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": "25.0.1",
+ "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.1.tgz",
+ "integrity": "sha512-2DJ4kv4b1xfTJopWhu61ANdNRHvzQZ2fpaIrlgaP2jOfUv1wDJ0Ucqy8AZlbFmn/iUjiwKoqki9j55Y6L8kyNQ==",
+ "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.0.2",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "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==",
+ "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"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz",
+ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
+ },
+ "@types/js-md5": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmmirror.com/@types/js-md5/-/js-md5-0.4.3.tgz",
+ "integrity": "sha512-BIga/WEqTi35ccnGysOuO4RmwVnpajv9oDB/sDQSY2b7/Ac7RyYR30bv7otZwByMvOJV9Vqq6/O1DFAnOzE4Pg==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "18.11.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz",
+ "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==",
+ "devOptional": true
+ },
+ "@vitejs/plugin-legacy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-2.3.1.tgz",
+ "integrity": "sha512-J5KaGBlSt2tEYPVjM/C8dA6DkRzkFkbPe+Xb4IX5G+XOV5OGbVAfkMjKywdrkO3gGynO8S98i71Lmsff4cWkCQ==",
+ "dev": true,
+ "requires": {
+ "@babel/standalone": "^7.20.0",
+ "core-js": "^3.26.0",
+ "magic-string": "^0.26.7",
+ "regenerator-runtime": "^0.13.10",
+ "systemjs": "^6.13.0"
+ }
+ },
+ "@vitejs/plugin-vue": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
+ "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==",
+ "requires": {}
+ },
+ "@vitejs/plugin-vue-jsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-2.1.1.tgz",
+ "integrity": "sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.19.6",
+ "@babel/plugin-transform-typescript": "^7.20.0",
+ "@vue/babel-plugin-jsx": "^1.1.1"
+ }
+ },
+ "@vue/babel-helper-vue-transform-on": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz",
+ "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==",
+ "dev": true
+ },
+ "@vue/babel-plugin-jsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz",
+ "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.0.0",
+ "@babel/types": "^7.0.0",
+ "@vue/babel-helper-vue-transform-on": "^1.0.2",
+ "camelcase": "^6.0.0",
+ "html-tags": "^3.1.0",
+ "svg-tags": "^1.0.0"
+ }
+ },
+ "@vue/compiler-core": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
+ "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.45",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "@vue/compiler-dom": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
+ "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
+ "requires": {
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
+ "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-ssr": "3.2.45",
+ "@vue/reactivity-transform": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "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.45",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
+ "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@vue/devtools-api": {
+ "version": "6.4.5",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz",
+ "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
+ },
+ "@vue/reactivity": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz",
+ "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
+ "requires": {
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@vue/reactivity-transform": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
+ "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "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.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
+ "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
+ "requires": {
+ "@vue/reactivity": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
+ "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
+ "requires": {
+ "@vue/runtime-core": "3.2.45",
+ "@vue/shared": "3.2.45",
+ "csstype": "^2.6.8"
+ }
+ },
+ "@vue/server-renderer": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
+ "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
+ "requires": {
+ "@vue/compiler-ssr": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
+ "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
+ },
+ "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.8.1",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "devOptional": true
+ },
+ "add": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/add/-/add-2.0.6.tgz",
+ "integrity": "sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q=="
+ },
+ "address": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/address/-/address-1.2.1.tgz",
+ "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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
+ },
+ "autoprefixer": {
+ "version": "10.4.13",
+ "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-lite": "^1.0.30001426",
+ "fraction.js": "^4.2.0",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base64url": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz",
+ "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
+ "body-parser": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "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.1",
+ "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
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "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"
+ }
+ },
+ "browserslist": {
+ "version": "4.21.4",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz",
+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "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.30001436",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz",
+ "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg=="
+ },
+ "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"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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.4",
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": 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=="
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "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.26.1",
+ "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.26.1.tgz",
+ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "crypto-js": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz",
+ "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
+ },
+ "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-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=="
+ },
+ "csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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
+ },
+ "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.284",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
+ },
+ "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
+ },
+ "es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
+ },
+ "esbuild": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.18.tgz",
+ "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
+ "requires": {
+ "@esbuild/android-arm": "0.15.18",
+ "@esbuild/linux-loong64": "0.15.18",
+ "esbuild-android-64": "0.15.18",
+ "esbuild-android-arm64": "0.15.18",
+ "esbuild-darwin-64": "0.15.18",
+ "esbuild-darwin-arm64": "0.15.18",
+ "esbuild-freebsd-64": "0.15.18",
+ "esbuild-freebsd-arm64": "0.15.18",
+ "esbuild-linux-32": "0.15.18",
+ "esbuild-linux-64": "0.15.18",
+ "esbuild-linux-arm": "0.15.18",
+ "esbuild-linux-arm64": "0.15.18",
+ "esbuild-linux-mips64le": "0.15.18",
+ "esbuild-linux-ppc64le": "0.15.18",
+ "esbuild-linux-riscv64": "0.15.18",
+ "esbuild-linux-s390x": "0.15.18",
+ "esbuild-netbsd-64": "0.15.18",
+ "esbuild-openbsd-64": "0.15.18",
+ "esbuild-sunos-64": "0.15.18",
+ "esbuild-windows-32": "0.15.18",
+ "esbuild-windows-64": "0.15.18",
+ "esbuild-windows-arm64": "0.15.18"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
+ "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
+ "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
+ "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
+ "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
+ "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
+ "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
+ "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
+ "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
+ "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
+ "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
+ "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
+ "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
+ "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
+ "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
+ "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
+ "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
+ "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
+ "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
+ "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
+ "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
+ "optional": true
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "express": {
+ "version": "4.18.2",
+ "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.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
+ }
+ }
+ },
+ "fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "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"
+ }
+ },
+ "fastq": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz",
+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "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.2.0",
+ "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz",
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
+ },
+ "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=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "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-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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==",
+ "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"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "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=="
+ },
+ "html-tags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz",
+ "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "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": {}
+ },
+ "immutable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz",
+ "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
+ "devOptional": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "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-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.11.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+ },
+ "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-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "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
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "js-md5": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
+ "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ },
+ "json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ },
+ "jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "licia": {
+ "version": "1.37.0",
+ "resolved": "https://registry.npmmirror.com/licia/-/licia-1.37.0.tgz",
+ "integrity": "sha512-jX49+WmzikOPGNrcy/giS23HCI8Pb7RF585Ei5d7oWF4WMelaZWv4odqQNdT0jtHkoUxqSvPz67Jvyq06xamUA==",
+ "dev": true
+ },
+ "lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "magic-string": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz",
+ "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==",
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "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
+ },
+ "minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "module-alias": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz",
+ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "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-releases": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz",
+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
+ },
+ "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"
+ }
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true
+ },
+ "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==",
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "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
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "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=="
+ },
+ "postcss": {
+ "version": "8.4.19",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz",
+ "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "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.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
+ "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
+ "requires": {}
+ },
+ "postcss-modules-local-by-default": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
+ "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
+ "requires": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
+ "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
+ "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.11",
+ "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "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=="
+ },
+ "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"
+ }
+ },
+ "qrcode-reader": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz",
+ "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==",
+ "dev": true
+ },
+ "qrcode-terminal": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
+ "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
+ "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"
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ },
+ "rollup": {
+ "version": "2.79.1",
+ "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz",
+ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
+ "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.56.1",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.56.1.tgz",
+ "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==",
+ "devOptional": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "send": {
+ "version": "0.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"
+ }
+ },
+ "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.4",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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
+ },
+ "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-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
+ },
+ "systemjs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.13.0.tgz",
+ "integrity": "sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==",
+ "dev": true
+ },
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
+ },
+ "terser": {
+ "version": "5.16.1",
+ "resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "devOptional": true,
+ "requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ }
+ },
+ "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
+ },
+ "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"
+ }
+ },
+ "typescript": {
+ "version": "4.9.4",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "dev": true
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ },
+ "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.10",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "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
+ },
+ "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": "3.2.4",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz",
+ "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==",
+ "requires": {
+ "esbuild": "^0.15.9",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.18",
+ "resolve": "^1.22.1",
+ "rollup": "^2.79.1"
+ }
+ },
+ "vue": {
+ "version": "3.2.45",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
+ "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.45",
+ "@vue/compiler-sfc": "3.2.45",
+ "@vue/runtime-dom": "3.2.45",
+ "@vue/server-renderer": "3.2.45",
+ "@vue/shared": "3.2.45"
+ }
+ },
+ "vue-i18n": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz",
+ "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==",
+ "requires": {
+ "@intlify/core-base": "9.2.2",
+ "@intlify/shared": "9.2.2",
+ "@intlify/vue-devtools": "9.2.2",
+ "@vue/devtools-api": "^6.2.1"
+ },
+ "dependencies": {
+ "@intlify/core-base": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz",
+ "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==",
+ "requires": {
+ "@intlify/devtools-if": "9.2.2",
+ "@intlify/message-compiler": "9.2.2",
+ "@intlify/shared": "9.2.2",
+ "@intlify/vue-devtools": "9.2.2"
+ }
+ },
+ "@intlify/devtools-if": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz",
+ "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==",
+ "requires": {
+ "@intlify/shared": "9.2.2"
+ }
+ },
+ "@intlify/message-compiler": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz",
+ "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==",
+ "requires": {
+ "@intlify/shared": "9.2.2",
+ "source-map": "0.6.1"
+ }
+ },
+ "@intlify/shared": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz",
+ "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q=="
+ },
+ "@intlify/vue-devtools": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz",
+ "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==",
+ "requires": {
+ "@intlify/core-base": "9.2.2",
+ "@intlify/shared": "9.2.2"
+ }
+ }
+ }
+ },
+ "vue-router": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz",
+ "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==",
+ "requires": {
+ "@vue/devtools-api": "^6.4.5"
+ }
+ },
+ "vuex": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.0.2.tgz",
+ "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==",
+ "requires": {
+ "@vue/devtools-api": "^6.0.0-beta.11"
+ }
+ },
+ "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"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "ws": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+ "dev": true,
+ "requires": {}
+ },
+ "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=="
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..30d41cd
--- /dev/null
+++ b/package.json
@@ -0,0 +1,72 @@
+{
+ "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-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",
+ "build:h5:ssr": "uni build --ssr",
+ "build:mp-alipay": "uni build -p mp-alipay",
+ "build:mp-baidu": "uni build -p mp-baidu",
+ "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"
+ },
+ "dependencies": {
+ "@dcloudio/uni-app": "3.0.0-3061820230117001",
+ "@dcloudio/uni-app-plus": "3.0.0-3061820230117001",
+ "@dcloudio/uni-components": "3.0.0-3061820230117001",
+ "@dcloudio/uni-h5": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-alipay": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-baidu": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-kuaishou": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-lark": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-qq": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-toutiao": "3.0.0-3061820230117001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-3061820230117001",
+ "@dcloudio/uni-quickapp-webview": "3.0.0-3061820230117001",
+ "@dcloudio/uni-ui": "^1.4.23",
+ "@rollup/plugin-commonjs": "^25.0.1",
+ "add": "^2.0.6",
+ "crypto-js": "^4.1.1",
+ "js-md5": "^0.7.3",
+ "vue": "3.2.45",
+ "vue-i18n": "9.2.2",
+ "vuex": "^4.0.2"
+ },
+ "devDependencies": {
+ "@dcloudio/types": "3.2.11",
+ "@dcloudio/uni-automator": "3.0.0-3061820230117001",
+ "@dcloudio/uni-cli-shared": "3.0.0-3061820230117001",
+ "@dcloudio/uni-stacktracey": "3.0.0-3061820230117001",
+ "@dcloudio/vite-plugin-uni": "3.0.0-3061820230117001",
+ "@types/js-md5": "^0.4.3",
+ "@types/node": "^18.11.11",
+ "sass": "^1.56.1",
+ "typescript": "^4.8.4",
+ "vite": "3.2.4"
+ }
+}
diff --git a/src/App.ts b/src/App.ts
new file mode 100644
index 0000000..3af93c8
--- /dev/null
+++ b/src/App.ts
@@ -0,0 +1,192 @@
+/**
+ * 全局文件配置
+ */
+import { store } from '@/store'
+import { setStorage, getStorage } from "@/utils/storage";
+import Bluetooth from '@/utils/bluetoothPrinter/bluetooth'
+import useGlobalFunc from './composables/useGlobalFunc';
+import { onShow, onLaunch } from '@dcloudio/uni-app';
+// import log from '@/utils/log'
+import login from '@/api/https/login'
+
+function App() {
+ // const bluetooth = new Bluetooth()
+ const bluetooth: any = getStorage('deviceName') ? new Bluetooth() : null
+ const { setPrinterStatus } = useGlobalFunc()
+
+ /**
+ * 小程序冷启动
+ */
+ onLaunch(async (params: any) => {
+ // 订单管理-新订单通知
+ // let logData = {
+ // '日志记录时间': Date(),
+ // '启动类型': '冷启动',
+ // '启动参数': params,
+ // '用户TOKEN': getStorage('token') ? getStorage('token') : '未获取到用户TOKEN',
+ // '用户手机号': getStorage('mobile') ? getStorage('mobile') : '未获取到用户手机号',
+ // '店铺ID': getStorage('storeID') ? getStorage('storeID') : '未获取到店铺ID',
+ // '店铺名字': getStorage('storeName') ? getStorage('storeName') : '未获取到店铺名字',
+ // }
+ // log.info(JSON.stringify(logData))
+ if (params.query && params.query.jxStoreId) {
+ setStorage("storeID", +params.query.jxStoreId)
+ if (getStorage('token')) await store.dispatch('storeInfo/getOneStore', +params.query.jxStoreId)
+ }
+
+ if (params.scene === 1043) {
+ // 公众号模板消息进入
+ setStorage('templateMessage', params)
+ }
+
+ // 判断当前用户是否需要绑定手机号
+ let getCode = await login.get_jx_code(true);
+ let userInfo = await login.applets_login({
+ authType: "weixinmini",
+ authSecret: getCode.code,
+ },true);
+ if(userInfo.code === '0'){
+ store.commit('serveInfo/setIsBindMobile',{
+ userInfo:userInfo.data,
+ need:userInfo.data.tokenType === 1?false:true
+ })
+ }
+ })
+
+ /*************************************************
+ * 页面出现 热启动
+ */
+ let reconnectTime1: any = null
+ onShow(async (params: any) => {
+
+ // let logData = {
+ // '日志记录时间': Date(),
+ // '启动类型': '热启动',
+ // '启动参数': params,
+ // '用户TOKEN': getStorage('token') ? getStorage('token') : '未获取到用户TOKEN',
+ // '用户手机号': getStorage('mobile') ? getStorage('mobile') : '未获取到用户手机号',
+ // '店铺ID': getStorage('storeID') ? getStorage('storeID') : '未获取到店铺ID',
+ // '店铺名字': getStorage('storeName') ? getStorage('storeName') : '未获取到店铺名字',
+ // }
+ // log.info(JSON.stringify(logData))
+ // if (params.query && params.query.jxStoreId) {
+ // setStorage("storeID", +params.query.jxStoreId)
+ // if (getStorage('token')) await store.dispatch('storeInfo/getOneStore', +params.query.jxStoreId)
+ // }
+ // 订单管理-新订单通知
+ // console.log('热启动9999', params)
+ if (params.scene === 1043) {
+ // 公众号模板消息进入
+ if (JSON.stringify(getStorage("templateMessage")) !== JSON.stringify(params)) setStorage('templateMessage', params)
+
+ }
+
+ if (getStorage('deviceName')) {
+ reconnectTime1 = setTimeout(async () => {
+ await bluetooth.reconnect()
+ clearTimeout(reconnectTime1)
+ }, 1500)
+ }
+ })
+
+
+ /**
+ * 获取设备信息
+ */
+ async function SystemInfo() {
+ uni.getSystemInfo({
+ success(res) {
+ // 保存本机系统信息
+ // 详细字段信息参考 https://uniapp.dcloud.net.cn/api/system/info.html#%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%E7%9A%84%E6%A6%82%E5%BF%B5
+ store.commit('serveInfo/setSystemInfo', JSON.stringify(res))
+ },
+ })
+ }
+
+
+ /*************************************************
+ * 监听网络类型
+ */
+ function onNetWorkStatusChange() {
+ uni.onNetworkStatusChange((res) => {
+ store.commit('serveInfo/setIsNetWorkS', res.isConnected)
+ })
+ }
+
+
+ /**
+ * 微信小程序更新机制
+ */
+ function autoUpdate() {
+ // 获取小程序更新机制兼容
+ if (uni.canIUse('getUpdateManager')) {
+ const updateManager = uni.getUpdateManager()
+ // 检查是否有新版本发布
+ updateManager.onCheckForUpdate(function (res) {
+ if (res.hasUpdate) {
+ //小程序有新版本,则静默下载新版本,做好更新准备
+ updateManager.onUpdateReady(function () {
+ uni.jxAlert({
+ title: '更新提示',
+ content: '应用已经升级到新版本了请及时更新',
+ success: () => {
+ updateManager.applyUpdate()
+ }
+ })
+ })
+ // 新的版本下载失败
+ updateManager.onUpdateFailed(function () {
+ uni.showModal({
+ title: '温馨提示',
+ content: '新版本已经上线,请您删除当前小程序,重新搜索打开',
+ })
+ })
+ }
+ })
+ } else {
+ // 提示用户在最新版本的客户端上体验
+ uni.showModal({
+ title: '温馨提示',
+ content: '当前微信版本过低,可能无法使用该功能,请升级到最新版本后重试。'
+ })
+ }
+ }
+
+
+ /*************************************************
+ * 判断用户是否为IOS系统
+ * @param {}
+ * @return {boolean} // 是否为IOS系统
+ */
+ function isIosSystem() {
+ setStorage('isIosSystem', true)
+ }
+
+
+ /*************************************************
+ * 打印机检测
+ */
+ let reconnectTime: any = null
+ function onPrinterChange() {
+ if (getStorage('deviceName')) {
+ setPrinterStatus()
+ reconnectTime = setTimeout(async () => {
+ await bluetooth.reconnect()
+ clearTimeout(reconnectTime)
+ }, 1500)
+ }
+ }
+
+
+ return {
+ SystemInfo, // 获取本机系统信息
+ onNetWorkStatusChange, // 监听网络状态
+ autoUpdate, // 小程序更新
+ isIosSystem, // 是否为IOS
+ onPrinterChange, // 监听打印机状态
+ }
+}
+
+
+
+export default App
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..3a91ed2
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,39 @@
+
+
diff --git a/src/androidPrivacy.json b/src/androidPrivacy.json
new file mode 100644
index 0000000..a78485c
--- /dev/null
+++ b/src/androidPrivacy.json
@@ -0,0 +1,3 @@
+{
+ "prompt" : "none"
+}
diff --git a/src/api/config.ts b/src/api/config.ts
new file mode 100644
index 0000000..7dfc9eb
--- /dev/null
+++ b/src/api/config.ts
@@ -0,0 +1,21 @@
+/**
+ * model: 配置文件
+ * 作者:zhang-shu-wei
+ * 日期:2022年8月10日
+ * 邮箱:2966211270@qq.com
+ */
+let url_config = '' // 用户登录
+
+
+if (process.env.NODE_ENV === 'development') {
+ // 开发环境 配置域名
+ console.log('~开发环境~')
+ url_config = "https://wx.jxc4.com"
+} else {
+ // 生产环境
+ console.log('~生产环境~')
+ url_config = "https://wx.jxc4.com"
+}
+
+
+export default url_config
\ No newline at end of file
diff --git a/src/api/https/login.ts b/src/api/https/login.ts
new file mode 100644
index 0000000..843ac6b
--- /dev/null
+++ b/src/api/https/login.ts
@@ -0,0 +1,120 @@
+/*************************************************
+ *@description: 登录模块
+ *@return {*}
+ *@param {}-
+*/
+
+import { setLoading } from '@/utils/tools'
+import request from '../request'
+
+
+const login = {
+ /*************************************************
+ * 获取微信登录code
+ */
+ get_jx_code: (isLoading?:boolean): Promise => new Promise((resolve, reject) => {
+ if(!isLoading) setLoading('登录中...')
+ uni.login({
+ provider: 'weixin',
+ success: (res) => {
+ resolve(res)
+ },
+ fail: (error) => {
+ reject(error)
+ }
+ })
+ }),
+
+
+ /*************************************************
+ * 获取用户信息
+ */
+ applets_login: (params: AnyObject,isLoading?:boolean): Promise => {
+ if(!isLoading) setLoading('登录中...')
+ return request.api('/v2/auth2/Login', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 用户绑定手机号
+ */
+ add_auth_bind: async (params: AnyObject): Promise => {
+ return await request.api('/v2/auth2/AddAuthBindWithMobile', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 获取用户手机号
+ */
+ getUser_by_mini_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/auth2/GetUserByMiniInfo', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 刷新token
+ */
+ get_token_info: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/auth2/GetTokenInfo', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 获取手机登录验证码
+ */
+ send_verify_code: async (params: AnyObject): Promise => {
+ return await request.api('/v2/auth2/SendVerifyCode', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 注册用户
+ */
+ register_user: async (params: AnyObject): Promise => {
+ return await request.api('/v2/user2/RegisterUser', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 选择门店
+ */
+ get_my_store_list: async (params?: AnyObject): Promise => {
+
+ return await request.api('/v2/user2/GetMyStoreList', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 获取系统数据
+ */
+ get_service_info: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/cms/GetServiceInfo', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 查询用户其他信息,比如角色等
+ */
+ get_self_info: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/user2/GetSelfInfo', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 修改密码
+ */
+ change_password: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/auth2/ChangePassword', 'PUT', params)
+ },
+
+ /*************************************************
+ * 测试推送消息
+ * @param vendorOrderID 订单id
+ */
+ test_uni_app_push: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/event/TestUniAppPush', 'GET', params)
+ }
+}
+
+
+export default login
\ No newline at end of file
diff --git a/src/api/https/merchant.ts b/src/api/https/merchant.ts
new file mode 100644
index 0000000..e1dd863
--- /dev/null
+++ b/src/api/https/merchant.ts
@@ -0,0 +1,267 @@
+/**
+ * @description: 商家中心
+ * @return {*}
+ * @param {}-
+ */
+import request from "../request";
+
+
+const merchant = {
+ /**
+ * 获取门店营业状态
+ */
+ get_stores: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/GetStores', 'GET', params)
+ },
+
+
+ /**
+ * @desc 多用型接口
+ * 设置门店营业 休息
+ * 切换未拣货提醒方式
+ * 修改印业资质
+ */
+ update_store: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/UpdateStore', 'PUT', params)
+ },
+
+
+ /**
+ * 修改线上淘鲜达时间
+ */
+ update_txd_store: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/UpdateTxdStore', 'POST', params)
+ },
+
+
+ /**
+ * 更新平台营业状态 线上
+ */
+ update_vendors_store_states: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/UpdateVendorStoreBussinessStatus', 'POST', params)
+ },
+
+
+ /**
+ * @desc 修改门店映射信息
+ * @param {object} params 请求参数 storeID int 门店ID vendorID int 厂商ID
+ */
+ update_store_vendor_map: async (params: AnyObject): Promise => {
+ return await request.api('v2/store/UpdateStoreVendorMap','PUT',params)
+ },
+
+
+ /**
+ * 查询是否有新账单
+ */
+ get_store_bills: async (params: AnyObject): Promise => {
+ return await request.api('/v2/financial/GetStoreBills', 'GET', params)
+ },
+
+
+ /**
+ * 获取门店今日完成实时数据
+ */
+ get_store_order_sale_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetStoresOrderSaleInfo', 'GET', params, 30000)
+ },
+
+
+ /**
+ * 获取用户注册时间
+ */
+ get_self_info: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/user2/GetSelfInfo', 'GET', params)
+ },
+
+
+ /**
+ * 获取调价包
+ */
+ query_configs: async (params: AnyObject): Promise => {
+ return await request.api('/v2/cms/QueryConfigs', "GET", params)
+ },
+
+
+ /**
+ * 修改调价包
+ */
+ update_store_price_pack: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/UpdateStorePricePack', "PUT", params)
+ },
+
+
+ /**
+ * 获取差评数量
+ */
+ tmp_get_jx_bad_comments_no: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/TmpGetJxBadCommentsNo', 'GET', params)
+ },
+
+
+ /**
+ * 获取评论
+ */
+ Tmp_get_jx_bad_comments_by_storeId: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/TmpGetJxBadCommentsByStoreId', 'GET', params)
+ },
+
+
+ /**
+ * 获取店铺评分
+ */
+ get_weekly_store_score: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/GetWeeklyStoreScore', 'GET', params)
+ },
+
+
+ /**
+ * 获取待配商品
+ */
+ get_order_ders_accept: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrdersAccept', 'GET', params)
+ },
+
+
+ /**
+ * 通过skuID skuName 获取商品
+ */
+ get_stores_skus: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/sku/GetStoresSkus', "GET", params)
+ },
+
+
+ /**
+ * 获取信息通知
+ */
+ Get_store_message_statuses: async (params: AnyObject): Promise => {
+ return await request.api('/v2/msg/GetStoreMessageStatuses', 'GET', params)
+ },
+
+
+ /**
+ * 获取信息详情
+ */
+ get_store_messages: async (params: AnyObject): Promise => {
+ return await request.api('/v2/msg/GetStoreMessages', 'GET', params)
+ },
+
+
+ /**
+ * 修改信息为已读
+ */
+ read_store_message: async (params: AnyObject): Promise => {
+ return await request.api('/v2/msg/ReadStoreMessage', 'PUT', params)
+ },
+
+
+ /**
+ * 获取门店活动信息
+ */
+ query_acts: async (params: AnyObject): Promise => {
+ return await request.api('/v2/act/QueryActs', 'GET', params)
+ },
+
+
+ /**
+ * 获取打印机能识别的数据
+ */
+ get_order_sku_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrderSkuInfo', 'GET', params)
+ },
+
+
+ /**
+ * 判断蓝牙打印机是否需要打印标题
+ */
+ get_brands: async (prams: AnyObject): Promise => {
+ return await request.api('/v2/store/GetBrands', 'GET', prams)
+ },
+
+
+ /**
+ * 修改打印状态为 true
+ */
+ set_order_print_status: async (prams: AnyObject): Promise => {
+ return await request.api('/v2/order/SetOrderPrintStatus', 'PUT', prams)
+ },
+
+
+ /**
+ * 清空打印队列
+ */
+ delete_printer_seq: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/DeletePrinterSeq', 'POST', params)
+ },
+
+
+ /**
+ * 扫码绑定易联云
+ */
+ bind_net_printer: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/BindPrinter', 'POST', params)
+ },
+
+
+ /**
+ * 获取七牛云TOKEN
+ */
+ get_qiniu_upload_token: async (params: AnyObject): Promise => {
+ return request.api('/v2/cms/GetQiniuUploadToken', 'GET', params)
+ },
+
+
+ /**
+ * 扫码进店,获取当前门店的二维码
+ */
+ get_weixin_unlimited: async (params: AnyObject): Promise => {
+ return request.api('/v2/event/GetWeixinUnlimited', 'POST', params)
+ },
+
+
+ /**
+ * 获取app版本号
+ */
+ get_app_varsion: async (params: AnyObject): Promise => {
+ return request.api('/v2/version/GetVersionController', 'GET', params)
+ },
+
+
+ /**
+ * 获取门店信息
+ */
+ get_store_vendor_maps: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/GetStoreVendorMaps', 'GET', params)
+ },
+
+
+ /**
+ * 查询美团门店IM单聊开关状态
+ * @return {string} appPoiCode:美团门店id
+ */
+ get_mt_store_im_status: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/GetPoiIMStatus', 'GET', params)
+ },
+
+
+ /**
+ * 设置美团门店IM线上状态
+ * @param {object} params 请求参数
+ * @return {object} appPoiCode:美团门店id imStatus:状态 0-关闭 1-开启
+ */
+ set_mt_store_im_status: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/SetPoiIMStatus', 'POST', params)
+ },
+
+
+ /**
+ * 查询远端门店的营业状态
+ * @param {object} params 请求参数
+ */
+ get_vendor_store:async(params:AnyObject): Promise =>{
+ return request.api('/v2/store/GetVendorStore', 'GET', params)
+ }
+}
+
+
+export default merchant
\ No newline at end of file
diff --git a/src/api/https/message.ts b/src/api/https/message.ts
new file mode 100644
index 0000000..63bda90
--- /dev/null
+++ b/src/api/https/message.ts
@@ -0,0 +1,48 @@
+/**
+ * @description: IM消息管理
+ * @return {*}
+ * @param {}-
+ */
+import request from "../request";
+
+
+const message = {
+ /*************************************************
+ * 获取消息用户列表
+ */
+ get_IM_user_list: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/GetIMUserList', 'GET', params)
+ },
+
+ /*************************************************
+ * 解析饿了么消息中的mediaID
+ */
+ get_url_by_mediaID: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/GetElmMedia', 'GET', params)
+ },
+
+ /*************************************************
+ * 获取聊天详情
+ */
+ get_IM_chat_detail: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/GetImChatDetail', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 设置消息为已读
+ */
+ set_IM_msg_read: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/SetImMsgRead', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 发送消息接口
+ */
+ send_to_vendor: async (params: AnyObject): Promise => {
+ return request.api('/v2/im/SendToVendorV2', 'POST', params)
+ },
+}
+
+export default message
\ No newline at end of file
diff --git a/src/api/https/order.ts b/src/api/https/order.ts
new file mode 100644
index 0000000..7ab2e94
--- /dev/null
+++ b/src/api/https/order.ts
@@ -0,0 +1,519 @@
+import request from '../request'
+
+
+/**
+ * 订单类接口
+ * @param *
+ * @return *
+*/
+const order = {
+ /***********************************************************
+ * 获取商户订单数量(统计)
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ Get_store_rder_count_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetStoreOrderCountInfo', 'GET', params)
+ },
+
+
+ /***********************************************************
+ * 获取售后单(统计)
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ Get_store_afs_order_countinfo: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetStoreAfsOrderCountInfo', 'GET', params)
+ },
+
+
+ /***********************************************************
+ * 获取对应状态的订单数据
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:{totalCount:总条数,data:分页数据} desc:错误信息
+ */
+ get_orders: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrders', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 确认接单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据,desc:错误信息
+ */
+ accept_or_refuse_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/AcceptOrRefuseOrder', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 获取打印机状态
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_printer_status: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetPrinterStatus', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 网络打印机打印订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ print_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/PrintOrder', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 拣货完成
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ finished_pickup: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/FinishedPickup', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 自提订单 京西订单不用自提 id
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ confirm_self_take: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/ConfirmSelfTake', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 确认送送达
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ self_delivered: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/SelfDelivered', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 获取售后订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_afs_orders: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetAfsOrders', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 非饿百订单 退货退款
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ agree_orRefuse_refund: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/AgreeOrRefuseRefund', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * @description 扫码枪 到店扫码支付订单退款 收获退款 post jxorder/RefundOnlineOrder
+ * @Param token header string true "认证token"
+ * @Param vendorOrderID formData string true "订单ID"
+ * @Param skuIds formData string true "[key:value]退款商品 skuId:count,int" Map类型
+ * @Param Reason formData string true "退单原因"
+ */
+ refund_online_order: async(params: AnyObject): Promise => {
+ return await request.api('/v2/jxorder/RefundOnlineOrder','POST', params)
+ },
+
+
+ /*************************************************************
+ * 饿百订单 京东的异常单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ agree_or_refuse_cancel: async (params: AnyObject): Promise => {
+ // 原来饿百订单退款或者驳回的接口有问题,更换成原来的退款
+ return await request.api('/v2/order/AgreeOrRefuseCancel', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 退货待确认
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ confirm_received_return_goods: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/ConfirmReceivedReturnGoods', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 退货待确认
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_order_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrderInfo', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 查询取消订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ getafs_orders: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/getafsOrders', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 取消订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ cancel_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/CancelOrder', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 获取条形码
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ create_qrOr_bar_code: async (params: AnyObject): Promise => {
+ return await request.api('/v2/cms/CreateQrOrBarCode', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 查询是否是京西新用户
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_order_user_buy_first: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrderUserBuyFirst', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取运单状态
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_order_status_list: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrderStatusList', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取商品列表
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_order_sku_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetOrderSkuInfo', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取订单差评骑手列表
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ complaint_rider_list: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/ComplaintRiderList', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 差评骑手
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ complaint_rider: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/ComplaintRider', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 商品部分退款
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ part_refund_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/PartRefundOrder', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 商品全额退款并创建售后单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ refund_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/RefundOrder', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 直接部分退款
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ adjust_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/AdjustOrder', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 售后商品
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_afs_order_sku_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetAfsOrderSkuInfo', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取运单费用
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ query_order_waybill_fee_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/QueryOrderWaybillFeeInfo', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取品牌账号余额
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_brands: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/store/GetBrands', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取门店账号余额
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_store_acct_balance: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/store/GetStoreAcctBalance', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 创建订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ create_store_acct_order: async (params?: AnyObject): Promise => {
+ return await request.api('/v2/jxorder/CreateStoreAcctOrder', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 支付订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ pay4_user: async (params: AnyObject): Promise => {
+ return await request.api('/v2/jxorder/Pay4User', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 非抖音订单转自送
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ self_delivering: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/SelfDelivering', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 添加小费
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ update_order_waybill_tip: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/UpdateOrderWaybillTip', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 切换发单方式
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ update_store_courier_map: async (params: AnyObject): Promise => {
+ return await request.api('/v2/store/UpdateStoreCourierMap', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 创建三方配送
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ create_waybill_on_providers: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/CreateWaybillOnProviders', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 取消订单
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ cancel_waybill: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/CancelWaybill', 'POST', params)
+ },
+
+
+ /*************************************************************
+ * 骑手
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ accept_or_refuse_failed_get_order: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/AcceptOrRefuseFailedGetOrder', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 重新召唤骑手
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ callP_m_courier: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/CallPMCourier', 'PUT', params)
+ },
+
+
+ /*************************************************************
+ * 退回货物
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ confirm_receive_goods: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/ConfirmReceiveGoods', 'PUT', params)
+ },
+
+ /*************************************************************
+ * 查看客户距离
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_ST_o_U_riding_distance: async (params: AnyObject): Promise => {
+ return await request.api('/v2/cms/GetSToURidingDistance', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 获取骑手位置
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_rider_lng: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetRiderLng', 'POST', params)
+ },
+
+ /*************************************************************
+ * 获取骑手位置(实时)
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ get_s_to_u_riding_distance: async (params: AnyObject): Promise => {
+ return await request.api('/v2/cms/GetSToURidingDistance2', 'GET', params)
+ },
+
+
+ /*************************************************************
+ * 取消所有三方运单(取消所有配送)
+ * @param {object} params 请求参数
+ * @return {object} code:状态 data:数据 desc:错误信息
+ */
+ cancel_all_3rd_waybills: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/CancelAll3rdWaybills', 'POST', params)
+ },
+
+
+ /***************************************************************
+ * 查询发票信息,美团
+ * @Param storeId formData int false "门店id"
+ * @Param startTime formData string true "开始时间"
+ * @Param endTime formData string true "结束时间"
+ * @Param status formData string false "发票回复状态[1未回复/2回复]"
+ * @Param offset query int false "结果起始序号(以0开始,缺省为0)"
+ * @Param pageSize query int false "结果页大小(缺省为50,-1表示全部)"
+ */
+ query_mt_invoice: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/GetInvoiceRecord', 'POST', params)
+ },
+
+
+ /**
+ * 上传发票图片
+ * @Param token header string true "认证token"
+ * @Param orderId formData string true "订单ID"
+ * @Param invoiceUrl formData string true "发票地址[10M内pdf/png/jpeg/jpg]"
+ * @Param invoiceId formData string true "发票号码"
+ */
+ upload_invoice_img: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/UploadOrderInvoice', 'POST', params)
+ },
+
+
+ /**
+ * 发票设置 饿百
+ * @Title 批量更新门店发票设置
+ * @Description 批量更新门店发票设置
+ * @Param token header string true "认证token"
+ * @Param vendorId formData string true "平台ID"
+ * @Param vendorStoreID formData string true "平台门店ID"
+ * @Param payload formData string true "json数据,格式为 ebaiapi.StoreInvoiceSetting",见JXC4-BACKSTAGE
+ */
+ bath_update_invoice_setting: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/BathUpdateInvoiceSetting', 'POST', params)
+ },
+
+
+ /**
+ * @Title 查询门店发票设置
+ * @Description 查询门店发票设置
+ * @Param token header string true "认证token"
+ *
+ * @Param vendorId formData string true "平台ID"
+ * @Param vendorStoreID formData string true "平台门店ID"
+ */
+ query_invoice_setting: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/QueryInvoiceSetting', 'GET', params)
+ },
+
+
+ /**
+ * @Title 查询门店开票申请 饿百
+ * @Description 批量更新店铺开票申请
+ * @Param token header string true "认证token"
+ * @Param vendorId formData string true "平台ID"
+ * @Param vendorStoreID formData string true "平台门店ID"
+ * @Param storeID formData int true "京西门店ID"
+ */
+ get_invoice_info: async (params: AnyObject): Promise => {
+ return await request.api('/v2/order/QueryUnansweredInvoice', 'GET', params)
+ },
+
+}
+
+
+export default order
\ No newline at end of file
diff --git a/src/api/https/shopping.ts b/src/api/https/shopping.ts
new file mode 100644
index 0000000..b06e263
--- /dev/null
+++ b/src/api/https/shopping.ts
@@ -0,0 +1,98 @@
+/**
+ * @description: 商品管理
+ * @return {*}
+ * @param {}-
+ */
+import request from "../request";
+
+
+const shopping = {
+ /*************************************************
+ * 修改商品价格
+ */
+ update_stores_skus: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/sku/UpdateStoresSkus', 'PUT', params)
+ },
+
+
+ /*************************************************
+ * 修改商品为临时不可售
+ */
+ update_stores_skus_sale: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/sku/UpdateStoresSkusSale', 'PUT', params)
+ },
+
+
+ /*************************************************
+ * 获取商品分类
+ */
+ getStore_category_map: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/GetStoreCategoryMap', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 备用获取分类列表
+ */
+ get_categories: async (params?: AnyObject): Promise => {
+ return request.api('/v2/sku/GetCategories', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 获取商品
+ */
+ get_stores_skus_for_store: async (params?: AnyObject): Promise => {
+ return request.api('/v2/store/sku/GetStoresSkusForStore', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 获取商品
+ */
+ get_top_skus_by_city_code: async (params?: AnyObject): Promise => {
+ return request.api('/v2/store/sku/GetTopSkusByCityCode', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 获取待审核列表
+ */
+ get_store_sku_audit: async (params?: AnyObject): Promise => {
+ return request.api('/v2/store/sku/GetStoreSkuAudit', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 获取待审核列表
+ */
+ get_sku_names_new: async (params?: AnyObject): Promise => {
+ return request.api('/v2/sku/GetSkuNamesNew', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 审核商品
+ */
+ store_sku_price_audit: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/sku/StoreSkuPriceAudit', 'POST', params)
+ },
+
+
+ /*************************************************
+ * 请求京东商品库
+ */
+ get_jd_upc_code_by_name: async (params: AnyObject): Promise => {
+ return request.api('/v2/sku/GetJdUpcCodeByName', 'GET', params)
+ },
+
+
+ /*************************************************
+ * 微信扫码创建商品
+ */
+ create_skus_and_focus_from_wx: async (params: AnyObject): Promise => {
+ return request.api('/v2/store/sku/CreateSkusAndFocusFromWx', 'POST', params)
+ },
+}
+
+export default shopping
\ No newline at end of file
diff --git a/src/api/mockData/index.ts b/src/api/mockData/index.ts
new file mode 100644
index 0000000..5d6cc1e
--- /dev/null
+++ b/src/api/mockData/index.ts
@@ -0,0 +1,135 @@
+/**
+ * 模拟后端返回的数据
+ */
+
+// 聊天消息
+export const msgInfo = {
+ // 用户列表
+ userList: {
+ code: '0',
+ data: {
+ // '5873:18003191:1': ['{"vendorID":1,"userID":"11555094096","orderID":"","NewMessageNum":0,"latestMsg":"eAcvT+OGsaVYx/Avh6VagA==","latestTime":1695691485}'],
+ '34665:1157916361:3': ['{\"vendorID\":3,\"userID\":\"$2$13205337818$PNM\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"{\\\"extensions\\\":{\\\"appName\\\":\\\"ELEME\\\",\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"current_msg_source\\\":\\\"ELEME\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\"},\\\"text\\\":\\\"[微笑]\\\"}\", "latestTime": 1695691485}'],
+ },
+ desc: ''
+
+ // code: "0",
+ // data: {
+ // '34665:1157916361:3': ['{"vendorID":3,"userID":"$2$13205337818$PNM","orderID":"","NewMessageNum":1,"latestMsg":"{"extensions":{"appName":"ELEME","industryType":"NEW_RETAIL","current_msg_source":"ELEME","imsdk_role_name":"顾客","imsdk_self_show_name":"45d46975e","imsdk_other_show_name":"45d46975e"},"text":"[微笑]"}","latestTime":1698303946914}'],
+ // '5873:18003191:1': ['{"vendorID":1,"userID":"9533643193","orderID":"","NewMessageNum":0,"latestMsg":"dTZiwxiOJI5b5zwb1/uCwcCxh3F9MrZtyR+ojZoql4wtzgMh/gzuGRffhgWQd4Sz","latestTime":1698295674}", "{"vendorID":1,"userID":"12169240445","orderID":"1100782041270894459","NewMessageNum":0,"latestMsg":"ZiiFa7hQp0BV60OuBKPExiN6IN7fRkjzmcVpaA+kQoQ=","latestTime":1698295257}', '{"vendorID":1,"userID":"10892282642","orderID":"1100782384203287879","NewMessageNum":0,"latestMsg":"K/qIurzlbi2B7zv65/mCQg==","latestTime":1698295422}', '{"vendorID":1,"userID":"11009807262","orderID":"","NewMessageNum":0,"latestMsg":"+tFz6s6u+O8Ndpc2dwP4HA==","latestTime":1698297046}', '{"vendorID":1,"userID":"11436731575","orderID":"","NewMessageNum":0,"latestMsg":"iMqYgHLYMjKY3JoSMG9YLQ==","latestTime":1698295279}', '{"vendorID":1,"userID":"9167982931","orderID":"","NewMessageNum":0,"latestMsg":"R4cR7u9LPax/LDKqVHWVLw==","latestTime":1698300481}', '{"vendorID":1,"userID":"11432640354","orderID":"","NewMessageNum":0,"latestMsg":"QY5plA6VHEKS7GqXV4jJElsh0x90ftjPFGGoZjX4M/84LQn7ucu0ZeruelSd/VmmZ0OD966b6g5+0ZrgsLBIZiDo2sEOk8a02UUwNt60FPKZEhaCURWvYjCBqDJA8laH","latestTime":1698304171}', '{"vendorID":1,"userID":"10946780381","orderID":"1100782881905266609","NewMessageNum":1,"latestMsg":"dtj7qIlXCPm1ZWUjwfEPc65cnsG57UYatDG6g/kYjYU+CSzeFNPE1THgv2cHUB0QhpNo6jEnCDc0Vte2V5h14J7NJ5Zbaprfysx+gLRua68o2Pp4pF0LDSMLQ+7pGh/GRDjdfYYS4qFqU17eBbT82x1LjsuY1HWe8Z2znWyo43nEcLbtPFU09HwXFgxOQLBhF4As08Inc7bvN6BPR8F46QtQR52+PvxiWdsDRV54/F2CqxuoFR3up6wKmxvyzDWyEAgFI8Ym7zqItVBfG8HtEXTezY3gCjtpK0qRoYJqJ+dIuQewnDXbbxyqu/JvXSdiLYVRdrZgY9UI1hBDQU4zN6XI2u/w8tzk3a6mSrTCfUyaB0xr5/bwLYfgwV4WDw0EaLQEr2R0OmMerlRMheR3A+GMYVxl+BcYx0fUrKuH7Fs1TNSRCS4ug4iMr/GoTv76J8jl1b2ihrFDPiVQRxPdSw==","latestTime":1698308642}']
+ // },
+ // desc: ""
+ },
+ // 聊天详情
+ chatDetail: {
+ // code: '0',
+ // data: {
+ // '5873:18003191:1:11555094096': [
+ // // '{"sendType":"mt","msgContent":{"app_id":5873,"app_poi_code":"18003191","msg_id":1400636412362739712,"msg_content":"eAcvT+OGsaVYx/Avh6VagA==","msg_source":2,"msg_type":1,"cts":1695691485,"open_user_id":11555094096,"order_id":1100738343654371431,"group_id":0,"app_spu_codes":""}}'
+ // '{"sendType":"mt","msgContent":{"app_id":5873,"app_poi_code":"18003191","msg_id":1400636412362739712,"msg_content":"kJhw2zGHISMeeNatcB62eoctFxbqneVDKiP75531PhYMisp7wJN44Yk/JpwHwbcg","msg_source":2,"msg_type":1,"cts":1695691485,"open_user_id":11555094096,"order_id":1100738343654371431,"group_id":0,"app_spu_codes":""}}'
+ // ]
+ // },
+ // desc: ''
+ code: "0",
+ // data: {
+ // "34665:1157916361:3": [
+ // // "{"sendType":"mt","msgContent":{"app_id":589,"app_poi_code":"12704348","msg_id":1439524935878283264,"msg_content":"","msg_source":2,"msg_type":4,"cts":1704963231,"open_user_id":11555078706,"order_id":0,"group_id":0,"app_spu_codes":"23163"}}" // 聊天详情 商品卡片 待优化
+ // "{\"vendorID\":3,\"userID\":\"$2$13205337818$PNM\",\"orderID\":\"\",\"NewMessageNum\":1,\"latestMsg\":\"{\\\"extensions\\\":{\\\"appName\\\":\\\"ELEME\\\",\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"current_msg_source\\\":\\\"ELEME\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\"},\\\"text\\\":\\\"[微笑]\\\"}\",\"latestTime\":1698303946914}"], "5873:18003191:1": ["{\"vendorID\":1,\"userID\":\"9533643193\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"dTZiwxiOJI5b5zwb1/uCwcCxh3F9MrZtyR+ojZoql4wtzgMh/gzuGRffhgWQd4Sz\",\"latestTime\":1698295674}", "{\"vendorID\":1,\"userID\":\"12169240445\",\"orderID\":\"1100782041270894459\",\"NewMessageNum\":0,\"latestMsg\":\"ZiiFa7hQp0BV60OuBKPExiN6IN7fRkjzmcVpaA+kQoQ=\",\"latestTime\":1698295257}", "{\"vendorID\":1,\"userID\":\"10892282642\",\"orderID\":\"1100782384203287879\",\"NewMessageNum\":0,\"latestMsg\":\"K/qIurzlbi2B7zv65/mCQg==\",\"latestTime\":1698295422}", "{\"vendorID\":1,\"userID\":\"11009807262\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"+tFz6s6u+O8Ndpc2dwP4HA==\",\"latestTime\":1698297046}", "{\"vendorID\":1,\"userID\":\"11436731575\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"iMqYgHLYMjKY3JoSMG9YLQ==\",\"latestTime\":1698295279}", "{\"vendorID\":1,\"userID\":\"9167982931\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"R4cR7u9LPax/LDKqVHWVLw==\",\"latestTime\":1698300481}", "{\"vendorID\":1,\"userID\":\"11432640354\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"QY5plA6VHEKS7GqXV4jJElsh0x90ftjPFGGoZjX4M/84LQn7ucu0ZeruelSd/VmmZ0OD966b6g5+0ZrgsLBIZiDo2sEOk8a02UUwNt60FPKZEhaCURWvYjCBqDJA8laH\",\"latestTime\":1698304171}", "{\"vendorID\":1,\"userID\":\"10946780381\",\"orderID\":\"1100782881905266609\",\"NewMessageNum\":1,\"latestMsg\":\"dtj7qIlXCPm1ZWUjwfEPc65cnsG57UYatDG6g/kYjYU+CSzeFNPE1THgv2cHUB0QhpNo6jEnCDc0Vte2V5h14J7NJ5Zbaprfysx+gLRua68o2Pp4pF0LDSMLQ+7pGh/GRDjdfYYS4qFqU17eBbT82x1LjsuY1HWe8Z2znWyo43nEcLbtPFU09HwXFgxOQLBhF4As08Inc7bvN6BPR8F46QtQR52+PvxiWdsDRV54/F2CqxuoFR3up6wKmxvyzDWyEAgFI8Ym7zqItVBfG8HtEXTezY3gCjtpK0qRoYJqJ+dIuQewnDXbbxyqu/JvXSdiLYVRdrZgY9UI1hBDQU4zN6XI2u/w8tzk3a6mSrTCfUyaB0xr5/bwLYfgwV4WDw0EaLQEr2R0OmMerlRMheR3A+GMYVxl+BcYx0fUrKuH7Fs1TNSRCS4ug4iMr/GoTv76J8jl1b2ihrFDPiVQRxPdSw==\",\"latestTime\":1698308642}"]
+ // },
+ data: {
+ "34665:1157916361:3:$2$13205337818$PNM": [
+ // "{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"10154538612\",\"receiverIds\":[\"301157916361\",\"10154538612\",\"321921188187760\"],\"createTime\":1698303833173,\"groupId\":\"$2$13205337818$PNM\",\"msgId\":\"1997094742949.PNM\",\"contentType\":2,\"content\":\"{\\\"elements\\\":[{\\\"elementContent\\\":\\\"{\\\\\\\"atAll\\\\\\\":false,\\\\\\\"defaultNick\\\\\\\":\\\\\\\"商家\\\\\\\",\\\\\\\"uid\\\\\\\":{\\\\\\\"appUid\\\\\\\":\\\\\\\"301157916361\\\\\\\",\\\\\\\"domain\\\\\\\":\\\\\\\"eleme\\\\\\\"}}\\\",\\\"elementType\\\":3},{\\\"elementContent\\\":\\\"{\\\\\\\"extensions\\\\\\\":{\\\\\\\"imsdk_self_show_name\\\\\\\":\\\\\\\"45d46975e\\\\\\\",\\\\\\\"appName\\\\\\\":\\\\\\\"ELEME\\\\\\\",\\\\\\\"imsdk_role_name\\\\\\\":\\\\\\\"顾客\\\\\\\",\\\\\\\"imsdk_other_show_name\\\\\\\":\\\\\\\"45d46975e\\\\\\\",\\\\\\\"industryType\\\\\\\":\\\\\\\"NEW_RETAIL\\\\\\\",\\\\\\\"current_msg_source\\\\\\\":\\\\\\\"ELEME\\\\\\\"},\\\\\\\"text\\\\\\\":\\\\\\\"您好,请问我的订单还要多久送达?\\\\\\\"}\\\",\\\"elementType\\\":1}]}\"},\"platformShopId\":\"1157916361\"}}", "{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"10154538612\",\"receiverIds\":[\"301157916361\",\"10154538612\",\"321921188187760\"],\"createTime\":1698303918483,\"groupId\":\"$2$13205337818$PNM\",\"msgId\":\"1996910978679.PNM\",\"contentType\":1,\"content\":\"{\\\"extensions\\\":{\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"appName\\\":\\\"ELEME\\\",\\\"current_msg_source\\\":\\\"ELEME\\\"},\\\"text\\\":\\\"您好\\\"}\"},\"platformShopId\":\"1157916361\"}}", "{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"10154538612\",\"receiverIds\":[\"301157916361\",\"10154538612\",\"321921188187760\"],\"createTime\":1698303946914,\"groupId\":\"$2$13205337818$PNM\",\"msgId\":\"1991934371357.PNM\",\"contentType\":1,\"content\":\"{\\\"extensions\\\":{\\\"appName\\\":\\\"ELEME\\\",\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"current_msg_source\\\":\\\"ELEME\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\"},\\\"text\\\":\\\"[微笑]\\\"}\"},\"platformShopId\":\"1157916361\"}}"
+
+ "{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"101000124198002\",\"receiverIds\":[\"321921188187760\",\"101000124198002\",\"301157916361\"],\"createTime\":1699000572978,\"groupId\":\"$2$13315405121$PNM\",\"msgId\":\"2011596619981.PNM\",\"contentType\":\"2\",\"content\":\"{\\\"fileType\\\":3,\\\"mediaId\\\":\\\"$igHNA-kCpGpwZWcDAQTNAc4FzQPoBtoAI4QBpCFQvEYCqrkXr-dN527mZcwDzwAAAYuUU1obBM4Al-xzB88AAFvb7IZscggACgQLzgAB9EQ\\\",\\\"orientation\\\":0,\\\"size\\\":128068}\"},\"platformShopId\":\"1157916361\"}}",
+ "{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"101000124198002\",\"receiverIds\":[\"321921188187760\",\"101000124198002\",\"301157916361\"],\"createTime\":1699000587153,\"groupId\":\"$2$13315405121$PNM\",\"msgId\":\"2019467437200.PNM\",\"contentType\":\"1\",\"content\":\"{\\\"extensions\\\":{},\\\"text\\\":\\\"是现杀的新鲜鸡\\\"}\"},\"platformShopId\":\"1157916361\"}}",
+ "{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"101000124198002\",\"receiverIds\":[\"321921188187760\",\"101000124198002\",\"301157916361\"],\"createTime\":1699000598697,\"groupId\":\"$2$13315405121$PNM\",\"msgId\":\"2019605209369.PNM\",\"contentType\":\"8\",\"content\":\"{\\\"elements\\\":[{\\\"elementContent\\\":\\\"{\\\\\\\"atAll\\\\\\\":false,\\\\\\\"defaultNick\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"uid\\\\\\\":{\\\\\\\"appUid\\\\\\\":\\\\\\\"301157916361\\\\\\\",\\\\\\\"domain\\\\\\\":\\\\\\\"eleme\\\\\\\"}}\\\",\\\"elementType\\\":3},{\\\"elementContent\\\":\\\"{\\\\\\\"extensions\\\\\\\":{},\\\\\\\"text\\\\\\\":\\\\\\\"还是冻的?@商家 \\\\\\\"}\\\",\\\"elementType\\\":1}]}\"},\"platformShopId\":\"1157916361\"}}"
+ ]
+ },
+ desc: ""
+ }
+
+ // // 美团音频数据
+ // code: "0"
+ // data: "{"5873:18003191:1:11555094096":["{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1411251415327150080,\"msg_content\":\"QYYLNKWSeCO+c2Sw/K73hBtYPD54B+AT5Vndt26ynS0VQW/QJ87hZGwwBVBaM8GB3edmiLPqLzAwR4tzvZjGBO2VmlOjNb6+vYiAWjGY1ACbPdlAq3bLvwlyCe/Kx68Sf2kKF+jWTWFF/bON2VQI/O8C6xBTh2GY4B5jpfEKWllJvqwQXqWc5ietgLEWmuTP7/NcCFZGt8JJfdA7yFQqqb/AS130qAv0/JIvgv9c+ZgAuJmmInjxnEyij7vKntDF5/fDozT+H7zApPunkK+QrE+ewCmErQkk2oWK8m+I1gqLWdYr31sBN72Og81l3u4W8E/hV+sO50U7sQbuHWEASQ==\",\"msg_source\":2,\"msg_type\":3,\"cts\":1698222298,\"open_user_id\":11555094096,\"order_id\":0,\"group_id\":0,\"app_spu_codes\":\"\"}}"]}"
+ // desc: ""
+
+ // 美团音频数据
+ // QYYLNKWSeCO+c2Sw/K73hBtYPD54B+AT5Vndt26ynS0VQW/QJ87hZGwwBVBaM8GB3edmiLPqLzAwR4tzvZjGBO2VmlOjNb6+vYiAWjGY1ACbPdlAq3bLvwlyCe/Kx68Sf2kKF+jWTWFF/bON2VQI/O8C6xBTh2GY4B5jpfEKWllJvqwQXqWc5ietgLEWmuTP7/NcCFZGt8JJfdA7yFQqqb/AS130qAv0/JIvgv9c+ZgAuJmmInjxnEyij7vKntDF5/fDozT+H7zApPunkK+QrE+ewCmErQkk2oWK8m+I1gqLWdYr31sBN72Og81l3u4W8E/hV+sO50U7sQbuHWEASQ==
+ // https://file.neixin.cn/proxy/0/s3/afc/698bce4c-ddc6-4b10-a24b-3790120a0fa6_1698222298877?AWSAccessKeyId=115479efca564d62820d47f9153702f9&Expires=1698308699&Signature=dOhRnfq0udZFrVPz5sK8j4tj9uo%3D>m=1698222299573&filename=2023-10-25+16%3A24%3A58+907.amr
+
+
+ // 用户列表
+ // code: "0"
+ // data: "{"5873:18003191:1":["{\"vendorID\":1,\"userID\":\"9099662511\",\"orderID\":\"1100756014203287879\",\"NewMessageNum\":0,\"latestMsg\":\"sgfc6Fw3EEC+N4h7mR8iLTTIuu6o2eMXVL6JqmAx9LHWroiRUNZXQNLzwrd9bG6I\",\"latestTime\":1696737412}","{\"vendorID\":1,\"userID\":\"11161356777\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"ML73Il8Yl/02TZ7hYx39/Q==\",\"latestTime\":1696748470}","{\"vendorID\":1,\"userID\":\"10492988799\",\"orderID\":\"1100756704146983163\",\"NewMessageNum\":0,\"latestMsg\":\"HFi0BcKs2zyQwwgwk6kUDQ==\",\"latestTime\":1696743753}","{\"vendorID\":1,\"userID\":\"11555094096\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"FskpgyfRcmbvR3Ut0sPVgvRKwIrjZ+uXRjW1HK9k7mQ=\",\"latestTime\":1696752752}","{\"vendorID\":1,\"userID\":\"11121583583\",\"orderID\":\"1100756913067981796\",\"NewMessageNum\":0,\"latestMsg\":\"wXP3NiYAF1hhFM+CD/P3HOzbADez/9KCNvD6L+R0uD0=\",\"latestTime\":1696752253}"]}"
+ // desc: ""
+
+ // 聊天详情
+ // code: "0"
+ // data: "{"5873:18003191:1:11161356777":["{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1405065885751885824,\"msg_content\":\"dtj7qIlXCPm1ZWUjwfEPc65cnsG57UYatDG6g/kYjYU+CSzeFNPE1THgv2cHUB0QhpNo6jEnCDc0Vte2V5h14J7NJ5Zbaprfysx+gLRua68o2Pp4pF0LDSMLQ+7pGh/GRDjdfYYS4qFqU17eBbT82x1LjsuY1HWe8Z2znWyo43lQ6CpTqmwcGYGriWDe92cWJ9eptuKRkZFmirAkYmuHKyKi3ce9lJ9MH3JogKczw+tmb4ooRd8z9ZiFIMTQ9pG11peV45qLmcZXgMo9Q7t3cZEgX4fU2RGdT2gpGXOTl48599Y79ic49DQU9szebnLslUwZekawLCwt99laGfhPfSZhR5CmeuzfYe/VFlTbQG++BxrK2ZSPrJtqStLVN7gGfnR/cHwmIfSDL3JZwymQ1cA641E8P3BmTQPzboOMNqrbWXYMdiiCbpLfEmYz7i+KoT4CsrBZEmPFuK3C8RynGBUDz9ZTGq+tB1sWC6kFDFN+BbeZz6gzrPFw6ydCHIDh\",\"msg_source\":2,\"msg_type\":5,\"cts\":1696747553,\"open_user_id\":11161356777,\"order_id\":1100756844146983163,\"group_id\":0,\"app_spu_codes\":\"\"}}","{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1405065906828263424,\"msg_content\":\"cCwNlL9ukNzOfS/A76CWnA==\",\"msg_source\":2,\"msg_type\":1,\"cts\":1696747558,\"open_user_id\":11161356777,\"order_id\":1100756844146983163,\"group_id\":0,\"app_spu_codes\":\"\"}}","{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1405065937144692736,\"msg_content\":\"Cx7e5k07X34v9MXn/dPKX3t9cKUo2RTKFegWCoFIg7s=\",\"msg_source\":2,\"msg_type\":1,\"cts\":1696747565,\"open_user_id\":11161356777,\"order_id\":1100756844146983163,\"group_id\":0,\"app_spu_codes\":\"\"}}","{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1405066156422905856,\"msg_content\":\"51kZuOfsFBtHME6GxxkY9SzIP7XDBD1QVKPY/G+RVucUSI32PuK3+5yRI2j2UboLPh8dXFsrLKzbXxwV9P8B6QGlHyiE8V19v4cwFo6hxt0=\",\"msg_source\":2,\"msg_type\":1,\"cts\":1696747618,\"open_user_id\":11161356777,\"order_id\":1100756844146983163,\"group_id\":0,\"app_spu_codes\":\"\"}}","{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1405066372173709312,\"msg_content\":\"TsXJ4usAgosTFgs1ar9DcusMZ5cK5ZfLxBuIjtu3d7k=\",\"msg_source\":2,\"msg_type\":1,\"cts\":1696747669,\"open_user_id\":11161356777,\"order_id\":1100756844146983163,\"group_id\":0,\"app_spu_codes\":\"\"}}","{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1405069732759126016,\"msg_content\":\"ML73Il8Yl/02TZ7hYx39/Q==\",\"msg_source\":2,\"msg_type\":1,\"cts\":1696748470,\"open_user_id\":11161356777,\"order_id\":0,\"group_id\":0,\"app_spu_codes\":\"\"}}"]}"
+ // desc: ""
+
+ // 加密内容
+ // "kJhw2zGHISMeeNatcB62eoctFxbqneVDKiP75531PhYMisp7wJN44Yk/JpwHwbcg"
+ // 译文:啦啦啦[大哭][睡]忆往昔[嘘]哈哈
+
+ // 表情
+ // code: "0"
+ // data: "{"5873:18003191:1:11555094096":["{\"sendType\":\"mt\",\"msgContent\":{\"app_id\":5873,\"app_poi_code\":\"18003191\",\"msg_id\":1401396902286315520,\"msg_content\":\"rq+Y2WYA/UjW7inVLzG3IQ==\",\"msg_source\":2,\"msg_type\":1,\"cts\":1695872799,\"open_user_id\":11555094096,\"order_id\":0,\"group_id\":0,\"app_spu_codes\":\"\"}}"]}"
+ // desc: ""
+
+ // rq+Y2WYA/UjW7inVLzG3IQ==\
+ // M/whRohCtpsVTviiMAK8hQ==
+}
+
+// 饿百用户列表
+// code: "0"
+// data: "{"34665:1157916361:3":["{\"vendorID\":3,\"userID\":\"$2$13205337818$PNM\",\"orderID\":\"\",\"NewMessageNum\":1,\"latestMsg\":\"{\\\"extensions\\\":{\\\"appName\\\":\\\"ELEME\\\",\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"current_msg_source\\\":\\\"ELEME\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\"},\\\"text\\\":\\\"[微笑]\\\"}\",\"latestTime\":1698303946914}"],"5873:18003191:1":["{\"vendorID\":1,\"userID\":\"9533643193\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"dTZiwxiOJI5b5zwb1/uCwcCxh3F9MrZtyR+ojZoql4wtzgMh/gzuGRffhgWQd4Sz\",\"latestTime\":1698295674}","{\"vendorID\":1,\"userID\":\"12169240445\",\"orderID\":\"1100782041270894459\",\"NewMessageNum\":0,\"latestMsg\":\"ZiiFa7hQp0BV60OuBKPExiN6IN7fRkjzmcVpaA+kQoQ=\",\"latestTime\":1698295257}","{\"vendorID\":1,\"userID\":\"10892282642\",\"orderID\":\"1100782384203287879\",\"NewMessageNum\":0,\"latestMsg\":\"K/qIurzlbi2B7zv65/mCQg==\",\"latestTime\":1698295422}","{\"vendorID\":1,\"userID\":\"11009807262\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"+tFz6s6u+O8Ndpc2dwP4HA==\",\"latestTime\":1698297046}","{\"vendorID\":1,\"userID\":\"11436731575\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"iMqYgHLYMjKY3JoSMG9YLQ==\",\"latestTime\":1698295279}","{\"vendorID\":1,\"userID\":\"9167982931\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"R4cR7u9LPax/LDKqVHWVLw==\",\"latestTime\":1698300481}","{\"vendorID\":1,\"userID\":\"11432640354\",\"orderID\":\"\",\"NewMessageNum\":0,\"latestMsg\":\"QY5plA6VHEKS7GqXV4jJElsh0x90ftjPFGGoZjX4M/84LQn7ucu0ZeruelSd/VmmZ0OD966b6g5+0ZrgsLBIZiDo2sEOk8a02UUwNt60FPKZEhaCURWvYjCBqDJA8laH\",\"latestTime\":1698304171}","{\"vendorID\":1,\"userID\":\"10946780381\",\"orderID\":\"1100782881905266609\",\"NewMessageNum\":1,\"latestMsg\":\"dtj7qIlXCPm1ZWUjwfEPc65cnsG57UYatDG6g/kYjYU+CSzeFNPE1THgv2cHUB0QhpNo6jEnCDc0Vte2V5h14J7NJ5Zbaprfysx+gLRua68o2Pp4pF0LDSMLQ+7pGh/GRDjdfYYS4qFqU17eBbT82x1LjsuY1HWe8Z2znWyo43nEcLbtPFU09HwXFgxOQLBhF4As08Inc7bvN6BPR8F46QtQR52+PvxiWdsDRV54/F2CqxuoFR3up6wKmxvyzDWyEAgFI8Ym7zqItVBfG8HtEXTezY3gCjtpK0qRoYJqJ+dIuQewnDXbbxyqu/JvXSdiLYVRdrZgY9UI1hBDQU4zN6XI2u/w8tzk3a6mSrTCfUyaB0xr5/bwLYfgwV4WDw0EaLQEr2R0OmMerlRMheR3A+GMYVxl+BcYx0fUrKuH7Fs1TNSRCS4ug4iMr/GoTv76J8jl1b2ihrFDPiVQRxPdSw==\",\"latestTime\":1698308642}"]}"
+// desc: ""
+
+// $2$13205337818$PNM
+// 饿百聊天详情
+// code: "0"
+// data: "{"34665:1157916361:3:$2$13205337818$PNM":["{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"10154538612\",\"receiverIds\":[\"301157916361\",\"10154538612\",\"321921188187760\"],\"createTime\":1698303833173,\"groupId\":\"$2$13205337818$PNM\",\"msgId\":\"1997094742949.PNM\",\"contentType\":8,\"content\":\"{\\\"elements\\\":[{\\\"elementContent\\\":\\\"{\\\\\\\"atAll\\\\\\\":false,\\\\\\\"defaultNick\\\\\\\":\\\\\\\"商家\\\\\\\",\\\\\\\"uid\\\\\\\":{\\\\\\\"appUid\\\\\\\":\\\\\\\"301157916361\\\\\\\",\\\\\\\"domain\\\\\\\":\\\\\\\"eleme\\\\\\\"}}\\\",\\\"elementType\\\":3},{\\\"elementContent\\\":\\\"{\\\\\\\"extensions\\\\\\\":{\\\\\\\"imsdk_self_show_name\\\\\\\":\\\\\\\"45d46975e\\\\\\\",\\\\\\\"appName\\\\\\\":\\\\\\\"ELEME\\\\\\\",\\\\\\\"imsdk_role_name\\\\\\\":\\\\\\\"顾客\\\\\\\",\\\\\\\"imsdk_other_show_name\\\\\\\":\\\\\\\"45d46975e\\\\\\\",\\\\\\\"industryType\\\\\\\":\\\\\\\"NEW_RETAIL\\\\\\\",\\\\\\\"current_msg_source\\\\\\\":\\\\\\\"ELEME\\\\\\\"},\\\\\\\"text\\\\\\\":\\\\\\\"您好,请问我的订单还要多久送达?\\\\\\\"}\\\",\\\"elementType\\\":1}]}\"},\"platformShopId\":\"1157916361\"}}","{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"10154538612\",\"receiverIds\":[\"301157916361\",\"10154538612\",\"321921188187760\"],\"createTime\":1698303918483,\"groupId\":\"$2$13205337818$PNM\",\"msgId\":\"1996910978679.PNM\",\"contentType\":1,\"content\":\"{\\\"extensions\\\":{\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"appName\\\":\\\"ELEME\\\",\\\"current_msg_source\\\":\\\"ELEME\\\"},\\\"text\\\":\\\"您好\\\"}\"},\"platformShopId\":\"1157916361\"}}","{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"10154538612\",\"receiverIds\":[\"301157916361\",\"10154538612\",\"321921188187760\"],\"createTime\":1698303946914,\"groupId\":\"$2$13205337818$PNM\",\"msgId\":\"1991934371357.PNM\",\"contentType\":1,\"content\":\"{\\\"extensions\\\":{\\\"appName\\\":\\\"ELEME\\\",\\\"industryType\\\":\\\"NEW_RETAIL\\\",\\\"current_msg_source\\\":\\\"ELEME\\\",\\\"imsdk_role_name\\\":\\\"顾客\\\",\\\"imsdk_self_show_name\\\":\\\"45d46975e\\\",\\\"imsdk_other_show_name\\\":\\\"45d46975e\\\"},\\\"text\\\":\\\"[微笑]\\\"}\"},\"platformShopId\":\"1157916361\"}}"]}"
+// desc: ""
+
+// 饿百用户发送消息时
+// 模拟客户发消息
+// let msg1 = JSON.stringify({
+// sendType: 'elm',
+// msgContent: {
+// subBizType: 'SEND_MESSAGE',
+// bizType: 'IM',
+// payLoad: {
+// senderId: "10154538612",
+// receiverIds: ["301157916361", "10154538612", "321921188187760"],
+// createTime: 1698303946914,
+// groupId: "$2$13205337818$PNM",
+// msgId: new Date().getTime() + '',
+// contentType: 1,
+// content: JSON.stringify({
+// extensions: {
+// appName: "ELEME",
+// industryType: "NEW_RETAIL",
+// current_msg_source: "ELEME",
+// imsdk_role_name: "顾客",
+// imsdk_self_show_name: "45d46975e",
+// imsdk_other_show_name: "45d46975e"
+// },
+// text: "11问问"
+// })
+// }
+// }
+// })
+
+
+// 饿百,需测试优化
+// 聊天列表
+// code: "0"
+// data: "{"34665:32267630646:3:$2$21107997212$PNM":["{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"20115813777\",\"receiverIds\":[\"10494269706\",\"20115813777\",\"302036272194\",\"322233065879\"],\"createTime\":1715677161257,\"groupId\":\"$2$21107997212$PNM\",\"msgId\":\"2902868590187.PNM\",\"contentType\":\"101\",\"content\":\"{\\\"data\\\":\\\"{\\\\\\\"mistTemplate\\\\\\\":{\\\\\\\"error\\\\\\\":\\\\\\\"[当前消息不支持,请升级版本]\\\\\\\",\\\\\\\"layoutId\\\\\\\":\\\\\\\"10007\\\\\\\",\\\\\\\"layoutVersion\\\\\\\":\\\\\\\"20240320171418\\\\\\\",\\\\\\\"placeHolder\\\\\\\":{\\\\\\\"hight\\\\\\\":600,\\\\\\\"width\\\\\\\":300}},\\\\\\\"shortTitle\\\\\\\":\\\\\\\"[卡片消息]\\\\\\\"}\\\",\\\"degradeText\\\":\\\"\\\",\\\"summary\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"type\\\":10007}\"},\"platformShopId\":\"32267630646\"}}"]}"
+// desc: ""
+
+
+// 聊天详情
+// code: "0"
+// data: "{"34665:32267630646:3:$2$21107997212$PNM":["{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"20115813777\",\"receiverIds\":[\"10494269706\",\"20115813777\",\"302036272194\",\"322233065879\"],\"createTime\":1715677161257,\"groupId\":\"$2$21107997212$PNM\",\"msgId\":\"2902868590187.PNM\",\"contentType\":\"101\",\"content\":\"{\\\"data\\\":\\\"{\\\\\\\"mistTemplate\\\\\\\":{\\\\\\\"error\\\\\\\":\\\\\\\"[当前消息不支持,请升级版本]\\\\\\\",\\\\\\\"layoutId\\\\\\\":\\\\\\\"10007\\\\\\\",\\\\\\\"layoutVersion\\\\\\\":\\\\\\\"20240320171418\\\\\\\",\\\\\\\"placeHolder\\\\\\\":{\\\\\\\"hight\\\\\\\":600,\\\\\\\"width\\\\\\\":300}},\\\\\\\"shortTitle\\\\\\\":\\\\\\\"[卡片消息]\\\\\\\"}\\\",\\\"degradeText\\\":\\\"\\\",\\\"summary\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"type\\\":10007}\"},\"platformShopId\":\"32267630646\"}}","{\"sendType\":\"elm\",\"msgContent\":{\"subBizType\":\"SEND_MESSAGE\",\"bizType\":\"IM\",\"payLoad\":{\"senderId\":\"302036272194\",\"receiverIds\":null,\"createTime\":1715680290254,\"groupId\":\"$2$21107997212$PNM\",\"msgId\":\"2902644397115.PNM\",\"contentType\":\"1\",\"content\":\"{\\\"extensions\\\":{},\\\"text\\\":\\\"1\\\"}\"},\"platformShopId\":\"32267630646\"}}"]}"
+// desc: ""
\ No newline at end of file
diff --git a/src/api/request.ts b/src/api/request.ts
new file mode 100644
index 0000000..f8ca5a7
--- /dev/null
+++ b/src/api/request.ts
@@ -0,0 +1,234 @@
+/**
+ *@description: 请求接口配置文件
+ *@return {*}
+ *@param
+*/
+import urlConfig from "./config";
+import toast from "@/utils/toast";
+import { cleatStorage, getStorage } from "@/utils/storage";
+import { store } from "@/store";
+import { addTask, jx_trembling } from "@/utils/tools";
+import configCms from "@/utils/configCms";
+import log from '@/utils/log'
+
+
+// 定义请求类型
+type methodsType = "GET" | "OPTIONS" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT" | undefined
+// 定义方法中的类型
+type FnApiType = {
+ (url: string, methods: methodsType, data?: AnyObject | string, timeout?: number, baseURL?: string, contentType?: string): Promise
+}
+// 定义方法类型
+interface Api {
+ api: FnApiType
+}
+// 请求类型请求头
+let cType = 'application/x-www-form-urlencoded'
+// 最大超时时间默认15秒
+let timeouts: any = 0
+// 清空定时器,在800毫秒内数据请求回来了就清空定时器
+let timer: any
+// 最大请求加载图层时间
+let timer1: any
+// 保存请求中断
+let requestTask: any = null
+
+
+/*************************************************
+ * 封装请求方法
+ * @param {string} [url] 请求地址
+ * @param {methodsType} [method] 请求方法默认GET
+ * @param {object} [data] 请求参数默认""
+ * @param {number} [timeout] 请求超时时间
+ * @param {string} [baseURL] 请求根路径默认https://wx.jxc4.com
+ * @param {string} [contentType] 请求头类型默认'application/x-www-form-urlencoded'
+ * @return {promist} [resolve, reject] promist成功与失败
+*/
+
+const request: Api = {
+ api: (url, method = 'GET', data = "", timeout = 1000 * 20, baseURL = urlConfig, contentType = cType) => {
+ if (requestGuard(url)) {
+ return new Promise((resolve, reject) => { })
+ }
+ timeouts = timeout
+ // store.commit('storeInfo/jxLoadingFn', false) // 关闭自定义加载图(vuex)
+ clearTimeout(timer)
+ timer = setTimeout(() => {
+ // 显示自定义加载图(vuex)
+ // store.commit('storeInfo/jxLoadingFn', true)
+ // uni.showNavigationBarLoading()
+ // 最大时间加载图
+ tremblingJxLoadingFn()
+ }, 600)
+ if (url == '/v2/cms/GetNewOrderMsg') store.commit('storeInfo/jxLoadingFn', false)
+ return new Promise((resolve, reject) => {
+ requestTask = uni.request({
+ url: baseURL + url,
+ method: method,
+ data: data,
+ timeout: timeout,
+ header: {
+ 'content-type': contentType,
+ 'token': getStorage('token') ? getStorage('token') : 'jxcs'
+ },
+ success: (res) => {
+ //#region
+ let logData = {
+ '日志记录时间': Date(),
+ '调用接口': url,
+ '请求方法': method,
+ '请求参数': data,
+ '请求超时时间': timeout,
+ '请求域名': baseURL,
+ '登录类型': getStorage('loginType') ? getStorage('loginType') : '未获取到用户登录类型',
+ '用户TOKEN': getStorage('token') ? getStorage('token') : '未获取到用户TOKEN',
+ '权限ID': getStorage('userType') ? getStorage('userType') : '未获取到用户权限ID',
+ '用户ID': getStorage('userID') ? getStorage('userID') : '未获取到用户ID',
+ '用户ID2': getStorage('userID2') ? getStorage('userID2') : '未获取到用户ID2',
+ '用户手机号': getStorage('mobile') ? getStorage('mobile') : '未获取到用户手机号',
+ '店铺ID': getStorage('storeID') ? getStorage('storeID') : '未获取到店铺ID',
+ '店铺名字': getStorage('storeName') ? getStorage('storeName') : '未获取到店铺名字',
+ '网络状态码': res.statusCode,
+ '服务端数据': res.data
+ }
+ //#endregion
+ // store.commit('storeInfo/jxLoadingFn', false) // 关闭自定义加载图(vuex)
+ if (res.statusCode >= 200 && res.statusCode < 300) {
+ log.info(JSON.stringify(logData))
+ // 通过token 验证 通过store 验证
+ if ((res.data as AnyObject).code == '-2') {
+ uni.jxAlert({
+ title: '提示',
+ content: '登录信息已过期',
+ confirmText: '重新登录',
+ success: () => {
+ cleatStorage()
+ uni.reLaunch({ url: '/subPages/login/wxLogin/wxLogin' })
+ }
+ })
+ return false
+ } else {
+ // 验证通过
+ try {
+ const jsonData = JSON.parse((res.data as AnyObject).data)
+ resolve({
+ code: (res.data as AnyObject).code,
+ data: jsonData,
+ desc: (res.data as AnyObject).desc
+ })
+ } catch (error) {
+ resolve(res.data as AnyObject)
+ }
+ }
+ } else if (res.statusCode >= 400 && res.statusCode < 500) {
+ log.warn(JSON.stringify(logData))
+ toast('客户端出错', 2)
+ reject('客户端出错')
+ } else if (res.statusCode >= 500) {
+ log.warn(JSON.stringify(logData))
+ toast('服务端出错', 2)
+ reject('服务端出错')
+ } else {
+ log.warn(JSON.stringify(logData))
+ toast('网络请求出错', 2)
+ }
+ },
+ fail: (error) => {
+ if (error.errMsg == 'request:fail abort') {
+ // 中断请求
+ return false
+ }
+ toast('网络请求超时', 2)
+ console.log('jx-网络请求超时', error);
+ reject(`网络请求超时 -- request.ts, ${error}`)
+ //#region
+ let logData = {
+ '日志记录时间': Date(),
+ '调用接口': url,
+ '请求方法': method,
+ '请求参数': data,
+ '请求超时时间': timeout,
+ '请求域名': baseURL,
+ '登录类型': getStorage('loginType') ? getStorage('loginType') : '未获取到用户登录类型',
+ '用户TOKEN': getStorage('token') ? getStorage('token') : '未获取到用户TOKEN',
+ '权限ID': getStorage('userType') ? getStorage('userType') : '未获取到用户权限ID',
+ '用户ID': getStorage('userID') ? getStorage('userID') : '未获取到用户ID',
+ '用户ID2': getStorage('userID2') ? getStorage('userID2') : '未获取到用户ID2',
+ '用户手机号': getStorage('mobile') ? getStorage('mobile') : '未获取到用户手机号',
+ '店铺ID': getStorage('storeID') ? getStorage('storeID') : '未获取到店铺ID',
+ '店铺名字': getStorage('storeName') ? getStorage('storeName') : '未获取到店铺名字',
+ '请求错误信息': error
+ }
+ log.error(JSON.stringify(logData)) // 普通请求日志
+ //#endregion
+ },
+ complete: () => {
+ uni.stopPullDownRefresh()
+ // uni.hideNavigationBarLoading()
+ // store.commit('storeInfo/jxLoadingFn', false) // 关闭自定义加载图(vuex)
+ uni.hideLoading()
+ clearTimeout(timer) // 清空定时器
+ }
+ })
+
+ // 添加请求记录到缓存
+ if (url == '/v2/cms/GetNewOrderMsg') return
+ addTask(requestTask)
+ })
+ }
+}
+
+/*************************************************
+ * 防抖超时加载图层
+*/
+const tremblingJxLoadingFn = jx_trembling(() => {
+ clearTimeout(timer1)
+ timer1 = setTimeout(() => {
+ store.commit('storeInfo/jxLoadingFn', false) // 关闭自定义加载图(vuex)
+ clearTimeout(timer1)
+ }, timeouts)
+}, 500)
+
+
+/*************************************************
+ * 登录守卫
+*/
+function requestGuard(url: string) {
+ // 获取网络状态
+ uni.getNetworkType({
+ success: (res) => {
+ if (res.networkType == 'none') {
+ store.commit('serveInfo/setIsNetWorkS', false)
+ } else {
+ store.commit('serveInfo/setIsNetWorkS', true)
+ }
+ }
+ })
+
+ // 验证token
+ if (!getStorage('token') && !configCms.whiteListUrl.includes(url)) {
+ // store.commit('serveInfo/setIsFirestLogin', true)
+ return true
+ }
+
+ // 验证storeID
+ if (!getStorage('storeID') && !configCms.whiteListUrl.includes(url)) {
+ rulerStoreID()
+ return true
+ }
+
+ // 验证网络状态
+ if (!store.state.serveInfo.isNetWork) {
+ return true
+ }
+
+ store.commit('serveInfo/setIsFirestLogin', getStorage('token') ? false : true)
+ return false
+}
+// 门店防抖节流
+const rulerStoreID = jx_trembling(() => {
+ uni.navigateTo({ url: "/subPages/switchStore/switchStore" })
+}, 1000)
+
+
+export default request
\ No newline at end of file
diff --git a/src/components/dialog/dialog.ts b/src/components/dialog/dialog.ts
new file mode 100644
index 0000000..a64e3ab
--- /dev/null
+++ b/src/components/dialog/dialog.ts
@@ -0,0 +1,55 @@
+export default {
+ // 链接处理
+ getLink(params: AnyObject) {
+ let url = "/components/dialog/dialogCom";
+ if (params) {
+ let paramStr = "";
+ for (let name in params) {
+ paramStr += `&${name}=${params[name]}`
+ }
+ if (paramStr) {
+ url += `?${paramStr.substr(1)}`
+ }
+ }
+ return url;
+ },
+
+ // 全局弹窗
+ dialog(params = {}, callback: Function) {
+ uni.navigateTo({
+ url: this.getLink(params),
+ success(e) {
+ uni.$off("jx_dialog");
+ uni.$on("jx_dialog", (type) => {
+ callback && callback(type)
+ })
+ }
+ })
+ },
+
+ // 弹出提示弹窗
+ alert(data = {}, callback: Function, close?: Function) {
+ let obj1 = { type: "alert", isCloseBtn: '0', isMaskClose: '0' };
+ let params = Object.assign(obj1, data)
+ this.dialog(params, (type: string) => {
+ if ("confirm" == type) {
+ callback && callback()
+ } else {
+ close && close()
+ }
+ })
+ },
+
+ // 确认提示框弹窗
+ confirm(data = {}, confirm: Function, cancel: Function) {
+ let obj1 = { type: "confirm", isCloseBtn: '0', isMaskClose: '0' };
+ let params = Object.assign(obj1, data)
+ this.dialog(params, (type: string) => {
+ if ("confirm" == type) {
+ confirm && confirm()
+ } else if ("cancel" == type) {
+ cancel && cancel()
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/src/components/dialog/dialogCom.vue b/src/components/dialog/dialogCom.vue
new file mode 100644
index 0000000..b826d0a
--- /dev/null
+++ b/src/components/dialog/dialogCom.vue
@@ -0,0 +1,202 @@
+
+
+
+
+ {{ info.title }}
+
+
+
+ {{ info.content }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/dialog/dialogUtil.ts b/src/components/dialog/dialogUtil.ts
new file mode 100644
index 0000000..961f692
--- /dev/null
+++ b/src/components/dialog/dialogUtil.ts
@@ -0,0 +1,42 @@
+import dialog from "./dialog"
+
+const jxMOdal = {
+ /**
+ * 弹出提示
+ */
+ alert(options: any) {
+ uni.showModal({
+ title: options.title,
+ content: options.content,
+ confirmText: options.confirmText || '确定',
+ showCancel: false,
+ confirmColor: "#51b535",
+ success: options.success
+ })
+ },
+
+ /**
+ * 确认提示框
+ */
+ confirm(options: any) {
+ uni.showModal({
+ content: options.content,
+ title: options.title,
+ confirmText: options.confirmText || '确定',
+ cancelText: options.cancelText || '取消',
+ confirmColor: "#51b535",
+ success: (e) => {
+ if (e.confirm) {
+ options.success && options.success()
+ } else if (e.cancel) {
+ options.fail && options.fail()
+ }
+ },
+ fail: (e) => {
+ console.log(e, '自定义弹窗发生错误')
+ }
+ })
+ }
+}
+
+export default jxMOdal
\ No newline at end of file
diff --git a/src/components/jx-empty/jx-empty.vue b/src/components/jx-empty/jx-empty.vue
new file mode 100644
index 0000000..06442b8
--- /dev/null
+++ b/src/components/jx-empty/jx-empty.vue
@@ -0,0 +1,57 @@
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-icon/jx-icon.vue b/src/components/jx-icon/jx-icon.vue
new file mode 100644
index 0000000..b9153e5
--- /dev/null
+++ b/src/components/jx-icon/jx-icon.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-input/jx-input.vue b/src/components/jx-input/jx-input.vue
new file mode 100644
index 0000000..825a2bb
--- /dev/null
+++ b/src/components/jx-input/jx-input.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-load-more/jx-load-more.vue b/src/components/jx-load-more/jx-load-more.vue
new file mode 100644
index 0000000..246f4c4
--- /dev/null
+++ b/src/components/jx-load-more/jx-load-more.vue
@@ -0,0 +1,72 @@
+
+
+
+
+ {{ loadText }}
+
+
+ ———
+ {{ tip }}
+ ———
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-loading/jx-loading.vue b/src/components/jx-loading/jx-loading.vue
new file mode 100644
index 0000000..af17228
--- /dev/null
+++ b/src/components/jx-loading/jx-loading.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+ 拼
+ 命
+ 加
+ 载
+ 中
+ ,
+ 请
+ 稍
+ 后
+ .
+ .
+ .
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-loading/jxLoading.png b/src/components/jx-loading/jxLoading.png
new file mode 100644
index 0000000..1720ff9
Binary files /dev/null and b/src/components/jx-loading/jxLoading.png differ
diff --git a/src/components/jx-login-empty/jx-login-empty.vue b/src/components/jx-login-empty/jx-login-empty.vue
new file mode 100644
index 0000000..38e3d5d
--- /dev/null
+++ b/src/components/jx-login-empty/jx-login-empty.vue
@@ -0,0 +1,113 @@
+
+
+
+ 在试一次
+
+
+
+
+
+ (仅限京西商家用户登录使用)
+ 立即登录
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-price/jx-price.vue b/src/components/jx-price/jx-price.vue
new file mode 100644
index 0000000..12f75ed
--- /dev/null
+++ b/src/components/jx-price/jx-price.vue
@@ -0,0 +1,64 @@
+
+
+ {{ symbol }}
+ {{ money }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-real-income/jx-real-income.vue b/src/components/jx-real-income/jx-real-income.vue
new file mode 100644
index 0000000..cae8351
--- /dev/null
+++ b/src/components/jx-real-income/jx-real-income.vue
@@ -0,0 +1,103 @@
+
+ ¥{{ earning }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/jx-upload-img/jx-upload-img.vue b/src/components/jx-upload-img/jx-upload-img.vue
new file mode 100644
index 0000000..fb66be0
--- /dev/null
+++ b/src/components/jx-upload-img/jx-upload-img.vue
@@ -0,0 +1,232 @@
+
+
+ {{ title }}
+
+
+
+ 点击上传
+
+ {{
+ img ? '修改' : '上传'
+ }}
+ 删 除
+ 取 消
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/composables/useGlobalFunc.ts b/src/composables/useGlobalFunc.ts
new file mode 100644
index 0000000..04ee061
--- /dev/null
+++ b/src/composables/useGlobalFunc.ts
@@ -0,0 +1,577 @@
+import merchant from "@/api/https/merchant";
+import { store } from "@/store";
+import { setStorage, jx_default_storage_plugin, getStorage, cleatStorage } from "@/utils/storage";
+import toast from "@/utils/toast";
+import { timeFormatD } from "@/utils/tools";
+import { utilsMd5 } from '@/utils/md5.js'
+import Bluetooth from '@/utils/bluetoothPrinter/bluetooth'
+import { store as newStore } from '@/store'
+import util from '@/utils/bluetoothPrinter/util'
+import login from "@/api/https/login";
+import order from "@/api/https/order";
+import { computed } from "vue";
+import { emojiAnanlyze } from '@/utils/emoji'
+
+/**
+ * 今日营业数据
+ * @param data 事实订单数据
+ */
+function useGlobalFunc() {
+ const bluetooth: any = getStorage('deviceName') ? new Bluetooth() : null
+
+
+ /*************************************************
+ * 获取实时订单数据
+ * @time 2023年2月1日 11点17分
+ * @param {data} 请求data数据
+ * @return {res} code:响应状态 data:响应数据 desc:错误信息
+ */
+ async function globGetToDay(data: AnyObject) {
+ let orderNumber = await merchant.get_store_order_sale_info(data);
+ if (orderNumber.code == 0) {
+ return orderNumber.data
+ } else {
+ toast("实时订单数据异常", 2);
+ }
+ }
+
+
+ /*************************************************
+ * 退出登录
+ */
+ function logOutFn() {
+ cleatStorage('token')
+ cleatStorage('userID')
+ cleatStorage('userType')
+ cleatStorage('storeID')
+ cleatStorage('storeName')
+ cleatStorage('userID2')
+ cleatStorage('mobile')
+ cleatStorage('isAgreement')
+ cleatStorage('loginType')
+ store.commit('serveInfo/setIsFirestLogin', true)
+ }
+
+
+ /*************************************************
+ * 查看详情图片
+ * @time 2023-02-01 11:18:09
+ * @param {}-
+ * @return {*}
+ */
+ async function previewImage(url: string | Array,index?:number) {
+ new Promise((resolve, reject) => {
+ uni.previewImage({
+ current: index ? index : typeof url === 'string' ? url : url[0],
+ urls: Array.isArray(url) ? url : [url],
+ success: (res: any) => {
+ resolve(res)
+ },
+ fail: (err: any) => {
+ toast(err)
+ reject(err)
+ }
+ })
+ })
+ uni.vibrateShort({})
+ }
+
+
+ /*************************************************
+ * 存储用户信息
+ * @param {object} [data] 用户信息数据
+ */
+ let serveInfoTimer: any = null
+ async function setUserInfo(data: AnyObject) {
+ setStorage("token", data.token);
+ setStorage("userID", data.userID);
+ setStorage("userID2", data.userID2);
+ setStorage("mobile", data.mobile);
+ setStorage("loginType", data.authBindInfo.type);
+ jx_default_storage_plugin()
+ // 防止ios app 出现认证信息还没有缓存就已经跳转请求了
+ if (getStorage("storeID")) {
+ await store.dispatch('storeInfo/getOneStore', getStorage("storeID"))
+ uni.switchTab({ url: '/pages/order-manager/main' })
+ } else {
+ let storeRes = await login.get_my_store_list({ version: '1.3.5' })
+ let dataList = storeRes.data || []
+ if (dataList.length == 0) {
+ return uni.jxAlert({
+ title: '提示',
+ content: '该账号未绑定门店,请联系运营绑定,加盟联系电话18048531223'
+ })
+ }
+ if (dataList.length == 1) {
+ let data = dataList[0]
+ setStorage("storeID", data.id);
+ setStorage("storeName", data.name)
+ uni.switchTab({ url: '/pages/merchant/index' })
+ return
+ }
+
+ clearTimeout(serveInfoTimer)
+ serveInfoTimer = setTimeout(() => {
+ uni.navigateTo({ url: "/subPages/switchStore/switchStore" })
+ }, 0)
+ }
+
+ }
+
+
+ /*************************************************
+ * app 微信登录
+ * @bangding {Function} 绑定
+ * @seccess {Function} 登录成功
+ */
+
+
+ /*************************************************
+ * 全局判断是否有新信息,有信息就在tabar显示
+ */
+ async function newMessage() {
+ let data = {
+ storeIDs: JSON.stringify([+getStorage('storeID')]),
+ fromReadCount: 0,
+ toReadCount: 0,
+ offset: 0,
+ pageSize: -1,
+ fromTime:
+ timeFormatD(+new Date() - 7 * 24 * 60 * 60 * 1000) + ' 00:00:00',
+ toTime: timeFormatD(+new Date()) + ' 23:59:59',
+ }
+ let msgRes = await merchant.Get_store_message_statuses(data)
+ if (msgRes.code == 0) {
+ let num = msgRes.data.totalCount
+
+ // 没有信息,移除
+ if (num == 0) {
+ store.commit('storeInfo/setIsNewMessage', false)
+ uni.removeTabBarBadge({ index: 3 })
+ } else {
+ store.commit('storeInfo/setIsNewMessage', true)
+ // 有信息显示
+ uni.setTabBarBadge({
+ index: 3,
+ text: num > 100 ? '99+' : '' + num,
+ })
+ }
+ }
+ }
+
+
+ /**************************************************************
+ * 复制订单信息内容
+ * @param {String} data 需要复制的内容
+ * @param {String} [text] 复制成功提示内容(非必填)
+ * @param {string} [errorT] 复制失败提示内容(非必填)
+ */
+ function copyInfo(data: string, text = '复制成功', errorT = '复制失败') {
+ uni.setClipboardData({
+ data: data,
+ success() {
+ toast(text)
+ },
+ fail() {
+ toast(errorT)
+ }
+ })
+ uni.vibrateShort({})
+ }
+
+
+ /************************************************************
+ * 拨打电话
+ * @param {string} phoneNumber 将要拨号的手机号
+ * @param {String} [text] 拨号成功提示内容(非必填)
+ * @param {string} [errorT] 拨号失败提示内容(非必填)
+ */
+ function phoneCall(phoneNumber: string, text = '拨号完成', errorT = '取消拨号') {
+ uni.makePhoneCall({
+ phoneNumber: phoneNumber,
+ success() {
+ console.log(text)
+ },
+ fail() {
+ toast(errorT)
+ }
+ })
+ uni.vibrateShort({})
+ }
+
+
+ const businessKey = 'XKJPOIHJ233adf01KJIXlIeQDSDKFJAD' // 商户秘钥
+ /*************************************************
+ * 统一微信支付功能
+ * 说明:app暂未申请支付功能,仅支持小程序支付
+ * @param {number} [chargeMoney] 支付金额
+ * @param {number | string} [storeID] 门店ID
+ * @param {Function} [fn] 支付回调,成功或失败都会调用
+ * @param {string} [vendorOrderID] 订单id
+ *
+ */
+ async function globalPlayMoney(orderPayType: number, chargeMoney: number, StoreID: number | string, code: string, fn: Function, vendorOrderID = '') {
+ let tempMoney = +chargeMoney * 100
+ // 创建订单
+ let data = {
+ orderType: orderPayType,
+ storeID: StoreID,
+ price: tempMoney,
+ vendorOrderID: vendorOrderID
+ }
+ let orderNum = await order.create_store_acct_order(data)
+ // 支付订单
+ let data1 = {
+ subAppID: 'wx08a5c2a8581414ff',
+ payType: orderPayType,
+ vendorOrderID: orderNum.data,
+ vendorPayType: 'W06',
+ code: `weixinappcs_${code}`
+ }
+ let orderInfo = await order.pay4_user(data1)
+ let newOrderInfo = orderInfo.data
+ // 调用微信支付
+ handleCreatePay(newOrderInfo.vendorOrderID, newOrderInfo.prepayID, JSON.parse(newOrderInfo.codeURL), fn)
+ }
+ // 微信支付
+ function handleCreatePay(orderInfo: any, prepayID: number | string, codeURL: AnyObject, fn: Function) {
+ let token = ''
+ token = getStorage('token')
+ let timeStamp: string
+ let randomNum: number
+ let strPay: string
+ let nonceStr: string
+ let packageA: string
+ let paySign: string
+ let signType = 'MD5'
+ if (codeURL) {
+ // 通联收银 payType 2
+ timeStamp = codeURL.timeStamp
+ nonceStr = codeURL.nonceStr
+ packageA = codeURL.package
+ signType = codeURL.signType
+ paySign = codeURL.paySign
+ } else {
+ timeStamp = Math.round(new Date().getTime() / 1000).toString()
+ randomNum = (Math.random() * 5) + 1
+ strPay = timeStamp + token + randomNum
+ nonceStr = utilsMd5.hex_md5(strPay)
+ packageA = `prepay_id=${prepayID}`
+ paySign = utilsMd5.hex_md5(`appId=wx4b5930c13f8b1170&nonceStr=${nonceStr}&package=${packageA}&signType=MD5&timeStamp=${timeStamp}&key=${businessKey}`)
+ }
+ uni.requestPayment({
+ provider: 'wxpay',
+ orderInfo: orderInfo,
+ timeStamp: timeStamp,
+ nonceStr: nonceStr,
+ package: packageA,
+ signType: signType,
+ paySign: paySign,
+ success: () => {
+ toast('充值成功', 1)
+ },
+ fail: () => {
+ toast('取消充值', 2)
+ },
+ complete: () => {
+ fn && fn()
+ }
+ })
+ }
+
+
+ /*************************************************
+ * 打开微信小程序
+ * @param {string} [url] 跳转地址
+ * @param {string} [id] 小程序原始ID
+ */
+
+
+ /*************************************************
+ * 判断门店是否在营业中
+ * @param {any} [newTime] 需要判断的时间
+ */
+ function isTrades(newTime: any): boolean {
+ let storeInfo = newStore.state.storeInfo.allStoreInfo
+ let businessTime: Array = []
+ businessTime[0] = storeInfo.openTime1
+ businessTime[1] = storeInfo.closeTime1
+ businessTime[2] = storeInfo.openTime2
+ businessTime[3] = storeInfo.closeTime2
+
+ // 获取当前时间进行比较
+ let honer = newTime.getHours()
+ let minutes = newTime.getMinutes() < 10 ? '0' + newTime.getMinutes() : newTime.getMinutes()
+ let time: number = +(String(honer) + String(minutes))
+
+ // true-未休息 false-休息中
+ return (time >= businessTime[0] && time <= businessTime[1]) || (time >= businessTime[2] && time <= businessTime[3])
+ }
+
+ /*************************************************
+ * 格式化今日订单数据
+ */
+ function wholeCalcPrice(calcData: AnyObject) {
+ if (calcData.isPointStore) {
+ if (calcData.isNotQuote || calcData.isZero) {
+ return calcData.actualPayPrice
+ ? (calcData.actualPayPrice / 100).toFixed(2)
+ : 0;
+ } else {
+ if (calcData.isUpperfif) {
+ return calcData.earningPrice
+ ? (calcData.earningPrice / 100).toFixed(2)
+ : 0;
+ } else {
+ return "请按平台查看";
+ }
+ }
+ } else {
+ if (calcData.isUpperfif || calcData.isZero) {
+ return calcData.earningPrice
+ ? (calcData.earningPrice / 100).toFixed(2)
+ : 0;
+ } else {
+ return "请按平台查看";
+ }
+ }
+ }
+
+
+ /*************************************************
+ * 格式化今日订单数据
+ */
+ function singleCalcPrice(calcData: AnyObject) {
+ if (calcData.vendorPayPercentage != 0) {
+ return calcData.vendorPayPercentage < 50 ? (calcData.actualPayPrice / 100).toFixed(2) : (calcData.earningPrice / 100).toFixed(2)
+ } else {
+ return calcData.isPointStore ? (calcData.actualPayPrice / 100).toFixed(2) : (calcData.earningPrice / 100).toFixed(2)
+ }
+ }
+
+
+ /*************************************************
+ * 查询打印机状态并连接
+ */
+ const playVoid = uni.createInnerAudioContext()
+ function setPrinterStatus() {
+ // 获取打印机信息
+ let data: any = getStorage('commitBTDevCharact')
+ setInterval(() => {
+ let isPlay = store.state.storeInfo.isConnectPrinter
+ // 判断打印机是否在线
+ util.notifyBLEState(data.deviceId, data.serviceId, data.uuid)
+ .then(async (res) => {
+ if (res != 12) {
+ console.log('连接失败')
+ await bluetooth.reconnect()
+ if (!isPlay) return
+ playVoidFn()
+ store.commit('storeInfo/setIsConnectPrinter', false)
+
+ } else {
+ console.log('连接正常')
+ store.commit('storeInfo/setIsConnectPrinter', true)
+ }
+ }).catch(async () => {
+ console.log('连接失败')
+ await bluetooth.reconnect()
+ if (!isPlay) return
+ playVoidFn()
+ store.commit('storeInfo/setIsConnectPrinter', false)
+ })
+ }, 1000 * 10)
+ }
+ // 播放音频
+ function playVoidFn() {
+ playVoid.src = 'https://image.jxc4.com/image/ee1174253ee2919a23d7ea5277b2141b.jpg'
+ playVoid.stop()
+ playVoid.play()
+ }
+
+
+ /*************************************************
+ * 提示用户未勾选
+ */
+ let time: any = null
+ function isUserAgreementFn() {
+ store.commit('serveInfo/setIsAgreementIf', false)
+ clearTimeout(time)
+ time = setTimeout(() => {
+ uni.vibrateShort({})
+ store.commit('serveInfo/setIsAgreementIf', true)
+ }, 200)
+ }
+
+ // ******************** 判断是否有淘鲜达 *****************************
+ //#region
+ const storeMaps = computed(() => {
+ return store.state.storeInfo.allStoreInfo
+ })
+ function isTxd() {
+ let state = false
+ storeMaps.value.StoreMaps.forEach((item: AnyObject) => {
+ if (item.vendorID == 16) {
+ state = true
+ }
+ })
+ return state
+ }
+ //#endregion
+
+ /**
+ * 查询美团/饿百的IM状态
+ */
+ const getMtStoreIMStatus = async () => {
+ let mtStore = isExistPlatformID(1)
+ let ebStore = isExistPlatformID(3)
+ let data = []
+ if (mtStore && mtStore.length > 0) {
+ data.push({
+ vendorID: 1,
+ vendorOrgCode: mtStore[0].vendorOrgCode + '',
+ vendorStoreID: mtStore[0].vendorStoreID + ''
+ })
+ }
+
+ if (ebStore && ebStore.length > 0) data.push({
+ vendorID: 3,
+ vendorOrgCode: ebStore[0].vendorOrgCode + '',
+ vendorStoreID: ebStore[0].vendorStoreID + ''
+ })
+ if (data.length === 0) return
+ let res = await merchant.get_mt_store_im_status({ data: data })
+ let arr: any = []
+ if (res.code === '0') {
+
+ res.data.forEach((item: AnyObject) => {
+ if (item.errMsg && item.errMsg) arr.push({
+ ...item,
+ vendorID: +item.errMsg.substring(0, 1)
+ })
+ else arr.push({ ...item })
+ })
+ }
+ store.commit('storeInfo/setImOnlineStatus', arr)
+ }
+
+ /**
+ * 是否存在某个平台
+ */
+ function isExistPlatformID(platformID: number) {
+ return storeMaps.value.StoreMaps && storeMaps.value.StoreMaps.length > 0 ? storeMaps.value.StoreMaps.filter((item: AnyObject) => item.vendorID == platformID) : []
+ }
+
+ /**
+ * 是否含有聊天表情
+ */
+ function isCloudEmoji(emoji: string) {
+ let emojiArr = emoji.match(/\[(.+?)\]/g)
+ return emojiArr && emojiArr.length > 0 ? true : false
+ }
+
+ interface emojiType {
+ type: string,
+ text: string,
+ emoji: string
+ }
+
+ /**
+ * 解析emoji数据
+ */
+ function analyEmoji(emoji: string) {
+ if (!isCloudEmoji(emoji)) {
+ return [
+ {
+ type: 'text',
+ text: emoji,
+ emoji: ''
+ }
+ ]
+ }
+
+ // emoji = '[大哭][大哭][大哭][大哭][心碎][心碎][心碎]11111顶顶顶顶呃零零零零[流泪]iiiihdhggydgjfg kevbuygbhjbnb'
+
+ let arr: emojiType[] = []
+
+ let emojiArr: string[] = emoji.match(/\[(.+?)\]/g) || []
+ if (emojiArr && emojiArr.length > 0) {
+ emojiArr.map((item, index) => {
+ let emojiImg = emojiAnanlyze(item) // 返回的emoji解析数据
+ if (emojiImg === item) emojiImg = 'unknown:' + item // 未知表情
+ let indexOf = emoji.indexOf(item) // item在聊天emoji中的位置
+
+ if (indexOf === 0) {
+ // emoji
+ arr.push({
+ type: 'emoji',
+ text: '',
+ emoji: emojiImg
+ })
+
+ // emoji之后的文字
+ let afterSymbol = emoji.substring(indexOf + item.length, indexOf + item.length + 1)
+ if (afterSymbol !== '[' && afterSymbol.length > 0 && index === emojiArr.length - 1) {
+ arr.push({
+ type: 'text',
+ text: emoji.substring(indexOf + item.length),
+ emoji: ''
+ })
+ }
+ } else {
+ // emoji之前的文字
+ arr.push({
+ type: 'text',
+ text: emoji.substring(0, indexOf),
+ emoji: ''
+ })
+
+ // emoji
+ arr.push({
+ type: 'emoji',
+ text: '',
+ emoji: emojiImg
+ })
+
+ // emoji之后的文字
+ let afterSymbol = emoji.substring(indexOf + item.length, indexOf + item.length + 1)
+ if (afterSymbol !== '[' && afterSymbol.length > 0 && index === emojiArr.length - 1) {
+ arr.push({
+ type: 'text',
+ text: emoji.substring(indexOf + item.length),
+ emoji: ''
+ })
+ }
+ }
+
+ emoji = emoji.replace(emoji.substring(0, indexOf + item.length), '') // 清除已处理完的数据
+ })
+ }
+ return arr || []
+ }
+
+
+
+ return {
+ globGetToDay, //获取实时订单数据
+ previewImage, // 查看详情图
+ setUserInfo, // 储存用户信息
+ newMessage, // 展示新信息
+ copyInfo, // 复制信息
+ phoneCall, // 拨打电话
+ globalPlayMoney, // 统一支付
+ isTrades, // 判断是否是在营业时间
+ wholeCalcPrice, // 格式化今日订单数据
+ singleCalcPrice, // 格式化今日订单数据
+ setPrinterStatus, // 查询打印机状态并连接
+ logOutFn, // 退出登录
+ isUserAgreementFn, // 提示用户未勾选
+ isTxd, // 判断是否有淘鲜达
+ getMtStoreIMStatus, // 获取美团IM单聊状态
+ analyEmoji, // 解析emoji表情
+ isCloudEmoji // 是否含有emoji
+ }
+}
+
+
+export default useGlobalFunc
\ No newline at end of file
diff --git a/src/composables/useOrderInfo.ts b/src/composables/useOrderInfo.ts
new file mode 100644
index 0000000..8a1fe0d
--- /dev/null
+++ b/src/composables/useOrderInfo.ts
@@ -0,0 +1,290 @@
+/**
+ * 订单管理hooks
+ */
+
+import { getStorage } from "@/utils/storage"
+import toast from "@/utils/toast"
+import util from "@/utils/bluetoothPrinter/util"
+import Bluetooth from '@/utils/bluetoothPrinter/bluetooth'
+import printerTemplate from '@/utils/bluetoothPrinter/printerTemplate'
+import configCms from "@/utils/configCms"
+import merchant from "@/api/https/merchant"
+import order from "@/api/https/order"
+
+function useOrderInfo() {
+ const bluetooth: any = getStorage('deviceName') ? new Bluetooth() : null
+ /**************************************************************
+ * 复制订单信息内容
+ * @param {String} data 需要复制的内容
+ * @param {String} [text] 复制成功提示内容(非必填)
+ * @param {string} [errorT] 复制失败提示内容(非必填)
+ */
+ function copyInfo(data: string, text = '复制成功', errorT = '复制失败') {
+ uni.setClipboardData({
+ data: data,
+ success() {
+ toast(text, 1)
+ },
+ fail() {
+ toast(errorT)
+ }
+ })
+ uni.vibrateShort({})
+ }
+
+
+ /************************************************************
+ * 拨打电话
+ * @param {string} phoneNumber 将要拨号的手机号
+ * @param {String} [text] 拨号成功提示内容(非必填)
+ * @param {string} [errorT] 拨号失败提示内容(非必填)
+ */
+ function phoneCall(phoneNumber: string, text = '拨号完成', errorT = '取消拨号') {
+ uni.makePhoneCall({
+ phoneNumber: phoneNumber,
+ success() {
+ console.log(text)
+ },
+ fail() {
+ toast(errorT)
+ }
+ })
+ uni.vibrateShort({})
+ }
+
+
+ /************************************************************
+ * 跳转到详情页
+ * @param {string} vendorOrderID 订单id
+ * @param {string} vendorID 品牌id
+ */
+ function orderDetail(vendorOrderID: string, vendorID: string) {
+ uni.navigateTo({ url: `/subPages/orderChild/orderDetail/orderDetail?vendorOrderID=${vendorOrderID}&vendorID=${vendorID}` })
+ }
+
+
+ /*************************************************************
+ * 跳转到配送管理页面
+ * @param {string} vendorOrderID 订单id
+ */
+ function deliverManager(vendorOrderID: string) {
+ uni.navigateTo({ url: `/subPages/orderChild/deliverManager/deliverManager?orderId=${vendorOrderID}` })
+ }
+
+
+ /************************************************************
+ * 打印订单
+ * @param {string} vendorOrderID 订单号
+ * @param {string} vendorID 品牌ID
+ */
+ async function printerOrder(vendorOrderID: string, vendorID: string) {
+ if (getStorage('defaultPrinter') == '0') {
+ // 蓝牙打印机
+ bluetoothPrinter(vendorOrderID)
+ } else if (getStorage('defaultPrinter') == '1') {
+ // 网络打印机
+ internetPrinter(vendorOrderID, vendorID)
+ } else {
+ // 手动选择
+ uni.jxConfirm({
+ title: '选择设备',
+ content: '请选择打印设备进行打印',
+ confirmText: '网络打印',
+ cancelText: '蓝牙打印',
+ isReturn: 1,
+ success: () => {
+ internetPrinter(vendorOrderID, vendorID)
+ },
+ fail: () => {
+ bluetoothPrinter(vendorOrderID)
+ }
+ })
+ }
+ }
+
+ /**
+ * 网络打印
+ * @param {string} vendorOrderID 订单号
+ */
+ async function internetPrinter(vendorOrderID: string, vendorID: string) {
+ let res = await order.get_printer_status({
+ storeID: getStorage('storeID'),
+ })
+ if (res.code == 0) {
+ if (res.data.printerStatus == 2) {
+ let data = {
+ vendorOrderID,
+ vendorID,
+ }
+ let pOorder = await order.print_order(data)
+ if (pOorder.code == 0) {
+ toast('订单发送成功', 1)
+ } else {
+ toast('订单发送失败', 2)
+ }
+ } else {
+ let data = {
+ vendorOrderID,
+ vendorID,
+ }
+ let pOorder = await order.print_order(data)
+ if (pOorder.code == 0) {
+ uni.jxAlert({
+ title: '提示',
+ content: '打印机已离线,但订单已推动成功'
+ })
+ } else {
+ toast('订单发送失败', 2)
+ }
+ }
+ } else {
+ toast('获取打印机数据异常', 2)
+ }
+ }
+
+ /**
+ * 蓝牙打印
+ */
+ async function bluetoothPrinter(vendorOrderID: any, type = 1) {
+ if (getStorage('deviceName')) {
+ let data: any
+ if (type == 1) {
+ data = {
+ vendorOrderID: vendorOrderID
+ }
+ } else {
+ data = vendorOrderID
+ }
+
+ let orderRes = await order.get_orders(data)
+ if (orderRes.code == 0) {
+ getPrinterSku(orderRes.data.data[0]) // 获取订单数据
+ } else {
+ toast('测试订单数据异常')
+ }
+ } else {
+ toast('未连接打印机')
+ }
+ }
+
+ // 获取订单数据
+ let timer1: any = null
+ async function getPrinterSku(orderInfo: AnyObject) {
+ let data = {
+ vendorOrderID: orderInfo.vendorOrderID,
+ vendorID: orderInfo.vendorID
+ }
+ let skuRes = await merchant.get_order_sku_info(data)
+ if (skuRes.code) {
+ let data = {
+ orderInfo: orderInfo,
+ skus: skuRes.data,
+ }
+ let datas: any = getStorage('commitBTDevCharact')
+ getBlechData()
+ util.notifyBLEState(datas.deviceId, datas.serviceId, datas.uuid)
+ .then(async (res) => {
+ if (res == 12) {
+ toast('正在打印订单')
+ bluetooth.notifyBLECharacteristicValue() // 订阅蓝牙 notify
+ clearTimeout(timer1)
+ timer1 = setTimeout(() => {
+ writeBLECharacteristicValue(data) // 向打印机写入数据
+ clearTimeout(timer1)
+ }, 500)
+ } else {
+ toast('打印机异常请检查')
+ }
+ })
+ .catch(async (error) => {
+ toast(error)
+ })
+ return
+
+ } else {
+ toast('订单商品数据异常')
+ }
+ }
+ // 获取写入标识数据
+ function getBlechData() {
+ let datas: any = getStorage('commitBTDevCharact')
+ bluetooth.deviceId = datas.deviceId
+ bluetooth.serviceId = datas.serviceId
+ bluetooth.writeId = datas.uuid
+ }
+ //写入控制命令
+ async function writeBLECharacteristicValue(data: AnyObject) {
+ let printerCenter = await printerTemplate(data)
+ printbuffs(printerCenter)
+ }
+ // 分包向打印机发送数据
+ function printbuffs(buffer: any) {
+ // 1.并行调用多次会存在写失败的可能性
+ // 2.建议每次写入不超过20字节
+ // 分包处理,延时调用
+ const maxChunk = 20
+ const delay = 20
+ for (
+ let i = 0, j = 0, length = buffer.byteLength;
+ i < length;
+ i += maxChunk, j++
+ ) {
+ let subPackage = buffer.slice(
+ i,
+ i + maxChunk <= length ? i + maxChunk : length
+ )
+ setTimeout(printbuff, j * delay, subPackage)
+ }
+ }
+ // 写入数据
+ function printbuff(buffer: any) {
+ bluetooth.writeBLECharacteristicValue(buffer)
+ }
+
+
+ /************************************************************
+ * 转换厂商
+ */
+ function waybillVendor(
+ waybillVendorID: number,
+ status: number,
+ waybillStatus: number
+ ) {
+ if (waybillVendorID == -1) {
+ if (status < 25 && waybillStatus == 0) {
+ return '暂无配送员'
+ } else if (waybillStatus >= 20) {
+ return '商家自送'
+ } else {
+ return '暂无配送信息'
+ }
+ } else {
+ return (configCms as AnyObject).serveInfo.vendorName[waybillVendorID]
+ }
+ }
+
+
+ /************************************************************
+ * 售后详情
+ */
+ function afterSalesDetaile(afsOrderID: number | string) {
+ uni.navigateTo({
+ url: `/subPages/orderChild/afterSalesOrderDetail/afterSalesOrderDetail?afsOrderID=${afsOrderID}`,
+ })
+ }
+
+
+ return {
+ copyInfo, // 复制内容
+ phoneCall, // 拨号
+ orderDetail, // 查看订单详情
+ deliverManager, // 配送管理
+ printerOrder, // 打印订单
+ waybillVendor, // 转换厂商
+ afterSalesDetaile, // 售后详情
+ bluetoothPrinter, // 打印订单
+ }
+}
+
+
+export default useOrderInfo
\ No newline at end of file
diff --git a/src/env.d.ts b/src/env.d.ts
new file mode 100644
index 0000000..ff7a876
--- /dev/null
+++ b/src/env.d.ts
@@ -0,0 +1,134 @@
+///
+
+
+/************************************************************
+ * vue 文件验证
+ * @auto zsw
+ * @time 2023年1月6日
+ * @emaile 2966211270@qq.com
+ * @param {}
+ * @return {}
+ */
+declare module '*.vue' {
+ import { DefineComponent } from 'vue'
+ const component: DefineComponent<{}, {}, any>
+ export default component
+}
+
+
+/**********************************************************
+ * nvue 文件验证
+ * @auto zsw
+ * @time 2023年1月6日
+ * @emaile 2966211270@qq.com
+ * @param {}
+ * @return {}
+ */
+declare module '*.nvue' {
+ import { DefineComponent } from 'vue'
+ const component: DefineComponent<{}, {}, any>
+ export default component
+}
+
+
+/**********************************************************
+ * ASE加密/解密文件验证
+ */
+declare module 'crypto-js' {
+ const content: any
+ export = content
+}
+
+
+
+/************************************************************
+ * 自定义挂载 uniapp 全局属性,自定义更改原生 modal 弹窗
+* @auto zsw
+ * @time 2023年1月6日
+ * @emaile 2966211270@qq.com
+ * @param {jxConfirm} 双按钮仿 ios module
+ * @param {jxAlert} 单按钮仿 ios module
+ * @return {}
+ */
+declare module 'uview-plus' {
+ interface alertType {
+ /**
+ * 提示标题(必填)
+ */
+ title: string
+ /**
+ * 提示内容(必填)
+ */
+ content: string
+ /**
+ * 确定按钮
+ */
+ confirmText?: string
+ /**
+ * 是否允许安卓按钮返回
+ * 默认:0;
+ * 0:不允许手势返回
+ * 1:允许使手势返回
+ */
+ isReturn?: 0 | 1
+ /**
+ * 成功回调
+ */
+ success?: Function
+ }
+
+ interface confirmType {
+ /**
+ * 提示标题(必填)
+ */
+ title: string
+ /**
+ * 提示内容(必填)
+ */
+ content: string
+ /**
+ * 确定按钮
+ */
+ confirmText?: string
+ /**
+ * 取消按钮
+ */
+ cancelText?: string
+ /**
+ * 是否允许安卓按钮返回
+ * 默认:0;
+ * 0:不允许手势返回
+ * 1:允许使手势返回
+ */
+ isReturn?: 0 | 1
+ /**
+ * 成功回调
+ */
+ success?: Function
+ /**
+ * 取消回调
+ */
+ fail?: Function
+ }
+ interface globalAlertType {
+ data: AnyObject
+ success?: Function
+ }
+ export function install(): void
+ global {
+ interface Uni {
+ /**
+ * 双按钮模态弹窗
+ */
+ jxConfirm: ((options: confirmType) => void)
+ /**
+ * 单按钮模态弹窗
+ */
+ jxAlert: ((options: alertType) => void)
+
+ /*************************************************************
+ * 允许uni 使用 showShareImageMenu 微信分享功能
+ */
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..2e48dc6
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,15 @@
+import { createSSRApp } from "vue";
+import App from "./App.vue";
+import { store, key } from "./store";
+export function createApp() {
+ const app = createSSRApp(App);
+ app.use(store, key)
+ app.config.errorHandler = (err, vm, info) => {
+ console.log(err, '错误信息')
+ console.log(vm, 'vue实例')
+ console.log(info, '错误位置')
+ }
+ return {
+ app
+ }
+}
\ No newline at end of file
diff --git a/src/manifest.json b/src/manifest.json
new file mode 100644
index 0000000..ef5c41f
--- /dev/null
+++ b/src/manifest.json
@@ -0,0 +1,174 @@
+{
+ "name": "京西菜市商家版",
+ "appid": "__UNI__F9A47D3",
+ "description": "1、商户通过京西平台同时管理美团、饿了么、京东等多个外卖平台实现一键上架、下架、修改、删除多个平台商品;2、商户通过京西平台可以同时对、美团专送、达达、顺丰同城等多个专送平台召唤偶骑手",
+ "versionName": "1.3.0",
+ "versionCode": 130,
+ "transformPx": false,
+ /* 5+App特有相关 */
+ "app-plus": {
+ "compatible": {
+ "ignoreVersion": true
+ },
+ "usingComponents": true,
+ "nvueStyleCompiler": "uni-app",
+ "compilerVersion": 3,
+ "splashscreen": {
+ "alwaysShowBeforeRender": false,
+ "waiting": false,
+ "autoclose": true,
+ "delay": 0
+ },
+ /* 模块配置 */
+ "modules": {},
+ /* 应用发布信息 */
+ "distribute": {
+ /* android打包配置 */
+ "android": {
+ "permissions": [],
+ "abiFilters": [
+ "armeabi-v7a",
+ "arm64-v8a",
+ "x86"
+ ],
+ "minSdkVersion": 23,
+ "targetSdkVersion": 28,
+ "autoSdkPermissions": false
+ },
+ /* ios打包配置 */
+ "ios": {
+ "dSYMs": false,
+ "privacyDescription": {
+ "NSPhotoLibraryUsageDescription": "",
+ "NSPhotoLibraryAddUsageDescription": "",
+ "NSBluetoothPeripheralUsageDescription": "",
+ "NSBluetoothAlwaysUsageDescription": "",
+ "NSCameraUsageDescription": ""
+ },
+ "capabilities": {
+ "entitlements": {
+ "com.apple.developer.associated-domains": []
+ }
+ },
+ "UIBackgroundModes": ""
+ },
+ /* SDK配置 */
+ "sdkConfigs": {
+ "share": {
+ "weixin": {
+ "appid": "wx18111a41fd17f24f",
+ "UniversalLinks": "https://www.jxc4.com"
+ }
+ },
+ "ad": {},
+ "payment": {
+ "weixin": {
+ "__platform__": [
+ "android"
+ ],
+ "appid": "wx18111a41fd17f24f",
+ "UniversalLinks": "https://www.jxc4.com"
+ }
+ },
+ "geolocation": {
+ "system": {
+ "__platform__": [
+ "ios"
+ ]
+ }
+ },
+ "oauth": {
+ "weixin": {
+ "appid": "wx18111a41fd17f24f",
+ "UniversalLinks": "https://www.jxc4.com"
+ }
+ },
+ "push": {
+ "unipush": {}
+ }
+ },
+ "icons": {
+ "android": {
+ "hdpi": "",
+ "xhdpi": "",
+ "xxhdpi": "",
+ "xxxhdpi": ""
+ },
+ "ios": {
+ "appstore": "",
+ "ipad": {
+ "app": "",
+ "app@2x": "",
+ "notification": "",
+ "notification@2x": "",
+ "proapp@2x": "",
+ "settings": "",
+ "settings@2x": "",
+ "spotlight": "",
+ "spotlight@2x": ""
+ },
+ "iphone": {
+ "app@2x": "",
+ "app@3x": "",
+ "notification@2x": "",
+ "notification@3x": "",
+ "settings@2x": "",
+ "settings@3x": "",
+ "spotlight@2x": "",
+ "spotlight@3x": ""
+ }
+ }
+ },
+ "splashscreen": {
+ "useOriginalMsgbox": false,
+ "androidStyle": "common",
+ "iosStyle": "common",
+ "android": {
+ "hdpi": "D:/桌面/京西/新商家版/图标(1)/480x762.png",
+ "xhdpi": "D:/桌面/京西/新商家版/图标(1)/720x1242.png",
+ "xxhdpi": "D:/桌面/京西/新商家版/图标(1)/1080x1882.png"
+ }
+ }
+ },
+ "nativePlugins": {}
+ },
+ /* 快应用特有相关 */
+ "quickapp": {},
+ /* 小程序特有相关 */
+ "mp-weixin": {
+ "appid": "wx08a5c2a8581414ff",
+ "libVersion": "latest",
+ "setting": {
+ "urlCheck": false
+ },
+ "usingComponents": true,
+ "lazyCodeLoading": "requiredComponents",
+ "plugins": {
+ "chatGroupPlugin": {
+ "version": "1.1.2",
+ "provider": "wxaae6519cee98d824"
+ }
+ },
+ "permission": {
+ "scope.userLocation": {
+ "desc": "你的位置信息将用于搜索附近的蓝牙打印机设备"
+ }
+ }
+ },
+ "mp-alipay": {
+ "usingComponents": true
+ },
+ "mp-baidu": {
+ "usingComponents": true
+ },
+ "mp-toutiao": {
+ "usingComponents": true
+ },
+ "uniStatistics": {
+ "enable": false
+ },
+ "vueVersion": "3",
+ "fallbackLocale": "zh-Hans",
+ "locale": "zh-Hans",
+ "_spaceID": "mp-6a99ccda-c7f6-4ef9-8870-35401c55287e"
+}
\ No newline at end of file
diff --git a/src/pages.json b/src/pages.json
new file mode 100644
index 0000000..9d984af
--- /dev/null
+++ b/src/pages.json
@@ -0,0 +1,401 @@
+{
+ "lazyCodeLoading": "requiredComponents",
+ "easycom": {
+ "autoscan": true,
+ "custom": {
+ "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
+ }
+ },
+ "pages": [
+ {
+ "path": "pages/merchant/index",
+ "style": {
+ "navigationBarTitleText": "商家中心",
+ "enablePullDownRefresh": true,
+ "navigationBarBackgroundColor": "#4eb331",
+ "navigationBarTextStyle": "white"
+ }
+ },
+ {
+ "path": "pages/goods-manager/main",
+ "style": {
+ "navigationBarTitleText": "商品管理",
+ "navigationBarBackgroundColor": "#4eb331",
+ "navigationBarTextStyle": "white"
+ }
+ },
+ {
+ "path": "pages/message/index",
+ "style": {
+ "navigationBarTitleText": "客户消息",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/order-manager/main",
+ "style": {
+ "navigationBarTitleText": "订单管理"
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "京西菜市",
+ "navigationBarBackgroundColor": "#fff",
+ "backgroundColor": "#F8F8F8",
+ "rpxCalcBaseDeviceWidth": 750
+ },
+ "subPackages": [
+ {
+ "root": "subPages/login",
+ "pages": [
+ {
+ "path": "index",
+ "style": {
+ "navigationBarTitleText": "登录"
+ }
+ },
+ {
+ "path": "bindSNS/bindSNS",
+ "style": {
+ "navigationBarTitleText": "绑定"
+ }
+ },
+ {
+ "path": "wxLogin/wxLogin",
+ "style": {
+ "navigationBarTitleText": "登录"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPages/agreement",
+ "pages": [
+ {
+ "path": "privacy",
+ "style": {
+ "navigationBarTitleText": "京西菜市隐私协议"
+ }
+ },
+ {
+ "path": "user",
+ "style": {
+ "navigationBarTitleText": "京西菜市用户协议"
+ }
+ },
+ {
+ "path": "about",
+ "style": {
+ "navigationBarTitleText": "关于京西"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPages/switchStore",
+ "pages": [
+ {
+ "path": "switchStore",
+ "style": {
+ "navigationBarTitleText": "选择门店",
+ "enablePullDownRefresh": true,
+ "navigationBarBackgroundColor": "#4eb331",
+ "navigationBarTextStyle": "white"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPages/orderChild",
+ "pages": [
+ {
+ "path": "getPhone/getPhone",
+ "style": {
+ "navigationBarTitleText": "联系平台"
+ }
+ },
+ {
+ "path": "orderDetail/orderDetail",
+ "style": {
+ "navigationBarTitleText": "订单详情"
+ }
+ },
+ {
+ "path": "deliverManager/deliverManager",
+ "style": {
+ "navigationBarTitleText": "配送管理",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "afterSalesOrderDetail/afterSalesOrderDetail",
+ "style": {
+ "navigationBarTitleText": "售后详情"
+ }
+ },
+ {
+ "path": "createAfterSales/createAfterSales",
+ "style": {
+ "navigationBarTitleText": "创建售后单"
+ }
+ },
+ {
+ "path": "seeMap/seeMap",
+ "style": {
+ "navigationBarTitleText": "查看地图"
+ }
+ },
+ {
+ "path": "complaint/complaint",
+ "style": {
+ "navigationBarTitleText": "投诉骑手"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPages/merchantChild",
+ "pages": [
+ {
+ "path": "helpCenter/helpCenter",
+ "style": {
+ "navigationBarTitleText": "帮助中心"
+ }
+ },
+ {
+ "path": "orderRealTime/orderRealTime",
+ "style": {
+ "navigationBarTitleText": "营业数据"
+ }
+ },
+ {
+ "path": "platformM/platformM",
+ "style": {
+ "navigationBarTitleText": "已开通店铺"
+ }
+ },
+ {
+ "path": "modifyPrice/modifyPrice",
+ "style": {
+ "navigationBarTitleText": "调价包"
+ }
+ },
+ {
+ "path": "bill/bill",
+ "style": {
+ "navigationBarTitleText": "我的账单"
+ }
+ },
+ {
+ "path": "billDetaile/billDetaile",
+ "style": {
+ "navigationBarTitleText": "账单详情"
+ }
+ },
+ {
+ "path": "evaluateM/evaluateM",
+ "style": {
+ "navigationBarTitleText": "评价管理"
+ }
+ },
+ {
+ "path": "storeScore/storeScore",
+ "style": {
+ "navigationBarTitleText": "门店评分"
+ }
+ },
+ {
+ "path": "storeScoreDetaile/storeScoreDetaile",
+ "style": {
+ "navigationBarTitleText": "评分详情"
+ }
+ },
+ {
+ "path": "waitGoods/waitGoods",
+ "style": {
+ "navigationBarTitleText": "待配商品"
+ }
+ },
+ {
+ "path": "waitGoodsDetaile/waitGoodsDetaile",
+ "style": {
+ "navigationBarTitleText": "商品详情"
+ }
+ },
+ {
+ "path": "shareStore/shareStore",
+ "style": {
+ "navigationBarTitleText": "扫码进店"
+ }
+ },
+ {
+ "path": "enterGroupChat/enterGroupChat",
+ "style": {
+ "navigationBarTitleText": "进入群聊",
+ "mp-weixin": {
+ "usingComponents": {
+ "cell": "plugin://chatGroupPlugin/cell"
+ }
+ }
+ }
+ },
+ {
+ "path": "message/message",
+ "style": {
+ "navigationBarTitleText": "消息列表"
+ }
+ },
+ {
+ "path": "messageDetail/messageDetail",
+ "style": {
+ "navigationBarTitleText": "最新消息"
+ }
+ },
+ {
+ "path": "activity/activity",
+ "style": {
+ "navigationBarTitleText": "活动信息"
+ }
+ },
+ {
+ "path": "setUp/setUp",
+ "style": {
+ "navigationBarTitleText": "设置"
+ }
+ },
+ {
+ "path": "printerSetUp/printerSetUp",
+ "style": {
+ "navigationBarTitleText": "蓝牙打印机设置"
+ }
+ },
+ {
+ "path": "businessLicense/businessLicense",
+ "style": {
+ "navigationBarTitleText": "营业资质"
+ }
+ },
+ {
+ "path": "useInfo/useInfo",
+ "style": {
+ "navigationBarTitleText": "个人信息"
+ }
+ },
+ {
+ "path": "payeeInfo/payeeInfo",
+ "style": {
+ "navigationBarTitleText": "收款信息"
+ }
+ },
+ {
+ "path": "invoice/invoice",
+ "style": {
+ "navigationBarTitleText": "发票管理"
+ }
+ },
+ {
+ "path": "accountBalance/accountBalance",
+ "style": {
+ "navigationBarTitleText": "配送余额"
+ }
+ },
+ {
+ "path": "setBusinessTime/setBusinessTime",
+ "style": {
+ "navigationBarTitleText": "修改营业时间"
+ }
+ },
+ {
+ "path": "setBusinessStatus/setBusinessStatus",
+ "style": {
+ "navigationBarTitleText": "营业状态"
+ }
+ },
+ {
+ "path": "setInvoiceEB/setInvoiceEB",
+ "style": {
+ "navigationBarTitleText": "发票设置"
+ }
+ },
+ {
+ "path": "platformDetail/index",
+ "style": {
+ "navigationBarTitleText": "平台管理"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPages/shoppingChild",
+ "pages": [
+ {
+ "path": "createGoods/createGoods",
+ "style": {
+ "navigationBarTitleText": "创建商品",
+ "navigationBarBackgroundColor": "#4eb331",
+ "navigationBarTextStyle": "white"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPages/messageChild",
+ "pages": [
+ {
+ "path": "msgChat/msgChat",
+ "style": {
+ "navigationBarTitleText": "消息"
+ }
+ },
+ {
+ "path": "appPlay/appPlay",
+ "style": {
+ "navigationBarTitleText": "余额充值"
+ }
+ }
+ ]
+ }
+ ],
+ "tabBar": {
+ "color": "#7A7E83",
+ "selectedColor": "#4eb331",
+ "borderStyle": "black",
+ "backgroundColor": "#ffffff",
+ "list": [
+ {
+ "pagePath": "pages/order-manager/main",
+ "text": "订单管理",
+ "iconPath": "./static/image/tabBarIcon/order.png",
+ "selectedIconPath": "./static/image/tabBarIcon/order-active.png"
+ },
+ {
+ "pagePath": "pages/goods-manager/main",
+ "text": "商品管理",
+ "iconPath": "./static/image/tabBarIcon/shopping.png",
+ "selectedIconPath": "./static/image/tabBarIcon/shopping-active.png"
+ },
+ {
+ "pagePath": "pages/message/index",
+ "text": "消息",
+ "iconPath": "./static/image/tabBarIcon/msg.png",
+ "selectedIconPath": "./static/image/tabBarIcon/msg-active.png"
+ },
+ {
+ "pagePath": "pages/merchant/index",
+ "text": "商家中心",
+ "iconPath": "./static/image/tabBarIcon/merchant.png",
+ "selectedIconPath": "./static/image/tabBarIcon/merchant-active.png"
+ }
+ ]
+ },
+ "condition": {
+ "current": 0,
+ "list": [
+ {
+ "name": "订单管理-新订单通知",
+ "path": "subPages/orderChild/orderDetail/orderDetail?vendorOrderID=3800913802922106022&vendorID=1"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/pages/goods-manager/childPages/right-main/right-main.scss b/src/pages/goods-manager/childPages/right-main/right-main.scss
new file mode 100644
index 0000000..5b95a37
--- /dev/null
+++ b/src/pages/goods-manager/childPages/right-main/right-main.scss
@@ -0,0 +1,305 @@
+.skuName-cell {
+ box-sizing: border-box;
+ background: white;
+ padding: 19rpx;
+ border-radius: 10rpx;
+ margin: 15rpx 15rpx;
+ box-shadow: 0rpx 2rpx 10rpx rgb(207, 207, 207);
+
+
+ .skuName {
+ display: flex;
+ align-items: flex-start;
+ position: relative;
+
+ .skuName-img {
+ position: relative;
+
+ view {
+ position: absolute;
+ z-index: 9;
+ left: 0;
+ top: 0;
+ width: 182rpx;
+ height: 182rpx;
+ border-radius: 10rpx;
+ background: rgba(0, 0, 0, .4);
+ text-align: center;
+ line-height: 182rpx;
+ color: #fff;
+ font-weight: bold;
+ }
+
+ .imglabel {
+ width: 180rpx;
+ height: 180rpx;
+ border-radius: 10rpx;
+ border: 1rpx solid rgb(218, 218, 218);
+ }
+ }
+
+ .skuName-info {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ margin-left: 17rpx;
+ width: 100%;
+ height: 180rpx;
+
+ .input-price {
+ position: absolute;
+ border: 1rpx solid rgba(0, 0, 0, 0.1);
+ background: white;
+ border-radius: 8rpx;
+ padding: 20rpx;
+ top: 60rpx;
+ color: #333;
+ }
+
+ .skuName-name {
+ color: #333;
+ font-size: 32rpx;
+ line-height: 1;
+ display: flex;
+ align-items: flex-start;
+ }
+
+ .skuName-monthsale {
+ font-size: 28rpx;
+ color: #999;
+ line-height: 1;
+ margin-top: 7rpx;
+ }
+
+ .skuName-failsync {
+ font-size: 28rpx;
+ color: #F60D58;
+ line-height: 1;
+ margin-top: 7rpx;
+ margin-bottom: -30rpx;
+ }
+
+ .skuName-price {
+ display: flex;
+ color: #F60D58;
+ line-height: 1;
+
+ .icon-modify {
+ margin-left: 15rpx;
+ }
+ }
+
+ .skuName-tips {
+ font-size: 28rpx;
+ line-height: 1;
+ color: #333;
+ }
+
+ .red {
+ color: #F60D58;
+ }
+
+ .green {
+ color: $jx-primary;
+ }
+ }
+ }
+
+ // sku
+ .skus {
+ border-top: 1rpx dashed #ccc;
+ display: flex;
+ flex-flow: row wrap;
+ // justify-content: flex-end;
+ // padding-top: 16rpx;
+ // overflow: hidden;
+ margin-top: 10rpx;
+ align-items: flex-start;
+
+ .sku-cell:nth-of-type(even) {
+ margin-left: 10rpx;
+ }
+ }
+
+ // 价格审核中样式
+ .check-display {
+ color: #f44;
+ font-size: 24rpx;
+ font-weight: bold;
+ animation: rubberBand 1s infinite alternate;
+ }
+}
+
+.skus-wrapper-new {
+ border-top: 1rpx solid rgb(219, 219, 219);
+
+ .error {
+ text-align: center;
+ font-size: 24rpx;
+ font-weight: bold;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ .mt {
+ color: #f29a40;
+ }
+
+ .eb {
+ color: #51a7fc;
+ }
+
+ .sku-cell2 {
+ padding: 10rpx 0 0 0;
+ border-bottom: 1rpx solid rgb(219, 219, 219);
+ position: relative;
+ }
+
+ .isSale2 {}
+
+ .cell-top {
+ display: flex;
+ align-items: center;
+
+ .price {
+ color: #333;
+ width: 23%;
+ flex-shrink: 0;
+ text-align: center;
+ display: flex;
+ justify-content: center;
+ flex-flow: column;
+
+ .sku-spec {
+ font-size: 26rpx;
+ }
+
+ .sku-price {
+ font-size: 26rpx;
+ }
+ }
+
+ .promotion-price {
+ color: #F60D58;
+ }
+
+ .btn-group {
+ width: 78%;
+ flex-shrink: 0;
+ display: flex;
+ justify-content: space-around;
+
+ .btn {
+ box-sizing: border-box;
+ flex: 1;
+ height: 80rpx;
+ text-align: center;
+ font-size: 24rpx;
+ border-radius: 10rpx;
+ color: $jx-primary;
+ border: 2rpx solid $jx-primary;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ box-sizing: border-box;
+ margin-right: 8rpx;
+ }
+
+ .tmpSaleNo {
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ font-size: 28rpx;
+ line-height: 1.02;
+ margin: 0;
+ }
+
+ .onActive {
+ background: $jx-primary;
+ color: white;
+ }
+ }
+ }
+
+ .cell-bottom {
+ font-size: 28rpx;
+ text-align: center;
+ color: #666;
+ padding: 5rpx 0;
+ }
+
+ .sku-autoSaleAt {
+ font-size: 26rpx;
+ text-align: center;
+ color: #F25340;
+ padding: 5rpx 0;
+
+ text {
+ font-weight: bold;
+ }
+ }
+}
+
+.checkBoxWrap {
+ display: flex;
+ width: 100%;
+ justify-content: flex-end;
+ padding-top: 15rpx;
+}
+
+.aduit-type {
+ font-size: 28rpx;
+ text-align: center;
+ color: $jx-primary;
+}
+
+.aduit-btn-group {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding-top: 20rpx;
+
+ .btn {
+ font-size: 28rpx;
+ padding: 20rpx 40rpx;
+ background: $jx-primary;
+ border-radius: 10rpx;
+ color: white;
+ margin: 0 20rpx;
+ }
+
+ .refuse {
+ background: #f44;
+ }
+}
+
+@keyframes rubberBand {
+ from {
+ transform: scale3d(1, 1, 1);
+ }
+
+ 30% {
+ transform: scale3d(1.01, 0.75, 1);
+ }
+
+ 40% {
+ transform: scale3d(0.95, 1.25, 1);
+ }
+
+ 50% {
+ transform: scale3d(1.02, 0.85, 1);
+ }
+
+ 65% {
+ transform: scale3d(0.98, 1.05, 1);
+ }
+
+ 75% {
+ transform: scale3d(1.01, 0.95, 1);
+ }
+
+ to {
+ transform: scale3d(1, 1, 1);
+ }
+}
\ No newline at end of file
diff --git a/src/pages/goods-manager/childPages/right-main/right-main.ts b/src/pages/goods-manager/childPages/right-main/right-main.ts
new file mode 100644
index 0000000..3c5b73c
--- /dev/null
+++ b/src/pages/goods-manager/childPages/right-main/right-main.ts
@@ -0,0 +1,177 @@
+import shopping from "@/api/https/shopping"
+import { store } from "@/store"
+import { getStorage } from "@/utils/storage"
+import toast from "@/utils/toast"
+import { jx_throttles, timeFormatD } from "@/utils/tools"
+import { computed } from "@vue/reactivity"
+import configCms from "@/utils/configCms"
+
+interface propType {
+ skuName: AnyObject
+ isAudit: boolean
+ isHot: boolean
+ showMountTab: boolean
+}
+/*************************************************
+ * 商品列表
+*/
+function goodsListFn(props: Readonly) {
+
+ /*************************************************
+ * 列表判断条件
+ */
+ const isNewPriceDisplay: any = computed(() => {
+ store.getters['storeInfo/isNewPriceDisplay']
+ })
+
+ /*************************************************
+ * 获取userType
+ */
+ const userType = computed(() => {
+ return +getStorage('userType')
+ })
+
+ /*************************************************
+ * 修改商品售卖状态
+ */
+ function updateSaleStatus(sku: AnyObject, skuName: AnyObject, status: number) {
+ if (+sku.storeSkuStatus === +status && !sku.autoSaleAt) return false
+ let data = {
+ sku,
+ skuName,
+ status
+ }
+ updateSaleStatusThrottles(data)
+ }
+ const updateSaleStatusThrottles = jx_throttles({
+ time: 500,
+ success: async (e: AnyObject) => {
+ let data = {
+ storeIDs: JSON.stringify([getStorage('storeID')]),
+ payload: JSON.stringify([
+ {
+ nameID: e.skuName.id,
+ skus: [
+ {
+ skuID: e.sku.id,
+ isSale: +e.status === 0 ? -1 : +e.status,
+ },
+ ],
+ },
+ ]),
+ }
+ let res = await shopping.update_stores_skus(data)
+ if (res.code == 0) {
+ changeSaleStatus(e.sku, e.skuName, e.status)
+ if (e.sku.autoSaleAt) e.sku.autoSaleAt = 0
+ } else {
+ toast('修改失败', 2)
+ }
+ },
+ fail: (t: number) => {
+ toast(`操作太快`)
+ }
+ })
+
+ /*************************************************
+ * 修改商品临时不可售
+ */
+ function tmpSaleNo(sku: AnyObject, skuName: AnyObject) {
+ if (sku.storeSkuStatus === 0 && sku.autoSaleAt) return false
+ let data = {
+ sku,
+ skuName,
+ }
+ tmpSaleNoThrottles(data)
+ }
+ const tmpSaleNoThrottles = jx_throttles({
+ time: 500,
+ success: async (e: AnyObject) => {
+ let autoSaleAt = computedAutoSaleAt()
+ let data = {
+ storeIDs: JSON.stringify([getStorage('storeID')]),
+ payload: JSON.stringify([{
+ skuID: e.sku.id,
+ isSale: -1,
+ isAsync: false,
+ }]),
+ autoSaleAt: autoSaleAt
+ }
+ let res = await shopping.update_stores_skus_sale(data)
+
+ // let res:AnyObject = {
+ // code: "-105",
+ // desc: "本地数据修改成功,但同步失败,请根据错误提示处理!,同步错误信息:[{\"商品ID\":0,\"分类名\":\"\",\"门店ID\":804947,\"平台名\":\"抖店平台\",\"平台商品ID\":\"\",\"商品nameID\":0,\"平台价\":0,\"同步类型\":\"异常同步错误\",\"错误信息\":\"门店:804947,修改没有创建的商品:22807\"},{\"商品ID\":22807,\"分类名\":\"\",\"门店ID\":804947,\"平台名\":\"京东到家\",\"平台商品ID\":\"2792687352\",\"商品nameID\":8643,\"平台价\":0,\"同步类型\":\"更新商品状态\",\"错误信息\":\"未查询到到家商品编码\"}]",
+ // data: ""
+ // }
+
+ // if (res.code === '0') {
+ // changeSaleStatus(e.sku, e.skuName, 0)
+ // e.sku.autoSaleAt = autoSaleAt
+ // } else {
+ // if(res.code === '-105' && res.desc.includes('本地数据修改成功,但同步失败,请根据错误提示处理')) toast(res.desc)
+ // else toast('修改失败', 2)
+ // }
+
+ if (res.code == 0) {
+ changeSaleStatus(e.sku, e.skuName, 0)
+ e.sku.autoSaleAt = autoSaleAt
+ } else {
+ let findIndex = res.desc.indexOf('[')
+ let str = ''
+ if(findIndex !== -1){
+ JSON.parse(res.desc.substring(findIndex)).forEach((element:AnyObject) => {
+ str = str.length >0 ? str + ';\n' + element['平台名'] + ':【' + element['错误信息'] + '】': str + element['平台名'] +':【' + element['错误信息']+'】'
+ });
+ }
+ if(res.code === '-105' && res.desc.includes('本地数据修改成功,但同步失败,请根据错误提示处理')) toast(`${str}`)
+ else toast('修改失败', 2)
+ }
+ },
+ fail: (t: number) => {
+ toast(`操作太快`)
+ }
+ })
+
+ /*************************************************
+ * 计算自动可售时间
+ */
+ function computedAutoSaleAt() {
+ let now = +new Date()
+ let autoTime = +new Date(`${timeFormatD(+new Date())} ${autoSaleAt.value}`)
+ if (now < autoTime) {
+ return `${timeFormatD(+new Date())} ${autoSaleAt.value}`
+ } else {
+ return `${timeFormatD(+new Date() + 24 * 3600 * 1000)} ${autoSaleAt.value}`
+ }
+ }
+
+ // 自动可售时间
+ const autoSaleAt = computed(() => {
+ let { autoSaleAt = '' } = configCms.serveInfo
+ return autoSaleAt
+ })
+
+ /*************************************************
+ * 修改商品可售状态
+ */
+ async function changeSaleStatus(sku: AnyObject, skuName: AnyObject, status: number) {
+ if (props.isAudit) return false
+ sku.storeSkuStatus = +status
+ // 计算可售不可售图标
+ if (skuName.skus.some((item: AnyObject) => item.storeSkuStatus)) {
+ skuName.skuAllnoSale = false
+ } else {
+ skuName.skuAllnoSale = true
+ }
+ }
+
+ return {
+ isNewPriceDisplay, // 列表判断条件
+ userType, // 获取userType
+ updateSaleStatus, // 修改商品售卖状态
+ tmpSaleNo, // 临时不可售
+ }
+}
+
+export default goodsListFn
\ No newline at end of file
diff --git a/src/pages/goods-manager/childPages/right-main/right-main.vue b/src/pages/goods-manager/childPages/right-main/right-main.vue
new file mode 100644
index 0000000..c2e476d
--- /dev/null
+++ b/src/pages/goods-manager/childPages/right-main/right-main.vue
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+ 不可售
+
+
+
+
+
+
+
+ {{ skuName.prefix ? '[' + skuName.prefix + ']' : ''
+ }}{{ skuName.name }}
+
+
+
+ {{ skuName.id }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 该价格为每斤价格
+
+
+ 该价格为每{{ skuName.unit }}价格
+
+
+
+ 审核中价格:
+
+
+
+
+
+
+
+
+
+
+ 美团:该商品无法修改价格,请联系运营修改
+ 饿佰:该商品无法修改价格,请联系运营修改
+
+
+
+ {{ sku.specQuality }}{{ sku.specUnit }}
+
+
+
+
+
+
+
+ 可售
+
+
+ 不可售
+
+
+ 临时
+ 不可售
+
+
+
+
+
+
+ 库存:{{sku.stock}}
+
+
+
+ 货架码:{{sku.locationCode && sku.locationCode !== 'EMPTY_VALUE' ? sku.locationCode : ''}}
+
+
+
+ {{ sku.comment ? sku.comment : '' }}
+
+ 该规格将在 {{ sku.autoSaleAt }} 可售
+
+
+
+
+
+
+
+
+
+ {{
+ skuName.type === 1 ? '【价格】正在审核中' : '【新建】正在审核中'
+ }}
+
+
+ 拒绝
+ 批准
+
+
+ 联系运营加快审核
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/goods-manager/childPages/shopping-filter/shopping-filter.vue b/src/pages/goods-manager/childPages/shopping-filter/shopping-filter.vue
new file mode 100644
index 0000000..2667a4d
--- /dev/null
+++ b/src/pages/goods-manager/childPages/shopping-filter/shopping-filter.vue
@@ -0,0 +1,218 @@
+
+
+
+ {{ item.title }}
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/goods-manager/childPages/shopping-search/shopping-search.vue b/src/pages/goods-manager/childPages/shopping-search/shopping-search.vue
new file mode 100644
index 0000000..4a30ed7
--- /dev/null
+++ b/src/pages/goods-manager/childPages/shopping-search/shopping-search.vue
@@ -0,0 +1,128 @@
+
+
+
+
+ 新建
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/goods-manager/component/left-bar/left-bar.scss b/src/pages/goods-manager/component/left-bar/left-bar.scss
new file mode 100644
index 0000000..917801d
--- /dev/null
+++ b/src/pages/goods-manager/component/left-bar/left-bar.scss
@@ -0,0 +1,45 @@
+// 一级
+.one-item {
+ background-color: #fff;
+ height: 90rpx;
+ overflow: hidden;
+ transition: all 0.4s;
+ border-bottom: 1rpx solid #f1f1f1;
+
+ // 二级名字
+ .one-item-name {
+ display: flex;
+ height: 90rpx;
+ line-height: 90rpx;
+
+ .iconfont {
+ display: inline-block;
+ transform: rotate(0deg);
+ transition: all 0.2s;
+ }
+
+ .noe-seat {
+ display: inline-block;
+ width: 30rpx;
+ height: 90rpx;
+ border-left: 7rpx solid transparent;
+ transition: none;
+ }
+ }
+
+ // 二级内容
+ .tow-item {
+ display: flex;
+ height: 90rpx;
+ line-height: 90rpx;
+ transition: none;
+
+ // 二级左侧竖杠
+ .tow-seat {
+ display: inline-block;
+ width: 30rpx;
+ height: 90rpx;
+ border-left: 7rpx solid transparent;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/pages/goods-manager/component/left-bar/left-bar.ts b/src/pages/goods-manager/component/left-bar/left-bar.ts
new file mode 100644
index 0000000..dea7f17
--- /dev/null
+++ b/src/pages/goods-manager/component/left-bar/left-bar.ts
@@ -0,0 +1,83 @@
+import shopping from "@/api/https/shopping"
+import { getStorage } from "@/utils/storage"
+import { onLoad } from "@dcloudio/uni-app"
+import { ref } from "vue"
+
+/*************************************************
+ * 商品分类栏目
+*/
+function leftBarFn(props: AnyObject) {
+
+ onLoad(async () => {
+ await GetStoreCategoryMap()
+ })
+
+ /*************************************************
+ * @info 左侧tab数据
+ * 获取列表数据
+ */
+ const cat = ref>([])
+ async function GetStoreCategoryMap() {
+ let data = {
+ storeID: getStorage('storeID'),
+ parentID: -1,
+ }
+ let res = await shopping.getStore_category_map(data)
+ if (res.code == 0) {
+ handledata(res.data, true)
+ } else {
+ cat.value = []
+ handleOriginData()
+ }
+ }
+
+ /*************************************************
+ * 处理列表数据
+ */
+ const _isMap = ref(false)
+ function handledata(curdeData: Array, isMap: boolean) {
+ let data = curdeData
+ let catData: Array = []
+ data.forEach((item: AnyObject) => {
+ if (item.name !== '3件9.9') {
+ item.name = item.name.slice(0, 4)
+ }
+ catData.push(item)
+ })
+
+ //把sku分类过滤掉
+ if (!isMap) catData = catData.filter((item) => item.type === 0)
+ let catLevel1 = catData.filter((item) => item.level === 1)
+ let catLevel2 = catData.filter((item) => item.level === 2)
+
+ // 组合分类
+ let catData2: Array = []
+ let catData3: AnyObject
+ catLevel1.forEach((level1: AnyObject) => {
+ isMap
+ ? (catData3 = catLevel2.filter(
+ (level2) => level2.parentID === level1.categoryID
+ ))
+ : (catData3 = catLevel2.filter((level2) => level2.parentID === level1.id))
+ level1.children = catData3
+ _isMap.value = isMap
+ catData2.push(level1)
+ })
+ let lastData = props.dafauleData.concat(catData2)
+ cat.value = lastData
+ }
+
+ async function handleOriginData() {
+ let res = await shopping.get_categories()
+ if (res.code == 0) {
+ handledata(res.data, false)
+ }
+ }
+
+ return {
+ cat, // 右侧菜单数据
+ GetStoreCategoryMap, // 获取数据
+ }
+}
+
+export default leftBarFn
\ No newline at end of file
diff --git a/src/pages/goods-manager/component/left-bar/left-bar.vue b/src/pages/goods-manager/component/left-bar/left-bar.vue
new file mode 100644
index 0000000..42b7264
--- /dev/null
+++ b/src/pages/goods-manager/component/left-bar/left-bar.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+ {{ childItem.name }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/goods-manager/main.scss b/src/pages/goods-manager/main.scss
new file mode 100644
index 0000000..2f7027c
--- /dev/null
+++ b/src/pages/goods-manager/main.scss
@@ -0,0 +1,124 @@
+.MountWrap {
+ display: flex;
+ z-index: 99;
+ box-sizing: border-box;
+ justify-content: space-between;
+ position: fixed;
+ width: 100%;
+ bottom: 0;
+ left: 0;
+ background-color: $jx-primary;
+ padding: 20rpx 25rpx;
+
+ .onActive {
+ width: 44%;
+ background-color: #fff;
+ color: $jx-primary;
+ text-align: center;
+ border-radius: 10rpx;
+ padding: 10rpx 0;
+ }
+}
+
+.createGoods {
+ padding: 10rpx 80rpx;
+ border-radius: 10rpx;
+ background-color: $jx-primary;
+ color: #fff;
+ text-align: center;
+ margin-top: 20rpx;
+}
+
+.jx-popup-update {
+ box-sizing: border-box;
+ padding: 20rpx;
+ background-color: #fff;
+ border-radius: 0 0 15rpx 15rpx;
+
+ .text {
+ display: block;
+ width: 100%;
+ text-align: center;
+ margin-bottom: 25rpx;
+ padding-bottom: 10rpx;
+ border-bottom: 2rpx solid rgb(209, 209, 209);
+ }
+
+ .tip-new{
+ padding: 2rpx 0;
+ height: 66rpx;
+ line-height: 66rpx;
+ text-align: left;
+ border-bottom:1px dashed #999;
+
+ .money {
+ color: $jx-primary;
+ }
+ }
+
+ .ipt-box{
+ margin: 10rpx 0;
+ // height: 86rpx;
+ // line-height: normal;
+ }
+
+ .tip {
+ padding: 10rpx 0;
+
+ .money {
+ color: $jx-primary;
+ }
+ }
+
+ .ipt {
+ border: 2rpx solid rgb(209, 209, 209);
+ text-align: center;
+ border-radius: 5rpx;
+ height: 86rpx;
+ line-height: normal;
+ // -webkit-appearance: none;
+ // border-radius: 0
+ }
+
+ .title {
+ width: 100%;
+ text-align: center;
+ margin-bottom: 20rpx;
+ }
+
+ .btn-root {
+ display: flex;
+ justify-content: space-between;
+ margin: 40rpx 0 0rpx 0;
+
+ .btn-esc,
+ .btn-ok {
+ text-align: center;
+ width: 100%;
+ padding: 15rpx 0;
+ border-radius: 10rpx;
+ border: 2rpx solid $jx-primary;
+ color: $jx-primary;
+ }
+
+ .btn-ok {
+ background-color: $jx-primary;
+ color: #fff;
+ margin-left: 10rpx;
+ }
+
+ .btn-esc {
+ margin-right: 10rpx;
+ }
+ }
+
+ .delete {
+ margin-top: 50rpx;
+ margin-bottom: 20rpx;
+ background-color: $jx-warring;
+ text-align: center;
+ color: #fff;
+ padding: 20rpx;
+ border-radius: 15rpx;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/goods-manager/main.ts b/src/pages/goods-manager/main.ts
new file mode 100644
index 0000000..b0eaad7
--- /dev/null
+++ b/src/pages/goods-manager/main.ts
@@ -0,0 +1,710 @@
+import { onLoad, onShow } from '@dcloudio/uni-app'
+import { getStorage } from '@/utils/storage'
+import { computed, onBeforeUnmount, ref } from 'vue'
+import { store } from '@/store'
+import { timeFormatD, timeFormatHMS } from '@/utils/tools'
+import toast from '@/utils/toast'
+import shopping from '@/api/https/shopping'
+import merchant from '@/api/https/merchant'
+/*************************************************
+ * 商品管理
+*/
+function shoppingMangerFn() {
+ /*************************************************
+ * 数据归位,元神显现
+ */
+ function dataHoming() {
+ skuNames.value = []
+ page.value = 1
+ totalCount.value = 0
+ }
+
+ /*************************************************
+ * 下拉刷新数据重现
+ */
+ const leftBarRef = ref(null)
+ let onPullDownRefreshTimer: any = ''
+ const triggered = ref(false)
+ function refresherrefresh() {
+ triggered.value = true
+ clearTimeout(onPullDownRefreshTimer)
+ onPullDownRefreshTimer = setTimeout(() => {
+ triggered.value = false
+ dataHoming()
+ oneMenuClick(isFilter.value)
+ if (isFilter.value == 'hot') return
+ leftBarRef.value.GetStoreCategoryMap()
+ }, 500)
+ }
+
+ /*************************************************
+ * 获取数据
+ */
+ let oldStoreID: any = 0
+ onShow(() => {
+ if (oldStoreID != getStorage('storeID') && oldStoreID != 0) {
+ triggered.value = true
+ }
+ oldStoreID = getStorage('storeID')
+ })
+
+ /*************************************************
+ * 默认数据
+ */
+ const dafauleData: Array = [
+ {
+ categoryID: 'all',
+ children: [],
+ level: 1,
+ name: '所有分类',
+ },
+ {
+ categoryID: 'act',
+ children: [],
+ level: 1,
+ name: '活动商品',
+ },
+ {
+ categoryID: 'hot',
+ children: [],
+ level: 1,
+ name: '畅销推荐',
+ },
+ {
+ categoryID: 'audit',
+ children: [],
+ level: 1,
+ name: '待审商品',
+ },
+ ]
+
+ /*************************************************
+ * @info 右侧主体数据
+ * 获取商品数据
+ */
+ onLoad(async () => {
+ if (!getStorage('token')) return
+ store.commit('storeInfo/jxLoadingFn', true)
+ await getSkuNames()
+ store.commit('storeInfo/jxLoadingFn', false)
+ })
+ const keyword = ref('')
+ const categoryID = ref('') // 分类id
+ const isAct = ref(false) // 是否是活动商品
+ const totalCount = ref(0) // 总条数
+ const skuNames = ref>([]) // 商品数据
+ const isAudit = ref(false) // 商品列表判断条件
+ const isHot = ref(false) // 商品列表判断条件
+ async function getSkuNames() {
+ isLoad.value = true
+ let data:AnyObject = {
+ categoryID: categoryID.value,
+ isFocus: true,
+ keyword: keyword.value,
+ offset: pageSize.value * (page.value - 1),
+ pageSize: pageSize.value,
+ isAct: isAct.value,
+ status: -1,
+ storeID: getStorage('storeID')
+ }
+
+ if(allSaleStatus.value && allSaleStatus.value.name !== 'all') data[allSaleStatus.value.name] = allSaleStatus.value.status
+
+ keyFilter(data)
+
+ let res = await shopping.get_stores_skus_for_store(data)
+
+ if (res.code == 0) {
+ totalCount.value = res.data.totalCount
+ let filterData = mapskuName(res.data.skuNames || [])
+ skuNames.value = skuNames.value.concat(filterData)
+ if (filterData.length == 0) return toast('该分类未找到商品')
+ } else {
+ dataHoming()
+ toast('分类查询错误')
+ }
+ isLoad.value = false
+ }
+
+ /*************************************************
+ * 过滤对象空字段
+ */
+ function keyFilter(obj: AnyObject) {
+ for (let key in obj) {
+ if ('' + obj[key] == "" || '' + obj[key] == undefined) {
+ delete obj[key]
+ }
+ }
+ return obj
+ }
+
+ /*************************************************
+ * 列表判断条件
+ */
+ const isNewPriceDisplay = ref(
+ store.getters['storeInfo/isNewPriceDisplay']
+ )
+
+ /*************************************************
+ * 格式化数据
+ */
+ function mapskuName(skuNames: Array) {
+ let arr = skuNames.map((skuName) => {
+ skuName.auditUnitPrice = skuName.auditUnitPrice
+ // 是否全部不可售
+ if (skuName.skus.some((item: AnyObject) => item.storeSkuStatus)) {
+ skuName.skuAllnoSale = false
+ } else {
+ skuName.skuAllnoSale = true
+ }
+ // skus
+ skuName.skus = skuName.skus.map((sku: AnyObject) => {
+ // 价格异常请参考老版本或者在git进行查看
+ sku.comparePrice = sku.price
+ sku.autoSaleAt =
+ +new Date(sku.autoSaleAt) > 0 ? timeFormatHMS(sku.autoSaleAt) : 0
+ return sku
+ })
+ return skuName
+ })
+ return arr
+ }
+
+ /*************************************************
+ * 页面触底,加载更多数据
+ */
+ const page = ref(1) // 第几页
+ const pageSize = ref(20) // 每页条数
+ const isLoad = ref(false) // 加载图
+ function scrolltolower() {
+ page.value++
+ if (pageSize.value * (page.value - 1) > totalCount.value || totalCount.value < pageSize.value) {
+ isLoad.value = false
+ } else {
+ if (isLoad.value) return
+ if (isFilter.value == 'hot') return
+ if (isFilter.value == 'audit') return GetStoreSkuAudit()
+ getSkuNames()
+ }
+ }
+
+ /*************************************************
+ * 点击菜单获取数据
+ */
+ const isCheckoutFilter = ref(false)
+ const isFilter = ref('')
+ function oneMenuClick(catID: string | number) {
+ isAct.value = false
+ isHot.value = false
+ isCheckoutFilter.value = false
+ categoryID.value = ''
+ keyword.value = ''
+ isFilter.value = catID
+ isAudit.value = false
+ dataHoming()
+ if (catID == 'all') { // 全部商品
+ isAct.value = false
+ getSkuNames()
+ } else if (catID == 'act') { // 活动商品
+ isAct.value = true
+ getSkuNames()
+ } else if (catID == 'hot') { // 畅销商品
+ isHot.value = true
+ isCheckoutFilter.value = true
+ getTopSkus()
+ } else if (catID == 'audit') { // 待审核商品
+ isCheckoutFilter.value = true
+ isAudit.value = true
+ GetStoreSkuAudit()
+ } else {
+ categoryID.value = catID as string
+ getSkuNames()
+ }
+ }
+
+ /*************************************************
+ * 畅销推荐
+ */
+ async function getTopSkus() {
+ isLoad.value = true
+ let data = {
+ storeID: getStorage('storeID')
+ }
+ let res = await shopping.get_top_skus_by_city_code(data)
+ if (res.code == 0) {
+ let data = res.data || []
+ if (data.length > 0) {
+ totalCount.value = data.length
+ skuNames.value = mapskuName(data)
+ } else {
+ dataHoming()
+ toast('暂无畅销商品')
+ }
+
+ } else {
+ toast('分类查询错误')
+ dataHoming()
+ }
+ isLoad.value = false
+ }
+
+ /*************************************************
+ * 待审核商品
+ */
+ async function GetStoreSkuAudit() {
+ isLoad.value = true
+ let data = {
+ storeIDs: JSON.stringify([getStorage('storeID')]),
+ applyTimeStart: timeFormatD(+new Date() - 1000 * 60 * 60 * 24 * 30) + ' 00:00:00',
+ applyTimeEnd: timeFormatD(+new Date()) + ' 23:59:59',
+ statuss: JSON.stringify([0]),
+ types: JSON.stringify([1, 2]),
+ offset: pageSize.value * (page.value - 1),
+ pageSize: pageSize.value,
+ }
+ let res = await shopping.get_store_sku_audit(data)
+ if (res.code == 0) {
+ totalCount.value = res.data.totalCount
+ let newData = res.data.data || []
+ let filterSkuName = mapAuditSkuName(newData)
+ skuNames.value = skuNames.value.concat(filterSkuName)
+ if (newData.length == 0) return toast('暂无待审核商品')
+ } else {
+ toast('分类查询错误')
+ dataHoming()
+ }
+ isLoad.value = false
+ }
+
+
+ /*************************************************
+ * 过滤待审核商品
+ */
+ function mapAuditSkuName(data: AnyObject) {
+ let arr = data.map((item: any) => ({
+ auditUnitPrice: item.unitPrice,
+ unitPrice: item.originPrice,
+ skuAllnoSale: false,
+ nameID: item.nameID,
+ img: item.img,
+ unit: item.unit,
+ type: item.type,
+ prefix: item.prefix,
+ name: item.skuName,
+ }))
+ return arr
+ }
+
+
+ /*************************************************
+ * @info 过滤类数据
+ */
+ const showMountTab = ref(false)
+
+
+ /*************************************************
+ * 头部数据过滤
+ */
+ const allSaleStatus = ref()
+ async function updateIsSale(data: AnyObject) {
+ allSaleStatus.value = data
+ data.lable == 3
+ ? (showMountTab.value = true)
+ : (showMountTab.value = false)
+ if (data.lable == 3) return
+ dataHoming()
+ await getSkuNames()
+ }
+ async function updateTowFilter(data: AnyObject) {
+ if (data.lable == 3) {
+ return showMountTab.value = true
+ } else {
+ showMountTab.value = false
+ }
+ if (isFilter.value == 'hot') {
+ oneMenuClick(isFilter.value)
+ }
+
+ if (isFilter.value == 'audit') {
+ oneMenuClick(isFilter.value)
+ }
+ }
+
+ /*************************************************
+ * @info 搜索框操作
+ */
+ async function serachShopping(text: string) {
+ dataHoming()
+ keyword.value = text
+ await getSkuNames()
+ }
+ async function clearInpu() {
+ dataHoming()
+ keyword.value = ''
+ await getSkuNames()
+ }
+
+ /*************************************************
+ * 批量操作
+ */
+ let picked: Array = []
+ function handleSale(skuName: AnyObject) {
+ if (picked && picked.some((item) => item.nameID == skuName.id)) {
+ picked = picked.filter((item) => {
+ return item.nameID != skuName.id
+ })
+ } else {
+ picked.push({ nameID: Number(skuName.id) })
+ picked = distinct(picked, 'nameID')
+ }
+ }
+ function distinct(arr: any, key: string) {
+ let set = new Set()
+ return arr.reduce(
+ (p: any, c: any) => (set.has(c[key]) ? p : (set.add(c[key]), [...p, c])),
+ []
+ )
+ }
+
+ /*************************************************
+ * 批量可售与不可售
+ */
+ let handleChangeSaleTimer: any = null
+ const updateStateOk = ref(false)
+ async function handleChangeSale(type: number) {
+ if (picked.length == 0) return toast('未选择商品')
+ picked.forEach((item: AnyObject) => {
+ item['isSale'] = type
+ })
+ let data = {
+ storeIDs: JSON.stringify([getStorage('storeID')]),
+ payload: JSON.stringify(picked),
+ }
+ let res = await shopping.update_stores_skus(data)
+ if (res.code == 0) {
+ toast('修改成功')
+ let data = {
+ status: -1,
+ lable: 2,
+ }
+ updateStateOk.value = true
+ handleChangeSaleTimer = setTimeout(() => {
+ updateIsSale(data)
+ clearTimeout(handleChangeSaleTimer)
+ }, 1000)
+ } else {
+ toast('修改失败', 2)
+ updateStateOk.value = false
+ }
+ }
+
+ /*************************************************
+ * 去创建商品
+ */
+ function createGoods() {
+ uni.navigateTo({ url: '/subPages/shoppingChild/createGoods/createGoods' })
+ }
+
+ /*************************************************
+ * 改价还是折扣(从vuex 里面读取)
+ */
+ const isPointStore = computed(() => {
+ return store.getters['storeInfo/isPointStore']
+ })
+ // skuName
+ const skuName = ref({
+ unit: '',
+ auditUnitPrice: ''
+ })
+ function openPriceDialog(skuNames: AnyObject) {
+ skuName.value = skuNames
+ popup.value.open()
+ }
+ // 当前修改价格
+ const currentValue = ref('')
+ // 审核价格
+ const auditUnitPrice = computed(() => {
+ let price = skuName.value.auditUnitPrice
+ if (price) {
+ return +((price * 1) / 100).toFixed(2)
+ } else {
+ return +'0.00'
+ }
+ })
+ // 弹窗实例
+ const popup = ref(null)
+ // 确定修改价格
+ function handleConfirm() {
+ if (isNaN(+currentValue.value)) return toast('请输入格式正确的价格')
+ if (+currentValue.value < 0.01) return toast('请输入大于等于1分钱的价格')
+ if (
+ currentValue.value.toString().indexOf('.') > -1 &&
+ currentValue.value.toString().split('.')[1].length > 2
+ ) {
+ return toast('最多只能有两位小数')
+ }
+ let updatePrice = Math.round(+currentValue.value * 100)
+ if (updatePrice == skuName.value.unitPrice) {
+ return toast('没有修改价格')
+ }
+ if (updatePrice > skuName.value.unitPrice * 1.3 ||
+ updatePrice < skuName.value.unitPrice * 0.7) {
+ uni.jxConfirm({
+ title: '提示',
+ content: `修改幅度超过30%,新价格为¥${(updatePrice / 100).toFixed(2)},是否确定修改?`,
+ success: () => {
+ updatePriceFn(updatePrice, skuName.value.id, skuName.value.unitPrice)
+ }
+ })
+ } else {
+ updatePriceFn(updatePrice, skuName.value.id, skuName.value.unitPrice)
+ }
+ }
+ /**
+ * 验证通过开始修改价格
+ */
+ let updatePriceFnTimer: any = null
+ async function updatePriceFn(price: string | number, id: number, originalUnitPrice: number) {
+ let data = {
+ storeIDs: JSON.stringify([+getStorage('storeID')]),
+ payload: JSON.stringify([
+ {
+ nameID: skuName.value.id,
+ unitPrice: price,
+ },
+ ]),
+ }
+ popup.value.close() // 关闭 popup
+ // 修改价格
+ let updatePrice = await shopping.update_stores_skus(data)
+
+ if (updatePrice.code == 0) {
+ // 获取单个门店serverSkuName
+ let storeData = {
+ storeIDs: JSON.stringify([+getStorage('storeID')]),
+ isFocus: true,
+ nameIDs: JSON.stringify([id]),
+ fromStatus: 0,
+ toStatus: 1,
+ }
+ const serverSkuName = await merchant.get_stores_skus(storeData)
+ if (serverSkuName.code == 0) {
+ let skuNameData = serverSkuName.data.skuNames || []
+ if (skuNameData.length > 0) {
+ let index = skuNames.value.findIndex((item: any) => item.id == id)
+ if (index !== -1) skuNames.value[index] = mapskuName(skuNameData)[0]
+ }
+ }
+ // 判断提示
+ if (isPointStore.value || store.state.storeInfo.allStoreInfo.storeLevel == 'E') {
+ toast('修改成功')
+ currentValue.value = ''
+ } else {
+ currentValue.value = ''
+ toast(
+ +price < originalUnitPrice ? '修改成功' : '提交成功, 请等待审核'
+ )
+ }
+ } else {
+ toast('修改失败', 2)
+ }
+ }
+
+ /*************************************************
+ * 修该库存或货架码
+ */
+ const popupDialog = ref(null)
+ const skuNameItem = ref({
+ payload:{
+ nameID:0,
+ Skus:[],
+ },
+ name:'',
+ type:'price'
+ })
+ const stockOrCode = ref('')
+
+ // 打开dialog 修改库存以及货架码
+ function openDialog(payload: AnyObject) {
+ skuNameItem.value = payload
+ const sku = payload.payload.Skus[0]
+ if(payload.type === 'stock') stockOrCode.value = sku.stock + ''
+ if(payload.type === 'locationCode') stockOrCode.value = sku.locationCode
+ popupDialog.value.open()
+ }
+ async function sureStockOrCode() {
+ const nameID = skuNameItem.value.payload.nameID
+ const skuID = skuNameItem.value.payload.Skus[0].skuID
+ let data:AnyObject = {
+ storeIDs: JSON.stringify([+getStorage('storeID')])
+ }
+ if(skuNameItem.value.type === 'stock') {
+ data.payload = JSON.stringify([{
+ nameID: nameID,
+ Skus:[
+ {
+ skuID: skuID,
+ stock: +stockOrCode.value
+ }
+ ]
+ }])
+ }else{
+ data.payload = JSON.stringify([{
+ nameID: nameID,
+ Skus:[
+ {
+ skuID:skuID,
+ locationCode: ''+ stockOrCode.value ? '' + stockOrCode.value : 'EMPTY_VALUE'
+ }
+ ]
+ }])
+ }
+ popupDialog.value.close() // 关闭 popupDialog
+ let res = await shopping.update_stores_skus(data)
+ if (res.code == 0) {
+ let storeData = {
+ storeIDs: JSON.stringify([+getStorage('storeID')]),
+ isFocus: true,
+ nameIDs: JSON.stringify([skuNameItem.value.payload.nameID]),
+ fromStatus: 0,
+ toStatus: 1,
+ }
+ const serverSkuName = await merchant.get_stores_skus(storeData)
+ if (serverSkuName.code == 0) {
+ let skuNameData = serverSkuName.data.skuNames || []
+ if (skuNameData.length > 0) {
+ let index = skuNames.value.findIndex((item: any) => item.id == skuNameItem.value.payload.nameID)
+ if (index !== -1) {
+ skuNames.value[index] = mapskuName(skuNameData)[0]
+ }
+ }
+ }
+ toast('修改成功')
+ }
+ }
+
+ /*************************************************
+ * 删除商品
+ */
+ function handleDelete() {
+ uni.jxConfirm({
+ title: '提示',
+ content: `确认删除《${skuName.value.name}》吗?`,
+ confirmText: '确认',
+ success: async () => {
+ popup.value.close() // 关闭 popup
+ let data = {
+ storeIDs: JSON.stringify([getStorage('storeID')]),
+ payload: JSON.stringify([{ nameID: skuName.value.id, isFocus: -1 }]),
+ }
+ let res = await shopping.update_stores_skus(data)
+ if (res.code == 0) {
+ toast('删除成功')
+ skuNames.value = skuNames.value.filter((item) => item.id != skuName.value.id)
+ if (skuNames.value.length == 0) return dataHoming()
+ } else {
+ toast('删除失败', 2)
+ }
+ }
+ })
+ }
+
+
+ const toExamineData = ref({}) // 审核商品数据
+ const toExaminePopup = ref(null) // 审核弹窗实例
+ const toExamineValue = ref('') // 审核输入框
+ /*************************************************
+ * 审核商品
+ */
+ function toExamine(res: AnyObject) {
+ toExamineData.value = res
+ if (res.status == 1) {
+ toExamineValue.value = res.auditPrice / 100
+ } else {
+ toExamineValue.value = ''
+ }
+ toExaminePopup.value.open()
+ }
+
+ /*************************************************
+ * 改价审核操作
+ */
+ async function toExamineConfirm() {
+ toExaminePopup.value.close()
+ let data = {
+ status: toExamineData.value.status,
+ isAsync: false,
+ isContinueWhenError: true,
+ payload: JSON.stringify([{
+ storeID: toExamineData.value.storeID,
+ nameID: toExamineData.value.nameID,
+ ...(toExamineData.value.status == 1
+ ? { auditPrice: Math.floor(+toExamineValue.value * 100) }
+ : { remark: toExamineValue.value })
+ }])
+ }
+ let res = await shopping.store_sku_price_audit(data)
+ if (res.code == 0) {
+ toast('操作成功')
+ skuNames.value = skuNames.value.filter((item) => item.nameID != toExamineData.value.nameID)
+ if (skuNames.value.length == 0) return dataHoming()
+ } else {
+ toast(res.desc || res.data)
+ }
+ }
+
+
+ /*************************************************
+ * 善后工作
+ */
+ onBeforeUnmount(() => {
+ clearTimeout(handleChangeSaleTimer)
+ clearTimeout(updatePriceFnTimer)
+ clearTimeout(onPullDownRefreshTimer)
+ })
+
+ return {
+ dafauleData, // 左侧tablist 数据
+ totalCount, // 商品总条数
+ skuNames, // 商品列表数据
+ skuNameItem, // 商品数据2
+ isAudit, // 商品列表判断条件
+ isHot, // 商品列表判断条件
+ showMountTab, // 批量操作判断
+ scrolltolower, // 页面触底
+ isLoad, // 加载动画
+ updateIsSale, // 过滤筛选
+ updateTowFilter, // 过滤筛选
+ serachShopping, // 搜索框确定
+ clearInpu, // 清空搜索框
+ oneMenuClick, // 一级菜单点击事件
+ isCheckoutFilter, // 切换过滤选项
+ isFilter, // 判断条件
+ handleSale, // 批量可售与不可售
+ handleChangeSale, // 批量可售与不可售
+ updateStateOk, // 批量操作成功
+ createGoods, // 去创建商品
+ isPointStore, // 判断扣点还是折扣
+ skuName, // 当前修改的价格
+ auditUnitPrice, // 正在审核的价格
+ currentValue, // 当前修改价格
+ popup, // 弹窗实例
+ stockOrCode, // stock locationCode
+ popupDialog, // 弹窗 stock locationCode
+ handleConfirm, // 确定修改价格
+ openPriceDialog, // 获取修改数据
+ openDialog, // 获取修改数据2
+ sureStockOrCode, // 确认框 stock locationCode
+ handleDelete, // 删除商品
+ refresherrefresh, // 下拉刷新
+ triggered, // 下拉刷新标识
+ leftBarRef, // 右侧导航栏实例
+ toExamine, // 审核商品
+ toExamineData, // 审核商品数据
+ toExaminePopup, // 改价审核实例
+ toExamineConfirm, // 确定操作审核
+ toExamineValue, // 审核输入内容
+ }
+}
+
+export default shoppingMangerFn
\ No newline at end of file
diff --git a/src/pages/goods-manager/main.vue b/src/pages/goods-manager/main.vue
new file mode 100644
index 0000000..8fa0553
--- /dev/null
+++ b/src/pages/goods-manager/main.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 去创建商品
+
+
+
+
+
+
+ 可售
+ 不可售
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/merchant/index.ts b/src/pages/merchant/index.ts
new file mode 100644
index 0000000..0d87744
--- /dev/null
+++ b/src/pages/merchant/index.ts
@@ -0,0 +1,189 @@
+
+import { computed, onBeforeUnmount, ref } from 'vue'
+import { timeFormatD } from '@/utils/tools'
+import { getStorage, setStorage } from '@/utils/storage'
+import { onLoad, onPullDownRefresh } from '@dcloudio/uni-app'
+import merchant from '@/api/https/merchant'
+import { store } from '@/store'
+import useGlobalFunc from '@/composables/useGlobalFunc'
+import log from '@/utils/log'
+
+/*************************************************
+ * 商家中心
+*/
+const merchantFn = function () {
+ const { getMtStoreIMStatus } = useGlobalFunc()
+ /*************************************************
+ * 下拉刷新
+ */
+ let onPullDownRefreshTimer: any = null
+ onPullDownRefresh(() => {
+ clearTimeout(onPullDownRefreshTimer)
+ onPullDownRefreshTimer = setTimeout(async () => {
+ if (!getStorage('token')) return
+ store.commit('storeInfo/jxLoadingFn', true)
+ await getSaleInfo()
+ await getStoreVendorMaps(-1)
+ await getMtStoreIMStatus() // 获取美团门店的IM状态
+ uni.stopPullDownRefresh()
+ clearTimeout(onPullDownRefreshTimer)
+ store.commit('storeInfo/jxLoadingFn', false)
+ }, 500)
+ })
+
+
+ /*************************************************
+ * 页面加载获取数据
+ */
+ const popup = ref(null)
+ onLoad(async (params) => {
+ // 订单管理-新订单通知
+ let logData = {
+ '日志记录时间': Date(),
+ '启动类型': '订单管理',
+ '启动参数': params,
+ '用户TOKEN': getStorage('token') ? getStorage('token') : '未获取到用户TOKEN',
+ '用户手机号': getStorage('mobile') ? getStorage('mobile') : '未获取到用户手机号',
+ '店铺ID': getStorage('storeID') ? getStorage('storeID') : '未获取到店铺ID',
+ '店铺名字': getStorage('storeName') ? getStorage('storeName') : '未获取到店铺名字',
+ }
+ log.info(JSON.stringify(logData))
+
+ if (!getStorage('token')) return
+ store.commit('storeInfo/jxLoadingFn', true)
+ await getStoreVendorMaps(-1)
+ await getSaleInfo()
+ store.commit('storeInfo/jxLoadingFn', false)
+ if (getStorage('isDownApp') != 'true') {
+ setTimeout(() => {
+ popup.value.open()
+ }, 800)
+ }
+ })
+
+
+ const saleInfo = ref({
+ earningPrice: 0,
+ count: 0,
+ })
+
+ /*************************************************
+ * 获取今日营业数据
+ */
+ async function getSaleInfo() {
+ let fromTime = `${timeFormatD()} 00:00:00`
+ let toTime = `${timeFormatD()} 23:59:59`
+ let data = {
+ storeIDs: `[${parseInt(getStorage('storeID'))}]`,
+ fromTime,
+ toTime,
+ statuss:JSON.stringify([110]) // 只统计已完成的订单,不包含取消单
+ }
+ await merchant.get_store_order_sale_info(data).then((res) => {
+ let json = {
+ earningPrice: 0,
+ shopPrice: 0,
+ realEarningPrice: 0,
+ count: 0,
+ actualPayPrice: 0,
+ actualFee: 0
+ }
+ if (res.code == 0) {
+ let data = res.data || []
+
+ data.forEach((item: AnyObject) => {
+ if (item.status === 110) {
+ json.actualPayPrice += item.actualPayPrice
+ json.realEarningPrice += item.realEarningPrice
+ json.earningPrice += item.earningPrice
+ json.shopPrice += item.shopPrice
+ json.count += item.count
+ json.actualFee += item.actualFee
+ }
+ })
+ json.actualFee = +(json.actualFee / 100).toFixed(2)
+ saleInfo.value = json
+ } else {
+ saleInfo.value = json
+ }
+ })
+ }
+
+
+ /*************************************************
+ * 获取门店信息数据
+ */
+ const _vendorPayPercentage = ref(0)
+ const isNotQuote = ref(true)
+ const isZero = ref(true)
+ const isUpperfif = ref(false)
+ const isShowShop = ref(false)
+ async function getStoreVendorMaps(vendorID: number) {
+ let data = {
+ storeID: getStorage('storeID'),
+ vendorID: vendorID
+ }
+ let res = await merchant.get_store_vendor_maps(data)
+ if (res.code == 0) {
+ let data = res.data
+ _vendorPayPercentage.value = data[0].vendorPayPercentage
+ isNotQuote.value = true
+ isNotQuote.value = data.some((item: AnyObject) => {
+ return item.vendorPayPercentage != 0 && item.vendorPayPercentage <= 50
+ })
+ isZero.value = data.every((item: AnyObject) => {
+ return item.vendorPayPercentage == 0
+ })
+ isUpperfif.value = data.every((item: AnyObject) => {
+ return item.vendorPayPercentage > 50
+ })
+ if (isNotQuote.value) {
+ isShowShop.value = data.every((v: AnyObject) => {
+ return v.vendorPayPercentage > 50
+ })
+ }
+ } else {
+ _vendorPayPercentage.value = 0
+ }
+ }
+
+ function getMsg() {
+ uni.removeTabBarBadge({ index: 3 })
+ store.commit('storeInfo/setIsNewMessage', false)
+ uni.navigateTo({
+ url: '/subPages/merchantChild/message/message',
+ })
+ }
+
+ const isMsg = computed(() => {
+ return store.state.storeInfo.isNewMessage
+ })
+
+ function closeDownApp() {
+ setStorage('isDownApp', 'true')
+ popup.value.close()
+ }
+
+
+ /*************************************************
+ * 做收尾工作
+ */
+ onBeforeUnmount(() => {
+ clearTimeout(onPullDownRefreshTimer)
+ })
+
+ return {
+ saleInfo, // 今日订单数据
+ _vendorPayPercentage, // 供应商百分比
+ isShowShop, // 是否为出售金额
+ isNotQuote,
+ isZero,
+ isUpperfif,
+ getMsg,
+ isMsg,
+ popup,
+ closeDownApp,
+ }
+}
+
+export default merchantFn
\ No newline at end of file
diff --git a/src/pages/merchant/index.vue b/src/pages/merchant/index.vue
new file mode 100644
index 0000000..ee39a39
--- /dev/null
+++ b/src/pages/merchant/index.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新系统消息
+ 请查收您的系统信息
+
+ 立即查看
+
+
+
+
+
+
+ 京西菜市商家版App全新上架,系统更加稳定,功能更加齐全,订单通知更加及时,请往手机自带应用商店搜索【京西菜市】进行安装使用!
+
+
+
+
+ 我知道了
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/merchant/options/options.scss b/src/pages/merchant/options/options.scss
new file mode 100644
index 0000000..5f4e7c3
--- /dev/null
+++ b/src/pages/merchant/options/options.scss
@@ -0,0 +1,106 @@
+.options-root {
+ background-color: #fff;
+ margin-top: 20rpx;
+ box-sizing: border-box;
+ padding: 20rpx;
+
+ :deep(.popupAnimation) {
+ z-index: 1000000;
+ }
+
+ .grid-item-box {
+ position: relative;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
+ .image {
+ width: 75rpx;
+ height: 75rpx;
+ margin-bottom: 10rpx;
+ }
+
+ .text {
+ font-size: 26rpx;
+ }
+
+
+ // ************* 角标内容 ************
+ // 我的账单
+ .bill-new {
+ position: absolute;
+ top: 15rpx;
+ right: 15rpx;
+ background-color: $jx-warring;
+ color: #fff;
+ font-size: 24rpx;
+ padding: 0 15rpx 5rpx 15rpx;
+ border-radius: 20rpx;
+ animation: bill-new-animation 0.5s ease-in-out infinite alternate;
+ }
+
+ // 消息通知
+ .msg-count {
+ position: absolute;
+ top: 20rpx;
+ right: 35rpx;
+ color: #fff;
+ background-color: $jx-warring;
+ font-size: 24rpx;
+ min-width: 18rpx;
+ min-height: 20rpx;
+ line-height: 20rpx;
+ text-align: center;
+ line-height: 1;
+ padding: 4rpx 8rpx 5rpx 8rpx;
+ border-radius: 100rpx;
+ }
+
+ // 差评管理
+ .evaluate-number {
+ position: absolute;
+ top: 20rpx;
+ right: 30rpx;
+ color: #fff;
+ background-color: $jx-warring;
+ font-size: 24rpx;
+ line-height: 1;
+ padding: 4rpx 8rpx 5rpx 8rpx;
+ border-radius: 100rpx;
+ min-width: 30rpx;
+ text-align: center;
+ max-height: 35rpx;
+ }
+
+ // 发现新版本
+ .newVarsion {
+ position: absolute;
+ top: 15rpx;
+ right: 30rpx;
+ display: inline-block;
+ background-color: $jx-warring;
+ width: 30rpx;
+ height: 30rpx;
+ border-radius: 50%;
+ font-size: 24rpx;
+ line-height: 30rpx;
+ text-align: center;
+ color: #fff;
+ padding: 5rpx;
+ animation: bill-new-animation 0.5s ease-in-out infinite alternate;
+ }
+ }
+}
+
+
+@keyframes bill-new-animation {
+ 0% {
+ transform: scale(0.95);
+ }
+
+ 100% {
+ transform: scale(1.05);
+ }
+}
\ No newline at end of file
diff --git a/src/pages/merchant/options/options.ts b/src/pages/merchant/options/options.ts
new file mode 100644
index 0000000..2f29b1c
--- /dev/null
+++ b/src/pages/merchant/options/options.ts
@@ -0,0 +1,316 @@
+/**
+ * options 选项
+ */
+import toast from "@/utils/toast"
+import { store } from '@/store'
+import { timeFormatD } from "@/utils/tools"
+import { getStorage } from "@/utils/storage"
+import { onLoad, onPullDownRefresh } from "@dcloudio/uni-app"
+import { Ref, ref, onBeforeUnmount,watch } from "vue"
+import merchant from '@/api/https/merchant'
+import order from "@/api/https/order"
+
+function options() {
+ /**
+ * 进入群聊
+ */
+ function getGroupChat() {
+ uni.navigateTo({
+ url: '/subPages/merchantChild/enterGroupChat/enterGroupChat',
+ })
+ }
+
+
+ /**
+ * 注册时间
+ */
+ async function getSelfInfo() {
+ let infoRes = await merchant.get_self_info()
+ if (infoRes.code == 0) {
+ let time1 = Math.floor((+new Date() - +new Date(infoRes.data.createdAt)) / 1000 / 24 / 3600)
+ let time2 = Math.floor((+new Date() - +new Date(store.state.storeInfo.createStoreTimer)) / 1000 / 24 / 3600)
+ uni.jxAlert({
+ title: '回首过往',
+ content: `门店ID:${getStorage('storeID')}\r\n\r\n您注册于${timeFormatD(infoRes.data.createdAt)}\r\n来到京西${time1}天\r\n\r\n门店创建于${timeFormatD(store.state.storeInfo.createStoreTimer)}\r\n在平台经营${time2}天`
+ })
+ } else toast('注册数据异常', 2)
+ }
+
+
+ /**
+ * 物料申请
+ */
+ function moveToWM() {
+ if (store.state.storeInfo.allStoreInfo.packageSwitch === 1) {
+ let tel = store.state.storeInfo.allStoreInfo.marketManPhone ? store.state.storeInfo.allStoreInfo.marketManPhone : "18048531223"
+ uni.jxAlert({
+ title: '物料申请',
+ content: `非常抱歉,无法进入物料商城,请联系运营${tel}`
+ })
+ return
+ }
+
+ if (store.state.storeInfo.storeStatus === -2) {
+ uni.jxAlert({
+ title: '物料申请',
+ content: '门店已被禁用,请联系运营'
+ })
+ }
+
+ uni.navigateToMiniProgram({
+ appId: 'wx4b5930c13f8b1170',
+ path: `pages/index/index?storeID=666666&fromStoreID=${getStorage('storeID')}&storeType=c4`,
+ success: (res) => {
+ toast('即将进入京西菜市')
+ },
+ fail: (err) => {
+ toast('取消申请')
+ },
+ })
+ }
+
+ /**
+ * 查询是否有新账单
+ */
+ onLoad(async () => {
+ await handleMsg()
+ await tmpGetJxBadCommentsNo()
+ await getMessageData()
+ })
+ // 处理新账单
+ const billUrl: Ref = ref('')
+ const newBillShow: Ref = ref(false) // 是否有新帐单
+ function handleMsg() {
+ getStoreBills((url: Array