From 5586573ff1dd5afb6103d0f2d8567b0464f5f5ef Mon Sep 17 00:00:00 2001
From: GaoHao <1210693421@qq.com>
Date: Sat, 12 Oct 2024 18:22:56 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81=E5=88=B0?=
=?UTF-8?q?=E4=BB=93=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 5 +
App.vue | 23 +
api/http.js | 194 ++
api/index.js | 51 +
commons/readme.txt | 14 +
commons/style/common.scss | 378 ++++
commons/style/global.scss | 230 +++
commons/style/uni-overwrite.scss | 181 ++
commons/style/vars.scss | 77 +
commons/utils/cal.js | 37 +
commons/utils/dataKit.js | 38 +
commons/utils/encryptUtil.js | 72 +
commons/utils/formUtil.js | 101 +
commons/utils/format.js | 54 +
commons/utils/getDateArea.js | 32 +
commons/utils/getQueryString.js | 13 +
commons/utils/infoBox.js | 62 +
commons/utils/pushmsg/QS-baiduyy.js | 143 ++
commons/utils/pushmsg/pushMsgManage.js | 71 +
commons/utils/pushmsg/registerPush.js | 50 +
commons/utils/pushmsg/wxTextToSpeach.js | 87 +
commons/utils/pushmsg/推送和播报相关.txt | 10 +
commons/utils/storageManage.js | 202 ++
config/appConfig.js | 27 +
index.html | 20 +
main.js | 24 +
manifest.json | 101 +
mini.project.json | 3 +
package-lock.json | 2382 ++++++++++++++++++++++
package.json | 10 +
pages.json | 16 +
pages/index/index.vue | 389 ++++
static/logo.png | Bin 0 -> 4023 bytes
uni.promisify.adaptor.js | 10 +
uni.scss | 76 +
vite.config.js | 19 +
vue.config.js | 46 +
37 files changed, 5248 insertions(+)
create mode 100644 .gitignore
create mode 100644 App.vue
create mode 100644 api/http.js
create mode 100644 api/index.js
create mode 100644 commons/readme.txt
create mode 100644 commons/style/common.scss
create mode 100644 commons/style/global.scss
create mode 100644 commons/style/uni-overwrite.scss
create mode 100644 commons/style/vars.scss
create mode 100644 commons/utils/cal.js
create mode 100644 commons/utils/dataKit.js
create mode 100644 commons/utils/encryptUtil.js
create mode 100644 commons/utils/formUtil.js
create mode 100644 commons/utils/format.js
create mode 100644 commons/utils/getDateArea.js
create mode 100644 commons/utils/getQueryString.js
create mode 100644 commons/utils/infoBox.js
create mode 100644 commons/utils/pushmsg/QS-baiduyy.js
create mode 100644 commons/utils/pushmsg/pushMsgManage.js
create mode 100644 commons/utils/pushmsg/registerPush.js
create mode 100644 commons/utils/pushmsg/wxTextToSpeach.js
create mode 100644 commons/utils/pushmsg/推送和播报相关.txt
create mode 100644 commons/utils/storageManage.js
create mode 100644 config/appConfig.js
create mode 100644 index.html
create mode 100644 main.js
create mode 100644 manifest.json
create mode 100644 mini.project.json
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 pages.json
create mode 100644 pages/index/index.vue
create mode 100644 static/logo.png
create mode 100644 uni.promisify.adaptor.js
create mode 100644 uni.scss
create mode 100644 vite.config.js
create mode 100644 vue.config.js
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..39127f2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+# 忽略提交文件
+/unpackage
+node_modules/
+.vscode/
+.hbuilderx/
\ No newline at end of file
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..bfa5981
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,23 @@
+
+
+
diff --git a/api/http.js b/api/http.js
new file mode 100644
index 0000000..ea499ea
--- /dev/null
+++ b/api/http.js
@@ -0,0 +1,194 @@
+/**
+ * HTTP的封装, 基于uni.request
+ * 包括: 通用响应结果的处理 和 业务的增删改查函数
+ *
+ * @author terrfly
+ * @site https://www.jeequan.com
+ * @date 2021/12/16 18:35
+ */
+
+// 导入全局属性
+import appConfig from '@/config/appConfig.js'
+import storageManage from '@/commons/utils/storageManage.js'
+import {
+ sm4DecryptByResData
+} from '@/commons/utils/encryptUtil.js'
+import infoBox from "@/commons/utils/infoBox.js"
+// let baseUrl = ''
+let baseUrl = 'https://cashier-client.sxczgkj.cn/cashier-client'
+// 多少 ms 以内, 不提示loading
+const loadingShowTime = 200
+
+
+function getHeader(){
+ const headerObject={}
+ headerObject["Authorization"] = storageManage.token()
+ headerObject["Content-Type"] = 'application/json'
+ headerObject["loginname"] = 'admin'
+ headerObject["token"] = 'eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyVHlwZSI6Ik1HIiwiZXhwIjoxNjkwMTgwNzE2LCJ1c2VySWQiOiIyNDQiLCJpYXQiOjE2ODg3MDk0ODcsImxvZ2luTmFtZSI6ImFkbWluIn0.lqxxvv2-FcecQngMBorz4MpkB3mIJQDG-IUULQyV-KQ'
+ headerObject["userId"] = '244'
+ return headerObject
+}
+
+// 通用处理逻辑
+function commonsProcess(showLoading, httpReqCallback) {
+
+ // 判断是否请求完成(用作 是否loading )
+ // 包括: 'ing', 'ingLoading', 'finish'
+ let reqState = 'ing'
+
+ // 是否已经提示的错误信息
+ let isShowErrorToast = false
+
+
+ // 请求完成, 需要处理的动作
+ let reqFinishFunc = () => {
+
+ if (reqState == 'ingLoading') { // 关闭loading弹层
+ infoBox.hideLoading()
+ }
+ reqState = 'finish' // 请求完毕
+ }
+
+ // 明确显示loading
+ if (showLoading) {
+ // xx ms内响应完成,不提示loading
+ setTimeout(() => {
+ if (reqState == 'ing') {
+ reqState = 'ingLoading'
+ infoBox.showLoading()
+ }
+ }, loadingShowTime)
+ }
+
+ return httpReqCallback().then((httpData) => {
+ reqFinishFunc(); // 请求完毕的动作
+
+ // 从http响应数据中解构响应数据 [ 响应码、 bodyData ]
+ let {
+ statusCode,
+ data
+ } = httpData
+ // 避免混淆重新命名
+ let bodyData = data
+ if (statusCode == 500) {
+ isShowErrorToast = true
+ return Promise.reject(bodyData) // 跳转到catch函数
+ }
+ if (statusCode == 401) {
+ // storageManage.token(null, true)
+ // 提示信息
+ isShowErrorToast = true
+ // infoBox.showErrorToast('请登录').then(() => {
+ // go.to("PAGES_LOGIN", {}, go.GO_TYPE_RELAUNCH)
+ // })
+ return Promise.reject(bodyData) // 跳转到catch函数
+ }
+ // http响应码不正确
+ if (statusCode != 200 && statusCode != 204 && statusCode != 201) {
+ isShowErrorToast = true
+ infoBox.showErrorToast(data.message || '服务器异常')
+ return Promise.reject(bodyData) // 跳转到catch函数
+ }
+
+
+ // 构造请求成功的响应数据
+ return Promise.resolve(bodyData)
+
+ }).catch(res => {
+ if(res.status==401){
+ infoBox.showToast(`登录失效`)
+ }
+ if(res.status==500){
+ infoBox.showToast(`网络异常`)
+ }
+ // if(res&&res.msg){
+ // infoBox.showErrorToast(res.msg)
+ // }
+ reqFinishFunc(); // 请求完毕的动作
+
+ // 如果没有提示错误, 那么此处提示 异常。
+ if (!isShowErrorToast) {
+ infoBox.showErrorToast(`请求网络异常`)
+ }
+
+ return Promise.reject(res)
+
+ }).finally(() => { // finally 是 then结束后再执行, 此处不适用。 需要在请求完成后立马调用: reqFinishFunc()
+
+ });
+
+}
+
+
+// 默认 显示loading(控制 xxs 内 不提示loading )
+function req(uri, data, method = "GET", showLoading = true, extParams = {}) {
+ // headerObject[appConfig.tokenKey] = storageManage.token()
+ return commonsProcess(showLoading, () => {
+ return uni.request(
+ Object.assign({
+ url: baseUrl + uri,
+ data: data,
+ method: method,
+ header: getHeader()
+ }, extParams)
+ )
+ })
+}
+
+
+// 默认 显示loading(控制 xxs 内 不提示loading )
+function request(args) {
+ const {
+ url,
+ data,
+ params,
+ method = "GET",
+ showLoading = true,
+ extParams = {}
+ } = args
+ let headerObject = {}
+ // headerObject[appConfig.tokenKey] = storageManage.token()
+
+ return commonsProcess(showLoading, () => {
+ return uni.request(
+ Object.assign({
+ url: baseUrl + url,
+ data: params||data,
+ method: method,
+ header: getHeader()
+ }, extParams)
+ )
+ })
+}
+
+
+
+// 上传
+function upload(uri, data, file, showLoading = true, extParams = {}) {
+ // 放置token
+ let headerObject = {}
+ // headerObject[appConfig.tokenKey] = storageManage.token()
+
+ return commonsProcess(showLoading, () => {
+ return uni.uploadFile(
+ Object.assign({
+ url: baseUrl + uri,
+ formData: data,
+ name: "file",
+ filePath: file.path,
+ header: getHeader()
+ }, extParams)
+ ).then((httpData) => {
+ // uni.upload 返回bodyData 的是 string类型。 需要解析。
+ httpData.data = JSON.parse(httpData.data)
+ return Promise.resolve(httpData)
+ })
+ })
+}
+
+export default {
+ req: req,
+ request,
+ upload: upload
+}
\ No newline at end of file
diff --git a/api/index.js b/api/index.js
new file mode 100644
index 0000000..386ca70
--- /dev/null
+++ b/api/index.js
@@ -0,0 +1,51 @@
+import http from './http.js'
+const request=http.request
+
+
+/**
+ * 店铺二维码支付
+ * @returns
+ */
+export function createOrder(data) {
+ return request({
+ url: `/pay/createOrder`,
+ method: 'post',
+ data
+ })
+}
+
+/**
+ * 获取支付宝userId 或 微信openId
+ * @returns
+ */
+export function getOpenId(params) {
+ return request({
+ url: `/pay/openId`,
+ method: 'get',
+ params
+ })
+}
+
+/**
+ * 获取订单信息
+ * @returns
+ */
+export function orderorderInfo(params) {
+ return request({
+ url: `/pay/noToken/queryOrderInfo`,
+ method: 'get',
+ params
+ })
+}
+
+/**
+ * 取消支付
+ * @param {Object} data
+ */
+export function cancelOrderPay(data) {
+ return request({
+ url: `/notify/cancel`,
+ method: 'post',
+ data
+ })
+}
diff --git a/commons/readme.txt b/commons/readme.txt
new file mode 100644
index 0000000..592624a
--- /dev/null
+++ b/commons/readme.txt
@@ -0,0 +1,14 @@
+该文件夹内放置: 项目自建资源, 比如 公共样式文件, 和 工具包等文件。
+
+
+目录结构:
+commons
+ style
+ utils
+
+知识点: 样式文件不应该放置到 static文件夹内(css、less/scss 等资源不要放在 static 目录下,建议这些公用的资源放在自建的 common 目录下。), 详见:
+https://uniapp.dcloud.net.cn/tutorial/project.html
+
+
+
+
diff --git a/commons/style/common.scss b/commons/style/common.scss
new file mode 100644
index 0000000..d0a773a
--- /dev/null
+++ b/commons/style/common.scss
@@ -0,0 +1,378 @@
+.u-relative,
+.u-rela {
+ position: relative;
+}
+
+.u-absolute,
+.u-abso {
+ position: absolute;
+}
+.u-fixed,.u-fix{
+ position: fixed;
+}
+.left-top{
+ left: 0;
+ top: 0;
+}
+.u-overflow-hide{
+ overflow: hidden;
+}
+
+// nvue不能用标签命名样式,不能放在微信组件中,否则微信开发工具会报警告,无法使用标签名当做选择器
+/* #ifndef APP-NVUE */
+image {
+ display: inline-block;
+}
+
+// 在weex,也即nvue中,所有元素默认为border-box
+view,
+text {
+ box-sizing: border-box;
+}
+/* #endif */
+
+.u-font-xs {
+ font-size: 22rpx;
+}
+
+.u-font-sm {
+ font-size: 26rpx;
+}
+
+.u-font-md {
+ font-size: 28rpx;
+}
+
+.u-font-lg {
+ font-size: 30rpx;
+}
+
+.u-font-xl {
+ font-size: 34rpx;
+}
+
+.u-flex {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: row;
+ align-items: center;
+}
+
+.u-flex-wrap {
+ flex-wrap: wrap;
+}
+
+.u-flex-nowrap {
+ flex-wrap: nowrap;
+}
+
+.u-col-center {
+ align-items: center;
+}
+
+.u-col-top {
+ align-items: flex-start;
+}
+
+.u-col-bottom {
+ align-items: flex-end;
+}
+
+.u-row-center {
+ justify-content: center;
+}
+
+.u-row-left {
+ justify-content: flex-start;
+}
+
+.u-row-right {
+ justify-content: flex-end;
+}
+
+.u-row-between {
+ justify-content: space-between;
+}
+
+.u-row-around {
+ justify-content: space-around;
+}
+
+.u-text-left {
+ text-align: left;
+}
+
+.u-text-center {
+ text-align: center;
+}
+
+.u-text-right {
+ text-align: right;
+}
+
+.u-flex-col {
+ /* #ifndef APP-NVUE */
+ display: flex!important;
+ /* #endif */
+ flex-direction: column!important;
+}
+
+// 定义flex等分
+@for $i from 0 through 12 {
+ .u-flex-#{$i} {
+ flex: $i;
+ }
+}
+
+// 定义字体(px)单位,小于20都为px单位字体
+@for $i from 9 to 20 {
+ .u-font-#{$i} {
+ font-size: $i + px;
+ }
+}
+
+// 定义字体(rpx)单位,大于或等于20的都为rpx单位字体
+@for $i from 20 through 40 {
+ .u-font-#{$i} {
+ font-size: $i + rpx;
+ }
+}
+
+// 定义内外边距,历遍1-80
+@for $i from 0 through 80 {
+ // 只要双数和能被5除尽的数
+ @if $i % 2 == 0 or $i % 5 == 0 {
+ // 得出:u-margin-30或者u-m-30
+ .u-margin-#{$i}, .u-m-#{$i} {
+ margin: $i + rpx!important;
+ }
+
+ // 得出:u-padding-30或者u-p-30
+ .u-padding-#{$i}, .u-p-#{$i} {
+ padding: $i + rpx!important;
+ }
+
+ @each $short, $long in l left, t top, r right, b bottom {
+ // 缩写版,结果如: u-m-l-30
+ // 定义外边距
+ .u-m-#{$short}-#{$i} {
+ margin-#{$long}: $i + rpx!important;
+ }
+
+ // 定义内边距
+ .u-p-#{$short}-#{$i} {
+ padding-#{$long}: $i + rpx!important;
+ }
+
+ // 完整版,结果如:u-margin-left-30
+ // 定义外边距
+ .u-margin-#{$long}-#{$i} {
+ margin-#{$long}: $i + rpx!important;
+ }
+
+ // 定义内边距
+ .u-padding-#{$long}-#{$i} {
+ padding-#{$long}: $i + rpx!important;
+ }
+ }
+ }
+}
+
+// 重置nvue的默认关于flex的样式
+.u-reset-nvue {
+ flex-direction: row;
+ align-items: center;
+}
+
+/* start--文本行数限制--start */
+.u-line-1 {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.u-line-2 {
+ -webkit-line-clamp: 2;
+}
+
+.u-line-3 {
+ -webkit-line-clamp: 3;
+}
+
+.u-line-4 {
+ -webkit-line-clamp: 4;
+}
+
+.u-line-5 {
+ -webkit-line-clamp: 5;
+}
+
+.u-line-2, .u-line-3, .u-line-4, .u-line-5 {
+ overflow: hidden;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ display: -webkit-box; // 弹性伸缩盒
+ -webkit-box-orient: vertical; // 设置伸缩盒子元素排列方式
+}
+
+/* end--文本行数限制--end */
+
+
+/* start--不同颜色文字--start */
+.color-333{
+ color: #333;
+}
+.color-666{
+ color: #666;
+}
+.color-999{
+ color: #999;
+}
+.color-red{
+ color: $my-red-color;
+}
+.color-main{
+ color:$my-main-color
+}
+
+/* end--不同颜色文字--end */
+
+
+.tranistion{
+ transition: all .3s ease-in-out;
+}
+.tranistion-1{
+ transition: all .1s ease-in-out;
+}
+.tranistion-2{
+ transition: all .2s ease-in-out;
+}
+.font-bold{
+ font-weight: 700;
+}
+
+
+/* start--不同颜色背景--start */
+.my-bg-main{
+ background-color:$my-main-color
+}
+
+/* end--不同颜色背景--end */
+
+.safe-page{
+ padding-bottom: 60rpx!important;
+}
+::v-deep .uni-switch-input.uni-switch-input-checked{
+ border-color: $my-main-color;
+ background-color: $my-main-color;
+}
+.min-page{
+ /* #ifdef H5 */
+ min-height: calc(100vh - 44px);
+ /* #endif */
+ /* #ifndef H5 */
+ min-height: 100vh;
+ /* #endif */
+}
+.w-full{
+ width: 100%;
+}
+.gap-20{
+ gap: 20rpx;
+}
+.color-000{
+ color: #000;
+}
+.color-fff{
+ color: #fff;
+}
+.bg-fff{
+ background-color: #fff;
+}
+.bg-gray{
+ background-color: #F9F9F9;
+}
+.overflow-hide{
+ /* #ifdef H5 */
+ height: calc(100vh - 44px);
+ /* #endif */
+ /* #ifndef H5 */
+ height: 100vh;
+ /* #endif */
+ overflow: hidden;
+}
+.no-wrap{
+ white-space: nowrap;
+}
+.border-r-12{
+ border-radius: 12rpx;
+}
+.border-r-18{
+ border-radius: 18rpx;
+}
+.border-top{
+ border-top: 1px solid #E5E5E5;
+}
+.border-bottom{
+ border-bottom: 1px solid #E5E5E5;
+}
+.scale7{
+ transform: scale(0.7);
+}
+.page-gray {
+ min-height: calc(100vh);
+ /* #ifdef H5 */
+ min-height: calc(100vh - var(--window-top));
+ /* #endif */
+ display: flex;
+ flex-direction: column;
+ background: #F9F9F9;
+}
+
+.safe-bottom{
+ padding-bottom: env(safe-area-inset-bottom);
+ /* #ifdef H5 */
+ padding-bottom: 28rpx;
+ /* #endif */
+}
+.position-all{
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+.fixed-top{
+ position: fixed;
+ /* #ifdef H5 */
+ top: 44px;
+ /* #endif */
+ /* #ifndef H5 */
+ top: 0;
+ /* #endif */
+ left: 0;
+ right: 0;
+}
+.lh30 {
+ line-height: 30px;
+}
+.default-box-padding{
+ padding: 32rpx 28rpx;
+}
+.icon-arrow-down-fill {
+ width: 16rpx;
+ height: 10rpx;
+}
+.zIndex-999{
+ z-index: 999;
+}
+.icon-default-size{
+ width: 28rpx;
+ height: 28rpx;
+}
+::v-deep.uni-easyinput__placeholder-class{
+ font-size: 28rpx!important;
+}
+.filter-gray{
+ filter: grayscale(1);
+}
\ No newline at end of file
diff --git a/commons/style/global.scss b/commons/style/global.scss
new file mode 100644
index 0000000..a3e94e8
--- /dev/null
+++ b/commons/style/global.scss
@@ -0,0 +1,230 @@
+/**
+ * 系统级别: 全局样式
+ *
+ * @site https://www.jeequan.com
+ * @date 2022/11/22 07:29
+ */
+
+/** 已整理 **/
+
+
+// 通用 列表页样式
+.page-wrapper {
+ min-height: calc(100vh - 70rpx); /** 最小高度 **/
+ padding-bottom: 70rpx; /** 安全距离(防止home条遮挡文字) **/
+ background-color: $v-color-bgrey; /** 全局背景灰 **/
+}
+
+// 底部 固定的按钮, 比如: 创建门店, 创建员工等按钮。
+.list-footer{
+ height: 100rpx;
+ background: transparent;
+ .button-wrapper {
+ border-top: 1rpx solid rgba(0,0,0, 0.07);
+ background-color: rgba(252, 252, 252, 0.85);
+ backdrop-filter: blur(20rpx);
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 30rpx;
+ }
+}
+
+
+/** 详情页 覆写:list-item */
+.list-item-by-detail {
+ padding: 60rpx 60rpx 10rpx 60rpx !important;
+ background-color: transparent !important; /** 背景透明 **/
+ .list-title{
+ color: #fff !important;
+ }
+ .list-subtitle{
+ color: rgba(251,252,253,0.7) !important;
+ }
+ .list-info {
+ image {
+ margin-right: 0 !important;
+ }
+ }
+}
+
+/**列表条目渲染, 比如: 头像、 主标题, **/
+.list-item {
+ display: flex;
+ align-items: center;
+ padding: 0 40rpx;
+ height: 170rpx;
+ background-color: #FFF; /** 背景 白色 **/
+ image {
+ flex-shrink: 0;
+ flex-grow: 0;
+ width: 100rpx;
+ height: 100rpx;
+ margin-right: 30rpx;
+ }
+ .list-info {
+ flex: 1;
+ .list-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 40rpx;
+ color: rgba(77,77,77,1);
+ .list-name {
+ width: auto;
+ flex: 1;
+ display: flex;
+ align-items: center;
+ font-size: 30rpx;
+ font-weight: 400;
+ }
+ }
+ .list-subtitle {
+ color: rgba(153, 153, 153, 1);
+ margin-top: 25rpx;
+ font-size: 26rpx;
+ font-weight: 400;
+ width: 430rpx;
+ }
+ }
+}
+
+
+/** 状态小圆点 **/
+.state-dot {
+ display: flex;
+ align-items: center;
+ font-size: 30rpx;
+ font-weight: 400;
+ &::after {
+ content: '';
+ display: block;
+ margin-left: 20rpx;
+ width: 20rpx;
+ height: 20rpx;
+ border-radius: 50%;
+ }
+}
+
+/** 状态小圆点 **/
+.state-dot-enable {
+ &::after {
+ background-color: #168FFF;
+ }
+
+}
+
+/** 状态小圆点 **/
+.state-dot-disable {
+ &::after {
+ background-color: #D9D9D9;
+ }
+}
+
+/** 状态小圆点 **/
+.state-dot-error {
+ &::after {
+ background-color: red;
+ }
+}
+
+
+/**
+ * 描述预览图, 参考: app详情
+ * 第一个最后一个距离上下 40rpx, 中间间距20rpx
+ */
+.desc-view {
+ .desc-view-item {
+ display: flex;
+ justify-content: space-between;
+ padding: 20rpx 40rpx;
+ font-size: 30rpx;
+ font-weight: 400;
+
+ .title {
+ color: #808080;
+ }
+ .desc {
+ color: #000;
+ }
+
+ &:first-child {
+ margin-top: 20rpx;
+ }
+ &:last-child {
+ margin-bottom: 20rpx;
+ }
+ }
+}
+
+/** 已整理 **/
+
+
+
+
+//容器内部元素上下左右居中
+.flex-center {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+// 触摸反馈样式
+.touch-hover {
+ background-color: #f7f8fa !important ;
+}
+.touch-button {
+ opacity: 0.5;
+}
+/* 单行文本超出省略号 */
+.single-text-beyond {
+ overflow: hidden; /*超出部分隐藏*/
+ white-space: nowrap; /*禁止换行*/
+ text-overflow: ellipsis; /*省略号*/
+}
+// 按钮背景样式
+.footer-button-style {
+ border-top: 1rpx solid #fcfcfc;
+ background-color: rgba(252, 252, 252, 0.85);
+ backdrop-filter: blur(20rpx);
+}
+// 搜素框 提示语样式
+.input-placeholder {
+ font-size: 32rpx;
+ color: rgba(0, 0, 0, 0.35);
+}
+
+
+// 表单分割线
+.line {
+ height: 20rpx;
+ background-color: $v-color-bgrey;
+}
+
+
+
+/**
+ * jeepay-btn 通用btn样式。
+ * 用法:
+ */
+.jeepay-btn {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 110rpx;
+ font-size: 33rpx;
+ font-weight: 500;
+ color: $J-color-tff;
+ border-radius: 20rpx;
+ background: linear-gradient(270deg, rgba(35,143,252,1) 0%, rgba(26,102,255,1) 100%);
+ box-shadow: 0 20rpx 60rpx -20rpx rgba(0,84,210,0.5);
+ &.hover-button {
+ opacity: 0.5;
+ }
+}
+
+/** 输入框icon **/
+.input-icon{
+ width: 36rpx;
+ height: 36rpx;
+}
diff --git a/commons/style/uni-overwrite.scss b/commons/style/uni-overwrite.scss
new file mode 100644
index 0000000..94b7fb7
--- /dev/null
+++ b/commons/style/uni-overwrite.scss
@@ -0,0 +1,181 @@
+/**
+ * 系统级别:覆写 uni样式
+ *
+ * @site https://www.jeequan.com
+ * @date 2022/11/22 07:29
+ */
+
+
+
+
+/* 去除开关右侧边距 */
+.uni-switch-input {
+ margin-right: 0 !important;
+}
+
+/* .uni-navbar {
+ position: relative;
+ z-index: 10;
+} */
+.uni-popup{
+ z-index: 998 !important;
+}
+// 表单组件样式 覆写
+.uni-forms-item {
+ display: flex;
+ align-items: center;
+ min-height: 120rpx;
+ background-color: $J-bg-ff;
+ font-size: 32rpx;
+ font-weight: 400;
+}
+.uni-forms-item ::v-deep .uni-forms-item__label {
+ font-size: 32rpx !important;
+ font-weight: 400;
+ text-indent: 40rpx;
+ color: #4d4d4d;
+ height: auto !important;
+}
+
+// uni-form-item 表单校验, 如果校验不通过, 显示的文字占位, 并且添加下边距。
+.uni-forms-item__error.msg--active{
+ position: relative !important;
+ margin-bottom: 30rpx;
+}
+
+
+.is-input-error-border .uni-easyinput__placeholder-class{
+ color: #f56c6c !important
+}
+
+
+// 去掉按钮边框
+button:after {
+ border: none !important;
+}
+
+// 去点导航栏组件center&right
+::v-deep.uni-navbar__header {
+ .uni-navbar__header-container,
+ .uni-navbar__header-btns-right {
+ display: none !important;
+ }
+}
+
+// 修改 uuni-easyinput
+// form 外层必须包裹一个 view class="jeepay-form"
+.jeepay-form {
+ .uni-easyinput {
+ .uni-easyinput__content {
+ border: 2px solid transparent !important;
+ height: 110rpx;
+ padding: 0 30rpx;
+ margin-bottom: 50rpx;
+ box-sizing: border-box !important;
+ border-radius: 20rpx !important;
+ background-color: rgba(247, 247, 247, 1) !important;
+ }
+
+ .uni-easyinput__content-input {
+ color: rgba(0, 0, 0, 1);
+ font-size: 32rpx !important;
+ font-weight: 400;
+ }
+
+ .is-foucs {
+ border: 2px solid #1d79fd !important;
+ background-color: white !important;
+ }
+
+ .uni-input-placeholder
+ /* #ifdef MP-WEIXIN */
+ ,.uni-easyinput__placeholder-class
+ /* #endif */ {
+ font-size: 32rpx !important;
+ color: #B3B3B3 !important;
+ }
+ }
+}
+
+.jeepay-edit-form .uni-easyinput__content-input {
+ padding-left: 0 !important;
+ .uni-input-placeholder {
+ font-size: 32rpx !important;
+ }
+}
+
+// 设置新密码覆盖form默认样式
+.new-password {
+ .uni-forms-item.is-direction-left {
+ padding: 0 40rpx;
+ .uni-forms-item__label {
+ width: 190rpx !important;
+ font-size: 32rpx !important;
+ font-weight: 400;
+ white-space: nowrap;
+ color: rgba(102, 102, 102, 1);
+ text-indent: 0 !important;
+ }
+ .uni-easyinput__placeholder-class {
+ font-size: 32rpx !important;
+ font-weight: 400 !important;
+ }
+ }
+}
+
+// 搜索栏覆盖默认样式
+/* #ifdef MP-WEIXIN */
+.input-main {
+ button {
+ font-size: 32rpx;
+ color: rgba(29,121,253,1);
+ background: rgba(255,255,255,1);
+ }
+ .uni-easyinput {
+ .uni-easyinput__content {
+ background-color: $J-bg-f5 !important;
+ border-radius: $J-b-r12;
+ .uni-easyinput__content-input {
+ padding-left: 0 !important;
+ .uni-input-input {
+ border-radius: $J-b-r12 !important;
+ overflow: hidden !important;
+ }
+ }
+ .uni-input-placeholder {
+ font-size: 27rpx;
+ }
+ .uni-icons {
+ color: rgba(230,230,230,1) !important;
+ }
+ }
+ }
+}
+/* #endif */
+
+// 搜索栏覆盖默认样式
+/* #ifdef MP-WEIXIN */
+button[is="components/Button/Button"] {
+ padding: 0;
+ background-color: transparent !important;
+}
+/* #endif */
+
+// 修改时间选择器按钮颜色
+.xp-button--confirm {
+ background: $jeepay-bg-primary;
+}
+.xp-button--cancel {
+ color: rgba(0, 0, 0, 0.5) !important;
+}
+// label 样式
+.f-label{
+ width: 280rpx;
+ align-self: start;
+ padding-top: 40rpx;
+ font-size: 32rpx ;
+ font-weight: 400;
+ text-indent: 40rpx;
+ color: #4d4d4d;
+}
+
diff --git a/commons/style/vars.scss b/commons/style/vars.scss
new file mode 100644
index 0000000..65ad362
--- /dev/null
+++ b/commons/style/vars.scss
@@ -0,0 +1,77 @@
+/**
+ * 系统级别: 自定义变量
+ *
+ * @site https://www.jeequan.com
+ * @date 2022/11/22 07:29
+ */
+
+// $v : 表示: variables简写。 uni的默认都有特殊开头, 一般不会重复。
+$v-color-t21: #217dfe;
+
+// 全局通用: 背景灰 background grey
+$v-color-bgrey: #F7F7F7;
+
+// 背景色
+$J-bg-f7: #f7f7f7; //页面背景色
+$J-bg-ff: #fff;
+$J-bg-f5: #f5f5f5; //输入框背景色
+
+// 文字颜色
+$J-color-t80: #808080; //常用于 未选中文字颜色
+$J-color-t21: #217dfe; //卡片文字选中 统计报表
+$J-color-tff: #fff;
+$J-color-tSff: rgba(255, 255, 255, 0.7);
+$J-color-t29: #2980fd; //选中 文字颜色 搜索
+$J-color-ta6: #a6a6a6;
+$J-color-t4d: #4d4d4d; //标题颜色
+$J-color-t99: #999;
+$J-color-t8c: #8c8c8c; // 卡片列表 标题文字颜色
+//圆角相关变量
+$J-b-r32: 32rpx;
+$J-b-r12: 12rpx;
+$J-b-r10: 10rpx;
+$v-b-r20: 20rpx;
+
+// 文字大小
+$J-f-size30: 30rpx;
+
+// 常用边框颜色
+$v-b-color-ed: #ededed;
+
+//common.scss 分包页面以及组件里所用的颜色
+$my-main-color:#318AFE;
+$my-red-color:#F02C45;
+
+//my-components
+$u-main-color: #303133;
+$u-content-color: #606266;
+$u-tips-color: #909193;
+$u-light-color: #c0c4cc;
+$u-border-color: #dadbde;
+$u-bg-color: #f3f4f6;
+$u-disabled-color: #c8c9cc;
+
+$u-primary: #3c9cff;
+$u-primary-dark: #398ade;
+$u-primary-disabled: #9acafc;
+$u-primary-light: #ecf5ff;
+
+$u-warning: #f9ae3d;
+$u-warning-dark: #f1a532;
+$u-warning-disabled: #f9d39b;
+$u-warning-light: #fdf6ec;
+
+$u-success: #5ac725;
+$u-success-dark: #53c21d;
+$u-success-disabled: #a9e08f;
+$u-success-light: #f5fff0;
+
+$u-error: #f56c6c;
+$u-error-dark: #e45656;
+$u-error-disabled: #f7b2b2;
+$u-error-light: #fef0f0;
+
+$u-info: #909399;
+$u-info-dark: #767a82;
+$u-info-disabled: #c4c6c9;
+$u-info-light: #f4f4f5;
\ No newline at end of file
diff --git a/commons/utils/cal.js b/commons/utils/cal.js
new file mode 100644
index 0000000..b160920
--- /dev/null
+++ b/commons/utils/cal.js
@@ -0,0 +1,37 @@
+/**
+ * 数字, 计算相关函数
+ *
+ * @author terrfly
+ * @site https://www.jeepay.vip
+ * @date 2022/11/22 10:38
+ */
+
+/**
+ * 保留小数n位,不进行四舍五入
+ * num你传递过来的数字,
+ * decimal你保留的几位,默认保留小数后两位
+ */
+const formatDecimal = function(num, decimal = 2) {
+ num = num.toString()
+ const index = num.indexOf('.')
+ if (index !== -1) {
+ num = num.substring(0, decimal + index + 1)
+ } else {
+ num = num.substring(0)
+ }
+ //截取后保留两位小数
+ return parseFloat(num).toFixed(decimal)
+}
+
+const model = {
+ // 分转元
+ // amount - 金额 parseFloat - 是否转换为数字格式, 默认String
+ cert2Dollar(amount, needParseFloat = false) {
+ if (needParseFloat) { // parseFlot
+ return formatDecimal(amount / 100)
+ }
+ return formatDecimal(amount / 100)
+ }
+}
+
+export default model
\ No newline at end of file
diff --git a/commons/utils/dataKit.js b/commons/utils/dataKit.js
new file mode 100644
index 0000000..8dd0691
--- /dev/null
+++ b/commons/utils/dataKit.js
@@ -0,0 +1,38 @@
+/**
+ * 数据 工具类
+ *
+ * @author terrfly
+ * @site https://www.jeepay.vip
+ * @date 2022/11/30 14:18
+ */
+
+const model = {
+
+ // 递归遍历树状结构数据 matchFunc 匹配结果, true表示匹配成功, 否则继续匹配。
+ // pnode 可不传入
+ // 返回结构: [当前数据, 上级数据 ]
+ recursionTreeData: (treeData, matchFunc, childrenName = 'children', pnode = null ) => {
+
+ for (let i = 0; i < treeData.length; i++) {
+
+ const item = treeData[i]
+
+ // 匹配成功
+ if(matchFunc(item)){
+ return [item, pnode]
+ }
+
+ if (item[childrenName] && item[childrenName].length > 0) {
+ let res = model.recursionTreeData(item[childrenName], matchFunc, childrenName, item)
+ if(res){
+ return res
+ }
+ }
+ }
+
+ }
+
+}
+
+export default model
+
diff --git a/commons/utils/encryptUtil.js b/commons/utils/encryptUtil.js
new file mode 100644
index 0000000..95881ce
--- /dev/null
+++ b/commons/utils/encryptUtil.js
@@ -0,0 +1,72 @@
+/**
+ * 加解密工具包
+ *
+ * @author terrfly
+ * @site https://www.jeepay.vip
+ * @date 2021/5/16 17:35
+ */
+import { SM4 } from 'gm-crypto'
+import appConfig from '@/config/appConfig.js'
+
+let HEX_KEY = null
+
+// 字符串转16进制
+function str2hex(str) {
+ var val = ''
+ for (var i = 0; i < str.length; i++) {
+ if (val == '')
+ val = str.charCodeAt(i).toString(16)
+ else
+ val += str.charCodeAt(i).toString(16)
+ }
+ val += ''
+ return val
+}
+
+// 获取hex秘钥
+function getHexKey(){
+
+ if(!HEX_KEY){
+
+ HEX_KEY = str2hex(appConfig.encryptKey)
+
+ }
+ return HEX_KEY
+}
+
+
+// 解密 (http响应数据, 做通用处理)
+export function sm4DecryptByResData(data){
+
+ if(!data){
+ return data
+ }
+
+ let res = SM4.decrypt(data, getHexKey(), {
+ inputEncoding: 'base64',
+ outputEncoding: 'utf8'
+ })
+
+ if(!res){
+ return res
+ }
+
+ return JSON.parse(res)['originData']
+}
+
+// 加密 (http响应数据, 做通用处理)
+export function sm4EncryptByReqData(data){
+
+ if(!data){
+ return data
+ }
+
+ // 加密处理
+ let encryptData = SM4.encrypt(JSON.stringify(data), getHexKey(), {
+ inputEncoding: 'utf8',
+ outputEncoding: 'base64'
+ })
+
+ return {encryptData : encryptData}
+}
+
diff --git a/commons/utils/formUtil.js b/commons/utils/formUtil.js
new file mode 100644
index 0000000..8d51bf8
--- /dev/null
+++ b/commons/utils/formUtil.js
@@ -0,0 +1,101 @@
+/**
+ * form 验证 工具类
+ *
+ * @author terrfly
+ * @site https://www.jeepay.vip
+ * @date 2022/11/25 10:58
+ */
+
+import infoBox from '@/commons/utils/infoBox.js'
+
+const model = {
+
+
+ // 正则表达式
+ regexp: {
+
+ // 手机号验证规则
+ mobile: /^1\d{10}$/,
+
+ // 登录用户名: 字母开头 6 -18位。
+ loginUsername: /^[a-zA-Z][a-zA-Z0-9]{5,17}$/,
+
+ },
+
+
+ // 验证规则:
+ rules: {
+
+ // showText 为空, 说明是 input的placeHoloder 直接飘红,
+ // showText 有值: 在文本框下方提示。
+ // 只有input 才有这种特殊判断。
+ requiredInput: (showText, type = 'string') => {
+ return {format: type, required: true, errorMessage: showText ? ('请输入' + showText) : ' ' }
+ },
+
+ requiredSelect: (showText, type = 'string') => {
+ return {format: type, required: true, errorMessage: '请选择' + showText }
+ },
+
+ requiredUpload: (showText, type = 'string') => {
+ return {format: type, required: true, errorMessage: '请上传' + showText }
+ },
+
+ // 正则验证 , 请注意: 该规则需要在required后面, 此处不可包含required
+ patternRule: (showText, p) => {
+ return {pattern: p, errorMessage: '请输入正确的' + showText }
+ },
+
+ requiredInputShowToast: (showText, type = 'string') => {
+ return {format: type, required: true, errorMessage:' ', toastErrorMessage: '请输入' + showText }
+ },
+
+ requiredSelectShowToast: (showText, type = 'string') => {
+ return {format: type, required: true, errorMessage:' ', toastErrorMessage: '请选择' + showText }
+ },
+
+ requiredUploadShowToast: (showText, type = 'string') => {
+ return {format: type, required: true, errorMessage:' ', toastErrorMessage: '请上传' + showText }
+ },
+
+ patternRuleShowToast: (showText, p) => {
+ return {pattern: p, errorMessage:' ', toastErrorMessage: '请输入正确的' + showText }
+ },
+
+ },
+
+
+ // 支持 提示信息
+ // 类型如下:
+ // {
+ // required: true,
+ // toastErrorMessage: "请输入去去去去群",
+ // errorMessage: ' ', // 不会显示在下部, 需要空格占位
+ // }
+ validate: (form) => {
+
+ return form.validate().catch(e => {
+
+ if(!e || e.length <= 0){
+ return Promise.reject()
+ }
+
+ for(let i = 0; i < e.length; i++){
+ let k = e[i].key
+ let rules = form.rules[k].rules
+ for(let j = 0; j < rules.length; j++){
+ if(rules[j].toastErrorMessage && rules[j].required){
+ infoBox.showToast(rules[j].toastErrorMessage) // 仅提示一次即可
+ return Promise.reject(e)
+ }
+ }
+ }
+ return Promise.reject(e)
+ })
+
+ },
+
+}
+
+export default model
+
diff --git a/commons/utils/format.js b/commons/utils/format.js
new file mode 100644
index 0000000..f8f915f
--- /dev/null
+++ b/commons/utils/format.js
@@ -0,0 +1,54 @@
+/**
+ * 格式化价格函数,将价格限定在指定的最小值和最大值范围内,并保留两位小数。
+ *
+ * @param {number} price - 需要格式化的价格。
+ * @param {number} min - 价格的最小值。
+ * @param {number} max - 价格的最大值,默认为100000000。
+ * @param {Boolean} returnIsArea - 是否返回值符合范围区间,默认为false。
+ * @returns {number} - 返回格式化后的价格,如果超出范围则返回最小值或最大值。
+ */
+export const formatPrice = (price,min=-Infinity, max = 100000000,returnIsArea=false ) => {
+ if(price === undefined || price === null||price===''){
+ return 0
+ }
+ // 将价格转换为浮点数并保留两位小数
+ const newval = parseFloat((Math.floor(price * 100) / 100).toFixed(2))
+ // 如果价格大于最大值,返回最大值
+ if (newval > max) {
+ return returnIsArea?{value:max,error:true}:max
+ }
+ // 如果价格小于最小值,返回最小值
+ if (newval < min) {
+ return returnIsArea?{value:min,error:true}:min
+ }
+ // 如果价格小于最小值,返回最小值
+ if (newval < min) {
+ return min
+ }
+ // 返回格式化后的价格
+ return newval
+}
+export function returnReverseVal(val, isReturnString = true) {
+ const isBol = typeof val === "boolean";
+ const isString = typeof val === "string";
+ let reverseNewval = "";
+ if (isBol) {
+ reverseNewval = !val;
+ }
+ if (isString) {
+ reverseNewval = val === "true" ? "false" : "true";
+ }
+ return reverseNewval;
+}
+export function returnBoolean(val) {
+ const isBol = typeof val === "boolean";
+ const isString = typeof val === "string";
+ let newval = "";
+ if (isBol) {
+ newval = val;
+ }
+ if (isString) {
+ newval = val === "true" ? true : false;
+ }
+ return newval;
+}
\ No newline at end of file
diff --git a/commons/utils/getDateArea.js b/commons/utils/getDateArea.js
new file mode 100644
index 0000000..50583c6
--- /dev/null
+++ b/commons/utils/getDateArea.js
@@ -0,0 +1,32 @@
+function getDayArea(date = new Date(), type) {
+ const now = date
+ if (type === 'start') {
+ const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
+ return startOfDay
+ }
+ if (type === 'end') {
+ const endOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
+ return endOfDay;
+ }
+ return `${startOfDay}-${endOfDay}`
+}
+function getMonthArea(date = new Date(), type) {
+ let now = date
+ let currentMonthStart = new Date(now.getFullYear(), now.getMonth(), 1);
+ let currentMonthEnd = new Date(now.getFullYear(), now.getMonth() + 1, 0 , 23, 59, 59, 999);
+ if (type === 'start') {
+ return currentMonthStart
+ }
+ if (type === 'end') {
+ return currentMonthEnd;
+ }
+ return {
+ start: currentMonthStart,
+ end: currentMonthEnd
+ };
+}
+
+
+export default {
+ getDayArea, getMonthArea
+}
\ No newline at end of file
diff --git a/commons/utils/getQueryString.js b/commons/utils/getQueryString.js
new file mode 100644
index 0000000..ed310c7
--- /dev/null
+++ b/commons/utils/getQueryString.js
@@ -0,0 +1,13 @@
+/**
+ * 获取url链接参数
+ * @param {Object} url
+ * @param {Object} name
+ */
+export function getQueryString(url, name) {
+ var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
+ var r = url.substr(1).match(reg)
+ if (r != null) {
+ return r[2]
+ }
+ return null;
+}
\ No newline at end of file
diff --git a/commons/utils/infoBox.js b/commons/utils/infoBox.js
new file mode 100644
index 0000000..603e646
--- /dev/null
+++ b/commons/utils/infoBox.js
@@ -0,0 +1,62 @@
+/**
+ * 提示信息公共文件
+ *
+ * @author terrfly
+ * @site https://www.jeequan.com
+ * @date 2022/11/14 15:29
+ */
+
+const model = {
+
+ // uni.showToast的封装
+ // 参数: 标题、 显示时长(单位: 秒), 扩展参数
+ // 返回: promise对象, 当提示消失后调用 resolve()
+ showToast: (title, duration = 1.5, extObject) => {
+ return new Promise((resolve, reject) => {
+ uni.showToast(Object.assign({ title: title, icon: 'none', mask: true, duration: (duration * 1000) }, extObject))
+ setTimeout(resolve, (duration * 1000));
+ })
+ },
+
+ // success类型的提示
+ showSuccessToast: (title, duration) => {
+ return model.showToast(title, duration, {icon: 'success'})
+ },
+
+ // error类型的提示
+ showErrorToast: (title, duration) => {
+ return model.showToast(title, duration, {icon: 'error'})
+ },
+
+ showLoading: (title = '请稍后' ) => {
+ return uni.showLoading({ title: title, mask: true })
+ },
+
+ hideLoading: () => {
+ return uni.hideLoading()
+ },
+
+ // 返回 Promise 点击确定和取消
+ // APP安卓原生提示(比较丑), APP 不推荐使用该函数 。
+ showModal: (title, confirmText = '确定', cancalText = '取消', extObject) => {
+ return new Promise((resolve, reject) => {
+ uni.showModal( Object.assign({
+ title: title,
+ confirmText: confirmText,
+ showCancel: cancalText ? true : false,
+ cancelText: cancalText,
+ success: function(r) {
+ if (r.confirm) {
+ resolve()
+ }else if (r.cancel) {
+ reject()
+ }
+ }
+ }, extObject ));
+ });
+ },
+
+
+}
+
+export default model
\ No newline at end of file
diff --git a/commons/utils/pushmsg/QS-baiduyy.js b/commons/utils/pushmsg/QS-baiduyy.js
new file mode 100644
index 0000000..9341b2d
--- /dev/null
+++ b/commons/utils/pushmsg/QS-baiduyy.js
@@ -0,0 +1,143 @@
+import { $getBaiduToken } from '@/http/apiManager.js';
+const audioTeam = [];
+let audioStartSwitch = false;
+const getAudioUrl = 'https://tsn.baidu.com/text2audio';
+
+export default function openVoice(objs) { // 传入需转为语音的文本内容
+ let lineUp = false;
+ let returnAudio = false;
+ if (typeof(objs) !== 'string') {
+ if (objs && objs.lineUp === true) {
+ lineUp = true;
+ }
+ if (objs && objs.returnAudio === true) {
+ returnAudio = true;
+ }
+ }
+ if(returnAudio) {
+ return new Promise((resolve, reject)=>{
+ openVoiceFc(objs, returnAudio).then(res=>{
+ resolve(res);
+ }).catch(err=>{
+ reject(err)
+ });
+ })
+ }
+
+ if (!audioStartSwitch || lineUp) {
+ audioStartSwitch = true;
+ openVoiceFc(objs);
+ } else {
+ audioTeam.push(objs);
+ }
+}
+
+function openVoiceFc(objs, returnAudio) {
+ if(returnAudio) {
+ return new Promise((resolve, reject)=>{
+ $getBaiduToken().then(({bizData}) => {
+ if (bizData) {
+ resolve(tts(objs, bizData, returnAudio));
+ } else {
+ reject('获取语音tok接口为空');
+ }
+ })
+ })
+ }else{
+ $getBaiduToken().then(({bizData}) => {
+ if (bizData) {
+ tts(objs, bizData);
+ } else {
+ }
+ })
+ }
+}
+
+function tts(objs, tok, returnAudio) {
+ if(typeof(objs)=='string')
+ objs = {voiceSet: {tex: objs}};
+ const data = {
+ tok,
+ cuid: tok,
+ ctp: 1,
+ lan: 'zh',
+ ...objs.voiceSet
+ }
+ if(returnAudio)
+ return btts( data, objs.audioSet, objs.audioCallback, objs.lineUp, returnAudio);
+ btts( data, objs.audioSet, objs.audioCallback, objs.lineUp, returnAudio);
+}
+
+function setAudioSet(options, audio) {
+ if (options) {
+ audio.volume = options.volume || 1;
+ audio.startTime = options.startTime || 0;
+ audio.loop = options.loop || false;
+ audio.obeyMuteSwitch = options.obeyMuteSwitch && typeof(options.obeyMuteSwitch) == 'boolean' ? options.obeyMuteSwitch :
+ true; //支持微信小程序、百度小程序、头条小程序
+ }
+}
+
+function btts(param, options, audioCallback, lineUp, returnAudio) {
+ let audio = uni.createInnerAudioContext();
+ setAudioSet(options, audio);
+ // 序列化参数列表
+ let fd = [];
+ for (let k in param) {
+ fd.push(k + '=' + encodeURIComponent(encodeURIComponent(param[k])));
+ }
+ audio.src = `${getAudioUrl}?${fd.join('&')}`;
+
+ if(returnAudio) {
+ audio.onEnded(() => {
+ audio.destroy(); //销毁音频实例
+ audio = null;
+ })
+ audio.onError((e)=>{
+ if (audioCallback && audioCallback.onError && typeof(audioCallback.onError) == 'function') audioCallback.onError(e);
+ audio.destroy(); //销毁音频实例
+ audio = null;
+ })
+ return audio;
+ }
+ audio.onPlay(() => {
+ if (audioCallback && audioCallback.onPlay && typeof(audioCallback.onPlay) == 'function') audioCallback.onPlay();
+ })
+ audio.onPause(()=>{
+ if (audioCallback && audioCallback.onPause && typeof(audioCallback.onPause) == 'function') audioCallback.onPause();
+ })
+ audio.onWaiting(()=>{
+ if (audioCallback && audioCallback.onWaiting && typeof(audioCallback.onWaiting) == 'function') audioCallback.onWaiting();
+ })
+ audio.onStop(()=>{
+ if (audioCallback && audioCallback.onStop && typeof(audioCallback.onStop) == 'function') audioCallback.onStop();
+ })
+ audio.onTimeUpdate(()=>{
+ if (audioCallback && audioCallback.onTimeUpdate && typeof(audioCallback.onTimeUpdate) == 'function') audioCallback.onTimeUpdate();
+ })
+ audio.onSeeking(()=>{
+ if (audioCallback && audioCallback.onSeeking && typeof(audioCallback.onSeeking) == 'function') audioCallback.onSeeking();
+ })
+ audio.onSeeked(()=>{
+ if (audioCallback && audioCallback.onSeeked && typeof(audioCallback.onSeeked) == 'function') audioCallback.onSeeked();
+ })
+ audio.onEnded(() => {
+ audio.destroy(); //销毁音频实例
+ audio = null;
+ if (audioCallback && audioCallback.onEnded && typeof(audioCallback.onEnded) == 'function') audioCallback.onEnded();
+ if (lineUp !== false) {
+ if (audioTeam.length > 0) {
+ openVoiceFc(audioTeam[0]);
+ audioTeam.splice(0, 1);
+ } else {
+ audioStartSwitch = false;
+ }
+ }
+ })
+ audio.onError((e)=>{
+ if (audioCallback && audioCallback.onError && typeof(audioCallback.onError) == 'function') audioCallback.onError(e);
+ audio.destroy(); //销毁音频实例
+ audio = null;
+ })
+ audio.play();
+}
diff --git a/commons/utils/pushmsg/pushMsgManage.js b/commons/utils/pushmsg/pushMsgManage.js
new file mode 100644
index 0000000..10385dc
--- /dev/null
+++ b/commons/utils/pushmsg/pushMsgManage.js
@@ -0,0 +1,71 @@
+import storageManage from '@/commons/utils/storageManage.js'
+import dayjs from 'dayjs'
+import baiduyy from './QS-baiduyy.js'; // 百度语音合成
+
+// #ifdef MP-WEIXIN
+import wxTextToSpeach from './wxTextToSpeach.js'; // 微信小程序插件语音合成
+// #endif
+
+
+const model = {
+ // 监听推送通知
+ addPushMsgEventListener: function(){
+
+ console.log("监听推送")
+
+ // #ifdef APP-PLUS
+ // unipush1.0监听消息
+ if(plus && plus.push) {
+ plus.push.addEventListener('receive', model.handlePush)
+ }
+ // #endif
+ // unipush2.0监听消息
+ model.uniPushListener2()
+ },
+
+
+ // uniPush2.0 接收推送消息
+ uniPushListener2: function() {
+ uni.onPushMessage((res) => {
+ console.log("uniPush2.0 收到推送消息:", res.data) //监听推送消息
+ model.handlePush(res.data)
+ })
+ },
+
+ // 语音播报
+ handlePush: function(message) {
+
+ // 没有token信息
+ if(!storageManage.token()){
+ return false;
+ }
+
+ // 信息不存在
+ if(!message || !message.content) {
+ return false;
+ }
+
+ const content = JSON.parse(message.content)
+ console.log("消息内容:", content)
+
+ // 支付成功
+ if (content && content.type == 'paySuccess') {
+ // 在过期时间之内, 则调起语音播报。
+ if( dayjs(content.expiredTime).isAfter(dayjs()) ){
+ console.log('执行消息播报');
+ // #ifdef MP-WEIXIN
+ wxTextToSpeach(content.msg)
+ // #endif
+
+ // #ifndef MP-WEIXIN
+ baiduyy(content.msg)
+ // #endif
+ uni.vibrateLong({});
+ }
+ }
+ }
+
+}
+
+
+export default model
\ No newline at end of file
diff --git a/commons/utils/pushmsg/registerPush.js b/commons/utils/pushmsg/registerPush.js
new file mode 100644
index 0000000..1d8c813
--- /dev/null
+++ b/commons/utils/pushmsg/registerPush.js
@@ -0,0 +1,50 @@
+import {
+ $pushInfoRegister
+} from '@/http/apiManager.js'
+import storageManage from '@/commons/utils/storageManage.js'
+// 默认导出 方法 注册 push连接
+export default async function() {
+ let cid1 = undefined // unipush1.0 客户端CID
+ let cid2 = undefined // unipush2.0 客户端CID
+ let orgCid = undefined // 原始cid如果获取的cid和新的cid不相同赋值原始cid后端会根据原始cid更新
+ let cidType = undefined //传递类型 是 app 还是 微信
+ // #ifdef APP-PLUS
+ cidType = 'app_plus'
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ cidType = 'mp_weixin'
+ // #endif
+
+ // #ifdef APP-PLUS
+ if (!plus) {
+ cid1 = plus.push.getClientInfo().clientid
+ }
+ // #endif
+ const data = await uni.getPushClientId()
+ console.log('客户端推送标识:', data.cid)
+ cid2 = data.cid
+ // 如果不存 cid 本地存储 写入 cid
+ if (!storageManage.uniPush2Cid()) {
+ storageManage.uniPush2Cid(data.cid)
+ } else if (cid2 !== storageManage.uniPush2Cid()) { // 否则进行 cid 对比 判断 是否相等 不相等 赋值 orgCid
+ orgCid = storageManage.uniPush2Cid() //赋值原始cid
+ storageManage.uniPush2Cid(data.cid) //重新写入 cid
+ }
+ if (cid1) {
+ pushInfoRegister(cid1)
+ } else {
+ pushInfoRegister(cid1, cid2, orgCid, cidType)
+ }
+
+ function pushInfoRegister(cid1 = '', cid2 = '', org = '', cidType = '') {
+ $pushInfoRegister({
+ cid1,
+ cid2,
+ orgCid: org,
+ cidType
+ }).then(res => {
+ orgCid = '' //重置 数据
+ })
+ }
+}
diff --git a/commons/utils/pushmsg/wxTextToSpeach.js b/commons/utils/pushmsg/wxTextToSpeach.js
new file mode 100644
index 0000000..bfd523d
--- /dev/null
+++ b/commons/utils/pushmsg/wxTextToSpeach.js
@@ -0,0 +1,87 @@
+import { $mchConfig } from "@/http/apiManager"
+import storageManage from '@/commons/utils/storageManage.js'
+let num = 0 //计算错误此时 超过5次错误 不在出触发
+const plugin = requirePlugin("WechatSI")
+const pushMsgArr = [] //维护一个消息队列
+let backgroundAudioManager = undefined //获取背景音频实例
+let audioMp3 = ''
+console.log('执行创建 语音播报逻辑');
+// 获取配置项 判断是否 开启 小程序 语音推送
+export function getPushStatus () {
+ if (!storageManage.token()) return //未登录 不播放
+ $mchConfig('orderConfig').then(({ bizData = [] }) => {
+ const weChat = bizData.find(v => v.configKey == "weChatVoice")
+ if (weChat && weChat?.configVal == 1) {
+ createBgMusice()
+ }
+ })
+}
+// getPushStatus()
+// 创建 背景音乐
+function createBgMusice (file) {
+ backgroundAudioManager = wx.getBackgroundAudioManager()
+ backgroundAudioManager.title = '订单通知'
+ if (!audioMp3) {
+ createFile()
+ } else {
+ backgroundAudioManager.src = audioMp3
+ }
+
+ // 监听 音频播放失败事件
+ backgroundAudioManager.onError(function (res) {
+ console.log('音频播放失败', res, num);
+ if (num >= 5) return
+ createFile()
+ num++
+ })
+ // 监听 音频播放结束事件
+ onBgMusiceEnd()
+}
+// 监听bei背景音乐播放状态
+export function onBgMusiceEnd () {
+ backgroundAudioManager.onEnded(() => {
+ if (pushMsgArr.length > 0) return broadcast(pushMsgArr.pop()) //如果有消息 则继续播放
+ backgroundAudioManager.src = audioMp3 //否则播放默认背景音乐
+ })
+}
+export function startOrEndMusice (flag) {
+ if (!flag && !!backgroundAudioManager) return backgroundAudioManager.stop() //关闭背景音乐 地址指向空即可
+ if (!backgroundAudioManager) return createBgMusice() // 如果一开始是关闭状态 则创建背景音乐实例
+ backgroundAudioManager.src = audioMp3 // 否则重新赋值背景音地址即可
+}
+export default function (message) {
+ if (!backgroundAudioManager) return
+ pushMsgArr.unshift(message) //将消息添加到消息队列头部 背景音乐播放结束后 会对消息队列 进行校验 如果消息队列有消息 会进行播放 否则继续循环背景音乐
+}
+// 播放订单
+function broadcast (msg) {
+ plugin.textToSpeech({
+ lang: "zh_CN",
+ tts: true,
+ content: msg,
+ success: function (res) {
+ backgroundAudioManager.src = res.filename;
+ onBgMusiceEnd()
+ },
+ fail: function (res) {
+ console.log("fail tts", res)
+ }
+ })
+}
+
+// 创建文件
+export function createFile (file) {
+ const fs = wx.getFileSystemManager()
+ fs.copyFile({
+ srcPath: `static/noiseless.mp3`,
+ destPath: `${wx.env.USER_DATA_PATH}/noiseless.mp3`,
+ success (res) {
+ console.log(res, `${wx.env.USER_DATA_PATH}/noiseless.mp3`)
+ audioMp3 = `${wx.env.USER_DATA_PATH}/noiseless.mp3`
+ backgroundAudioManager.src = audioMp3
+ },
+ fail (res) {
+ console.error(res)
+ }
+ })
+}
\ No newline at end of file
diff --git a/commons/utils/pushmsg/推送和播报相关.txt b/commons/utils/pushmsg/推送和播报相关.txt
new file mode 100644
index 0000000..11b6a55
--- /dev/null
+++ b/commons/utils/pushmsg/推送和播报相关.txt
@@ -0,0 +1,10 @@
+创建 云空间 上传云函数 云函数 url化 运营平台 配置云函数地址
+
+打包时 勾选云push 2.0 push1.0 仅支持 app 推送
+
+注意配置 百度语音相关参数
+
+使用push2.0 请将 static\noiseless.mp3 文件 配置到运营平台 系统 配置 通知配置 push2.0 uniPush语音播报音频文件(小程序播报必填) 下
+
+注意:扩展库依赖3张opendb表:opendb-tempdata,opendb-device,uni-id-device。公测版uniCloud,执行扩展库会自动创建。如果你使用的是uniCloud正式版需要自己创建这3张表。
+
\ No newline at end of file
diff --git a/commons/utils/storageManage.js b/commons/utils/storageManage.js
new file mode 100644
index 0000000..ab874a5
--- /dev/null
+++ b/commons/utils/storageManage.js
@@ -0,0 +1,202 @@
+/**
+ * 存储管理对象
+ * 目标:将现有系统的所有需要存储的数据,统一管理
+ *
+ * @author terrfly
+ * @site https://www.jeequan.com
+ * @date 2022/04/13 07:18
+ */
+
+import appConfig from "@/config/appConfig.js"
+
+// 应用级(vue级别)缓存, 当存在时则读取此值, 否则读取storage中的值。( vue线程内的缓存,不必要每次读取应用数据,影响性能)
+const appCache = {
+ tokenVal: null, // token取值
+ currentUser: null, // 当前商户信息
+}
+
+const model = {
+
+ setLogin(res){
+ uni.setStorageSync('logoutHandle',false)
+ uni.setStorageSync('shopId', res.shopId)
+ uni.setStorageSync('shopName',res.shopName)
+ uni.setStorageSync('logo',res.logo)
+ uni.setStorageSync('loginType',res.loginType)
+ },
+ // 退出清空所有的缓存数据。 (不包含 环境相关)
+ cleanByLogout: () => {
+
+ // 1. 清空app级别缓存。
+ Object.keys(appCache).forEach(k => appCache[k] = null)
+
+ let envName = model.env() // 获取到当前的环境变量
+ uni.clearStorageSync() // 清除所有的缓存信息
+ model.env(envName) // 重置env
+
+
+ },
+
+ // 获取和放置token
+ token: (val, isDelete = false) => {
+ if (isDelete) {
+ appCache.tokenVal = ""
+ return uni.removeStorageSync(appConfig.tokenKey)
+ }
+
+ if (val) {
+ // 有值,为放置
+ appCache.tokenVal = val
+ uni.setStorageSync(appConfig.tokenKey, val)
+ } else {
+ // 否则为获取
+
+ if (!appCache.tokenVal) {
+ //缓存取不到,获取应用本地信息
+ appCache.tokenVal = uni.getStorageSync(appConfig.tokenKey)
+ }
+ return appCache.tokenVal
+ }
+ },
+ // 获取和放置shopId
+ shopId: (val, isDelete = false) => {
+ if (isDelete) {
+ appCache.shopId = ""
+ return uni.removeStorageSync('shopId')
+ }
+
+ if (val) {
+ // 有值,为放置
+ appCache.shopId = val
+ uni.setStorageSync('shopId', val)
+ } else {
+ // 否则为获取
+
+ if (!appCache.shopId) {
+ //缓存取不到,获取应用本地信息
+ appCache.shopId = uni.getStorageSync('shopId')
+ }
+ return appCache.shopId
+ }
+ },
+
+ // 已经登录的用户记录
+ loggedInUser: (addUserName = null, removeUserName = null) => {
+ let key = "loggedInUserList"
+
+ // 删除
+ if (removeUserName) {
+ let nameList = uni.getStorageSync(key) || []
+ if (nameList.length <= 0) {
+ //不存在数据
+ return false
+ }
+
+ let hasUserIndex = nameList.indexOf(removeUserName)
+ if (hasUserIndex >= 0) {
+ nameList.splice(hasUserIndex, 1) //删除
+ uni.setStorageSync(key, nameList)
+ }
+
+ return false
+ }
+
+ // 有新插入的记录
+ if (addUserName) {
+ let nameList = uni.getStorageSync(key) || []
+
+ let hasUser = false
+ for (let i = 0; i < nameList.length; i++) {
+ if (nameList[i] == addUserName) {
+ hasUser = true
+ }
+ }
+
+ // 包含记录
+ if (hasUser) {
+ return false
+ }
+
+ // 最多存储 5 个
+ if (nameList.length >= 5) {
+ nameList.splice(0, 1) //删除第一个
+ }
+ nameList.push(addUserName)
+ uni.setStorageSync(key, nameList)
+
+ //获取
+ } else {
+ return uni.getStorageSync(key) || [] //默认空数组
+ }
+ },
+
+ // 用户信息
+ userInfo: (currentUserInfo) => {
+ if (currentUserInfo) {
+ // 仅保存基础数据
+ let saveUser = {
+
+ sysUserId: currentUserInfo.sysUserId, // 用户ID
+ realname: currentUserInfo.realname, // 用户姓名
+ avatarUrl: currentUserInfo.avatarUrl, // 头像
+ telphone: currentUserInfo.telphone, // 手机号
+ userType: currentUserInfo.userType, // 用户类型
+
+ mchNo: currentUserInfo.userNo, // 商户No
+ mchShortName: currentUserInfo.shortName, // 商户简称
+ mchType: currentUserInfo.mchType, // 商户类型
+ mchLevel: currentUserInfo.mchLevel, // 商户级别
+ isHasMemberEnt:currentUserInfo.isHasMemberEnt,// 是否购买会员模块
+ entIdList: currentUserInfo.entIdList, // 权限集合List
+
+ }
+ uni.setStorageSync("currentUserInfo", saveUser) // 改变存储
+ appCache.currentUser = null
+ }
+
+ if(!appCache.currentUser){ // 获取缓存数据
+ appCache.currentUser = uni.getStorageSync("currentUserInfo")
+ }
+
+ return appCache.currentUser
+ },
+
+ // 项目环境变量:(测试、 生产的切换)
+ env: (envMode) => {
+ if (envMode) {
+ uni.setStorageSync(appConfig.storeEnvEnumKey, envMode) // 改变存储
+ }
+ return uni.getStorageSync(appConfig.storeEnvEnumKey)
+ },
+
+ // push 状态是否开启
+ pushIsOpen: (pushFlag) => {
+ if (pushFlag) {
+ uni.setStorageSync('pushFlag', pushFlag) // 改变存储
+ }
+ return uni.getStorageSync('pushFlag')
+ },
+ // 网站信息
+ siteInfos: (siteInfos) => {
+ if (siteInfos) {
+ uni.setStorageSync("siteInfos", siteInfos) // 改变存储
+ }
+ return uni.getStorageSync("siteInfos")
+ },
+
+ // unipush2 cid
+ uniPush2Cid: (uniPush2Cid) => {
+ if (uniPush2Cid) {
+ uni.setStorageSync("uniPush2Cid", uniPush2Cid) // 改变存储
+ }
+ return uni.getStorageSync("uniPush2Cid")
+ },
+ uploadImgSize: (uploadImgSize) => {
+ if (uploadImgSize) {
+ uni.setStorageSync("uploadImgSize", uploadImgSize) // 存储 上传 图片大小限制
+ }
+ return uni.getStorageSync("uploadImgSize")
+ },
+}
+
+export default model
diff --git a/config/appConfig.js b/config/appConfig.js
new file mode 100644
index 0000000..8e2a36a
--- /dev/null
+++ b/config/appConfig.js
@@ -0,0 +1,27 @@
+const appConfig = {
+
+ // 项目名称
+ appName: '银收客',
+
+ // token取值key
+ tokenKey: 'iToken',
+ // tokenKey: 'satoken',
+
+ // 环境变量相关
+ env: {},
+
+ // 环境变量常量
+ ENV_ENUM: {
+ DEVELOPMENT: 'development', // 本地调试地址
+ TEST: 'test', // 测试地址
+ DEMO: 'demo', // 演示环境
+ PRODUCTION: 'production' // 生产环境
+ },
+
+ storeEnvEnumKey: 'currentEnvEnum', // 本地存储的envkey的值
+
+ encryptKey: '1234567890123456' // http数据加解密的key
+
+}
+
+export default appConfig;
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..cef2146
--- /dev/null
+++ b/main.js
@@ -0,0 +1,24 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+
+
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+ app.$mount(); //为了兼容小程序及app端必须这样写才有效果
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..c4ddbc2
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,101 @@
+{
+ "name" : "payH5",
+ "appid" : "__UNI__A285A50",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {
+ "Payment" : {}
+ },
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {
+ "payment" : {}
+ }
+ }
+ },
+ "h5" : {
+ "unipush" : {
+ "enable" : true
+ },
+ "router" : {
+ "mode" : "history", //采用history模式URL的路径才跟配置的对应上,不然URL是先加/#再追加配置的地
+ "base" : "/pay" //在页面路由上加上该前缀
+ },
+ "devServer" : {
+ "port" : 80,
+ "disableHostCheck" : true,
+ "proxy" : {
+ "/api" : {
+ // 需要被代理的后台地址
+ "target" : "https://cashier-client.sxczgkj.cn/cashier-client",
+ "changeOrigin" : true,
+ "secure" : false,
+ "pathRewrite" : {
+ "/api" : ""
+ }
+ }
+
+ }
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "2"
+}
diff --git a/mini.project.json b/mini.project.json
new file mode 100644
index 0000000..bca0b42
--- /dev/null
+++ b/mini.project.json
@@ -0,0 +1,3 @@
+{
+ "format": 2
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..dafa997
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2382 @@
+{
+ "name": "payH5",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "alipay-sdk": "^4.13.0",
+ "copy-webpack-plugin": "^12.0.2",
+ "gm-crypto": "^0.1.12",
+ "jweixin-module": "^1.6.0",
+ "uni-simple-router": "^2.0.8-beta.4",
+ "vue-router": "^4.4.5"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.25.8",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.8.tgz",
+ "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.25.8"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.25.8",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.8.tgz",
+ "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@fidm/asn1": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/@fidm/asn1/-/asn1-1.0.4.tgz",
+ "integrity": "sha512-esd1jyNvRb2HVaQGq2Gg8Z0kbQPXzV9Tq5Z14KNIov6KfFD6PTaRIO8UpcsYiTNzOqJpmyzWgVTrUwFV3UF4TQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@fidm/x509": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@fidm/x509/-/x509-1.2.1.tgz",
+ "integrity": "sha512-nwc2iesjyc9hkuzcrMCBXQRn653XuAUKorfWM8PZyJawiy1QzLj4vahwzaI25+pfpwOLvMzbJ0uKpWLDNmo16w==",
+ "license": "MIT",
+ "dependencies": {
+ "@fidm/asn1": "^1.0.4",
+ "tweetnacl": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "license": "MIT",
+ "peer": true,
+ "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==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@sindresorhus/merge-streams": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
+ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.5.4",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.4.tgz",
+ "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.12.tgz",
+ "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/parser": "^7.25.3",
+ "@vue/shared": "3.5.12",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz",
+ "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/compiler-core": "3.5.12",
+ "@vue/shared": "3.5.12"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz",
+ "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/parser": "^7.25.3",
+ "@vue/compiler-core": "3.5.12",
+ "@vue/compiler-dom": "3.5.12",
+ "@vue/compiler-ssr": "3.5.12",
+ "@vue/shared": "3.5.12",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.11",
+ "postcss": "^8.4.47",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz",
+ "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/compiler-dom": "3.5.12",
+ "@vue/shared": "3.5.12"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.6.4",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
+ "license": "MIT"
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.12.tgz",
+ "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/shared": "3.5.12"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.12.tgz",
+ "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/reactivity": "3.5.12",
+ "@vue/shared": "3.5.12"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz",
+ "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/reactivity": "3.5.12",
+ "@vue/runtime-core": "3.5.12",
+ "@vue/shared": "3.5.12",
+ "csstype": "^3.1.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.12.tgz",
+ "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/compiler-ssr": "3.5.12",
+ "@vue/shared": "3.5.12"
+ },
+ "peerDependencies": {
+ "vue": "3.5.12"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.12.tgz",
+ "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.12.1.tgz",
+ "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
+ "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
+ "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
+ "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
+ "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
+ "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
+ "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.12.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
+ "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
+ "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
+ "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
+ "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/helper-wasm-section": "1.12.1",
+ "@webassemblyjs/wasm-gen": "1.12.1",
+ "@webassemblyjs/wasm-opt": "1.12.1",
+ "@webassemblyjs/wasm-parser": "1.12.1",
+ "@webassemblyjs/wast-printer": "1.12.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
+ "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
+ "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/wasm-gen": "1.12.1",
+ "@webassemblyjs/wasm-parser": "1.12.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
+ "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
+ "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "license": "Apache-2.0",
+ "peer": true
+ },
+ "node_modules/acorn": {
+ "version": "8.12.1",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-import-attributes": {
+ "version": "1.9.5",
+ "resolved": "https://registry.npmmirror.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
+ "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "acorn": "^8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/alipay-sdk": {
+ "version": "4.13.0",
+ "resolved": "https://registry.npmmirror.com/alipay-sdk/-/alipay-sdk-4.13.0.tgz",
+ "integrity": "sha512-6UQKu7EN5w87YBLT8S7bJFLZFa7Oa5eGDPvLhJcmshRinvvHgL9UGzmnCN0AyR7F0s59sXCdcKTwgIJ/ZXJ9MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@fidm/x509": "^1.2.1",
+ "bignumber.js": "^9.1.2",
+ "camelcase-keys": "^7.0.2",
+ "crypto-js": "^4.2.0",
+ "formstream": "^1.5.0",
+ "snakecase-keys": "^8.0.0",
+ "sse-decoder": "^1.0.0",
+ "urllib": "^4",
+ "utility": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz",
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.3",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.3.tgz",
+ "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001646",
+ "electron-to-chromium": "^1.5.4",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "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==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001660",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz",
+ "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0",
+ "peer": true
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "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==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/copy-webpack-plugin": {
+ "version": "12.0.2",
+ "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz",
+ "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.1",
+ "globby": "^14.0.0",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.2.0",
+ "serialize-javascript": "^6.0.2"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ }
+ },
+ "node_modules/crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
+ "license": "MIT"
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.19",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.19.tgz",
+ "integrity": "sha512-kpLJJi3zxTR1U828P+LIUDZ5ohixyo68/IcYOHLqnbTPr/wdgn4i1ECvmALN9E16JPA6cvCG5UG79gVwVdEK5w==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.17.1",
+ "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+ "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
+ "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "peer": true,
+ "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==",
+ "license": "MIT"
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/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==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/fast-uri": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.0.1.tgz",
+ "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==",
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/formstream": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/formstream/-/formstream-1.5.1.tgz",
+ "integrity": "sha512-q7ORzFqotpwn3Y/GBK2lK7PjtZZwJHz9QE9Phv8zb5IrL9ftGLyi2zjGURON3voK8TaZ+mqJKERYN4lrHYTkUQ==",
+ "license": "MIT",
+ "dependencies": {
+ "destroy": "^1.0.4",
+ "mime": "^2.5.2",
+ "node-hex": "^1.0.1",
+ "pause-stream": "~0.0.11"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "license": "BSD-2-Clause",
+ "peer": true
+ },
+ "node_modules/globby": {
+ "version": "14.0.2",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-14.0.2.tgz",
+ "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==",
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/merge-streams": "^2.1.0",
+ "fast-glob": "^3.3.2",
+ "ignore": "^5.2.4",
+ "path-type": "^5.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gm-crypto": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmmirror.com/gm-crypto/-/gm-crypto-0.1.12.tgz",
+ "integrity": "sha512-ercd9ionBqxR+/FCXICr0eo+jzC8BvSK0j9L7/eB0uwbyjgeMPTdBNrcQTqIuRXOtOAKSGsTNvtLYFnIxNEoFg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.7.0",
+ "jsbn": "^1.1.0",
+ "to-arraybuffer": "^1.0.1"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
+ "node_modules/jweixin-module": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz",
+ "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==",
+ "license": "ISC"
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.12",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.12.tgz",
+ "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "license": "MIT",
+ "peer": 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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.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==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "license": "MIT",
+ "dependencies": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/node-hex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/node-hex/-/node-hex-1.0.1.tgz",
+ "integrity": "sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "license": "MIT",
+ "peer": true
+ },
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/path-type/-/path-type-5.0.0.tgz",
+ "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmmirror.com/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
+ "license": [
+ "MIT",
+ "Apache2"
+ ],
+ "dependencies": {
+ "through": "~2.3"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.47",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.47.tgz",
+ "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "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==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/schema-utils": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/snake-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/snake-case/-/snake-case-3.0.4.tgz",
+ "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
+ "license": "MIT",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/snakecase-keys": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmmirror.com/snakecase-keys/-/snakecase-keys-8.0.1.tgz",
+ "integrity": "sha512-Sj51kE1zC7zh6TDlNNz0/Jn1n5HiHdoQErxO8jLtnyrkJW/M5PrI7x05uDgY3BO7OUQYKCvmeMurW6BPUdwEOw==",
+ "license": "MIT",
+ "dependencies": {
+ "map-obj": "^4.1.0",
+ "snake-case": "^3.0.4",
+ "type-fest": "^4.15.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/snakecase-keys/node_modules/type-fest": {
+ "version": "4.26.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-4.26.1.tgz",
+ "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "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==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/sse-decoder": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/sse-decoder/-/sse-decoder-1.0.0.tgz",
+ "integrity": "sha512-JPopy3jfNmPcUz5Ru6skKhHNRJbsvcEW6Z4SirKkucLS8Jya1Bmf4FVX8giOkLm8xQJ7kK68P6GXoVSTkbedUA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.19.3"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmmirror.com/terser/-/terser-5.32.0.tgz",
+ "integrity": "sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
+ "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.20",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.26.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "license": "MIT"
+ },
+ "node_modules/to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==",
+ "license": "MIT"
+ },
+ "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==",
+ "license": "MIT",
+ "peer": true,
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "license": "0BSD"
+ },
+ "node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "license": "Unlicense"
+ },
+ "node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/undici": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmmirror.com/undici/-/undici-6.19.8.tgz",
+ "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/unescape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/unescape/-/unescape-1.0.1.tgz",
+ "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/uni-simple-router": {
+ "version": "2.0.8-beta.4",
+ "resolved": "https://registry.npmmirror.com/uni-simple-router/-/uni-simple-router-2.0.8-beta.4.tgz",
+ "integrity": "sha512-ipTHhOaRvjV8qrt3HosX5pNMhwFYBnFOuKyV5joH0evfXubjrGI5tjdwpmwzfW5h3VBth3iAqScv+pW/QmIJXw==",
+ "license": "MIT"
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
+ "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
+ "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urllib": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/urllib/-/urllib-4.2.0.tgz",
+ "integrity": "sha512-9BJyIUh62zqv0FR0bQEfhcM0z/biHO+KGqH2CQ9Z2GeYQwvYI+9VJuKGHbvVKc0KbXaIIOnXXm/P1n+qjYJA/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "formstream": "^1.5.1",
+ "mime-types": "^2.1.35",
+ "qs": "^6.12.1",
+ "type-fest": "^4.20.1",
+ "undici": "^6.19.2",
+ "ylru": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 18.19.0"
+ }
+ },
+ "node_modules/urllib/node_modules/type-fest": {
+ "version": "4.26.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-4.26.1.tgz",
+ "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/utility": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/utility/-/utility-2.1.0.tgz",
+ "integrity": "sha512-EW1SiTanYlo91u304Rka3hEYqWmewWvZoljL1qu6Yju7PdCIhPEVMHYH/jSoCV6nZSw4dozeVDDkjWQ0/0bRmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-html": "^1.0.3",
+ "unescape": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 16.0.0"
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.5.12",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.12.tgz",
+ "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/compiler-dom": "3.5.12",
+ "@vue/compiler-sfc": "3.5.12",
+ "@vue/runtime-dom": "3.5.12",
+ "@vue/server-renderer": "3.5.12",
+ "@vue/shared": "3.5.12"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-router": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.5.tgz",
+ "integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/devtools-api": "^6.6.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "5.94.0",
+ "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.94.0.tgz",
+ "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/estree": "^1.0.5",
+ "@webassemblyjs/ast": "^1.12.1",
+ "@webassemblyjs/wasm-edit": "^1.12.1",
+ "@webassemblyjs/wasm-parser": "^1.12.1",
+ "acorn": "^8.7.1",
+ "acorn-import-attributes": "^1.9.5",
+ "browserslist": "^4.21.10",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.1",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.2.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.10",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/webpack/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/ylru": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ylru/-/ylru-2.0.0.tgz",
+ "integrity": "sha512-T6hTrKcr9lKeUG0MQ/tO72D3UGptWVohgzpHG8ljU1jeBt2RCjcWxvsTPD8ZzUq1t1FvwROAw1kxg2euvg/THg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18.19.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c9c99c9
--- /dev/null
+++ b/package.json
@@ -0,0 +1,10 @@
+{
+ "dependencies": {
+ "alipay-sdk": "^4.13.0",
+ "copy-webpack-plugin": "^12.0.2",
+ "gm-crypto": "^0.1.12",
+ "jweixin-module": "^1.6.0",
+ "uni-simple-router": "^2.0.8-beta.4",
+ "vue-router": "^4.4.5"
+ }
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..6ee4cba
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,16 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "支付",
+ "navigationStyle": "custom"
+ }
+ }
+ ],
+ "globalStyle": {
+
+ },
+ "uniIdRouter": {}
+}
+
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..267a38f
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,389 @@
+
+
+
+
+ {{shopName}}
+
+
+ ¥
+
+
+ 立即付款
+
+
+
+
+
+
diff --git a/static/logo.png b/static/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5771e209bb677e2ebd5ff766ad5ee11790f305a
GIT binary patch
literal 4023
zcmaJ^c|25Y`#+XyC`+5OUafkYqmlSEl)+V
zC53EJB$S8m@9Vz4*Y&-Yb3W(3Y;(d~fM1#)0003Cvn<7K1}HtM`$d{YenwQ;C^-S(Bw!dKGPRQ{5d$=<+Bb^=&62=9
zyT3g7ffNAnXPh^N0JjBz*>4v5+kn2(URc+5KlGCVF`&OikMw
zfqqB8XK2+;V}LL3B>(G>)mVo1y5YXue4A!H*}eQbcg`t##g9HFply&`y$2%Ui`qzhj;o^=JbnXrW48s;xu1fDr
z0))La)fp=QkX*N#V0eTJXiqO11AyvJlBY^iBrIQo0Kg>g;^BKnJ9a%2Wz`F2Ka;Jl
zm*B>3H!<9`zg|z+c>6eWFMqydnvs-!J))2I(LEmNyxo~2!VjOpv<0SyMNVCup-60Z
zm&|RDtd8R2HEIU!!OA0Ic6-G4K{`MZ8S%UjEL!s#vj{vLBWeqI(M&DkE;aT|aziV8
zRiTRN#GNwykvPx{R==`-rP>^pa`AyJ&s**Q!zU$j(pO&Q(YolGLT=2o0>3Wlhx?Gs
z#|6b*$3F$ofzT`QIA#}2(Cg}Z?5V5KrtX)WrInh*aTCsP#{@V|*7<0lm`r^xmJQm^
z9n0J^3p#yCxWPX>G11)F(iv5vIIHkbqzdH37jX&JZ~&5AV*OAtL}axw*aLAt(b-!Vf)wRw=S8((e`~WLqlDBobRbj)NXB
zS>W`fibSDA>uYN*&&Ml75iep!E%^%eV~SElj=}K;6TCNXs2gYG-L`En&3y~H9fP=W
z(t?;5Xalv2F5ROUkg3?7C5~z>QYq|tok{Q}toT5u=~a9mBKDc4zfSM=`?OF-lS(V+pE1(m&x$HE_9vj;Cy)b@OiPMS0bs1
zRL9h?)T!I{4m1aY9>(pR_IDhF?wocEy=CU`m(5ry-&^rJJ*Bb^PfNARJ1{|*1e;FV
zGljKhHo|}41Rg|1n&m~I3+-_gFQww-#b2u97o3fIsg67|%6`|aJX{~F&RPa;TayWd
zp0l(=(QbROypp_fCeOBW3BJ5PJg@UU`&fs3hd{?U6&@7>mHWNEWnN`rWk>r%`fK|=
z=BRVxb2I(y07{Nwj&jZtf{0iN;H%QAvaO1&8VKn8tp5f#!
zN#ZlRm)#|IR8144l_=#8)5guWCE`B$T_;p_&0iWR+1=_>mDK1{*kw_8pi=2ewD%Z1
zSVG^6Mc(Vd()@@Y^wYz75Yz{X8jD_x*B)w5@yqn8>U#Kw-qzNvJjm)}wamur^knR_o)EvaGVkz%1gB=%{GIq3%OVcBFpT?D{PKZ079tIh|$fvf?svxl^`nuZV1~
zE?xILl^)O*=ufGhDH_pyUfNjteA>xd#yg*uvj~^Cbv&_EBt0-)!j4#crI>Uhq&0Oy
z`b$;!qc=;1Sx>VD%ia^;erQ9!2)(mrrJ5zv;`SWLHu^Td;yik`Z7ioatGHn?aSD1m
z@U+Y6wVHj_e`PD>_Noz^2O3?6Yg*5_BlMB@A05*?`Y-jlZ-m^4uDw+Y8A8@7g!P7H
zgzZ?*UDN&1x{>g`ZiMkweBs14cdln#6I?YHr7!-)nyY$73
zckv0h$WfEY^%7rYR&g4G-pZL>Vy{3sVkc#OsI@6s?(5whAJqvO5)LEZTD6>Rdkl&h
zHusOIlp{!GNUVm69y+XkTlKT;Lp%Ce`igQdYushcyC!}iq4eq#-2van)Ie{RuRq2g
zH=9+-th`-$F*y3W=|Z{)eb0Wrxy$2?eT~S=V>Iq5|4fbS@l5+PI<90O)5aZFv-
z{-7I*`r#90Z5HrSgU=dsgpnk5?TNyom7_`TM^@+iv+q@OQnFLB3o!zOw1-FDsZ|`T
zu=YA~Bw1jbF-d$SlN|kOWn5vEwm2Z>A8FZD_z+WWBPebOEjbeGD(MZ=TPSr~@YnLZU)h_#alQiZu;syu@U^WCAXKCKVZHf%!^8wGMR7*MP@UWP13nuk#~M$mU%
z$uszs);TA=a{4!`8Qm`Sn+rdD>w9SLzQ0p-yTPboznqn+ASr#=Td7#J^gVESP9li^
zi{+qONJ8-4_1gZ8&pUnyeZKH;^FF?wIQ-qc-o5j=ix69oFFJQK<>#B|k#6%g^Bx5=
zg}8(qIXM{t>6)*e9mylb4~qA6z6x{v$(W(tnHt&{T|3_Cyxupzb2YZJuAEW2NM+wC
zy^Cm4Xp*b$U?3N6t(SESgt9ByRYOfRav2BL4L5BTyMExBieFo==ue&BT!*e)T3lo5
zDDLL`TT0PQo#}RDFM1G`iU*85$sTyH1rh6w$KbJ^jI%9xJpkZ2Ot5#RJ6l;IaAcw?
zc1uS!m`LHE0YJ|nn1aRm;pt!xyf=Y_gs`91LBIr0B*Y1BrDjDz;e80`5Gvj-jfh?28eh%7933UC(#hWNXRd{2+nv*426JysnGq9kiSVeTiJk7WGWsE
zSJhI%!8FvtM|D(Ta2<7RO=YmU8cYkSrU`}VsK7K3oKsT`{QH1#yiq;95Ev7)-@Z6A
zB*ceKry!uvpr9btAPrSA)tiIW(SfR|L)Fz)I2tN628oUhRw2<8{#Y=<({NM*g-#%o
zz*`ov9^?Qz62f8ncL+p^mDN9nNwnXI;-m~3jHN(fs%lUoaVxH0+B7-_|6dyas!g+J
zQ1DO;o<-jJ7|Hhj9zgQ@T40Nl&|EJ)8M4T?#8vfJ1oXI~g0G`C@dMc;A
zjqo=rI2*RN7A8ja!Tlbd0QX!*+E1x@K*^ZD{)%J_pe^QRp=+j?jCO1cZN?ryPlN&29$7&Ac>xMM*DwQ*NxtIV%NlmI`lJr2JVZ!|SUM)s{m5-r-hrCim
zGEunpTX?76P{|0K32-Ym!wnJFjcNAROWZ-AL8+J1F_-(QHNzMCON{8s2|iO0D*vNr
zQhflINtwvCi<$Z|n(_I*HbSmD?h6-!bQZ5=hQ8L&m)|I~)%u)gyCW_QRg`w5P~OC1
z%uCbu%`2nB5zR=>{took!+yKEDi`b>pzAf)^KDGtUM8R*t#G@mH2=PKe4(Ipz-y*c
zc~Kzl;GA)s+53_RGg-}F1`$4QjX29!BLu$pn{&KmMu86HO}Y2@q{Jb7v=N}{+PQWx
zHF2LIb9qiO+DI~r+eb9ubK7oh6KFdUL6e;9wKv_RvXh$HuqHw)inh2kQGM>}%G4V%
zmjkEYsw}?{m%gW>#P7wTXwk}cZO--qydYul`!3w~l(JgX@=yG7|6z{6kO^>c^P;zI
zAmO}-iEA~6%U7@PbJN4EXW!v;|5owjl2$w4ZZqafWPCshmRxS}7Zwlg(*rDz;hg}s
SYs}WS&%*SCNx89m_ {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..b9249e9
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..cf22ae5
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,19 @@
+import { defineConfig } from 'vite'
+import uni from '@dcloudio/vite-plugin-uni'
+
+export default defineConfig({
+ plugins: [
+ uni()
+ ],
+ server: {
+ host: "0.0.0.0",
+ port:80
+ proxy: {
+ '/api': {
+ target: "https://cashier-client.sxczgkj.cn/cashier-client",
+ changeOrigin: true,
+ rewrite: path => path.replace(/^\/api/, ''),
+ }
+ }
+ }
+})
diff --git a/vue.config.js b/vue.config.js
new file mode 100644
index 0000000..6203fa2
--- /dev/null
+++ b/vue.config.js
@@ -0,0 +1,46 @@
+// 将图片放入分包中,最后使用图片时 /分包名称/.../*/图片名称
+
+const path = require('path')
+const CopyWebpackPlugin = require('copy-webpack-plugin')
+
+module.exports = {
+
+ // devServer: {
+ // proxy: {
+ // '/shopApi': {
+ // target: 'https://wxcashiertest.sxczgkj.cn/cashierService',
+ // changeOrigin: true,
+ // pathRewrite: {
+ // '^/shopApi': ''
+ // },
+ // bypass(req, res, options) {
+ // const proxyURL = options.target + options.rewrite(req.url);
+ // req.headers['x-req-proxyURL'] = proxyURL; // 设置未生效
+ // res.setHeader('x-req-proxyURL', proxyURL); // 设置响应头可以看到
+ // },
+ // onProxyRes(proxyRes, req, res) {
+ // const realUrl = process.env.BASEURL + req.url || ''; // 真实请求网址
+ // console.log(realUrl); // 在终端显示
+ // proxyRes.headers['A-Real-Url'] = realUrl; // 添加响应标头(A-Real-Url为自定义命名),在浏览器中显示
+ // }
+ // }
+ // }
+ // },
+ devServer: {
+ port:'80',
+ proxy: {
+ "/api": {
+ // 需要被代理的后台地址
+ "target": "https://cashier-client.sxczgkj.cn/cashier-client",
+ "changeOrigin": true,
+ "secure": false,
+ "pathRewrite": {
+ "/api": ""
+ }
+ }
+ }
+ },
+ configureWebpack: {
+
+ }
+}
\ No newline at end of file