commit 7a59d466fc061b0d2f3f2470becbfd1664a4a37b
Author: chenbingxuan <3581044601@qq.com>
Date: Sat Dec 9 11:45:44 2023 +0800
git
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..9c981c3
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,2 @@
+VITE_API_URL=http://124.223.48.209:8082
+# VITE_API_URL='/'
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..954ea56
--- /dev/null
+++ b/.env.production
@@ -0,0 +1 @@
+VITE_API_URL='/'
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..2f27f4b
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,23 @@
+logs
+*.log
+*.sh
+node_modules
+.DS_Store
+lib
+*.md
+*.scss
+*.woff
+*.ttf
+.vscode
+.idea
+dist
+mock
+public
+bin
+build
+config
+index.html
+components.d.ts
+element.d.ts
+src/assets
+*
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..6aad6c5
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,19 @@
+module.exports = {
+ root: true,
+ env: {
+ node: true
+ },
+ extends: ['plugin:vue/vue3-recommended', 'plugin:prettier/recommended'],
+ parser: 'vue-eslint-parser',
+ parserOptions: {
+ parser: '@typescript-eslint/parser',
+ ecmaVersion: 2022,
+ ecmaFeatures: {
+ jsx: true
+ }
+ },
+ rules: {
+ curly: 'error', // 控制语句需要大括号
+ 'vue/multi-word-component-names': 'off'
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..38adffa
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,28 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..8418a0b
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,2 @@
+# 使用pnpm,则需要
+shamefully-hoist=true
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 0000000..fb3d3ec
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,29 @@
+// 参考:https://prettier.io/docs/en/options.html
+module.exports = {
+ // 超过指定值换行
+ printWidth: 150,
+ // 制表符宽度
+ tabWidth: 2,
+ // 使用制表符缩进
+ useTabs: true,
+ // 句尾不使用分号
+ semi: false,
+ // 使用单引号
+ singleQuote: true,
+ // 在 JSX 文件中使用单引号代替双引号
+ jsxSingleQuote: true,
+ // 在对象或数组最后一个元素后面是否加逗号,可选值"[none:不追加 | es5:追加]
+ trailingComma: 'none',
+ // 在对象,数组括号与代码之间加空格 "{ foo: bar }"
+ bracketSpacing: true,
+ // 将多行 JSX 元素的 > 放置于最后一行的末尾,而非换行
+ jsxBracketSameLine: true,
+ //(x) => {} 箭头函数参数只有一个时是否要有小括号,可选值"[always:(x) => x | avoid:x => x]
+ arrowParens: 'avoid',
+ // 使用默认的折行标准,可选值"[always|never|preserve]"
+ proseWrap: 'preserve',
+ // 指定HTML文件的全局空格敏感度,可选值"[css|strict|ignore]"
+ htmlWhitespaceSensitivity: 'css',
+ // 结尾时换行符使用lf,可选值"[auto|lf|crlf|cr]"
+ endOfLine: 'lf'
+}
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..806eacd
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["johnsoncodehk.volar", "johnsoncodehk.vscode-typescript-vue-plugin"]
+}
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..24c10e4
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,9 @@
+SRT License
+
+Copyright (c) 2023 天津数睿通科技有限公司
+
+The data center of Shuruitong 2.0 can be used for learning and communication, and for secondary developers to use in projects, but cannot be modified. After transformation, profits can be made by selling source code
+The intellectual property rights of the software belong to Tianjin Shuruitong Technology Co., Ltd. Violators will be held legally responsible!
+
+数睿通 2.0 数据中台可用于学习交流、二开商用于项目之中,但不可经过修改,换化之后通过售卖源码谋利
+软件知识产权归天津数睿通科技有限公司所有,违者将追究其法律责任!
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..987ad07
--- /dev/null
+++ b/README.md
@@ -0,0 +1,284 @@
+## 项目说明
+srt-cloud 是采用 Vue3,Ts,Spring Cloud Alibaba、SpringSecurity、Spring Cloud Gateway、SpringBoot、Nacos、Redis、Mybatis-Plus,Tidb,Flink,Hadoop 等最新技术,开发的全新数睿通数据中台,包含数据集成,数据开发,数据治理,数据资产,数据服务,数据集市六大模块,解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府等解决数据问题!目前项目正在开发中,会尽快做出一版成型可用的产品。
+
+## 功能模块说明
+
+目前全局管理,应用管理,日志管理,系统管理,数据集成,数据开发,数据服务几大模块已基本完毕。
+
+- 数据集成
+
+ - 数据库管理 — 管理用户添加的数据源,支持 MYSQL/ORACLE/SQLSERVER/POSTGRESQL/GREENPLUM/MARIADB/DB2/DM/OSCAR/KINGBASE8/OSCAR/GBASE8A/HIVE/SQLITE3/SYBASE,支持库表查询,测试连接等
+ - 文件管理 — 管理用户上传的文件数据
+ - 数据接入 — 接入外部数据源的数据到中台 **ODS** 层,也可自定义接入目的端数据源,支持一次性全量同步和周期性增量同步;可自定义表名,字段名的映射规则,支持正则表达式匹配;支持查看执行记录及详细执行结果,可查看同步的数据量,数据大小,成功表数量,失败表数量,成功信息,失败信息,也可查看具体每张表同步的数据量,数据大小,错误信息等,帮助用户全面掌握数据接入的执行情况
+ - 贴源数据 — 查看接入到ods层的数据表和数据,可查看每张表的同步记录
+- 数据开发
+ - 数据生产 — 对数据进行作业代码化编辑,自行 DDL 建模,运行,调试等
+ - 调度中心
+ - 调度管理 — 对生产作业进行流程编辑,可视化调度
+ - 调度记录 — 查看调度结果,日志等
+ - 运维中心 — 对作业执行运维管理
+ - 资源中心
+ - Flink 集群实例 — 管理 FLink 资源
+ - Hadoop 集群配置 — 管理 Hadoop 资源
+ - 配置中心 — 管理 FlinkSql 执行配置
+- 数据服务
+ - API 目录 — 用户自定义 API 目录,动态生成 API,对外提供服务
+ - API 权限 — 对私有 API 进行授权操作
+ - API 日志 — 查看 API 调用日志
+- 数据治理
+ - 元数据
+ - 元模型 — 描述元数据的元数据,主要定义了元数据的属性,通常元模型都是系统内置的,如表元模型,字段元模型等
+ - 元数据采集 — 根据定义的元模型对元数据进行采集,通常是每一种元模型有自己内置的采集逻辑,可以设置采集周期等
+ - 元数据管理 — 对采集的元数据进行查看和管理
+ - 数据血缘 — 通过数据接入,数据生产流程之间的关系自动构建数据血缘关系图,追溯数据流向(70%)
+ - 数据标准
+ - 数据质量
+- 数据资产(开发中)
+ - 资源管理 — 自定义资源目录,在每个目录下自定义资源,挂在数据库,api等
+ - 资产总览 — 对中台资源做一个总的统计概览
+- 数据集市(待开发)
+ - 资源目录 — 中台资源目录以及目录下资源的查看,可对资源进行申请操作
+ - API 目录 — 中台 API 目录以及目录下 API 的查看,可对 API 进行申请
+ - 我的申请 — 可以查看自己的申请记录,审批结果
+ - 服务审批 — 管理员对其他角色的申请做出审批,若审批通过,申请人便可以收到审批通过的消息,使用自己申请的服务资源
+- 全局管理
+ - 数据项目管理 — 中台项目(租户)的管理,每个项目下可以关联用户,用户只能查看自己关联的项目下的数据,选择自己的数据仓库,所有的模块数据都会有所属项目
+ - 数仓分层展示 — 对中台数仓的分成做展示说明
+- 应用管理
+ - 消息管理
+ - 短信平台 — 集成短信平台,支持阿里,腾讯等常用的短信平台
+ - 短信日志 — 调用短信所产生的日志
+- 日志管理
+
+ - 登录日志 — 系统登录产生的日志
+- 系统管理
+ - 用户管理 — 对系统用户进行管理
+ - 菜单管理 — 对系统菜单进行管理,用于实现动态菜单
+ - 定时任务 — 可自定义定时任务,调度执行
+ - 数据字典 — 系统的字典数据
+ - 机构管理 — 机构数据,若各模块中的数据有所属机构概念,可用于数据权限管理
+ - 岗位管理 — 岗位的管理
+ - 角色管理 — 角色管理,可以为每个角色自定义菜单查看权限以及机构级的数据权限
+ - 附件管理 — 系统附件管理,可以上传下载
+
+## 系统数仓架构
+
+系统数仓可以在全局项目管理中配置不同租户的数据仓库,在数据集成集成到ods层之后, 可以通过数据生产进行数据开发,数据整体流向图如下:
+
+###### 
+
+关于数仓为什么要分层:分层可以有助于数据的管理,同时每次取数只需要获取统计分析过的成品就可以,不需要从源头数据反复计算,避免了计算资源的浪费,通常源头数据量较大,并且中间的处理逻辑较为复杂,所以采用建模分层的方式解决,通常表的前缀都用层级来定义。
+
+## 系统核心技术栈
+
+前台:
+
+- vue3
+- vite
+- typeScript
+- element-plus
+- pinia
+- 。。。
+
+后台:
+
+- Spring Cloud Alibaba
+- SpringSecurity
+- Spring Cloud Gateway
+- SpringBoot
+- Nacos
+- Redis
+- Mybatis-Plus
+- mysql8.0
+- tidb
+- doris
+- flink
+- flink cdc
+- flink sql
+- neo4j
+- 。。。
+
+## 系统运行方式
+
+### 下载Nacos
+
+需要从GitHub下载Nacos,下载地址:https://github.com/alibaba/nacos/releases
+下载2.1.1版本,因为本项目使用的是Nacos 2.1.1,如果版本号对应不上,后面项目启动会出错。
+
+### nacos数据库
+
+注意:Nacos 目前只支持MySQL数据库,请安装MySQL8.0版本,以免出现其他错误。
+
+新建数据库nacos_config,并运行【conf/nacos-mysql.sql】文件,初始化数据库即可。
+
+### 修改Nacos的配置文件
+
+需要在【conf/application.properties】文件末尾,新增如下配置:
+
+```bash
+# 填自己的ip地址,本地填127.0.0.1就行
+nacos.inetutils.ip-address=127.0.0.1
+
+spring.datasource.platform=mysql
+db.num=1
+#填自己的数据库连接和密码
+db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
+db.user.0=root
+db.password.0=root
+```
+
+### 启动Nacos
+
+```bash
+Windows:
+startup.cmd -m standalone
+
+Linux:
+sh startup.sh -m standalone
+
+# 集群启动可关注公众号 螺旋编程极客 查看
+```
+
+访问Nacos管理界面(http://localhost:8848/nacos) ,初始用户名nacos,密码nacos,登录之后,如下所示:
+
+
+
+### 创建系统数据库
+
+创建 `srt_cloud` 数据库,数据库编码为`utf8mb4`
+执行`db/srt_cloud.sql`文件,初始化数据库脚本
+
+### 导入Nacos配置文件
+
+导入Nacos配置文件,配置文件在项目里,文件名为:【deploy/nacos_config.zip】,如下所示:
+
+
+
+导入配置文件后,还需要在Nacos里,修改datasource.yaml,如:Redis、MySQL信息等。
+
+### 下载安装 neo4j
+
+具体参考
+
+[neo4j安装](https://blog.csdn.net/weixin_44593504/article/details/119903908)
+
+安装 neo4j-community-3.5.3-unix.tar.gz 版本(相关安装包文件夹里有),否则可能不适配
+
+### 启动后端
+
+把系统导入 idea,注意部门 jdbc 驱动包 maven 官方仓库不存在,需要手动在本地 mvn install 一下,jar 包在网盘 jdbc 驱动包自取,导入项目后,右上角 profiles 勾选 flink1.14,多刷新几次,导入完 maven 依赖之后,依次启动:
+
+#### 启动 srt-cloud-gateway
+
+运行 GatewayApplication.java
+
+#### 启动 srt-cloud-system
+
+运行 SystemApplication.java
+
+#### 启动 srt-cloud-data-integrate
+
+运行 DataIntegrateApplication.java
+
+#### 启动 srt-cloud-data-development
+
+运行 DataDevelopmentApplication.java
+
+#### 启动 srt-cloud-data-service
+
+运行 DataServiceApplication.java
+
+#### 启动 srt-cloud-data-governance
+
+运行 DataGovernanceApplication.java
+
+#### 启动 srt-cloud-quartz
+
+运行 QuartzApplication.java
+
+#### 启动 srt-cloud-message
+
+运行 MessageApplication.java
+
+### 启动前端
+
+安装版本号为`16.15.0`的`nodejs`,如果已经安装了,请先卸载,推荐使用 nvm 安装 node.js,方便切换不同版本
+
+1. 需要先把本地安装的`nodejs`卸载,然后再下载nvm,地址:
+ https://github.com/coreybutler/nvm-windows/releases
+2. 一般情况,找到最新版本,然后下载`nvm-setup.exe`文件就可以了,下载后,我们双击安装即可。
+3. 我们使用`PowerShell`打开命令行,这里需要注意下,要使用`管理员`身份打开`PowerShell`
+4. 命令`nvm version` ,可以查看版本号
+5. 命令`nvm ls available`查看`nodejs`可用的版本
+6. 命令`nvm install 16.15.0`,可以安装版本号为`16.15.0`的`nodejs`
+7. 命令`nvm list`,可以查看已安装的版本号
+8. 命令`nvm use 16.15.0`,可以切换到版本号为`16.15.0`的`nodejs`,现在就可以通过命令`node -v`查看当前的`nodejs`版本号
+9. 命令`nvm uninstall 16.15.0`,可以卸载版本号为`16.15.0`的`nodejs`
+
+用 vscode 或 hbuildx 打开 srt-cloud-web
+
+安装依赖:
+
+```bash
+npm install
+```
+
+运行项目:
+
+```bash
+npm run dev
+```
+
+打包项目
+
+```bash
+npm run build
+```
+
+## 系统运行展示
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## 帮助支持
+
+想要了解更多的朋友请关注公众号 **螺旋编程极客** 添加作者微信或在菜单栏加入知识星球,一起进步,一起成长。
\ No newline at end of file
diff --git a/images/login.png b/images/login.png
new file mode 100644
index 0000000..6fe03e7
Binary files /dev/null and b/images/login.png differ
diff --git a/images/nacos-config.png b/images/nacos-config.png
new file mode 100644
index 0000000..4090370
Binary files /dev/null and b/images/nacos-config.png differ
diff --git a/images/nacos.png b/images/nacos.png
new file mode 100644
index 0000000..451843b
Binary files /dev/null and b/images/nacos.png differ
diff --git a/images/修改数据库.png b/images/修改数据库.png
new file mode 100644
index 0000000..2b98ab5
Binary files /dev/null and b/images/修改数据库.png differ
diff --git a/images/元数据管理.png b/images/元数据管理.png
new file mode 100644
index 0000000..5d47792
Binary files /dev/null and b/images/元数据管理.png differ
diff --git a/images/元数据采集.png b/images/元数据采集.png
new file mode 100644
index 0000000..7942c9a
Binary files /dev/null and b/images/元数据采集.png differ
diff --git a/images/元数据采集记录.png b/images/元数据采集记录.png
new file mode 100644
index 0000000..e097cbf
Binary files /dev/null and b/images/元数据采集记录.png differ
diff --git a/images/元模型.png b/images/元模型.png
new file mode 100644
index 0000000..f15eed0
Binary files /dev/null and b/images/元模型.png differ
diff --git a/images/同步结果.png b/images/同步结果.png
new file mode 100644
index 0000000..a395bfc
Binary files /dev/null and b/images/同步结果.png differ
diff --git a/images/执行记录.png b/images/执行记录.png
new file mode 100644
index 0000000..ab01d4a
Binary files /dev/null and b/images/执行记录.png differ
diff --git a/images/接入查看.png b/images/接入查看.png
new file mode 100644
index 0000000..cf078b8
Binary files /dev/null and b/images/接入查看.png differ
diff --git a/images/接入编辑.png b/images/接入编辑.png
new file mode 100644
index 0000000..5e5f0d0
Binary files /dev/null and b/images/接入编辑.png differ
diff --git a/images/数据库管理.png b/images/数据库管理.png
new file mode 100644
index 0000000..a84655d
Binary files /dev/null and b/images/数据库管理.png differ
diff --git a/images/数据接入.png b/images/数据接入.png
new file mode 100644
index 0000000..51d051d
Binary files /dev/null and b/images/数据接入.png differ
diff --git a/images/数据生产-flinksql校验.png b/images/数据生产-flinksql校验.png
new file mode 100644
index 0000000..ec25440
Binary files /dev/null and b/images/数据生产-flinksql校验.png differ
diff --git a/images/数据生产-mysql-cdc.png b/images/数据生产-mysql-cdc.png
new file mode 100644
index 0000000..060a720
Binary files /dev/null and b/images/数据生产-mysql-cdc.png differ
diff --git a/images/数据生产-sql.png b/images/数据生产-sql.png
new file mode 100644
index 0000000..1cd1d59
Binary files /dev/null and b/images/数据生产-sql.png differ
diff --git a/images/数据生产-执行.png b/images/数据生产-执行.png
new file mode 100644
index 0000000..44c2717
Binary files /dev/null and b/images/数据生产-执行.png differ
diff --git a/images/数据生产-调度.png b/images/数据生产-调度.png
new file mode 100644
index 0000000..34c3b81
Binary files /dev/null and b/images/数据生产-调度.png differ
diff --git a/images/数睿通数仓架构图.png b/images/数睿通数仓架构图.png
new file mode 100644
index 0000000..3209313
Binary files /dev/null and b/images/数睿通数仓架构图.png differ
diff --git a/images/查看库表.png b/images/查看库表.png
new file mode 100644
index 0000000..3087162
Binary files /dev/null and b/images/查看库表.png differ
diff --git a/images/运维中心.png b/images/运维中心.png
new file mode 100644
index 0000000..644ed89
Binary files /dev/null and b/images/运维中心.png differ
diff --git a/images/采集日志.png b/images/采集日志.png
new file mode 100644
index 0000000..4b5ee50
Binary files /dev/null and b/images/采集日志.png differ
diff --git a/images/首页.png b/images/首页.png
new file mode 100644
index 0000000..acb3dc2
Binary files /dev/null and b/images/首页.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..8cf1f38
--- /dev/null
+++ b/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..81b1530
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,9879 @@
+{
+ "name": "maku-admin",
+ "version": "2.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "maku-admin",
+ "version": "2.0.0",
+ "dependencies": {
+ "@element-plus/icons-vue": "2.0.6",
+ "@logicflow/core": "^1.1.31",
+ "@logicflow/extension": "^1.1.31",
+ "@vueuse/core": "9.1.1",
+ "@wangeditor/editor": "5.1.1",
+ "@wangeditor/editor-for-vue": "5.1.12",
+ "axios": "0.27.2",
+ "cropperjs": "1.5.12",
+ "element-plus": "^2.2.28",
+ "mitt": "3.0.0",
+ "monaco-editor": "^0.34.1",
+ "nprogress": "0.2.0",
+ "pinia": "2.0.16",
+ "print-js": "1.6.0",
+ "qrcode.vue": "3.3.3",
+ "qs": "6.10.3",
+ "sql-formatter": "^4.0.2",
+ "vue": "3.2.37",
+ "vue-drag-resize": "^2.0.3",
+ "vue-i18n": "9.1.9",
+ "vue-router": "4.0.16"
+ },
+ "devDependencies": {
+ "@babel/types": "7.17.0",
+ "@types/node": "17.0.41",
+ "@types/nprogress": "0.2.0",
+ "@types/qs": "6.9.7",
+ "@vitejs/plugin-vue": "3.0.3",
+ "@vue/compiler-sfc": "3.2.37",
+ "@vue/eslint-config-prettier": "7.0.0",
+ "@vue/eslint-config-typescript": "10.0.0",
+ "@vue/tsconfig": "0.1.3",
+ "eslint": "8.13.0",
+ "eslint-plugin-vue": "8.6.0",
+ "prettier": "2.6.2",
+ "sass": "1.50.1",
+ "typescript": "4.7.4",
+ "vite": "3.0.8",
+ "vite-plugin-svg-icons": "2.0.1",
+ "vite-plugin-vue-setup-extend": "0.4.0",
+ "vue-tsc": "0.37.3"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.13.tgz",
+ "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz",
+ "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.17.0",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz",
+ "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@ctrl/tinycolor": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz",
+ "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@element-plus/icons-vue": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz",
+ "integrity": "sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==",
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
+ "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz",
+ "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.0",
+ "globals": "^13.15.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.5.tgz",
+ "integrity": "sha512-iDdOsaCHZH/0FM0yNBYt+cJxJF9S5jrYWNtDZOiDFMiZ7uxMJ/71h8eTwoVifEAruv9p9rlMPYCGIgMjOz95FQ=="
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.1.0.tgz",
+ "integrity": "sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A==",
+ "dependencies": {
+ "@floating-ui/core": "^1.0.5"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
+ "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "node_modules/@intlify/core-base": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz",
+ "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==",
+ "dependencies": {
+ "@intlify/devtools-if": "9.1.9",
+ "@intlify/message-compiler": "9.1.9",
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/runtime": "9.1.9",
+ "@intlify/shared": "9.1.9",
+ "@intlify/vue-devtools": "9.1.9"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@intlify/devtools-if": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz",
+ "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==",
+ "dependencies": {
+ "@intlify/shared": "9.1.9"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@intlify/message-compiler": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz",
+ "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==",
+ "dependencies": {
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/shared": "9.1.9",
+ "source-map": "0.6.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@intlify/message-resolver": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz",
+ "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@intlify/runtime": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz",
+ "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==",
+ "dependencies": {
+ "@intlify/message-compiler": "9.1.9",
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/shared": "9.1.9"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@intlify/shared": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz",
+ "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@intlify/vue-devtools": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz",
+ "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==",
+ "dependencies": {
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/runtime": "9.1.9",
+ "@intlify/shared": "9.1.9"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@logicflow/core": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmmirror.com/@logicflow/core/-/core-1.1.31.tgz",
+ "integrity": "sha512-TQYJoxhqSzWBvw/NkI5hNZ8WkfS7JDLrvp56EU/OYo6Nbusj2n8/ya8XaMM50+GXqnp6+38t3RAGCC9Dk9cmhA==",
+ "dependencies": {
+ "@types/mousetrap": "^1.6.4",
+ "mousetrap": "^1.6.5",
+ "preact": "^10.4.8"
+ }
+ },
+ "node_modules/@logicflow/extension": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmmirror.com/@logicflow/extension/-/extension-1.1.31.tgz",
+ "integrity": "sha512-MUDdP7Anf3OmIEVmJTlIH8e5h2yrdqlwWYCDjDoh9R1IOfzR4wCvEiH4HgOkadTsGtfaihFRyFnPIYT1cu7oUA==",
+ "dependencies": {
+ "@logicflow/core": "^1.1.31",
+ "ids": "^1.0.0",
+ "preact": "^10.4.8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@popperjs/core": {
+ "name": "@sxzz/popperjs-es",
+ "version": "2.11.7",
+ "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+ "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+ },
+ "node_modules/@transloadit/prettier-bytes": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz",
+ "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA=="
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@types/event-emitter": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.3.tgz",
+ "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q=="
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "node_modules/@types/lodash": {
+ "version": "4.14.191",
+ "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.191.tgz",
+ "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
+ },
+ "node_modules/@types/lodash-es": {
+ "version": "4.17.6",
+ "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
+ "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
+ "dependencies": {
+ "@types/lodash": "*"
+ }
+ },
+ "node_modules/@types/mousetrap": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmmirror.com/@types/mousetrap/-/mousetrap-1.6.11.tgz",
+ "integrity": "sha512-F0oAily9Q9QQpv9JKxKn0zMKfOo36KHCW7myYsmUyf2t0g+sBTbG3UleTPoguHdE1z3GLFr3p7/wiOio52QFjQ=="
+ },
+ "node_modules/@types/node": {
+ "version": "17.0.41",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.41.tgz",
+ "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==",
+ "dev": true
+ },
+ "node_modules/@types/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==",
+ "dev": true
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
+ "dev": true
+ },
+ "node_modules/@types/svgo": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz",
+ "integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/web-bluetooth": {
+ "version": "0.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz",
+ "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA=="
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.1.tgz",
+ "integrity": "sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.36.1",
+ "@typescript-eslint/type-utils": "5.36.1",
+ "@typescript-eslint/utils": "5.36.1",
+ "debug": "^4.3.4",
+ "functional-red-black-tree": "^1.0.1",
+ "ignore": "^5.2.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.36.1.tgz",
+ "integrity": "sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.36.1",
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/typescript-estree": "5.36.1",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.1.tgz",
+ "integrity": "sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/visitor-keys": "5.36.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.36.1.tgz",
+ "integrity": "sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.36.1",
+ "@typescript-eslint/utils": "5.36.1",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.36.1.tgz",
+ "integrity": "sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.1.tgz",
+ "integrity": "sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/visitor-keys": "5.36.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.36.1.tgz",
+ "integrity": "sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "@typescript-eslint/scope-manager": "5.36.1",
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/typescript-estree": "5.36.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.1.tgz",
+ "integrity": "sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.36.1",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@uppy/companion-client": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz",
+ "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==",
+ "dependencies": {
+ "@uppy/utils": "^4.1.2",
+ "namespace-emitter": "^2.0.1"
+ }
+ },
+ "node_modules/@uppy/core": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.3.tgz",
+ "integrity": "sha512-oTFYZT02dIoUGm8Ar6+Tg/xbL8MliwiPQdiuoCimPBmY19ZhuJm/K4wEYZ6nOFeYsgBWYi1yWfsmdx8LvFVx4g==",
+ "dependencies": {
+ "@transloadit/prettier-bytes": "0.0.7",
+ "@uppy/store-default": "^2.1.1",
+ "@uppy/utils": "^4.1.2",
+ "lodash.throttle": "^4.1.1",
+ "mime-match": "^1.0.2",
+ "namespace-emitter": "^2.0.1",
+ "nanoid": "^3.1.25",
+ "preact": "^10.5.13"
+ }
+ },
+ "node_modules/@uppy/store-default": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz",
+ "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ=="
+ },
+ "node_modules/@uppy/utils": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz",
+ "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==",
+ "dependencies": {
+ "lodash.throttle": "^4.1.1"
+ }
+ },
+ "node_modules/@uppy/xhr-upload": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz",
+ "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==",
+ "dependencies": {
+ "@uppy/companion-client": "^2.2.2",
+ "@uppy/utils": "^4.1.2",
+ "nanoid": "^3.1.25"
+ },
+ "peerDependencies": {
+ "@uppy/core": "^2.3.3"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz",
+ "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==",
+ "dev": true,
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@volar/code-gen": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.37.3.tgz",
+ "integrity": "sha512-+XXfbkjVoDPxECkAOtRmHKnKnSWMOeThqlVSm9XwIVSdyiBN8Gi4xDUWmPH/WxK+D8bGLCm4Vkjk3rge+KOVaQ==",
+ "dev": true,
+ "dependencies": {
+ "@volar/source-map": "0.37.3"
+ }
+ },
+ "node_modules/@volar/source-map": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.37.3.tgz",
+ "integrity": "sha512-vedJWjcjKY2u8EnYMQyDjab2+S1tzUqvzJAY3PqVeN7nwJMyP5X2C/OMB2qZqJPxM0EYIR5ExVaJyVxWNkCgYA==",
+ "dev": true
+ },
+ "node_modules/@volar/typescript-faster": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.37.3.tgz",
+ "integrity": "sha512-WlEv38Uga/VnstM2cdCedaH8eZsO/DwDr5GDNoJk+lLcpCHbmWgccajUaiLhXfgqBZld0hxQwlgwIqOsKrSgig==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.3.7"
+ }
+ },
+ "node_modules/@volar/vue-code-gen": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/vue-code-gen/-/vue-code-gen-0.37.3.tgz",
+ "integrity": "sha512-+V+XUItSKve98W7m+WM1iUHyEe5JixTmILsMqZNJ/Ob0UFci2YD3tCTlMC9/o/CdKlxBCgUerQZ61q/YLWKgkg==",
+ "dev": true,
+ "dependencies": {
+ "@volar/code-gen": "0.37.3",
+ "@volar/source-map": "0.37.3",
+ "@vue/compiler-core": "^3.2.37",
+ "@vue/compiler-dom": "^3.2.37",
+ "@vue/shared": "^3.2.37"
+ }
+ },
+ "node_modules/@volar/vue-typescript": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.37.3.tgz",
+ "integrity": "sha512-klMYVD4a3M+PhjNfreOFjgdGWTFSOM7fIJ5yebrwt8UD9HV2Bhfz0YNTYBL6SkGDTRCgeNPdGTgh1RbIWjsQJA==",
+ "dev": true,
+ "dependencies": {
+ "@volar/code-gen": "0.37.3",
+ "@volar/source-map": "0.37.3",
+ "@volar/typescript-faster": "0.37.3",
+ "@volar/vue-code-gen": "0.37.3",
+ "@vue/compiler-sfc": "^3.2.37",
+ "@vue/reactivity": "^3.2.37"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
+ "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
+ "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
+ "dependencies": {
+ "@vue/compiler-core": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
+ "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.37",
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/compiler-ssr": "3.2.37",
+ "@vue/reactivity-transform": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7",
+ "postcss": "^8.1.10",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
+ "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz",
+ "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ=="
+ },
+ "node_modules/@vue/eslint-config-prettier": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz",
+ "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==",
+ "dev": true,
+ "dependencies": {
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-prettier": "^4.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 7.28.0",
+ "prettier": ">= 2.0.0"
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/@vue/eslint-config-typescript/-/eslint-config-typescript-10.0.0.tgz",
+ "integrity": "sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
+ "@typescript-eslint/parser": "^5.0.0",
+ "vue-eslint-parser": "^8.0.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0",
+ "eslint-plugin-vue": "^8.0.1"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz",
+ "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
+ "dependencies": {
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "node_modules/@vue/reactivity-transform": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
+ "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
+ "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
+ "dependencies": {
+ "@vue/reactivity": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
+ "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
+ "dependencies": {
+ "@vue/runtime-core": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "csstype": "^2.6.8"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
+ "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.2.37",
+ "@vue/shared": "3.2.37"
+ },
+ "peerDependencies": {
+ "vue": "3.2.37"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz",
+ "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
+ },
+ "node_modules/@vue/tsconfig": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz",
+ "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==",
+ "dev": true,
+ "peerDependencies": {
+ "@types/node": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/core": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.1.1.tgz",
+ "integrity": "sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==",
+ "dependencies": {
+ "@types/web-bluetooth": "^0.0.15",
+ "@vueuse/metadata": "9.1.1",
+ "@vueuse/shared": "9.1.1",
+ "vue-demi": "*"
+ }
+ },
+ "node_modules/@vueuse/metadata": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.1.1.tgz",
+ "integrity": "sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog=="
+ },
+ "node_modules/@vueuse/shared": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.1.1.tgz",
+ "integrity": "sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==",
+ "dependencies": {
+ "vue-demi": "*"
+ }
+ },
+ "node_modules/@wangeditor/basic-modules": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.3.tgz",
+ "integrity": "sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==",
+ "dependencies": {
+ "is-url": "^1.2.4"
+ },
+ "peerDependencies": {
+ "@wangeditor/core": "1.x",
+ "dom7": "^3.0.0",
+ "lodash.throttle": "^4.1.1",
+ "nanoid": "^3.2.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/code-highlight": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.2.tgz",
+ "integrity": "sha512-SCtOcUxjKqIso/LSxGSOaYr3G6MC2En0gNTyHIMCG928T0fo0ufaqp/vIXKQzVL2Y+X/CSAOB2EbrFlgGvr0AQ==",
+ "dependencies": {
+ "prismjs": "^1.23.0"
+ },
+ "peerDependencies": {
+ "@wangeditor/core": "1.x",
+ "dom7": "^3.0.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/core": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.12.tgz",
+ "integrity": "sha512-u6NBap1fHldFkxTLYdpezsGsi+a8F3ES0Bg6pu2TCQm4Qwl6xV0yvehFxZnOPomL+GrVGuCrvvOLnr9T3zntEg==",
+ "dependencies": {
+ "@types/event-emitter": "^0.3.3",
+ "event-emitter": "^0.3.5",
+ "html-void-elements": "^2.0.0",
+ "i18next": "^20.4.0",
+ "scroll-into-view-if-needed": "^2.2.28",
+ "slate-history": "^0.66.0"
+ },
+ "peerDependencies": {
+ "@uppy/core": "^2.1.1",
+ "@uppy/xhr-upload": "^2.0.3",
+ "dom7": "^3.0.0",
+ "is-hotkey": "^0.2.0",
+ "lodash.camelcase": "^4.3.0",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.debounce": "^4.0.8",
+ "lodash.foreach": "^4.5.0",
+ "lodash.isequal": "^4.5.0",
+ "lodash.throttle": "^4.1.1",
+ "lodash.toarray": "^4.4.0",
+ "nanoid": "^3.2.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/editor": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.1.tgz",
+ "integrity": "sha512-BtccuHFm0QvYunIhIu7tllQWkwppkmEkD3OJ5Mn+F0REPQ/Z3HiEXbtlss2t9c/kHO4CtiFwv2XD/k/VEg7taA==",
+ "dependencies": {
+ "@uppy/core": "^2.1.1",
+ "@uppy/xhr-upload": "^2.0.3",
+ "@wangeditor/basic-modules": "^1.1.1",
+ "@wangeditor/code-highlight": "^1.0.2",
+ "@wangeditor/core": "^1.1.1",
+ "@wangeditor/list-module": "^1.0.2",
+ "@wangeditor/table-module": "^1.1.0",
+ "@wangeditor/upload-image-module": "^1.0.1",
+ "@wangeditor/video-module": "^1.1.0",
+ "dom7": "^3.0.0",
+ "is-hotkey": "^0.2.0",
+ "lodash.camelcase": "^4.3.0",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.debounce": "^4.0.8",
+ "lodash.foreach": "^4.5.0",
+ "lodash.isequal": "^4.5.0",
+ "lodash.throttle": "^4.1.1",
+ "lodash.toarray": "^4.4.0",
+ "nanoid": "^3.2.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/editor-for-vue": {
+ "version": "5.1.12",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
+ "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
+ "peerDependencies": {
+ "@wangeditor/editor": ">=5.1.0",
+ "vue": "^3.0.5"
+ }
+ },
+ "node_modules/@wangeditor/list-module": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.2.tgz",
+ "integrity": "sha512-VfENZEFvsLTiLxN/cj8cibFGy9NVV+/cfATTiLiH9ef+8lgKv8apttXYVlqIAfnlJLLuCk0cIm8c/zH+hbtrZg==",
+ "peerDependencies": {
+ "@wangeditor/core": "1.x",
+ "dom7": "^3.0.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/table-module": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.1.tgz",
+ "integrity": "sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==",
+ "peerDependencies": {
+ "@wangeditor/core": "1.x",
+ "dom7": "^3.0.0",
+ "lodash.isequal": "^4.5.0",
+ "lodash.throttle": "^4.1.1",
+ "nanoid": "^3.2.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/upload-image-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.1.tgz",
+ "integrity": "sha512-vgUV4ENttTITblqtVuzleIq732OmzmzzgrIvX6b3GRGPSw5u8glJ/87tOEhvHjHECc4oFo18B7xzJ1GpBj79/w==",
+ "peerDependencies": {
+ "@uppy/core": "^2.0.3",
+ "@uppy/xhr-upload": "^2.0.3",
+ "@wangeditor/basic-modules": "1.x",
+ "@wangeditor/core": "1.x",
+ "dom7": "^3.0.0",
+ "lodash.foreach": "^4.5.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/@wangeditor/video-module": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.2.tgz",
+ "integrity": "sha512-y8pMejpQ/AnAQZx+A86sGFo+ockg4tSc3oKpuN+1xFbnYMF6Tb+t7yt3+qY/ZJ2FffL635wxZpYbQWOboNUn9g==",
+ "peerDependencies": {
+ "@uppy/core": "^2.1.4",
+ "@uppy/xhr-upload": "^2.0.7",
+ "@wangeditor/core": "1.x",
+ "dom7": "^3.0.0",
+ "nanoid": "^3.2.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": 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"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/async-validator": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
+ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true,
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "dependencies": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+ "dev": true,
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "node_modules/compute-scroll-into-view": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
+ "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/cropperjs": {
+ "version": "1.5.12",
+ "resolved": "https://registry.npmmirror.com/cropperjs/-/cropperjs-1.5.12.tgz",
+ "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw=="
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "node_modules/css-select/node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/css-select/node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "node_modules/css-select/node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/css-select/node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "node_modules/css-select/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ },
+ "node_modules/css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "dev": true,
+ "dependencies": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "dev": true,
+ "dependencies": {
+ "css-tree": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "2.6.20",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz",
+ "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
+ },
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.7",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ },
+ "node_modules/dom7": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
+ "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
+ "dependencies": {
+ "ssr-window": "^3.0.0-alpha.1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "node_modules/domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/element-plus": {
+ "version": "2.2.28",
+ "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.28.tgz",
+ "integrity": "sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A==",
+ "dependencies": {
+ "@ctrl/tinycolor": "^3.4.1",
+ "@element-plus/icons-vue": "^2.0.6",
+ "@floating-ui/dom": "^1.0.1",
+ "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+ "@types/lodash": "^4.14.182",
+ "@types/lodash-es": "^4.17.6",
+ "@vueuse/core": "^9.1.0",
+ "async-validator": "^4.2.5",
+ "dayjs": "^1.11.3",
+ "escape-html": "^1.0.3",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "lodash-unified": "^1.0.2",
+ "memoize-one": "^6.0.0",
+ "normalize-wheel-es": "^1.2.0"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.62",
+ "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz",
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz",
+ "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/linux-loong64": "0.14.54",
+ "esbuild-android-64": "0.14.54",
+ "esbuild-android-arm64": "0.14.54",
+ "esbuild-darwin-64": "0.14.54",
+ "esbuild-darwin-arm64": "0.14.54",
+ "esbuild-freebsd-64": "0.14.54",
+ "esbuild-freebsd-arm64": "0.14.54",
+ "esbuild-linux-32": "0.14.54",
+ "esbuild-linux-64": "0.14.54",
+ "esbuild-linux-arm": "0.14.54",
+ "esbuild-linux-arm64": "0.14.54",
+ "esbuild-linux-mips64le": "0.14.54",
+ "esbuild-linux-ppc64le": "0.14.54",
+ "esbuild-linux-riscv64": "0.14.54",
+ "esbuild-linux-s390x": "0.14.54",
+ "esbuild-netbsd-64": "0.14.54",
+ "esbuild-openbsd-64": "0.14.54",
+ "esbuild-sunos-64": "0.14.54",
+ "esbuild-windows-32": "0.14.54",
+ "esbuild-windows-64": "0.14.54",
+ "esbuild-windows-arm64": "0.14.54"
+ }
+ },
+ "node_modules/esbuild-android-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
+ "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
+ "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
+ "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
+ "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
+ "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
+ "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
+ "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
+ "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
+ "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
+ "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
+ "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
+ "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
+ "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
+ "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
+ "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
+ "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
+ "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
+ "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
+ "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
+ "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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=="
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.13.0.tgz",
+ "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint/eslintrc": "^1.2.1",
+ "@humanwhocodes/config-array": "^0.9.2",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^6.0.1",
+ "globals": "^13.6.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.28.0",
+ "prettier": ">=2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-vue": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz",
+ "integrity": "sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ==",
+ "dev": true,
+ "dependencies": {
+ "eslint-utils": "^3.0.0",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.3.5",
+ "vue-eslint-parser": "^8.0.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.4.0",
+ "resolved": "https://registry.npmmirror.com/espree/-/espree-9.4.0.tgz",
+ "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.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==",
+ "dev": 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==",
+ "dev": 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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/ext": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/ext/-/ext-1.6.0.tgz",
+ "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
+ "dependencies": {
+ "type": "^2.5.0"
+ }
+ },
+ "node_modules/ext/node_modules/type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz",
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+ "dev": true,
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-13.17.0.tgz",
+ "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "dev": true
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-ansi/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+ "dev": true,
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz",
+ "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A=="
+ },
+ "node_modules/htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "node_modules/i18next": {
+ "version": "20.6.1",
+ "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz",
+ "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.0"
+ }
+ },
+ "node_modules/ids": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/ids/-/ids-1.0.0.tgz",
+ "integrity": "sha512-Zvtq1xUto4LttpstyOlFum8lKx+i1OmRfg+6A9drFS9iSZsDPMHG4Sof/qwNR4kCU7jBeWFPrY2ocHxiz7cCRw=="
+ },
+ "node_modules/ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz",
+ "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
+ "dev": true,
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/immer": {
+ "version": "9.0.15",
+ "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.15.tgz",
+ "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ=="
+ },
+ "node_modules/immutable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz",
+ "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
+ "dev": true
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "node_modules/is-core-module": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz",
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hotkey": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz",
+ "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw=="
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-url": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz",
+ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/js-base64": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "dev": true,
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
+ "node_modules/lodash-unified": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
+ "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+ "peerDependencies": {
+ "@types/lodash-es": "*",
+ "lodash": "*",
+ "lodash-es": "*"
+ }
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
+ },
+ "node_modules/lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "node_modules/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "node_modules/lodash.toarray": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
+ "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw=="
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "dev": true,
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "dev": true
+ },
+ "node_modules/memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "node_modules/merge-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz",
+ "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-obj": "^1.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz",
+ "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==",
+ "dependencies": {
+ "wildcard": "^1.1.0"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
+ "dev": true
+ },
+ "node_modules/mitt": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz",
+ "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/monaco-editor": {
+ "version": "0.34.1",
+ "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.34.1.tgz",
+ "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ=="
+ },
+ "node_modules/mousetrap": {
+ "version": "1.6.5",
+ "resolved": "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz",
+ "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA=="
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/namespace-emitter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz",
+ "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g=="
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-wheel-es": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+ "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+ },
+ "node_modules/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+ "dev": true,
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "node_modules/object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz",
+ "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/pinia": {
+ "version": "2.0.16",
+ "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.16.tgz",
+ "integrity": "sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.1.4",
+ "vue-demi": "*"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.4.0",
+ "typescript": ">=4.4.4",
+ "vue": "^2.6.14 || ^3.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.16",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.16.tgz",
+ "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-prefix-selector": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz",
+ "integrity": "sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==",
+ "dev": true,
+ "peerDependencies": {
+ "postcss": ">4 <9"
+ }
+ },
+ "node_modules/posthtml": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz",
+ "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==",
+ "dev": true,
+ "dependencies": {
+ "posthtml-parser": "^0.2.0",
+ "posthtml-render": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/posthtml-parser": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz",
+ "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==",
+ "dev": true,
+ "dependencies": {
+ "htmlparser2": "^3.8.3",
+ "isobject": "^2.1.0"
+ }
+ },
+ "node_modules/posthtml-parser/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dev": true,
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/posthtml-rename-id": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz",
+ "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "node_modules/posthtml-rename-id/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/posthtml-render": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz",
+ "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/posthtml-svg-mode": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz",
+ "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==",
+ "dev": true,
+ "dependencies": {
+ "merge-options": "1.0.1",
+ "posthtml": "^0.9.2",
+ "posthtml-parser": "^0.2.1",
+ "posthtml-render": "^1.0.6"
+ }
+ },
+ "node_modules/preact": {
+ "version": "10.10.6",
+ "resolved": "https://registry.npmmirror.com/preact/-/preact-10.10.6.tgz",
+ "integrity": "sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog=="
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/print-js": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz",
+ "integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
+ },
+ "node_modules/prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qrcode.vue": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmmirror.com/qrcode.vue/-/qrcode.vue-3.3.3.tgz",
+ "integrity": "sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==",
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-not/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-not/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-not/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+ "deprecated": "https://github.com/lydell/resolve-url#deprecated",
+ "dev": true
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "2.77.3",
+ "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz",
+ "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+ "dev": true,
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.50.1",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.50.1.tgz",
+ "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/scroll-into-view-if-needed": {
+ "version": "2.2.29",
+ "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz",
+ "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==",
+ "dependencies": {
+ "compute-scroll-into-view": "^1.0.17"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slate": {
+ "version": "0.72.8",
+ "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz",
+ "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==",
+ "dependencies": {
+ "immer": "^9.0.6",
+ "is-plain-object": "^5.0.0",
+ "tiny-warning": "^1.0.3"
+ }
+ },
+ "node_modules/slate-history": {
+ "version": "0.66.0",
+ "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz",
+ "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==",
+ "dependencies": {
+ "is-plain-object": "^5.0.0"
+ },
+ "peerDependencies": {
+ "slate": ">=0.65.3"
+ }
+ },
+ "node_modules/snabbdom": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz",
+ "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==",
+ "engines": {
+ "node": ">=8.3.0"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/snapdragon/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dev": true,
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
+ "dev": true
+ },
+ "node_modules/sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split-string/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split-string/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split-string/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sql-formatter": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/sql-formatter/-/sql-formatter-4.0.2.tgz",
+ "integrity": "sha512-R6u9GJRiXZLr/lDo8p56L+OyyN2QFJPCDnsyEOsbdIpsnDKL8gubYFo7lNR7Zx7hfdWT80SfkoVS0CMaF/DE2w==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "sql-formatter": "bin/sqlfmt.js"
+ }
+ },
+ "node_modules/ssr-window": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz",
+ "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
+ },
+ "node_modules/stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
+ "dev": true
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/svg-baker": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz",
+ "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==",
+ "dev": true,
+ "dependencies": {
+ "bluebird": "^3.5.0",
+ "clone": "^2.1.1",
+ "he": "^1.1.1",
+ "image-size": "^0.5.1",
+ "loader-utils": "^1.1.0",
+ "merge-options": "1.0.1",
+ "micromatch": "3.1.0",
+ "postcss": "^5.2.17",
+ "postcss-prefix-selector": "^1.6.0",
+ "posthtml-rename-id": "^1.0",
+ "posthtml-svg-mode": "^1.0.3",
+ "query-string": "^4.3.2",
+ "traverse": "^0.6.6"
+ }
+ },
+ "node_modules/svg-baker/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/chalk/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/micromatch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz",
+ "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.2.2",
+ "define-property": "^1.0.0",
+ "extend-shallow": "^2.0.1",
+ "extglob": "^2.0.2",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^5.0.2",
+ "nanomatch": "^1.2.1",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/svg-baker/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/svg-baker/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "dev": true,
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==",
+ "dev": true
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.7.4",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "devOptional": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+ "dev": true,
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "dev": true,
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dev": true,
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.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==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+ "deprecated": "Please see https://github.com/lydell/urix#deprecated",
+ "dev": true
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vite": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-3.0.8.tgz",
+ "integrity": "sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.14.47",
+ "postcss": "^8.4.16",
+ "resolve": "^1.22.1",
+ "rollup": ">=2.75.6 <2.77.0 || ~2.77.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "less": "*",
+ "sass": "*",
+ "stylus": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-svg-icons": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz",
+ "integrity": "sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==",
+ "dev": true,
+ "dependencies": {
+ "@types/svgo": "^2.6.1",
+ "cors": "^2.8.5",
+ "debug": "^4.3.3",
+ "etag": "^1.8.1",
+ "fs-extra": "^10.0.0",
+ "pathe": "^0.2.0",
+ "svg-baker": "1.7.0",
+ "svgo": "^2.8.0"
+ },
+ "peerDependencies": {
+ "vite": ">=2.0.0"
+ }
+ },
+ "node_modules/vite-plugin-vue-setup-extend": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz",
+ "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==",
+ "dev": true,
+ "dependencies": {
+ "@vue/compiler-sfc": "^3.2.29",
+ "magic-string": "^0.25.7"
+ },
+ "peerDependencies": {
+ "vite": ">=2.0.0"
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz",
+ "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/compiler-sfc": "3.2.37",
+ "@vue/runtime-dom": "3.2.37",
+ "@vue/server-renderer": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "node_modules/vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-drag-resize": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/vue-drag-resize/-/vue-drag-resize-2.0.3.tgz",
+ "integrity": "sha512-5q03tZ/LyvQsg1iHRcqs+wI2OKNbNIWl9+7V8rVL6MxJhZLCIYSSgbAUaDE38LhD6dFd5aJhdgNmES61AxjXuw=="
+ },
+ "node_modules/vue-eslint-parser": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
+ "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.2",
+ "eslint-scope": "^7.0.0",
+ "eslint-visitor-keys": "^3.1.0",
+ "espree": "^9.0.0",
+ "esquery": "^1.4.0",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
+ "node_modules/vue-eslint-parser/node_modules/eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/vue-eslint-parser/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/vue-i18n": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.1.9.tgz",
+ "integrity": "sha512-JeRdNVxS2OGp1E+pye5XB6+M6BBkHwAv9C80Q7+kzoMdUDGRna06tjC0vCB/jDX9aWrl5swxOMFcyAr7or8XTA==",
+ "dependencies": {
+ "@intlify/core-base": "9.1.9",
+ "@intlify/shared": "9.1.9",
+ "@intlify/vue-devtools": "9.1.9",
+ "@vue/devtools-api": "^6.0.0-beta.7"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/vue-router": {
+ "version": "4.0.16",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.16.tgz",
+ "integrity": "sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.0.0"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "node_modules/vue-tsc": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.37.3.tgz",
+ "integrity": "sha512-MB8aU+9z722Q1tD/pg8ZKnkOSZI1yAlPYCA7R42B86XCUJ/w7fQtlI8Ojcgznz7IH3SxIkOVIw+S6TfddOa9gg==",
+ "dev": true,
+ "dependencies": {
+ "@volar/vue-typescript": "0.37.3"
+ },
+ "bin": {
+ "vue-tsc": "bin/vue-tsc.js"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wildcard": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
+ "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+ "dev": true
+ },
+ "@babel/parser": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.13.tgz",
+ "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg=="
+ },
+ "@babel/runtime": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz",
+ "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/types": {
+ "version": "7.17.0",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz",
+ "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@ctrl/tinycolor": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz",
+ "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg=="
+ },
+ "@element-plus/icons-vue": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz",
+ "integrity": "sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==",
+ "requires": {}
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
+ "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
+ "dev": true,
+ "optional": true
+ },
+ "@eslint/eslintrc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz",
+ "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.0",
+ "globals": "^13.15.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ }
+ },
+ "@floating-ui/core": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.5.tgz",
+ "integrity": "sha512-iDdOsaCHZH/0FM0yNBYt+cJxJF9S5jrYWNtDZOiDFMiZ7uxMJ/71h8eTwoVifEAruv9p9rlMPYCGIgMjOz95FQ=="
+ },
+ "@floating-ui/dom": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.1.0.tgz",
+ "integrity": "sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A==",
+ "requires": {
+ "@floating-ui/core": "^1.0.5"
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
+ "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "@intlify/core-base": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz",
+ "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==",
+ "requires": {
+ "@intlify/devtools-if": "9.1.9",
+ "@intlify/message-compiler": "9.1.9",
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/runtime": "9.1.9",
+ "@intlify/shared": "9.1.9",
+ "@intlify/vue-devtools": "9.1.9"
+ }
+ },
+ "@intlify/devtools-if": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz",
+ "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==",
+ "requires": {
+ "@intlify/shared": "9.1.9"
+ }
+ },
+ "@intlify/message-compiler": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz",
+ "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==",
+ "requires": {
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/shared": "9.1.9",
+ "source-map": "0.6.1"
+ }
+ },
+ "@intlify/message-resolver": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz",
+ "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA=="
+ },
+ "@intlify/runtime": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz",
+ "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==",
+ "requires": {
+ "@intlify/message-compiler": "9.1.9",
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/shared": "9.1.9"
+ }
+ },
+ "@intlify/shared": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz",
+ "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw=="
+ },
+ "@intlify/vue-devtools": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz",
+ "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==",
+ "requires": {
+ "@intlify/message-resolver": "9.1.9",
+ "@intlify/runtime": "9.1.9",
+ "@intlify/shared": "9.1.9"
+ }
+ },
+ "@logicflow/core": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmmirror.com/@logicflow/core/-/core-1.1.31.tgz",
+ "integrity": "sha512-TQYJoxhqSzWBvw/NkI5hNZ8WkfS7JDLrvp56EU/OYo6Nbusj2n8/ya8XaMM50+GXqnp6+38t3RAGCC9Dk9cmhA==",
+ "requires": {
+ "@types/mousetrap": "^1.6.4",
+ "mousetrap": "^1.6.5",
+ "preact": "^10.4.8"
+ }
+ },
+ "@logicflow/extension": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmmirror.com/@logicflow/extension/-/extension-1.1.31.tgz",
+ "integrity": "sha512-MUDdP7Anf3OmIEVmJTlIH8e5h2yrdqlwWYCDjDoh9R1IOfzR4wCvEiH4HgOkadTsGtfaihFRyFnPIYT1cu7oUA==",
+ "requires": {
+ "@logicflow/core": "^1.1.31",
+ "ids": "^1.0.0",
+ "preact": "^10.4.8"
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@popperjs/core": {
+ "version": "npm:@sxzz/popperjs-es@2.11.7",
+ "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+ "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+ },
+ "@transloadit/prettier-bytes": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz",
+ "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA=="
+ },
+ "@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "dev": true
+ },
+ "@types/event-emitter": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.3.tgz",
+ "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q=="
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "@types/lodash": {
+ "version": "4.14.191",
+ "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.191.tgz",
+ "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
+ },
+ "@types/lodash-es": {
+ "version": "4.17.6",
+ "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
+ "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
+ "requires": {
+ "@types/lodash": "*"
+ }
+ },
+ "@types/mousetrap": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmmirror.com/@types/mousetrap/-/mousetrap-1.6.11.tgz",
+ "integrity": "sha512-F0oAily9Q9QQpv9JKxKn0zMKfOo36KHCW7myYsmUyf2t0g+sBTbG3UleTPoguHdE1z3GLFr3p7/wiOio52QFjQ=="
+ },
+ "@types/node": {
+ "version": "17.0.41",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.41.tgz",
+ "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==",
+ "dev": true
+ },
+ "@types/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==",
+ "dev": true
+ },
+ "@types/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
+ "dev": true
+ },
+ "@types/svgo": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz",
+ "integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/web-bluetooth": {
+ "version": "0.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz",
+ "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA=="
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.1.tgz",
+ "integrity": "sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.36.1",
+ "@typescript-eslint/type-utils": "5.36.1",
+ "@typescript-eslint/utils": "5.36.1",
+ "debug": "^4.3.4",
+ "functional-red-black-tree": "^1.0.1",
+ "ignore": "^5.2.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.36.1.tgz",
+ "integrity": "sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.36.1",
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/typescript-estree": "5.36.1",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.1.tgz",
+ "integrity": "sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/visitor-keys": "5.36.1"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.36.1.tgz",
+ "integrity": "sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.36.1",
+ "@typescript-eslint/utils": "5.36.1",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.36.1.tgz",
+ "integrity": "sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.1.tgz",
+ "integrity": "sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/visitor-keys": "5.36.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.36.1.tgz",
+ "integrity": "sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "@typescript-eslint/scope-manager": "5.36.1",
+ "@typescript-eslint/types": "5.36.1",
+ "@typescript-eslint/typescript-estree": "5.36.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.36.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.1.tgz",
+ "integrity": "sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.36.1",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@uppy/companion-client": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz",
+ "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==",
+ "requires": {
+ "@uppy/utils": "^4.1.2",
+ "namespace-emitter": "^2.0.1"
+ }
+ },
+ "@uppy/core": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.3.tgz",
+ "integrity": "sha512-oTFYZT02dIoUGm8Ar6+Tg/xbL8MliwiPQdiuoCimPBmY19ZhuJm/K4wEYZ6nOFeYsgBWYi1yWfsmdx8LvFVx4g==",
+ "requires": {
+ "@transloadit/prettier-bytes": "0.0.7",
+ "@uppy/store-default": "^2.1.1",
+ "@uppy/utils": "^4.1.2",
+ "lodash.throttle": "^4.1.1",
+ "mime-match": "^1.0.2",
+ "namespace-emitter": "^2.0.1",
+ "nanoid": "^3.1.25",
+ "preact": "^10.5.13"
+ }
+ },
+ "@uppy/store-default": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz",
+ "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ=="
+ },
+ "@uppy/utils": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz",
+ "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==",
+ "requires": {
+ "lodash.throttle": "^4.1.1"
+ }
+ },
+ "@uppy/xhr-upload": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz",
+ "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==",
+ "requires": {
+ "@uppy/companion-client": "^2.2.2",
+ "@uppy/utils": "^4.1.2",
+ "nanoid": "^3.1.25"
+ }
+ },
+ "@vitejs/plugin-vue": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz",
+ "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==",
+ "dev": true,
+ "requires": {}
+ },
+ "@volar/code-gen": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.37.3.tgz",
+ "integrity": "sha512-+XXfbkjVoDPxECkAOtRmHKnKnSWMOeThqlVSm9XwIVSdyiBN8Gi4xDUWmPH/WxK+D8bGLCm4Vkjk3rge+KOVaQ==",
+ "dev": true,
+ "requires": {
+ "@volar/source-map": "0.37.3"
+ }
+ },
+ "@volar/source-map": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.37.3.tgz",
+ "integrity": "sha512-vedJWjcjKY2u8EnYMQyDjab2+S1tzUqvzJAY3PqVeN7nwJMyP5X2C/OMB2qZqJPxM0EYIR5ExVaJyVxWNkCgYA==",
+ "dev": true
+ },
+ "@volar/typescript-faster": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.37.3.tgz",
+ "integrity": "sha512-WlEv38Uga/VnstM2cdCedaH8eZsO/DwDr5GDNoJk+lLcpCHbmWgccajUaiLhXfgqBZld0hxQwlgwIqOsKrSgig==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.3.7"
+ }
+ },
+ "@volar/vue-code-gen": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/vue-code-gen/-/vue-code-gen-0.37.3.tgz",
+ "integrity": "sha512-+V+XUItSKve98W7m+WM1iUHyEe5JixTmILsMqZNJ/Ob0UFci2YD3tCTlMC9/o/CdKlxBCgUerQZ61q/YLWKgkg==",
+ "dev": true,
+ "requires": {
+ "@volar/code-gen": "0.37.3",
+ "@volar/source-map": "0.37.3",
+ "@vue/compiler-core": "^3.2.37",
+ "@vue/compiler-dom": "^3.2.37",
+ "@vue/shared": "^3.2.37"
+ }
+ },
+ "@volar/vue-typescript": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.37.3.tgz",
+ "integrity": "sha512-klMYVD4a3M+PhjNfreOFjgdGWTFSOM7fIJ5yebrwt8UD9HV2Bhfz0YNTYBL6SkGDTRCgeNPdGTgh1RbIWjsQJA==",
+ "dev": true,
+ "requires": {
+ "@volar/code-gen": "0.37.3",
+ "@volar/source-map": "0.37.3",
+ "@volar/typescript-faster": "0.37.3",
+ "@volar/vue-code-gen": "0.37.3",
+ "@vue/compiler-sfc": "^3.2.37",
+ "@vue/reactivity": "^3.2.37"
+ }
+ },
+ "@vue/compiler-core": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
+ "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "@vue/compiler-dom": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
+ "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
+ "requires": {
+ "@vue/compiler-core": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
+ "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.37",
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/compiler-ssr": "3.2.37",
+ "@vue/reactivity-transform": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7",
+ "postcss": "^8.1.10",
+ "source-map": "^0.6.1"
+ }
+ },
+ "@vue/compiler-ssr": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
+ "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/devtools-api": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz",
+ "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ=="
+ },
+ "@vue/eslint-config-prettier": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz",
+ "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==",
+ "dev": true,
+ "requires": {
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-prettier": "^4.0.0"
+ }
+ },
+ "@vue/eslint-config-typescript": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/@vue/eslint-config-typescript/-/eslint-config-typescript-10.0.0.tgz",
+ "integrity": "sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
+ "@typescript-eslint/parser": "^5.0.0",
+ "vue-eslint-parser": "^8.0.0"
+ }
+ },
+ "@vue/reactivity": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz",
+ "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
+ "requires": {
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/reactivity-transform": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
+ "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "@vue/runtime-core": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
+ "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
+ "requires": {
+ "@vue/reactivity": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
+ "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
+ "requires": {
+ "@vue/runtime-core": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "csstype": "^2.6.8"
+ }
+ },
+ "@vue/server-renderer": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
+ "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
+ "requires": {
+ "@vue/compiler-ssr": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz",
+ "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
+ },
+ "@vue/tsconfig": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz",
+ "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==",
+ "dev": true,
+ "requires": {}
+ },
+ "@vueuse/core": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.1.1.tgz",
+ "integrity": "sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==",
+ "requires": {
+ "@types/web-bluetooth": "^0.0.15",
+ "@vueuse/metadata": "9.1.1",
+ "@vueuse/shared": "9.1.1",
+ "vue-demi": "*"
+ }
+ },
+ "@vueuse/metadata": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.1.1.tgz",
+ "integrity": "sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog=="
+ },
+ "@vueuse/shared": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.1.1.tgz",
+ "integrity": "sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==",
+ "requires": {
+ "vue-demi": "*"
+ }
+ },
+ "@wangeditor/basic-modules": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.3.tgz",
+ "integrity": "sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==",
+ "requires": {
+ "is-url": "^1.2.4"
+ }
+ },
+ "@wangeditor/code-highlight": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.2.tgz",
+ "integrity": "sha512-SCtOcUxjKqIso/LSxGSOaYr3G6MC2En0gNTyHIMCG928T0fo0ufaqp/vIXKQzVL2Y+X/CSAOB2EbrFlgGvr0AQ==",
+ "requires": {
+ "prismjs": "^1.23.0"
+ }
+ },
+ "@wangeditor/core": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.12.tgz",
+ "integrity": "sha512-u6NBap1fHldFkxTLYdpezsGsi+a8F3ES0Bg6pu2TCQm4Qwl6xV0yvehFxZnOPomL+GrVGuCrvvOLnr9T3zntEg==",
+ "requires": {
+ "@types/event-emitter": "^0.3.3",
+ "event-emitter": "^0.3.5",
+ "html-void-elements": "^2.0.0",
+ "i18next": "^20.4.0",
+ "scroll-into-view-if-needed": "^2.2.28",
+ "slate-history": "^0.66.0"
+ }
+ },
+ "@wangeditor/editor": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.1.tgz",
+ "integrity": "sha512-BtccuHFm0QvYunIhIu7tllQWkwppkmEkD3OJ5Mn+F0REPQ/Z3HiEXbtlss2t9c/kHO4CtiFwv2XD/k/VEg7taA==",
+ "requires": {
+ "@uppy/core": "^2.1.1",
+ "@uppy/xhr-upload": "^2.0.3",
+ "@wangeditor/basic-modules": "^1.1.1",
+ "@wangeditor/code-highlight": "^1.0.2",
+ "@wangeditor/core": "^1.1.1",
+ "@wangeditor/list-module": "^1.0.2",
+ "@wangeditor/table-module": "^1.1.0",
+ "@wangeditor/upload-image-module": "^1.0.1",
+ "@wangeditor/video-module": "^1.1.0",
+ "dom7": "^3.0.0",
+ "is-hotkey": "^0.2.0",
+ "lodash.camelcase": "^4.3.0",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.debounce": "^4.0.8",
+ "lodash.foreach": "^4.5.0",
+ "lodash.isequal": "^4.5.0",
+ "lodash.throttle": "^4.1.1",
+ "lodash.toarray": "^4.4.0",
+ "nanoid": "^3.2.0",
+ "slate": "^0.72.0",
+ "snabbdom": "^3.1.0"
+ }
+ },
+ "@wangeditor/editor-for-vue": {
+ "version": "5.1.12",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
+ "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
+ "requires": {}
+ },
+ "@wangeditor/list-module": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.2.tgz",
+ "integrity": "sha512-VfENZEFvsLTiLxN/cj8cibFGy9NVV+/cfATTiLiH9ef+8lgKv8apttXYVlqIAfnlJLLuCk0cIm8c/zH+hbtrZg==",
+ "requires": {}
+ },
+ "@wangeditor/table-module": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.1.tgz",
+ "integrity": "sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==",
+ "requires": {}
+ },
+ "@wangeditor/upload-image-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.1.tgz",
+ "integrity": "sha512-vgUV4ENttTITblqtVuzleIq732OmzmzzgrIvX6b3GRGPSw5u8glJ/87tOEhvHjHECc4oFo18B7xzJ1GpBj79/w==",
+ "requires": {}
+ },
+ "@wangeditor/video-module": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.2.tgz",
+ "integrity": "sha512-y8pMejpQ/AnAQZx+A86sGFo+ockg4tSc3oKpuN+1xFbnYMF6Tb+t7yt3+qY/ZJ2FffL635wxZpYbQWOboNUn9g==",
+ "requires": {}
+ },
+ "acorn": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "dev": true
+ },
+ "async-validator": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
+ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "requires": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ }
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "compute-scroll-into-view": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
+ "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg=="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+ "dev": true
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cropperjs": {
+ "version": "1.5.12",
+ "resolved": "https://registry.npmmirror.com/cropperjs/-/cropperjs-1.5.12.tgz",
+ "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw=="
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ },
+ "dependencies": {
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ }
+ }
+ },
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true
+ },
+ "csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "dev": true,
+ "requires": {
+ "css-tree": "^1.1.2"
+ }
+ },
+ "csstype": {
+ "version": "2.6.20",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz",
+ "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "dayjs": {
+ "version": "1.11.7",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
+ "dev": true
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ }
+ }
+ },
+ "dom7": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
+ "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
+ "requires": {
+ "ssr-window": "^3.0.0-alpha.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "element-plus": {
+ "version": "2.2.28",
+ "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.28.tgz",
+ "integrity": "sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A==",
+ "requires": {
+ "@ctrl/tinycolor": "^3.4.1",
+ "@element-plus/icons-vue": "^2.0.6",
+ "@floating-ui/dom": "^1.0.1",
+ "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+ "@types/lodash": "^4.14.182",
+ "@types/lodash-es": "^4.17.6",
+ "@vueuse/core": "^9.1.0",
+ "async-validator": "^4.2.5",
+ "dayjs": "^1.11.3",
+ "escape-html": "^1.0.3",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "lodash-unified": "^1.0.2",
+ "memoize-one": "^6.0.0",
+ "normalize-wheel-es": "^1.2.0"
+ }
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "es5-ext": {
+ "version": "0.10.62",
+ "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz",
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "requires": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "esbuild": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz",
+ "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
+ "dev": true,
+ "requires": {
+ "@esbuild/linux-loong64": "0.14.54",
+ "esbuild-android-64": "0.14.54",
+ "esbuild-android-arm64": "0.14.54",
+ "esbuild-darwin-64": "0.14.54",
+ "esbuild-darwin-arm64": "0.14.54",
+ "esbuild-freebsd-64": "0.14.54",
+ "esbuild-freebsd-arm64": "0.14.54",
+ "esbuild-linux-32": "0.14.54",
+ "esbuild-linux-64": "0.14.54",
+ "esbuild-linux-arm": "0.14.54",
+ "esbuild-linux-arm64": "0.14.54",
+ "esbuild-linux-mips64le": "0.14.54",
+ "esbuild-linux-ppc64le": "0.14.54",
+ "esbuild-linux-riscv64": "0.14.54",
+ "esbuild-linux-s390x": "0.14.54",
+ "esbuild-netbsd-64": "0.14.54",
+ "esbuild-openbsd-64": "0.14.54",
+ "esbuild-sunos-64": "0.14.54",
+ "esbuild-windows-32": "0.14.54",
+ "esbuild-windows-64": "0.14.54",
+ "esbuild-windows-arm64": "0.14.54"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
+ "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
+ "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
+ "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
+ "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
+ "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
+ "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
+ "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
+ "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
+ "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
+ "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
+ "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
+ "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
+ "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
+ "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
+ "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
+ "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
+ "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
+ "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
+ "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
+ "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
+ "dev": true,
+ "optional": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.13.0.tgz",
+ "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==",
+ "dev": true,
+ "requires": {
+ "@eslint/eslintrc": "^1.2.1",
+ "@humanwhocodes/config-array": "^0.9.2",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^6.0.1",
+ "globals": "^13.6.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-plugin-prettier": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "eslint-plugin-vue": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz",
+ "integrity": "sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ==",
+ "dev": true,
+ "requires": {
+ "eslint-utils": "^3.0.0",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.3.5",
+ "vue-eslint-parser": "^8.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.4.0",
+ "resolved": "https://registry.npmmirror.com/espree/-/espree-9.4.0.tgz",
+ "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ }
+ }
+ },
+ "ext": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/ext/-/ext-1.6.0.tgz",
+ "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
+ "requires": {
+ "type": "^2.5.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ }
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz",
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "dev": true
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-13.17.0.tgz",
+ "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "html-void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz",
+ "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A=="
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "i18next": {
+ "version": "20.6.1",
+ "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz",
+ "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==",
+ "requires": {
+ "@babel/runtime": "^7.12.0"
+ }
+ },
+ "ids": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/ids/-/ids-1.0.0.tgz",
+ "integrity": "sha512-Zvtq1xUto4LttpstyOlFum8lKx+i1OmRfg+6A9drFS9iSZsDPMHG4Sof/qwNR4kCU7jBeWFPrY2ocHxiz7cCRw=="
+ },
+ "ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true
+ },
+ "image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz",
+ "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
+ "dev": true
+ },
+ "immer": {
+ "version": "9.0.15",
+ "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.15.tgz",
+ "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ=="
+ },
+ "immutable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz",
+ "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz",
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hotkey": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz",
+ "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
+ },
+ "is-url": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz",
+ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
+ "lodash-unified": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
+ "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+ "requires": {}
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "lodash.toarray": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
+ "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw=="
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "dev": true
+ },
+ "memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "merge-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz",
+ "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "^1.1"
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz",
+ "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==",
+ "requires": {
+ "wildcard": "^1.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
+ "dev": true
+ },
+ "mitt": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz",
+ "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ }
+ }
+ },
+ "monaco-editor": {
+ "version": "0.34.1",
+ "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.34.1.tgz",
+ "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ=="
+ },
+ "mousetrap": {
+ "version": "1.6.5",
+ "resolved": "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz",
+ "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "namespace-emitter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz",
+ "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g=="
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "normalize-wheel-es": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+ "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+ },
+ "nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
+ },
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "pathe": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz",
+ "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pinia": {
+ "version": "2.0.16",
+ "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.16.tgz",
+ "integrity": "sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==",
+ "requires": {
+ "@vue/devtools-api": "^6.1.4",
+ "vue-demi": "*"
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+ "dev": true
+ },
+ "postcss": {
+ "version": "8.4.16",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.16.tgz",
+ "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "postcss-prefix-selector": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz",
+ "integrity": "sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==",
+ "dev": true,
+ "requires": {}
+ },
+ "posthtml": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz",
+ "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==",
+ "dev": true,
+ "requires": {
+ "posthtml-parser": "^0.2.0",
+ "posthtml-render": "^1.0.5"
+ }
+ },
+ "posthtml-parser": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz",
+ "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^3.8.3",
+ "isobject": "^2.1.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "posthtml-rename-id": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz",
+ "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ }
+ }
+ },
+ "posthtml-render": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz",
+ "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==",
+ "dev": true
+ },
+ "posthtml-svg-mode": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz",
+ "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==",
+ "dev": true,
+ "requires": {
+ "merge-options": "1.0.1",
+ "posthtml": "^0.9.2",
+ "posthtml-parser": "^0.2.1",
+ "posthtml-render": "^1.0.6"
+ }
+ },
+ "preact": {
+ "version": "10.10.6",
+ "resolved": "https://registry.npmmirror.com/preact/-/preact-10.10.6.tgz",
+ "integrity": "sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog=="
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "print-js": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz",
+ "integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
+ },
+ "prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "qrcode.vue": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmmirror.com/qrcode.vue/-/qrcode.vue-3.3.3.tgz",
+ "integrity": "sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==",
+ "requires": {}
+ },
+ "qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ }
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+ "dev": true
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rollup": {
+ "version": "2.77.3",
+ "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz",
+ "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==",
+ "dev": true,
+ "requires": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "sass": {
+ "version": "1.50.1",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.50.1.tgz",
+ "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
+ "scroll-into-view-if-needed": {
+ "version": "2.2.29",
+ "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz",
+ "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==",
+ "requires": {
+ "compute-scroll-into-view": "^1.0.17"
+ }
+ },
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "slate": {
+ "version": "0.72.8",
+ "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz",
+ "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==",
+ "requires": {
+ "immer": "^9.0.6",
+ "is-plain-object": "^5.0.0",
+ "tiny-warning": "^1.0.3"
+ }
+ },
+ "slate-history": {
+ "version": "0.66.0",
+ "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz",
+ "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==",
+ "requires": {
+ "is-plain-object": "^5.0.0"
+ }
+ },
+ "snabbdom": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz",
+ "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA=="
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "dev": true
+ },
+ "sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ }
+ }
+ },
+ "sql-formatter": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/sql-formatter/-/sql-formatter-4.0.2.tgz",
+ "integrity": "sha512-R6u9GJRiXZLr/lDo8p56L+OyyN2QFJPCDnsyEOsbdIpsnDKL8gubYFo7lNR7Zx7hfdWT80SfkoVS0CMaF/DE2w==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "ssr-window": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz",
+ "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "svg-baker": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz",
+ "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "clone": "^2.1.1",
+ "he": "^1.1.1",
+ "image-size": "^0.5.1",
+ "loader-utils": "^1.1.0",
+ "merge-options": "1.0.1",
+ "micromatch": "3.1.0",
+ "postcss": "^5.2.17",
+ "postcss-prefix-selector": "^1.6.0",
+ "posthtml-rename-id": "^1.0",
+ "posthtml-svg-mode": "^1.0.3",
+ "query-string": "^4.3.2",
+ "traverse": "^0.6.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true
+ }
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz",
+ "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.2.2",
+ "define-property": "^1.0.0",
+ "extend-shallow": "^2.0.1",
+ "extglob": "^2.0.2",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^5.0.2",
+ "nanomatch": "^1.2.1",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ }
+ }
+ },
+ "svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "dev": true,
+ "requires": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+ },
+ "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==",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "4.7.4",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "devOptional": true
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "dev": true
+ }
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+ "dev": true
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "dev": true
+ },
+ "vite": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-3.0.8.tgz",
+ "integrity": "sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.14.47",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.16",
+ "resolve": "^1.22.1",
+ "rollup": ">=2.75.6 <2.77.0 || ~2.77.0"
+ }
+ },
+ "vite-plugin-svg-icons": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz",
+ "integrity": "sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==",
+ "dev": true,
+ "requires": {
+ "@types/svgo": "^2.6.1",
+ "cors": "^2.8.5",
+ "debug": "^4.3.3",
+ "etag": "^1.8.1",
+ "fs-extra": "^10.0.0",
+ "pathe": "^0.2.0",
+ "svg-baker": "1.7.0",
+ "svgo": "^2.8.0"
+ }
+ },
+ "vite-plugin-vue-setup-extend": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz",
+ "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==",
+ "dev": true,
+ "requires": {
+ "@vue/compiler-sfc": "^3.2.29",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "vue": {
+ "version": "3.2.37",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz",
+ "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/compiler-sfc": "3.2.37",
+ "@vue/runtime-dom": "3.2.37",
+ "@vue/server-renderer": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "requires": {}
+ },
+ "vue-drag-resize": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/vue-drag-resize/-/vue-drag-resize-2.0.3.tgz",
+ "integrity": "sha512-5q03tZ/LyvQsg1iHRcqs+wI2OKNbNIWl9+7V8rVL6MxJhZLCIYSSgbAUaDE38LhD6dFd5aJhdgNmES61AxjXuw=="
+ },
+ "vue-eslint-parser": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
+ "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.2",
+ "eslint-scope": "^7.0.0",
+ "eslint-visitor-keys": "^3.1.0",
+ "espree": "^9.0.0",
+ "esquery": "^1.4.0",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "vue-i18n": {
+ "version": "9.1.9",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.1.9.tgz",
+ "integrity": "sha512-JeRdNVxS2OGp1E+pye5XB6+M6BBkHwAv9C80Q7+kzoMdUDGRna06tjC0vCB/jDX9aWrl5swxOMFcyAr7or8XTA==",
+ "requires": {
+ "@intlify/core-base": "9.1.9",
+ "@intlify/shared": "9.1.9",
+ "@intlify/vue-devtools": "9.1.9",
+ "@vue/devtools-api": "^6.0.0-beta.7"
+ }
+ },
+ "vue-router": {
+ "version": "4.0.16",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.16.tgz",
+ "integrity": "sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==",
+ "requires": {
+ "@vue/devtools-api": "^6.0.0"
+ }
+ },
+ "vue-tsc": {
+ "version": "0.37.3",
+ "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.37.3.tgz",
+ "integrity": "sha512-MB8aU+9z722Q1tD/pg8ZKnkOSZI1yAlPYCA7R42B86XCUJ/w7fQtlI8Ojcgznz7IH3SxIkOVIw+S6TfddOa9gg==",
+ "dev": true,
+ "requires": {
+ "@volar/vue-typescript": "0.37.3"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wildcard": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
+ "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..83c1042
--- /dev/null
+++ b/package.json
@@ -0,0 +1,60 @@
+{
+ "name": "maku-admin",
+ "version": "2.0.0",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview",
+ "lint": "eslint --fix --ext .vue,.jsx,.ts,.tsx ."
+ },
+ "dependencies": {
+ "@element-plus/icons-vue": "2.0.6",
+ "@logicflow/core": "^1.1.31",
+ "@logicflow/extension": "^1.1.31",
+ "@vueuse/core": "9.1.1",
+ "@wangeditor/editor": "5.1.1",
+ "@wangeditor/editor-for-vue": "5.1.12",
+ "axios": "0.27.2",
+ "cropperjs": "1.5.12",
+ "element-plus": "^2.2.28",
+ "mitt": "3.0.0",
+ "monaco-editor": "^0.34.1",
+ "nprogress": "0.2.0",
+ "pinia": "2.0.16",
+ "print-js": "1.6.0",
+ "qrcode.vue": "3.3.3",
+ "qs": "6.10.3",
+ "sql-formatter": "^4.0.2",
+ "vue": "3.2.37",
+ "vue-drag-resize": "^2.0.3",
+ "vue-i18n": "9.1.9",
+ "vue-router": "4.0.16"
+ },
+ "devDependencies": {
+ "@babel/types": "7.17.0",
+ "@types/node": "17.0.41",
+ "@types/nprogress": "0.2.0",
+ "@types/qs": "6.9.7",
+ "@vitejs/plugin-vue": "3.0.3",
+ "@vue/compiler-sfc": "3.2.37",
+ "@vue/eslint-config-prettier": "7.0.0",
+ "@vue/eslint-config-typescript": "10.0.0",
+ "@vue/tsconfig": "0.1.3",
+ "eslint": "8.13.0",
+ "eslint-plugin-vue": "8.6.0",
+ "prettier": "2.6.2",
+ "sass": "1.50.1",
+ "typescript": "4.7.4",
+ "vite": "3.0.8",
+ "vite-plugin-svg-icons": "2.0.1",
+ "vite-plugin-vue-setup-extend": "0.4.0",
+ "vue-tsc": "0.37.3"
+ },
+ "keywords": [
+ "vue",
+ "vue3",
+ "vuejs",
+ "vite",
+ "element-plus"
+ ]
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..8d5d381
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/images/1.jpg b/public/images/1.jpg
new file mode 100644
index 0000000..1110c5a
Binary files /dev/null and b/public/images/1.jpg differ
diff --git a/public/images/2.jpg b/public/images/2.jpg
new file mode 100644
index 0000000..383c6a0
Binary files /dev/null and b/public/images/2.jpg differ
diff --git a/public/images/3.jpg b/public/images/3.jpg
new file mode 100644
index 0000000..60c38cc
Binary files /dev/null and b/public/images/3.jpg differ
diff --git a/public/images/4.jpg b/public/images/4.jpg
new file mode 100644
index 0000000..1f9d4c6
Binary files /dev/null and b/public/images/4.jpg differ
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..f071c67
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/src/api/auth.ts b/src/api/auth.ts
new file mode 100644
index 0000000..5e373b4
--- /dev/null
+++ b/src/api/auth.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useCaptchaApi = () => {
+ return service.get('/sys/auth/captcha')
+}
+
+export const useSendCodeApi = (mobile: string) => {
+ return service.post('/sys/auth/send/code?mobile=' + mobile)
+}
+
+export const useAccountLoginApi = (data: any) => {
+ return service.post('/sys/auth/login', data)
+}
+
+export const useMobileLoginApi = (data: any) => {
+ return service.post('/sys/auth/mobile', data)
+}
+
+export const useLogoutApi = () => {
+ return service.post('/sys/auth/logout')
+}
diff --git a/src/api/data-assets/catalog.ts b/src/api/data-assets/catalog.ts
new file mode 100644
index 0000000..647b6f8
--- /dev/null
+++ b/src/api/data-assets/catalog.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useAssetsCatalogApi = (id: number) => {
+ return service.get('/data-assets/catalog/' + id)
+}
+
+export const useAssetsCatalogSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-assets/catalog/', dataForm)
+ } else {
+ return service.post('/data-assets/catalog/', dataForm)
+ }
+}
+
+export const listTreeApi = (id: number) => {
+ return service.get('/data-assets/catalog/list-tree')
+}
+
+export const delTreeNodeApi = (id: number) => {
+ return service.delete('/data-assets/catalog/'+id)
+}
\ No newline at end of file
diff --git a/src/api/data-assets/resource.ts b/src/api/data-assets/resource.ts
new file mode 100644
index 0000000..12d8053
--- /dev/null
+++ b/src/api/data-assets/resource.ts
@@ -0,0 +1,25 @@
+import service from '@/utils/request'
+
+export const useResourceApi = (id: number) => {
+ return service.get('/data-assets/resource/' + id)
+}
+
+export const useResourceSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-assets/resource', dataForm)
+ } else {
+ return service.post('/data-assets/resource', dataForm)
+ }
+}
+
+export const onlineApi = (id: number) => {
+ return service.put('/data-assets/resource/online/' + id)
+}
+
+export const offlineApi = (id: number) => {
+ return service.put('/data-assets/resource/offline/' + id)
+}
+
+export const deleteApi = (id: number) => {
+ return service.delete('/data-assets/resource/' + id)
+}
\ No newline at end of file
diff --git a/src/api/data-assets/resourceMount.ts b/src/api/data-assets/resourceMount.ts
new file mode 100644
index 0000000..a343847
--- /dev/null
+++ b/src/api/data-assets/resourceMount.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useResourceMountApi = (id: number) => {
+ return service.get('/data-assets/resource-mount/' + id)
+}
+
+export const useResourceMountSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-assets/resource-mount', dataForm)
+ } else {
+ return service.post('/data-assets/resource-mount', dataForm)
+ }
+}
+
+export const listDbInfoById = (resourceId: number) => {
+ return service.get('/data-assets/resource-mount/db-info/' + resourceId)
+}
+
+export const sqlCheckApi = (data: any) => {
+ return service.post('/data-assets/resource-mount/sql-check', data)
+}
diff --git a/src/api/data-development/catalogue.ts b/src/api/data-development/catalogue.ts
new file mode 100644
index 0000000..327c21c
--- /dev/null
+++ b/src/api/data-development/catalogue.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useCatalogueApi = (id: number) => {
+ return service.get('/data-development/catalogue/' + id)
+}
+
+export const useCatalogueSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-development/catalogue', dataForm)
+ } else {
+ return service.post('/data-development/catalogue', dataForm)
+ }
+}
+
+export const useCatalogueListApi = () => {
+ return service.get('/data-development/catalogue')
+}
+
+export const useCatalogueDelApi = (id: number) => {
+ return service.delete('/data-development/catalogue/' + id)
+}
\ No newline at end of file
diff --git a/src/api/data-development/cluster.ts b/src/api/data-development/cluster.ts
new file mode 100644
index 0000000..5d82725
--- /dev/null
+++ b/src/api/data-development/cluster.ts
@@ -0,0 +1,25 @@
+import service from '@/utils/request'
+
+export const useClusterApi = (id: number) => {
+ return service.get('/data-development/cluster/' + id)
+}
+
+export const useClusterSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-development/cluster', dataForm)
+ } else {
+ return service.post('/data-development/cluster', dataForm)
+ }
+}
+
+export const heartbeatApi = (idList: any) => {
+ return service.post('/data-development/cluster/heartbeat', idList)
+}
+
+export const clearApi = () => {
+ return service.get('/data-development/cluster/clear')
+}
+
+export const listAllClusterApi = () => {
+ return service.get("/data-development/cluster/list-all")
+}
\ No newline at end of file
diff --git a/src/api/data-development/clusterConfiguration.ts b/src/api/data-development/clusterConfiguration.ts
new file mode 100644
index 0000000..07cdced
--- /dev/null
+++ b/src/api/data-development/clusterConfiguration.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useConfigurationApi = (id: number) => {
+ return service.get('/data-development/cluster-configuration/' + id)
+}
+
+export const useConfigurationSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-development/cluster-configuration', dataForm)
+ } else {
+ return service.post('/data-development/cluster-configuration', dataForm)
+ }
+}
+
+export const testConnectApi = (dataForm: any) => {
+ return service.post('/data-development/cluster-configuration/test-connect', dataForm)
+}
+
+export const listAllClusterConfigurationApi = () => {
+ return service.get("/data-development/cluster-configuration/list-all")
+}
\ No newline at end of file
diff --git a/src/api/data-development/schedule.ts b/src/api/data-development/schedule.ts
new file mode 100644
index 0000000..d3ba975
--- /dev/null
+++ b/src/api/data-development/schedule.ts
@@ -0,0 +1,33 @@
+import service from '@/utils/request'
+
+export const useScheduleApi = (id: number) => {
+ return service.get('/data-development/schedule/' + id)
+}
+
+export const useScheduleSubmitApi = (dataForm: any) => {
+ return service.post('/data-development/schedule', dataForm)
+}
+
+export const runFlowApi = (id: number) => {
+ return service.post('/data-development/schedule/run/' + id)
+}
+
+export const getConsoleLogApi = (recordId: number) => {
+ return service.get('/data-development/schedule/log/' + recordId)
+}
+
+export const getNodeInfoApi = (recordId: number) => {
+ return service.get('/data-development/schedule/node-info/' + recordId)
+}
+
+export const getNodeRecordApi = (nodeRecordId: number) => {
+ return service.get('/data-development/schedule/node-record/' + nodeRecordId)
+}
+
+export const releaseApi = (id: number) => {
+ return service.post('/data-development/schedule/release/' + id)
+}
+
+export const cancleApi = (id: number) => {
+ return service.post('/data-development/schedule/cancle/' + id)
+}
\ No newline at end of file
diff --git a/src/api/data-development/sysConfig.ts b/src/api/data-development/sysConfig.ts
new file mode 100644
index 0000000..4cf734e
--- /dev/null
+++ b/src/api/data-development/sysConfig.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useConfigApi = (id: number) => {
+ return service.get('/data-development/sys-config/' + id)
+}
+
+export const useConfigSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-development/sys-config', dataForm)
+ } else {
+ return service.post('/data-development/sys-config', dataForm)
+ }
+}
+
+export const updateSysConfigApi = (dataForm: any) => {
+ return service.post('/data-development/sys-config/updateSysConfigByJson', dataForm)
+}
+
+export const getAllApi = () => {
+ return service.get('/data-development/sys-config/getAll')
+}
diff --git a/src/api/data-development/task.ts b/src/api/data-development/task.ts
new file mode 100644
index 0000000..0d5fe40
--- /dev/null
+++ b/src/api/data-development/task.ts
@@ -0,0 +1,65 @@
+import service from '@/utils/request'
+
+export const useTaskApi = (id: number) => {
+ return service.get('/data-development/task/' + id)
+}
+
+export const useTaskSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-development/task', dataForm)
+ } else {
+ return service.post('/data-development/task', dataForm)
+ }
+}
+
+export const explainSqlApi = (data: any) => {
+ return service.post('/data-development/task/explain-sql', data)
+}
+
+export const executeSqlApi = (data: any) => {
+ return service.post('/data-development/task/execute-sql', data)
+}
+
+export const justExecuteSqlApi = (data: any) => {
+ return service.post('/data-development/task/just-execute-sql', data)
+}
+
+export const submitTaskToClusterApi = (id: number) => {
+ return service.post('/data-development/task/submit/'+ id)
+}
+
+export const getConsoleLogApi = () => {
+ return service.get('/data-development/task/console-log')
+}
+
+export const clearConsoleLogApi = () => {
+ return service.get('/data-development/task/clear-log')
+}
+
+export const clearConsoleLogWithOutKeyApi = () => {
+ return service.get('/data-development/task/clear-log-without-key')
+}
+
+export const endConsoleLogApi = () => {
+ return service.get('/data-development/task/end-log')
+}
+
+export const getJobDataApi = (jobId: any) => {
+ return service.get('/data-development/task/job-data?jobId='+jobId)
+}
+
+export const getInstanceErrorApi = (historyId: any) => {
+ return service.get('/data-development/task/history/instance-error?historyId='+historyId)
+}
+
+export const getHisClusterInfoApi = (historyId: number) => {
+ return service.get('/data-development/task/history/cluster-info?historyId='+historyId)
+}
+
+export const savepointApi = (taskId: number, historyId: number, savepointType: any) => {
+ return service.get('/data-development/task/savepoint?id='+taskId+'&historyId='+historyId+'&type='+savepointType)
+}
+
+export const getEnvListApi = () => {
+ return service.get('/data-development/task/env-list')
+}
diff --git a/src/api/data-governance/dataStandard.ts b/src/api/data-governance/dataStandard.ts
new file mode 100644
index 0000000..79a8f7f
--- /dev/null
+++ b/src/api/data-governance/dataStandard.ts
@@ -0,0 +1,42 @@
+import service from '@/utils/request'
+
+export const useStandardApi = (id: number) => {
+ return service.get('/data-governance/data-standard/' + id)
+}
+
+export const useStandardSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/data-standard', dataForm)
+ } else {
+ return service.post('/data-governance/data-standard', dataForm)
+ }
+}
+
+export const useCategoryApi = (id: number) => {
+ return service.get('/data-governance/standard-category/' + id)
+}
+
+export const useCategorySubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/standard-category', dataForm)
+ } else {
+ return service.post('/data-governance/standard-category', dataForm)
+ }
+}
+
+
+export const listTreeApi = () => {
+ return service.get('/data-governance/standard-category/list-tree')
+}
+
+export const delTreeNodeApi = (id: number) => {
+ return service.delete('/data-governance/standard-category/' + id)
+}
+
+export const listDataStandardCodeTableApi = () => {
+ return service.get('/data-governance/data-standard/table-code/list')
+}
+
+export const dataStandardCheckApi = (metadataId, standardId) => {
+ return service.get('/data-governance/data-standard/check/'+metadataId+'/'+standardId)
+}
\ No newline at end of file
diff --git a/src/api/data-governance/dataStandardCode.ts b/src/api/data-governance/dataStandardCode.ts
new file mode 100644
index 0000000..7431287
--- /dev/null
+++ b/src/api/data-governance/dataStandardCode.ts
@@ -0,0 +1,13 @@
+import service from '@/utils/request'
+
+export const useStandardCodeApi = (id: number) => {
+ return service.get('/data-governance/standard-code/' + id)
+}
+
+export const useStandardCodeSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/standard-code', dataForm)
+ } else {
+ return service.post('/data-governance/standard-code', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/data-governance/metadata.ts b/src/api/data-governance/metadata.ts
new file mode 100644
index 0000000..50f4339
--- /dev/null
+++ b/src/api/data-governance/metadata.ts
@@ -0,0 +1,50 @@
+import service from '@/utils/request'
+
+export const useMetadataApi = (id: number) => {
+ return service.get('/data-governance/metadata/' + id)
+}
+
+export const useMetadataSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/metadata', dataForm)
+ } else {
+ return service.post('/data-governance/metadata', dataForm)
+ }
+}
+
+export const listChildApi = (parentId: number) => {
+ return service.get('/data-governance/metadata/list-child?parentId='+parentId)
+}
+
+export const delTreeNodeApi = (id: number) => {
+ return service.delete('/data-governance/metadata/'+id)
+}
+
+export const listMetamodelPropertyApi = (metaModelId: number) => {
+ return service.get('/data-governance/metamodel-property/properties/'+metaModelId)
+}
+
+export const listKeywordApi = (keyword: any) => {
+ return service.get('/data-governance/metadata/list-keyword?keyword='+keyword)
+}
+
+export const listMetadataFloderApi = () => {
+ return service.get('/data-governance/metadata/list-floder')
+}
+
+export const updateNeo4jApi = (dataForm: any) => {
+ return service.post('/data-governance/metadata/neo4j', dataForm)
+}
+
+export const getNeo4jApi = () => {
+ return service.get('/data-governance/metadata/neo4j')
+}
+
+export const listDbApi = () => {
+ return service.get('/data-governance/metadata/list-db')
+}
+
+
+
+
+
diff --git a/src/api/data-governance/metadataCollect.ts b/src/api/data-governance/metadataCollect.ts
new file mode 100644
index 0000000..ccb031f
--- /dev/null
+++ b/src/api/data-governance/metadataCollect.ts
@@ -0,0 +1,29 @@
+import service from '@/utils/request'
+
+export const useMetadataCollectApi = (id: number) => {
+ return service.get('/data-governance/metadata-collect/' + id)
+}
+
+export const useMetadataCollectSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/metadata-collect', dataForm)
+ } else {
+ return service.post('/data-governance/metadata-collect', dataForm)
+ }
+}
+
+export const releaseApi = (id) => {
+ return service.put('/data-governance/metadata-collect/release/'+id)
+}
+
+export const cancelApi = (id) => {
+ return service.put('/data-governance/metadata-collect/cancel/'+id)
+}
+
+export const getCollectRecordApi = (id) => {
+ return service.get('/data-governance/metadata-collect-record/'+id)
+}
+
+export const handRunApi = (id) => {
+ return service.post('/data-governance/metadata-collect/hand-run/'+id)
+}
\ No newline at end of file
diff --git a/src/api/data-governance/metadataProperty.ts b/src/api/data-governance/metadataProperty.ts
new file mode 100644
index 0000000..158404b
--- /dev/null
+++ b/src/api/data-governance/metadataProperty.ts
@@ -0,0 +1,13 @@
+import service from '@/utils/request'
+
+export const useMetadataPropertyApi = (id: number) => {
+ return service.get('/data-governance/metadata-property/' + id)
+}
+
+export const useMetadataPropertySubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/metadata-property', dataForm)
+ } else {
+ return service.post('/data-governance/metadata-property', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/data-governance/metamodel.ts b/src/api/data-governance/metamodel.ts
new file mode 100644
index 0000000..5400e64
--- /dev/null
+++ b/src/api/data-governance/metamodel.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useMetamodelApi = (id: number) => {
+ return service.get('/data-governance/metamodel/' + id)
+}
+
+export const useMetamodelSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/metamodel', dataForm)
+ } else {
+ return service.post('/data-governance/metamodel', dataForm)
+ }
+}
+
+export const listTreeApi = () => {
+ return service.get('/data-governance/metamodel/list-tree')
+}
+
+export const delTreeNodeApi = (id: number) => {
+ return service.delete('/data-governance/metamodel/'+id)
+}
\ No newline at end of file
diff --git a/src/api/data-governance/metamodelProperty.ts b/src/api/data-governance/metamodelProperty.ts
new file mode 100644
index 0000000..35d49e6
--- /dev/null
+++ b/src/api/data-governance/metamodelProperty.ts
@@ -0,0 +1,13 @@
+import service from '@/utils/request'
+
+export const usePropertyApi = (id: number) => {
+ return service.get('/data-governance/metamodel-property/' + id)
+}
+
+export const usePropertySubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/metamodel-property', dataForm)
+ } else {
+ return service.post('/data-governance/metamodel-property', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/data-governance/qualityConfig.ts b/src/api/data-governance/qualityConfig.ts
new file mode 100644
index 0000000..dd4c8aa
--- /dev/null
+++ b/src/api/data-governance/qualityConfig.ts
@@ -0,0 +1,29 @@
+import service from '@/utils/request'
+
+export const useQualityConfigApi = (id: number) => {
+ return service.get('/data-governance/quality-config/' + id)
+}
+
+export const useQualityConfigSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/quality-config', dataForm)
+ } else {
+ return service.post('/data-governance/quality-config', dataForm)
+ }
+}
+
+export const listQualityRuleApi = () => {
+ return service.get('/data-governance/quality-rule/list')
+}
+
+export const onlineApi = (id?: number) => {
+ return service.put('/data-governance/quality-config/online/'+id)
+}
+
+export const offlineApi = (id?: number) => {
+ return service.put('/data-governance/quality-config/offline/'+id)
+}
+
+export const handRunApi = (id?: number) => {
+ return service.put('/data-governance/quality-config/hand-run/'+id)
+}
\ No newline at end of file
diff --git a/src/api/data-governance/qualityConfigCategory.ts b/src/api/data-governance/qualityConfigCategory.ts
new file mode 100644
index 0000000..84fc0cf
--- /dev/null
+++ b/src/api/data-governance/qualityConfigCategory.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useCategoryApi = (id: number) => {
+ return service.get('/data-governance/quality-config-category/' + id)
+}
+
+export const useCategorySubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/quality-config-category', dataForm)
+ } else {
+ return service.post('/data-governance/quality-config-category', dataForm)
+ }
+}
+
+export const listTreeApi = () => {
+ return service.get('/data-governance/quality-config-category/list-tree')
+}
+
+export const delTreeNodeApi = (id: number) => {
+ return service.delete('/data-governance/quality-config-category/' + id)
+}
\ No newline at end of file
diff --git a/src/api/data-governance/standardRel.ts b/src/api/data-governance/standardRel.ts
new file mode 100644
index 0000000..5ec67b8
--- /dev/null
+++ b/src/api/data-governance/standardRel.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useStandardRelApi = (id: number) => {
+ return service.get('/data-governance/standard-rel/' + id)
+}
+
+export const useStandardRelSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-governance/standard-rel', dataForm)
+ } else {
+ return service.post('/data-governance/standard-rel', dataForm)
+ }
+}
+
+export const getByMetadataApi = (metadataId: number) => {
+ return service.get('/data-governance/standard-rel/' + metadataId + '/metadata-rel')
+}
+
+export const delMetadataRelApi = (metadataId: number, standardId: number) => {
+ return service.delete('/data-governance/standard-rel/' + metadataId + '/'+ standardId)
+}
\ No newline at end of file
diff --git a/src/api/data-integrate/access.ts b/src/api/data-integrate/access.ts
new file mode 100644
index 0000000..a839220
--- /dev/null
+++ b/src/api/data-integrate/access.ts
@@ -0,0 +1,37 @@
+import service from '@/utils/request'
+
+export const useAccessApi = (id: number) => {
+ return service.get('/data-integrate/access/' + id)
+}
+
+export const useAccessSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/access', dataForm)
+ } else {
+ return service.post('/data-integrate/access', dataForm)
+ }
+}
+
+export const previewTableNameMap = (map: any) => {
+ return service.post('/data-integrate/access/preview-table-name-map', map)
+}
+
+export const previewColumnNameMap = (map: any) => {
+ return service.post('/data-integrate/access/preview-column-name-map', map)
+}
+
+export const accessRelease = (id: number) => {
+ return service.post('/data-integrate/access/release/' + id)
+}
+
+export const accessCancle = (id: number) => {
+ return service.post('/data-integrate/access/cancle/' + id)
+}
+
+export const handRun = (id: number) => {
+ return service.post('/data-integrate/access/hand-run/' + id)
+}
+
+export const getTaskByIdApi = (id: number) => {
+ return service.get('/data-integrate/access/task/' + id)
+}
\ No newline at end of file
diff --git a/src/api/data-integrate/database.ts b/src/api/data-integrate/database.ts
new file mode 100644
index 0000000..e3d8a59
--- /dev/null
+++ b/src/api/data-integrate/database.ts
@@ -0,0 +1,53 @@
+import service from '@/utils/request'
+
+export const useDatabaseApi = (id: number) => {
+ return service.get('/data-integrate/database/' + id)
+}
+
+export const useDatabaseSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/database', dataForm)
+ } else {
+ return service.post('/data-integrate/database', dataForm)
+ }
+}
+
+export const testOnline = (dataForm: any) => {
+ return service.post('/data-integrate/database/test-online', dataForm)
+}
+
+export const getTablesById = (id: number) => {
+ return service.get('/data-integrate/database/tables/' + id)
+}
+
+export const getTableDataBySql = (id: number, sqlConsole: any) => {
+ return service.post('/data-integrate/database/table-data/' + id, sqlConsole)
+}
+
+export const listDatabase = () => {
+ return service.get('/data-integrate/database/list-all')
+}
+
+export const listTreeByIdApi = (id:any) => {
+ return service.get('/data-integrate/database/list-tree/'+id)
+}
+
+export const listColumnsByIdAndTableName = (id: any, tableName: any) => {
+ return service.get('/data-integrate/database/'+id+'/'+tableName+'/columns')
+}
+
+export const getSqlGenerationApi = (id: any, tableName: any, tableRemarks) => {
+ return service.get('/data-integrate/database/'+id+'/'+tableName+'/sql-generation?tableRemarks='+tableRemarks)
+}
+
+export const listMiddleDbTreeApi = () => {
+ return service.get('/data-integrate/database/middle-db/list-tree')
+}
+
+export const listMiddleDbColumnsApi = (tableName: any) => {
+ return service.get('/data-integrate/database/middle-db/'+tableName+'/columns')
+}
+
+export const getMiddleDbSqlGenerationApi = (tableName: any, tableRemarks) => {
+ return service.get('/data-integrate/database/middle-db/'+tableName+'/sql-generation?tableRemarks='+tableRemarks)
+}
diff --git a/src/api/data-integrate/file.ts b/src/api/data-integrate/file.ts
new file mode 100644
index 0000000..554030d
--- /dev/null
+++ b/src/api/data-integrate/file.ts
@@ -0,0 +1,13 @@
+import service from '@/utils/request'
+
+export const useFileApi = (id: number) => {
+ return service.get('/data-integrate/file/' + id)
+}
+
+export const useFileSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/file', dataForm)
+ } else {
+ return service.post('/data-integrate/file', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/data-integrate/fileCategory.ts b/src/api/data-integrate/fileCategory.ts
new file mode 100644
index 0000000..feeb67e
--- /dev/null
+++ b/src/api/data-integrate/fileCategory.ts
@@ -0,0 +1,22 @@
+import service from '@/utils/request'
+
+export const listFileCategoryApi = () => {
+ return service.get('/data-integrate/fileCategory')
+}
+
+export const deleteFileCategoryApi = (id: number) => {
+ return service.delete('/data-integrate/fileCategory?id=' + id)
+}
+
+
+export const useFileCategoryApi = (id: number) => {
+ return service.get('/data-integrate/fileCategory/' + id)
+}
+
+export const useFileCategorySubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/fileCategory', dataForm)
+ } else {
+ return service.post('/data-integrate/fileCategory', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/data-integrate/layer.ts b/src/api/data-integrate/layer.ts
new file mode 100644
index 0000000..34e2112
--- /dev/null
+++ b/src/api/data-integrate/layer.ts
@@ -0,0 +1,13 @@
+import service from '@/utils/request'
+
+export const useLayerApi = (id: number) => {
+ return service.get('/data-integrate/layer/' + id)
+}
+
+export const useLayerSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/layer', dataForm)
+ } else {
+ return service.post('/data-integrate/layer', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/data-integrate/ods.ts b/src/api/data-integrate/ods.ts
new file mode 100644
index 0000000..14dfa93
--- /dev/null
+++ b/src/api/data-integrate/ods.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useOdsApi = (id: number) => {
+ return service.get('/data-integrate/ods/' + id)
+}
+
+export const useOdsSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/ods', dataForm)
+ } else {
+ return service.post('/data-integrate/ods', dataForm)
+ }
+}
+
+export const getColumnInfoApi = (id: number, tableName: any) => {
+ return service.get('/data-integrate/ods/' + id + '/' + tableName + '/column-info')
+}
+
+export const getTableDataApi = (id: number, tableName: any) => {
+ return service.get('/data-integrate/ods/' + id + '/' + tableName + '/table-data')
+}
\ No newline at end of file
diff --git a/src/api/data-integrate/project.ts b/src/api/data-integrate/project.ts
new file mode 100644
index 0000000..ad0fee1
--- /dev/null
+++ b/src/api/data-integrate/project.ts
@@ -0,0 +1,30 @@
+import service from '@/utils/request'
+
+export const useProjectApi = (id: number) => {
+ return service.get('/data-integrate/project/' + id)
+}
+
+export const useProjectSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-integrate/project', dataForm)
+ } else {
+ return service.post('/data-integrate/project', dataForm)
+ }
+}
+
+export const addUserApi = (projectId: number, userIds: any[]) => {
+ return service.post('/data-integrate/project/adduser/' + projectId, userIds)
+}
+
+export const currentUserProjectsApi = () => {
+ return service.get('/data-integrate/project/current-user-projects')
+}
+
+export const changeProjectApi = (id) => {
+ return service.put('/data-integrate/project/change-project/'+id)
+}
+
+export const testOnlineApi = (dataForm: any) => {
+ return service.post('/data-integrate/project/test-online', dataForm)
+}
+
diff --git a/src/api/data-service/apiConfig.ts b/src/api/data-service/apiConfig.ts
new file mode 100644
index 0000000..a293d0b
--- /dev/null
+++ b/src/api/data-service/apiConfig.ts
@@ -0,0 +1,48 @@
+import service from '@/utils/request'
+
+export const useApiConfigApi = (id: number) => {
+ return service.get('/data-service/api-config/' + id)
+}
+
+export const useApiConfigSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-service/api-config', dataForm)
+ } else {
+ return service.post('/data-service/api-config', dataForm)
+ }
+}
+
+export const getIpPortApi = () => {
+ return service.get('/data-service/api-config/getIpPort')
+}
+
+export const executeSqlApi = (sqlDto: any) => {
+ return service.post('/data-service/api-config/sql/execute', sqlDto)
+}
+
+export const onlineApi = (id: number) => {
+ return service.put('/data-service/api-config/'+id+'/online')
+}
+
+export const offlineApi = (id: number) => {
+ return service.put('/data-service/api-config/'+id+'/offline')
+}
+
+export const requestTokenApi = (tokenUrl: any) => {
+ return service.get(tokenUrl)
+}
+
+export const getAuthInfoApi = (authId: number) => {
+ return service.get('/data-service/api-config/auth-info/'+authId)
+}
+
+export const ipPortApi = () => {
+ return service.get('/data-service/api-config/ip-port/')
+}
+
+export const resetRequestedTimesApi =(authId: number) => {
+ return service.put('/data-service/api-config/reset-requested/'+ authId)
+}
+
+
+
diff --git a/src/api/data-service/apiGroup.ts b/src/api/data-service/apiGroup.ts
new file mode 100644
index 0000000..396b4ce
--- /dev/null
+++ b/src/api/data-service/apiGroup.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useApiGroupApi = (id: number) => {
+ return service.get('/data-service/api-group/' + id)
+}
+
+export const useApiGroupSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-service/api-group', dataForm)
+ } else {
+ return service.post('/data-service/api-group', dataForm)
+ }
+}
+
+export const useCatalogueListApi = () => {
+ return service.get('/data-service/api-group')
+}
+
+export const useCatalogueDelApi = (id: any) => {
+ return service.delete('/data-service/api-group/'+id)
+}
\ No newline at end of file
diff --git a/src/api/data-service/app.ts b/src/api/data-service/app.ts
new file mode 100644
index 0000000..c1db176
--- /dev/null
+++ b/src/api/data-service/app.ts
@@ -0,0 +1,30 @@
+import service from '@/utils/request'
+
+export const useAppApi = (id: number) => {
+ return service.get('/data-service/app/' + id)
+}
+
+export const useAppSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-service/app', dataForm)
+ } else {
+ return service.post('/data-service/app', dataForm)
+ }
+}
+
+export const authApi = (dataForm: any) => {
+ if(dataForm.id) {
+ return service.put('/data-service/app/auth', dataForm)
+ } else {
+ return service.post('/data-service/app/auth', dataForm)
+ }
+
+}
+
+export const cancelAuthApi = (id: number) => {
+ return service.delete('/data-service/app/cancel-auth/'+id)
+}
+
+export const getAuthInfoApi = (authId: number) => {
+ return service.get('/data-service/api-config/auth-info/'+authId)
+}
\ No newline at end of file
diff --git a/src/api/data-service/log.ts b/src/api/data-service/log.ts
new file mode 100644
index 0000000..f9d8d85
--- /dev/null
+++ b/src/api/data-service/log.ts
@@ -0,0 +1,13 @@
+import service from '@/utils/request'
+
+export const useLogApi = (id: number) => {
+ return service.get('/data-service/log/' + id)
+}
+
+export const useLogSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/data-service/log', dataForm)
+ } else {
+ return service.post('/data-service/log', dataForm)
+ }
+}
\ No newline at end of file
diff --git a/src/api/message/sms.ts b/src/api/message/sms.ts
new file mode 100644
index 0000000..2920ead
--- /dev/null
+++ b/src/api/message/sms.ts
@@ -0,0 +1,17 @@
+import service from '@/utils/request'
+
+export const useSmsPlatformApi = (id: Number) => {
+ return service.get('/message/sms/platform/' + id)
+}
+
+export const useSmsPlatformSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/message/sms/platform', dataForm)
+ } else {
+ return service.post('/message/sms/platform', dataForm)
+ }
+}
+
+export const useSmsSendApi = (dataForm: any) => {
+ return service.post('/message/sms/platform/send', dataForm)
+}
diff --git a/src/api/quartz/schedule.ts b/src/api/quartz/schedule.ts
new file mode 100644
index 0000000..798cc6a
--- /dev/null
+++ b/src/api/quartz/schedule.ts
@@ -0,0 +1,21 @@
+import service from '@/utils/request'
+
+export const useScheduleApi = (id: Number) => {
+ return service.get('/schedule/' + id)
+}
+
+export const useScheduleSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/schedule', dataForm)
+ } else {
+ return service.post('/schedule', dataForm)
+ }
+}
+
+export const useScheduleRunApi = (dataForm: any) => {
+ return service.put('/schedule/run', dataForm)
+}
+
+export const useScheduleStatusApi = (dataForm: any) => {
+ return service.put('/schedule/change-status', dataForm)
+}
diff --git a/src/api/sys/attachment.ts b/src/api/sys/attachment.ts
new file mode 100644
index 0000000..68b91d5
--- /dev/null
+++ b/src/api/sys/attachment.ts
@@ -0,0 +1,5 @@
+import service from '@/utils/request'
+
+export const useAttachmentSubmitApi = (dataForm: any) => {
+ return service.post('/sys/attachment', dataForm)
+}
diff --git a/src/api/sys/dict.ts b/src/api/sys/dict.ts
new file mode 100644
index 0000000..c61ee0a
--- /dev/null
+++ b/src/api/sys/dict.ts
@@ -0,0 +1,29 @@
+import service from '@/utils/request'
+
+export const useDictTypeAllApi = () => {
+ return service.get('/sys/dict/type/all')
+}
+
+export const useDictTypeApi = (id: Number) => {
+ return service.get('/sys/dict/type/' + id)
+}
+
+export const useDictTypeSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/dict/type', dataForm)
+ } else {
+ return service.post('/sys/dict/type', dataForm)
+ }
+}
+
+export const useDictDataApi = (id: Number) => {
+ return service.get('/sys/dict/data/' + id)
+}
+
+export const useDictDataSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/dict/data', dataForm)
+ } else {
+ return service.post('/sys/dict/data', dataForm)
+ }
+}
diff --git a/src/api/sys/menu.ts b/src/api/sys/menu.ts
new file mode 100644
index 0000000..aba2935
--- /dev/null
+++ b/src/api/sys/menu.ts
@@ -0,0 +1,28 @@
+import service from '@/utils/request'
+
+export const useMenuNavApi = () => {
+ return service.get('/sys/menu/nav')
+}
+
+export const useAuthorityListApi = () => {
+ return service.get('/sys/menu/authority')
+}
+
+export const useMenuListApi = (type: Number) => {
+ // 菜单类型 0:菜单 1:按钮 2:接口
+ const menuType = type === 2 ? 2 : 0
+
+ return service.get('/sys/menu/list?type=' + menuType)
+}
+
+export const useMenuApi = (id: Number) => {
+ return service.get('/sys/menu/' + id)
+}
+
+export const useMenuSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/menu', dataForm)
+ } else {
+ return service.post('/sys/menu', dataForm)
+ }
+}
diff --git a/src/api/sys/orgs.ts b/src/api/sys/orgs.ts
new file mode 100644
index 0000000..3492cba
--- /dev/null
+++ b/src/api/sys/orgs.ts
@@ -0,0 +1,17 @@
+import service from '@/utils/request'
+
+export const useOrgListApi = () => {
+ return service.get('/sys/org/list')
+}
+
+export const useOrgApi = (id: Number) => {
+ return service.get('/sys/org/' + id)
+}
+
+export const useOrgSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/org', dataForm)
+ } else {
+ return service.post('/sys/org', dataForm)
+ }
+}
diff --git a/src/api/sys/post.ts b/src/api/sys/post.ts
new file mode 100644
index 0000000..789fb7a
--- /dev/null
+++ b/src/api/sys/post.ts
@@ -0,0 +1,17 @@
+import service from '@/utils/request'
+
+export const usePostApi = (id: Number) => {
+ return service.get('/sys/post/' + id)
+}
+
+export const usePostSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/post', dataForm)
+ } else {
+ return service.post('/sys/post', dataForm)
+ }
+}
+
+export const usePostListApi = () => {
+ return service.get('/sys/post/list')
+}
diff --git a/src/api/sys/role.ts b/src/api/sys/role.ts
new file mode 100644
index 0000000..157ce15
--- /dev/null
+++ b/src/api/sys/role.ts
@@ -0,0 +1,29 @@
+import service from '@/utils/request'
+
+export const useRoleMenuApi = () => {
+ return service.get('/sys/role/menu')
+}
+
+export const useRoleApi = (id: number) => {
+ return service.get('/sys/role/' + id)
+}
+
+export const useRoleListApi = () => {
+ return service.get('/sys/role/list')
+}
+
+export const useRoleSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/role', dataForm)
+ } else {
+ return service.post('/sys/role', dataForm)
+ }
+}
+
+export const useRoleDataScopeSubmitApi = (dataForm: any) => {
+ return service.put('/sys/role/data-scope', dataForm)
+}
+
+export const useRoleUserSubmitApi = (roleId: number, dataForm: any) => {
+ return service.post('/sys/role/user/' + roleId, dataForm)
+}
diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts
new file mode 100644
index 0000000..9570f50
--- /dev/null
+++ b/src/api/sys/user.ts
@@ -0,0 +1,29 @@
+import service from '@/utils/request'
+
+export const useUserInfoApi = () => {
+ return service.get('/sys/user/info')
+}
+
+export const updatePasswordApi = (data: any) => {
+ return service.put('/sys/user/password', data)
+}
+
+export const useUserApi = (id: number) => {
+ return service.get('/sys/user/' + id)
+}
+
+export const useUserSubmitApi = (dataForm: any) => {
+ if (dataForm.id) {
+ return service.put('/sys/user', dataForm)
+ } else {
+ return service.post('/sys/user', dataForm)
+ }
+}
+
+export const listAllUserApi = () => {
+ return service.get('/sys/user/list-all')
+}
+
+export const listUserApi = () => {
+ return service.get('/sys/user/list-users')
+}
diff --git a/src/assets/404.png b/src/assets/404.png
new file mode 100644
index 0000000..520dcc1
Binary files /dev/null and b/src/assets/404.png differ
diff --git a/src/assets/api.png b/src/assets/api.png
new file mode 100644
index 0000000..9b45869
Binary files /dev/null and b/src/assets/api.png differ
diff --git a/src/assets/assets.png b/src/assets/assets.png
new file mode 100644
index 0000000..b797408
Binary files /dev/null and b/src/assets/assets.png differ
diff --git a/src/assets/buildin.png b/src/assets/buildin.png
new file mode 100644
index 0000000..1b5b04a
Binary files /dev/null and b/src/assets/buildin.png differ
diff --git a/src/assets/check.png b/src/assets/check.png
new file mode 100644
index 0000000..93a4830
Binary files /dev/null and b/src/assets/check.png differ
diff --git a/src/assets/clear.png b/src/assets/clear.png
new file mode 100644
index 0000000..4e573ce
Binary files /dev/null and b/src/assets/clear.png differ
diff --git a/src/assets/column.png b/src/assets/column.png
new file mode 100644
index 0000000..f1b397c
Binary files /dev/null and b/src/assets/column.png differ
diff --git a/src/assets/config.png b/src/assets/config.png
new file mode 100644
index 0000000..da7d210
Binary files /dev/null and b/src/assets/config.png differ
diff --git a/src/assets/database.png b/src/assets/database.png
new file mode 100644
index 0000000..72eb1c4
Binary files /dev/null and b/src/assets/database.png differ
diff --git a/src/assets/delete.png b/src/assets/delete.png
new file mode 100644
index 0000000..e257cc9
Binary files /dev/null and b/src/assets/delete.png differ
diff --git a/src/assets/file.png b/src/assets/file.png
new file mode 100644
index 0000000..55de850
Binary files /dev/null and b/src/assets/file.png differ
diff --git a/src/assets/flink.png b/src/assets/flink.png
new file mode 100644
index 0000000..212e2d0
Binary files /dev/null and b/src/assets/flink.png differ
diff --git a/src/assets/flinkenv.png b/src/assets/flinkenv.png
new file mode 100644
index 0000000..dae16a2
Binary files /dev/null and b/src/assets/flinkenv.png differ
diff --git a/src/assets/folder.png b/src/assets/folder.png
new file mode 100644
index 0000000..e254842
Binary files /dev/null and b/src/assets/folder.png differ
diff --git a/src/assets/format.png b/src/assets/format.png
new file mode 100644
index 0000000..a8a5391
Binary files /dev/null and b/src/assets/format.png differ
diff --git a/src/assets/house.png b/src/assets/house.png
new file mode 100644
index 0000000..ceedac1
Binary files /dev/null and b/src/assets/house.png differ
diff --git a/src/assets/left-title.png b/src/assets/left-title.png
new file mode 100644
index 0000000..53c6f5d
Binary files /dev/null and b/src/assets/left-title.png differ
diff --git a/src/assets/login.png b/src/assets/login.png
new file mode 100644
index 0000000..09bbfe5
Binary files /dev/null and b/src/assets/login.png differ
diff --git a/src/assets/model.png b/src/assets/model.png
new file mode 100644
index 0000000..842588c
Binary files /dev/null and b/src/assets/model.png differ
diff --git a/src/assets/run.png b/src/assets/run.png
new file mode 100644
index 0000000..fc0c494
Binary files /dev/null and b/src/assets/run.png differ
diff --git a/src/assets/save.png b/src/assets/save.png
new file mode 100644
index 0000000..7565aa6
Binary files /dev/null and b/src/assets/save.png differ
diff --git a/src/assets/sql.png b/src/assets/sql.png
new file mode 100644
index 0000000..cb10601
Binary files /dev/null and b/src/assets/sql.png differ
diff --git a/src/assets/submit.png b/src/assets/submit.png
new file mode 100644
index 0000000..3e2ca83
Binary files /dev/null and b/src/assets/submit.png differ
diff --git a/src/assets/table.png b/src/assets/table.png
new file mode 100644
index 0000000..8c67b4f
Binary files /dev/null and b/src/assets/table.png differ
diff --git a/src/components/fast-creator-column/index.ts b/src/components/fast-creator-column/index.ts
new file mode 100644
index 0000000..e6e157b
--- /dev/null
+++ b/src/components/fast-creator-column/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastCreatorColumn from './src/fast-creator-column.vue'
+
+export default withInstall(FastCreatorColumn)
diff --git a/src/components/fast-creator-column/src/fast-creator-column.vue b/src/components/fast-creator-column/src/fast-creator-column.vue
new file mode 100644
index 0000000..619400d
--- /dev/null
+++ b/src/components/fast-creator-column/src/fast-creator-column.vue
@@ -0,0 +1,57 @@
+
+
+
+ {{ getNameByUserId(store.appStore.sysUserList, scope.row[props.prop]) }}
+
+
+
+
+
diff --git a/src/components/fast-cron/index.ts b/src/components/fast-cron/index.ts
new file mode 100644
index 0000000..ef79960
--- /dev/null
+++ b/src/components/fast-cron/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import Cron from './src/fast-cron.vue'
+
+export default withInstall(Cron)
diff --git a/src/components/fast-cron/src/fast-cron.vue b/src/components/fast-cron/src/fast-cron.vue
new file mode 100644
index 0000000..137648d
--- /dev/null
+++ b/src/components/fast-cron/src/fast-cron.vue
@@ -0,0 +1,634 @@
+
+
+
{{ i18n }}
+
+
+
+
+
+ {{ text.Seconds.name }}
+
+
+
+
+ {{ text.Seconds.every }}
+
+
+ {{ text.Seconds.interval[0] }}
+
+ {{ text.Seconds.interval[1] || '' }}
+
+ {{ text.Seconds.interval[2] || '' }}
+
+
+
+ {{ text.Seconds.specific }}
+
+ {{ val - 1 }}
+
+
+
+
+ {{ text.Seconds.cycle[0] }}
+
+ {{ text.Seconds.cycle[1] || '' }}
+
+ {{ text.Seconds.cycle[2] || '' }}
+
+
+
+
+
+
+
+ {{ text.Minutes.name }}
+
+
+
+
+ {{ text.Minutes.every }}
+
+
+ {{ text.Minutes.interval[0] }}
+
+ {{ text.Minutes.interval[1] }}
+
+ {{ text.Minutes.interval[2] || '' }}
+
+
+
+ {{ text.Minutes.specific }}
+
+ {{ val - 1 }}
+
+
+
+
+ {{ text.Minutes.cycle[0] }}
+
+ {{ text.Minutes.cycle[1] }}
+
+ {{ text.Minutes.cycle[2] }}
+
+
+
+
+
+
+
+ {{ text.Hours.name }}
+
+
+
+
+ {{ text.Hours.every }}
+
+
+ {{ text.Hours.interval[0] }}
+
+ {{ text.Hours.interval[1] }}
+
+ {{ text.Hours.interval[2] }}
+
+
+
+ {{ text.Hours.specific }}
+
+ {{ val - 1 }}
+
+
+
+
+ {{ text.Hours.cycle[0] }}
+
+ {{ text.Hours.cycle[1] }}
+
+ {{ text.Hours.cycle[2] }}
+
+
+
+
+
+
+
+ {{ text.Day.name }}
+
+
+
+
+ {{ text.Day.every }}
+
+
+ {{ text.Day.intervalWeek[0] }}
+
+ {{ text.Day.intervalWeek[1] }}
+
+
+
+ {{ text.Day.intervalWeek[2] }}
+
+
+
+ {{ text.Day.intervalDay[0] }}
+
+ {{ text.Day.intervalDay[1] }}
+
+ {{ text.Day.intervalDay[2] }}
+
+
+
+ {{ text.Day.specificWeek }}
+
+
+
+
+
+
+ {{ text.Day.specificDay }}
+
+ {{ val }}
+
+
+
+
+ {{ text.Day.lastDay }}
+
+
+ {{ text.Day.lastWeekday }}
+
+
+ {{ text.Day.lastWeek[0] }}
+
+
+
+ {{ text.Day.lastWeek[1] || '' }}
+
+
+
+
+
+ {{ text.Day.beforeEndMonth[0] }}
+
+
+
+ {{ text.Day.nearestWeekday[0] }}
+
+ {{ text.Day.nearestWeekday[1] }}
+
+
+
+ {{ text.Day.someWeekday[0] }}
+
+
+
+
+ {{ text.Day.someWeekday[1] }}
+
+
+
+
+
+
+
+ {{ text.Month.name }}
+
+
+
+
+ {{ text.Month.every }}
+
+
+ {{ text.Month.interval[0] }}
+
+ {{ text.Month.interval[1] }}
+
+
+
+
+ {{ text.Month.specific }}
+
+
+
+
+
+
+ {{ text.Month.cycle[0] }}
+
+ {{ text.Month.cycle[1] }}
+
+
+
+
+
+
+
+ {{ text.Year.name }}
+
+
+
+ {{ text.Year.every }}
+
+
+ {{ text.Year.interval[0] }}
+
+ {{ text.Year.interval[1] }}
+
+
+
+
+ {{ text.Year.specific }}
+
+
+
+
+
+
+ {{ text.Year.cycle[0] }}
+
+ {{ text.Year.cycle[1] }}
+
+
+
+
+
+
+
+
+
{{ cron }}
+
{{ text.Close }}
+
{{ text.Save }}
+
+
+
+
+
diff --git a/src/components/fast-cron/src/language/en-US.ts b/src/components/fast-cron/src/language/en-US.ts
new file mode 100644
index 0000000..25f7e6d
--- /dev/null
+++ b/src/components/fast-cron/src/language/en-US.ts
@@ -0,0 +1,54 @@
+export default {
+ Seconds: {
+ name: 'Seconds',
+ every: 'Every second',
+ interval: ['Every', 'second(s) starting at second'],
+ specific: 'Specific second (choose one or many)',
+ cycle: ['Every second between second', 'and second']
+ },
+ Minutes: {
+ name: 'Minutes',
+ every: 'Every minute',
+ interval: ['Every', 'minute(s) starting at minute'],
+ specific: 'Specific minute (choose one or many)',
+ cycle: ['Every minute between minute', 'and minute']
+ },
+ Hours: {
+ name: 'Hours',
+ every: 'Every hour',
+ interval: ['Every', 'hour(s) starting at hour'],
+ specific: 'Specific hour (choose one or many)',
+ cycle: ['Every hour between hour', 'and hour']
+ },
+ Day: {
+ name: 'Day',
+ every: 'Every day',
+ intervalWeek: ['Every', 'day(s) starting on'],
+ intervalDay: ['Every', 'day(s) starting at the', 'of the month'],
+ specificWeek: 'Specific day of week (choose one or many)',
+ specificDay: 'Specific day of month (choose one or many)',
+ lastDay: 'On the last day of the month',
+ lastWeekday: 'On the last weekday of the month',
+ lastWeek: ['On the last', ' of the month'],
+ beforeEndMonth: ['day(s) before the end of the month'],
+ nearestWeekday: ['Nearest weekday (Monday to Friday) to the', 'of the month'],
+ someWeekday: ['On the', 'of the month']
+ },
+ Week: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
+ Month: {
+ name: 'Month',
+ every: 'Every month',
+ interval: ['Every', 'month(s) starting in'],
+ specific: 'Specific month (choose one or many)',
+ cycle: ['Every month between', 'and']
+ },
+ Year: {
+ name: 'Year',
+ every: 'Any year',
+ interval: ['Every', 'year(s) starting in'],
+ specific: 'Specific year (choose one or many)',
+ cycle: ['Every year between', 'and']
+ },
+ Save: 'Save',
+ Close: 'Close'
+}
diff --git a/src/components/fast-cron/src/language/index.ts b/src/components/fast-cron/src/language/index.ts
new file mode 100644
index 0000000..bfdbc71
--- /dev/null
+++ b/src/components/fast-cron/src/language/index.ts
@@ -0,0 +1,7 @@
+import en from './en-US'
+import cn from './zh-CN'
+
+export default {
+ 'en-US': en,
+ 'zh-CN': cn
+}
diff --git a/src/components/fast-cron/src/language/zh-CN.ts b/src/components/fast-cron/src/language/zh-CN.ts
new file mode 100644
index 0000000..c51e275
--- /dev/null
+++ b/src/components/fast-cron/src/language/zh-CN.ts
@@ -0,0 +1,54 @@
+export default {
+ Seconds: {
+ name: '秒',
+ every: '每一秒钟',
+ interval: ['每隔', '秒执行 从', '秒开始'],
+ specific: '具体秒数(可多选)',
+ cycle: ['周期从', '到', '秒']
+ },
+ Minutes: {
+ name: '分',
+ every: '每一分钟',
+ interval: ['每隔', '分执行 从', '分开始'],
+ specific: '具体分钟数(可多选)',
+ cycle: ['周期从', '到', '分']
+ },
+ Hours: {
+ name: '时',
+ every: '每一小时',
+ interval: ['每隔', '小时执行 从', '小时开始'],
+ specific: '具体小时数(可多选)',
+ cycle: ['周期从', '到', '小时']
+ },
+ Day: {
+ name: '天',
+ every: '每一天',
+ intervalWeek: ['每隔', '周执行 从', '开始'],
+ intervalDay: ['每隔', '天执行 从', '天开始'],
+ specificWeek: '具体星期几(可多选)',
+ specificDay: '具体天数(可多选)',
+ lastDay: '在这个月的最后一天',
+ lastWeekday: '在这个月的最后一个工作日',
+ lastWeek: ['在这个月的最后一个'],
+ beforeEndMonth: ['在本月底前', '天'],
+ nearestWeekday: ['最近的工作日(周一至周五)至本月', '日'],
+ someWeekday: ['在这个月的第', '个']
+ },
+ Week: ['天', '一', '二', '三', '四', '五', '六'].map(val => '星期' + val),
+ Month: {
+ name: '月',
+ every: '每一月',
+ interval: ['每隔', '月执行 从', '月开始'],
+ specific: '具体月数(可多选)',
+ cycle: ['从', '到', '月之间的每个月']
+ },
+ Year: {
+ name: '年',
+ every: '每一年',
+ interval: ['每隔', '年执行 从', '年开始'],
+ specific: '具体年份(可多选)',
+ cycle: ['从', '到', '年之间的每一年']
+ },
+ Save: '确定',
+ Close: '取消'
+}
diff --git a/src/components/fast-project-select/index.ts b/src/components/fast-project-select/index.ts
new file mode 100644
index 0000000..6b33162
--- /dev/null
+++ b/src/components/fast-project-select/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastProjectSelect from './src/fast-project-select.vue'
+
+export default withInstall(FastProjectSelect)
diff --git a/src/components/fast-project-select/src/fast-project-select.vue b/src/components/fast-project-select/src/fast-project-select.vue
new file mode 100644
index 0000000..500a69d
--- /dev/null
+++ b/src/components/fast-project-select/src/fast-project-select.vue
@@ -0,0 +1,32 @@
+
+
+ {{ data.name }}
+
+
+
+
diff --git a/src/components/fast-radio-group/index.ts b/src/components/fast-radio-group/index.ts
new file mode 100644
index 0000000..e7dc012
--- /dev/null
+++ b/src/components/fast-radio-group/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastRadioGroup from './src/fast-radio-group.vue'
+
+export default withInstall(FastRadioGroup)
diff --git a/src/components/fast-radio-group/src/fast-radio-group.vue b/src/components/fast-radio-group/src/fast-radio-group.vue
new file mode 100644
index 0000000..0034cbb
--- /dev/null
+++ b/src/components/fast-radio-group/src/fast-radio-group.vue
@@ -0,0 +1,23 @@
+
+
+ {{ data.dictLabel }}
+
+
+
+
diff --git a/src/components/fast-select/index.ts b/src/components/fast-select/index.ts
new file mode 100644
index 0000000..eb7ebe0
--- /dev/null
+++ b/src/components/fast-select/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastSelect from './src/fast-select.vue'
+
+export default withInstall(FastSelect)
diff --git a/src/components/fast-select/src/fast-select.vue b/src/components/fast-select/src/fast-select.vue
new file mode 100644
index 0000000..f51c6ca
--- /dev/null
+++ b/src/components/fast-select/src/fast-select.vue
@@ -0,0 +1,33 @@
+
+
+ {{ data.dictLabel }}
+
+
+
+
diff --git a/src/components/fast-table-column/index.ts b/src/components/fast-table-column/index.ts
new file mode 100644
index 0000000..b4d5135
--- /dev/null
+++ b/src/components/fast-table-column/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastTableColumn from './src/fast-table-column.vue'
+
+export default withInstall(FastTableColumn)
diff --git a/src/components/fast-table-column/src/fast-table-column.vue b/src/components/fast-table-column/src/fast-table-column.vue
new file mode 100644
index 0000000..1a4f2f4
--- /dev/null
+++ b/src/components/fast-table-column/src/fast-table-column.vue
@@ -0,0 +1,60 @@
+
+
+
+ {{ getDictLabel(store.appStore.dictList, props.dictType, scope.row[props.prop]) }}
+
+
+
+
+
diff --git a/src/components/fast-table-project-column/index.ts b/src/components/fast-table-project-column/index.ts
new file mode 100644
index 0000000..bcd9e75
--- /dev/null
+++ b/src/components/fast-table-project-column/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastTableProjectColumn from './src/fast-table-project-column.vue'
+
+export default withInstall(FastTableProjectColumn)
diff --git a/src/components/fast-table-project-column/src/fast-table-project-column.vue b/src/components/fast-table-project-column/src/fast-table-project-column.vue
new file mode 100644
index 0000000..10ebfbb
--- /dev/null
+++ b/src/components/fast-table-project-column/src/fast-table-project-column.vue
@@ -0,0 +1,57 @@
+
+
+
+ {{ getValByProjectId(store.appStore.projectList, scope.row[props.prop]) }}
+
+
+
+
+
diff --git a/src/components/fast-user/index.ts b/src/components/fast-user/index.ts
new file mode 100644
index 0000000..10272dd
--- /dev/null
+++ b/src/components/fast-user/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import FastUser from './src/fast-user.vue'
+
+export default withInstall(FastUser)
diff --git a/src/components/fast-user/src/fast-user.vue b/src/components/fast-user/src/fast-user.vue
new file mode 100644
index 0000000..53da80c
--- /dev/null
+++ b/src/components/fast-user/src/fast-user.vue
@@ -0,0 +1,84 @@
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
diff --git a/src/components/lang/index.vue b/src/components/lang/index.vue
new file mode 100644
index 0000000..771f707
--- /dev/null
+++ b/src/components/lang/index.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ {{ messages[language].langName }}
+
+
+
+
+
+
+
diff --git a/src/components/side-layout/index.vue b/src/components/side-layout/index.vue
new file mode 100644
index 0000000..7b5182c
--- /dev/null
+++ b/src/components/side-layout/index.vue
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+ {{ leftTitle }}
+
+
+
+
+
+
+
+
+
+
{{ rightTitle }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/svg-icon/index.ts b/src/components/svg-icon/index.ts
new file mode 100644
index 0000000..4bef962
--- /dev/null
+++ b/src/components/svg-icon/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '@/utils/tool'
+import SvgIcon from './src/svg-icon.vue'
+
+export default withInstall(SvgIcon)
diff --git a/src/components/svg-icon/src/svg-icon.vue b/src/components/svg-icon/src/svg-icon.vue
new file mode 100644
index 0000000..0b15e3b
--- /dev/null
+++ b/src/components/svg-icon/src/svg-icon.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/wang-editor/index.vue b/src/components/wang-editor/index.vue
new file mode 100644
index 0000000..219b22a
--- /dev/null
+++ b/src/components/wang-editor/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
new file mode 100644
index 0000000..17d2e14
--- /dev/null
+++ b/src/hooks/index.ts
@@ -0,0 +1,204 @@
+import { IHooksOptions } from '@/hooks/interface'
+import service from '@/utils/request'
+import { onMounted } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import axios from 'axios'
+
+export const useCrud = (options: IHooksOptions) => {
+ const defaultOptions: IHooksOptions = {
+ createdIsNeed: true,
+ dataListUrl: '',
+ isPage: true,
+ deleteUrl: '',
+ primaryKey: 'id',
+ exportUrl: '',
+ queryForm: {},
+ dataList: [],
+ order: '',
+ asc: false,
+ page: 1,
+ limit: 10,
+ total: 0,
+ pageSizes: [1, 10, 20, 50, 100, 200],
+ dataListLoading: false,
+ dataListSelections: []
+ }
+
+ const mergeDefaultOptions = (options: any, props: any): IHooksOptions => {
+ for (const key in options) {
+ if (!Object.getOwnPropertyDescriptor(props, key)) {
+ props[key] = options[key]
+ }
+ }
+ return props
+ }
+
+ // 覆盖默认值
+ const state = mergeDefaultOptions(defaultOptions, options)
+
+ onMounted(() => {
+ if (state.createdIsNeed) {
+ query()
+ }
+ })
+
+ const query = (preFun: any) => {
+ if (!state.dataListUrl) {
+ return
+ }
+
+ state.dataListLoading = true
+
+ service
+ .get(state.dataListUrl, {
+ params: {
+ order: state.order,
+ asc: state.asc,
+ page: state.isPage ? state.page : null,
+ limit: state.isPage ? state.limit : null,
+ ...state.queryForm
+ }
+ })
+ .then((res: any) => {
+ //console.log(preFun)
+ // zrx 前置执行
+ if (preFun && typeof preFun === 'function' && typeof preFun.nodeType !=='number' && state.isPage) {
+ preFun(res.data.list)
+ }
+ state.dataList = state.isPage ? res.data.list : res.data
+ state.total = state.isPage ? res.data.total : 0
+ }).finally(() => {
+ state.dataListLoading = false
+ })
+ }
+
+ const getDataList = (preFun) => {
+ state.page = 1
+ query(preFun)
+ }
+
+ const sizeChangeHandle = (val: number, preFun) => {
+ state.page = 1
+ state.limit = val
+ query(preFun)
+ }
+
+ const currentChangeHandle = (val: number, preFun) => {
+ state.page = val
+ query(preFun)
+ }
+
+ // 多选
+ const selectionChangeHandle = (selections: any[]) => {
+ state.dataListSelections = selections.map((item: any) => state.primaryKey && item[state.primaryKey])
+ }
+
+ // 排序
+ const sortChangeHandle = (data: any) => {
+ const { prop, order } = data
+
+ if (prop && order) {
+ state.order = prop
+ state.asc = order === 'ascending'
+ } else {
+ state.order = ''
+ }
+
+ query()
+ }
+
+ const deleteHandle = (key: number | string) => {
+ if (!state.deleteUrl) {
+ return
+ }
+
+ ElMessageBox.confirm('确定进行删除操作?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(() => {
+ service.delete(state.deleteUrl + '/' + key).then(() => {
+ ElMessage.success('删除成功')
+
+ query()
+ })
+ })
+ .catch(() => {})
+ }
+
+ const deleteBatchHandle = (key?: number | string) => {
+ let data: any[] = []
+ if (key) {
+ data = [key]
+ } else {
+ data = state.dataListSelections ? state.dataListSelections : []
+
+ if (data.length === 0) {
+ ElMessage.warning('请选择删除记录')
+ return
+ }
+ }
+
+ ElMessageBox.confirm('确定进行删除操作?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(() => {
+ if (state.deleteUrl) {
+ service.delete(state.deleteUrl, { data }).then(() => {
+ ElMessage.success('删除成功')
+
+ query()
+ })
+ }
+ })
+ .catch(() => {})
+ }
+
+ const downloadHandle = (url: string, filename?: string, method: string = 'GET', params: any ): Promise => {
+ return axios({
+ responseType: 'blob',
+ url: url,
+ method: method,
+ data: params ? params : {}
+ })
+ .then((res: any): any => {
+ // 创建a标签
+ const down = document.createElement('a')
+ // 文件名没传,则使用时间戳
+ down.download = filename || new Date().getTime().toString()
+ // 隐藏a标签
+ down.style.display = 'none'
+
+ // 创建下载url
+ let binaryData = []
+ binaryData.push(res.data)
+ down.href = URL.createObjectURL(new Blob(binaryData))
+
+ // 模拟点击下载
+ document.body.appendChild(down)
+ down.click()
+
+ // 释放URL
+ URL.revokeObjectURL(down.href)
+ // 下载完成移除
+ document.body.removeChild(down)
+ })
+ .catch(err => {
+ ElMessage.error(err.message)
+ })
+ }
+
+ return {
+ getDataList,
+ sizeChangeHandle,
+ currentChangeHandle,
+ selectionChangeHandle,
+ sortChangeHandle,
+ deleteHandle,
+ deleteBatchHandle,
+ downloadHandle
+ }
+}
diff --git a/src/hooks/interface.ts b/src/hooks/interface.ts
new file mode 100644
index 0000000..a5aed86
--- /dev/null
+++ b/src/hooks/interface.ts
@@ -0,0 +1,33 @@
+export interface IHooksOptions {
+ // 是否在创建页面时,调用数据列表接口
+ createdIsNeed?: boolean
+ // 数据列表 Url
+ dataListUrl?: string
+ // 是否需要分页
+ isPage?: boolean
+ // 删除 Url
+ deleteUrl?: string
+ // 主键key,用于删除场景
+ primaryKey?: string
+ // 导出 Url
+ exportUrl?: string
+ // 查询条件
+ queryForm?: any
+ // 数据列表
+ dataList?: any[]
+ // 排序字段
+ order?: string
+ // 是否升序
+ asc?: boolean
+ // 当前页码
+ page?: number
+ // 每页数
+ limit?: number
+ // 总条数
+ total?: number
+ pageSizes?: any[]
+ // 数据列表,loading状态
+ dataListLoading?: boolean
+ // 数据列表,多选项
+ dataListSelections?: any[]
+}
diff --git a/src/i18n/index.ts b/src/i18n/index.ts
new file mode 100644
index 0000000..f893959
--- /dev/null
+++ b/src/i18n/index.ts
@@ -0,0 +1,47 @@
+import { createI18n } from 'vue-i18n'
+import cache from '@/utils/cache'
+
+// element-plus 国际化文件
+import element_zh_cn from 'element-plus/lib/locale/lang/zh-cn'
+import element_en from 'element-plus/lib/locale/lang/en'
+
+// 框架 国际化文件
+const zh_cn = import.meta.globEager('./lang/**/zh-CN.ts')
+const en_us = import.meta.globEager('./lang/**/en-US.ts')
+
+// 加载 lang 文件夹下的国际化
+export const loadLang = (modules: Record) => {
+ const messages: { [key: string]: string } = {}
+
+ Object.keys(modules).forEach(module => {
+ Object.assign(messages, { ...modules[module].default })
+ })
+ return messages
+}
+
+export const messages: { [key: string]: any } = {
+ 'zh-CN': {
+ langName: '简体中文',
+ ...loadLang(zh_cn),
+ el: {
+ ...element_zh_cn
+ }
+ },
+ 'en-US': {
+ langName: 'English',
+ ...loadLang(en_us),
+ el: {
+ ...element_en
+ }
+ }
+}
+
+// 返回当前 Language
+function getLanguage() {
+ return cache.getLanguage()
+}
+
+export const i18n = createI18n({
+ locale: getLanguage(),
+ messages
+})
diff --git a/src/i18n/lang/en-US.ts b/src/i18n/lang/en-US.ts
new file mode 100644
index 0000000..70bc360
--- /dev/null
+++ b/src/i18n/lang/en-US.ts
@@ -0,0 +1,72 @@
+export default {
+ loading: 'Loading...',
+ add: 'Add',
+ delete: 'Delete',
+ edit: 'Edit',
+ query: 'Query',
+ export: 'Export',
+ handle: 'Action',
+ back: 'Back',
+ confirm: 'Confirm',
+ cancel: 'Cancel',
+ clear: 'Clear',
+ close: 'Close',
+ createTime: 'Create Time',
+ updateTime: 'Update Time',
+ required: 'Required items cannot be empty',
+ app: {
+ title: 'SRT',
+ description:
+ 'The latest version of SRT data middle platform uses the latest technologies such as vue3 and ts at the front and springCloudAlibaba, hadhop, flash and tidb at the back, including six modules: data integration, data development, data governance, data assets, data services and data marts, to solve the problem of data islands, achieve unified caliber standards for data, customize data development tasks, and help enterprises and governments solve data problems',
+ logoText: 'SRT',
+ miniLogoText: 'SRT',
+ username: 'Username',
+ password: 'Password',
+ captcha: 'Captcha',
+ accountSignIn: 'Account Sign in',
+ mobileSignIn: 'Mobile Sign in',
+ mobile: 'Mobile',
+ signIn: 'Sign in',
+ signOut: 'Sign Out',
+ large: 'Large',
+ default: 'Default',
+ small: 'Small',
+ close: 'Close',
+ closeOthers: 'Close Others',
+ closeAll: 'Close All'
+ },
+ settings: {
+ title: 'Layout Settings',
+ sidebarDark: 'Dark Sidebar',
+ sidebarLight: 'Light Sidebar',
+ navbarLight: 'Light Navbar',
+ navbarTheme: 'Theme Navbar',
+ layout: 'Layout Switch',
+ vertical: 'Vertical',
+ columns: 'Columns',
+ transverse: 'Transverse',
+ interface: 'Interface Settings',
+ uniqueOpened: 'Unique Opened',
+ dark: 'Enable Dark',
+ logo: 'Enable Logo',
+ breadcrumb: 'Enable Breadcrumb',
+ tabs: 'Enable Tabs',
+ tabsCache: 'Enable Tabs Cache',
+ tabsStyle: 'Tabs Style',
+ tips: 'After setting, it will only take effect temporarily. To take effect permanently, you need to click the "Copy Config" button below to replace the configuration in store/theme/config.ts. ',
+ copyConfig: 'Copy Config',
+ reset: 'Reset',
+ copySuc: 'Copy Succeeded',
+ style1: 'Style-1',
+ style2: 'Style2'
+ },
+ error: {
+ email: 'The email format is incorrect',
+ password: 'The password cannot be less than {len} digits'
+ },
+ router: {
+ home: 'Home',
+ profilePassword: 'Change Password',
+ changeProject: 'Change Project'
+ }
+}
diff --git a/src/i18n/lang/profile/en-US.ts b/src/i18n/lang/profile/en-US.ts
new file mode 100644
index 0000000..84b50f9
--- /dev/null
+++ b/src/i18n/lang/profile/en-US.ts
@@ -0,0 +1,8 @@
+export default {
+ profile: {
+ username: 'Username',
+ oldPassword: 'Original Password',
+ newPassword: 'New Password',
+ confirmPassword: 'Confirm Password'
+ }
+}
diff --git a/src/i18n/lang/profile/zh-CN.ts b/src/i18n/lang/profile/zh-CN.ts
new file mode 100644
index 0000000..d3bc46e
--- /dev/null
+++ b/src/i18n/lang/profile/zh-CN.ts
@@ -0,0 +1,8 @@
+export default {
+ profile: {
+ username: '用户名',
+ oldPassword: '原密码',
+ newPassword: '新密码',
+ confirmPassword: '确认密码'
+ }
+}
diff --git a/src/i18n/lang/zh-CN.ts b/src/i18n/lang/zh-CN.ts
new file mode 100644
index 0000000..4dd233e
--- /dev/null
+++ b/src/i18n/lang/zh-CN.ts
@@ -0,0 +1,72 @@
+export default {
+ loading: '加载中...',
+ add: '新增',
+ delete: '删除',
+ edit: '修改',
+ query: '查询',
+ export: '导出',
+ handle: '操作',
+ back: '返回',
+ confirm: '确定',
+ cancel: '取消',
+ clear: '清除',
+ close: '关闭',
+ createTime: '创建时间',
+ updateTime: '更新时间',
+ required: '必填项不能为空',
+ app: {
+ title: 'srt',
+ description:
+ '最新版数睿通数据中台,前台采用 vue3,ts 等最新技术,后台采用 springCloudAlibaba,flink,tidb 等大数据技术,包含数据集成,数据开发,数据治理,数据资产,数据服务,数据集市六大模块,解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府解决数据问题!',
+ logoText: '数睿通',
+ miniLogoText: '数睿通',
+ username: '用户名',
+ password: '密码',
+ captcha: '验证码',
+ signIn: '登录',
+ accountSignIn: '账号密码登录',
+ mobileSignIn: '手机短信登录',
+ mobile: '手机号',
+ signOut: '退出',
+ large: '大型',
+ default: '默认',
+ small: '小型',
+ close: '关闭',
+ closeOthers: '关闭其它',
+ closeAll: '关闭全部'
+ },
+ settings: {
+ title: '布局设置',
+ sidebarDark: '暗色侧边栏',
+ sidebarLight: '亮色侧边栏',
+ navbarLight: '亮色顶栏',
+ navbarTheme: '主题色顶栏',
+ layout: '布局切换',
+ vertical: '纵向',
+ columns: '分栏',
+ transverse: '横向',
+ interface: '界面设置',
+ dark: '开启暗黑模式',
+ uniqueOpened: '侧栏排他展开',
+ logo: '开启LOGO',
+ breadcrumb: '开启面包屑',
+ tabs: '开启标签页',
+ tabsCache: '开启标签页缓存',
+ tabsStyle: '标签页风格',
+ tips: '设置之后仅是临时生效,要想永久生效,需点击下方的 "复制配置" 按钮,将配置替换到 store/theme/config.ts 中。',
+ copyConfig: '复制配置',
+ reset: '恢复默认',
+ copySuc: '复制成功',
+ style1: '风格1',
+ style2: '风格2'
+ },
+ error: {
+ email: '邮箱格式不正确',
+ password: '密码不能小于{len}位数'
+ },
+ router: {
+ home: '首页',
+ profilePassword: '修改密码',
+ changeProject: '切换项目'
+ }
+}
diff --git a/src/icons/iconfont/iconfont.js b/src/icons/iconfont/iconfont.js
new file mode 100644
index 0000000..38cadb5
--- /dev/null
+++ b/src/icons/iconfont/iconfont.js
@@ -0,0 +1 @@
+!function(c){var h,l,v,o,i,a='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),z=function(c,h){h.parentNode.insertBefore(c,h)};if(t&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function s(){i||(i=!0,v())}function p(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(p,50)}s()}h=function(){var c,h=document.createElement("div");h.innerHTML=a,a=null,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(c=document.body).firstChild?z(h,c.firstChild):c.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),h()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(v=h,o=c.document,i=!1,p(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,s())})}(window);
\ No newline at end of file
diff --git a/src/icons/svg/404.svg b/src/icons/svg/404.svg
new file mode 100644
index 0000000..6df5019
--- /dev/null
+++ b/src/icons/svg/404.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/layout/components/Logo/index.vue b/src/layout/components/Logo/index.vue
new file mode 100644
index 0000000..609378c
--- /dev/null
+++ b/src/layout/components/Logo/index.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Main/index.vue b/src/layout/components/Main/index.vue
new file mode 100644
index 0000000..c63be17
--- /dev/null
+++ b/src/layout/components/Main/index.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Menu/MenuItem.vue b/src/layout/components/Menu/MenuItem.vue
new file mode 100644
index 0000000..22d5e3c
--- /dev/null
+++ b/src/layout/components/Menu/MenuItem.vue
@@ -0,0 +1,54 @@
+
+
+
+
+ {{ menu.meta.title }}
+
+
+
+
+
+
+ {{ menu.meta.title }}
+
+
+
+
+
diff --git a/src/layout/components/Navbar/NavbarLeft.vue b/src/layout/components/Navbar/NavbarLeft.vue
new file mode 100644
index 0000000..82faf55
--- /dev/null
+++ b/src/layout/components/Navbar/NavbarLeft.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/NavbarRight.vue b/src/layout/components/Navbar/NavbarRight.vue
new file mode 100644
index 0000000..ee1c95a
--- /dev/null
+++ b/src/layout/components/Navbar/NavbarRight.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/Breadcrumb.vue b/src/layout/components/Navbar/components/Breadcrumb.vue
new file mode 100644
index 0000000..2b4b3d4
--- /dev/null
+++ b/src/layout/components/Navbar/components/Breadcrumb.vue
@@ -0,0 +1,28 @@
+
+
+
+ {{ $t('router.home') }}
+
+
+ {{ item }}
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/ChangeProject.vue b/src/layout/components/Navbar/components/ChangeProject.vue
new file mode 100644
index 0000000..844f581
--- /dev/null
+++ b/src/layout/components/Navbar/components/ChangeProject.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
{{ $t('router.changeProject') }}
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/ComponentSize.vue b/src/layout/components/Navbar/components/ComponentSize.vue
new file mode 100644
index 0000000..3b3214a
--- /dev/null
+++ b/src/layout/components/Navbar/components/ComponentSize.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+ {{ $t('app.large') }}
+ {{ $t('app.default') }}
+ {{ $t('app.small') }}
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/Fullscreen.vue b/src/layout/components/Navbar/components/Fullscreen.vue
new file mode 100644
index 0000000..6405909
--- /dev/null
+++ b/src/layout/components/Navbar/components/Fullscreen.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/Hamburger.vue b/src/layout/components/Navbar/components/Hamburger.vue
new file mode 100644
index 0000000..950335d
--- /dev/null
+++ b/src/layout/components/Navbar/components/Hamburger.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/Refresh.vue b/src/layout/components/Navbar/components/Refresh.vue
new file mode 100644
index 0000000..fa11fc8
--- /dev/null
+++ b/src/layout/components/Navbar/components/Refresh.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/ThemeSettings.vue b/src/layout/components/Navbar/components/ThemeSettings.vue
new file mode 100644
index 0000000..10335fd
--- /dev/null
+++ b/src/layout/components/Navbar/components/ThemeSettings.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/components/User.vue b/src/layout/components/Navbar/components/User.vue
new file mode 100644
index 0000000..a1d4d21
--- /dev/null
+++ b/src/layout/components/Navbar/components/User.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
{{ store.userStore.user.username }}
+
+
+
+
+
+ {{ $t('router.profilePassword') }}
+
+ {{ $t('app.signOut') }}
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Navbar/index.vue b/src/layout/components/Navbar/index.vue
new file mode 100644
index 0000000..7e4519b
--- /dev/null
+++ b/src/layout/components/Navbar/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Router/Redirect.vue b/src/layout/components/Router/Redirect.vue
new file mode 100644
index 0000000..90b8fd7
--- /dev/null
+++ b/src/layout/components/Router/Redirect.vue
@@ -0,0 +1,18 @@
+
diff --git a/src/layout/components/Settings/components/SelectItem.vue b/src/layout/components/Settings/components/SelectItem.vue
new file mode 100644
index 0000000..7f996c8
--- /dev/null
+++ b/src/layout/components/Settings/components/SelectItem.vue
@@ -0,0 +1,46 @@
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Settings/components/SwitchItem.vue b/src/layout/components/Settings/components/SwitchItem.vue
new file mode 100644
index 0000000..7ac5e9b
--- /dev/null
+++ b/src/layout/components/Settings/components/SwitchItem.vue
@@ -0,0 +1,38 @@
+
+
+ {{ title }}
+
+
+
+
+
+
+
diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue
new file mode 100644
index 0000000..3d2257e
--- /dev/null
+++ b/src/layout/components/Settings/index.vue
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('settings.layout') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('settings.interface') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('settings.copyConfig') }}
+
+
+ {{ $t('settings.reset') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Tabs/index.vue b/src/layout/components/Tabs/index.vue
new file mode 100644
index 0000000..a78e254
--- /dev/null
+++ b/src/layout/components/Tabs/index.vue
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+ {{ $t('app.close') }}
+ {{ $t('app.closeOthers') }}
+ {{ $t('app.closeAll') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Theme/Columns.vue b/src/layout/components/Theme/Columns.vue
new file mode 100644
index 0000000..45d6060
--- /dev/null
+++ b/src/layout/components/Theme/Columns.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Theme/Transverse.vue b/src/layout/components/Theme/Transverse.vue
new file mode 100644
index 0000000..eef572e
--- /dev/null
+++ b/src/layout/components/Theme/Transverse.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Theme/Vertical.vue b/src/layout/components/Theme/Vertical.vue
new file mode 100644
index 0000000..8ccaa5d
--- /dev/null
+++ b/src/layout/components/Theme/Vertical.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/index.vue b/src/layout/index.vue
new file mode 100644
index 0000000..ea70189
--- /dev/null
+++ b/src/layout/index.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..6efb735
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,45 @@
+import { createApp } from 'vue'
+import ElementPlus from 'element-plus'
+import App from './App.vue'
+import { createPinia } from 'pinia'
+import { registerStore } from './store'
+import { directive } from './utils/directive'
+import { router } from './router'
+import { i18n } from './i18n'
+import 'virtual:svg-icons-register'
+
+import '@/icons/iconfont/iconfont'
+import 'element-plus/dist/index.css'
+import '@/styles/index.scss'
+
+import FastTableColumn from '@/components/fast-table-column'
+import FastTableProjectColumn from '@/components/fast-table-project-column'
+import FastRadioGroup from '@/components/fast-radio-group'
+import FastSelect from '@/components/fast-select'
+import FastProjectSelect from '@/components/fast-project-select'
+import FastCreatorColumn from '@/components/fast-creator-column'
+import FastUser from '@/components/fast-user'
+import SvgIcon from '@/components/svg-icon'
+import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+const app = createApp(App)
+for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+ app.component(key, component)
+}
+
+app.use(createPinia())
+// 注册 Pinia
+registerStore()
+// 注册 自定义指令
+directive(app)
+app.use(router)
+app.use(i18n)
+app.use(FastTableColumn)
+app.use(FastTableProjectColumn)
+app.use(FastRadioGroup)
+app.use(FastSelect)
+app.use(FastProjectSelect)
+app.use(FastCreatorColumn)
+app.use(FastUser)
+app.use(SvgIcon)
+app.use(ElementPlus)
+app.mount('#app')
diff --git a/src/router/index.ts b/src/router/index.ts
new file mode 100644
index 0000000..a683131
--- /dev/null
+++ b/src/router/index.ts
@@ -0,0 +1,268 @@
+import { createRouter, createWebHistory, createWebHashHistory, RouteRecordRaw } from 'vue-router'
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+import store from '@/store'
+import { i18n } from '@/i18n'
+import { pathToCamel } from '@/utils/tool'
+
+NProgress.configure({ showSpinner: false })
+
+const constantRoutes: RouteRecordRaw[] = [
+ {
+ path: '/redirect',
+ component: () => import('../layout/index.vue'),
+ children: [
+ {
+ path: '/redirect/:path(.*)',
+ component: () => import('../layout/components/Router/Redirect.vue')
+ }
+ ]
+ },
+ {
+ path: '/login',
+ component: () => import('../views/login/index.vue')
+ },
+ {
+ path: '/404',
+ component: () => import('../views/404.vue')
+ }
+]
+
+const asyncRoutes: RouteRecordRaw = {
+ path: '/',
+ component: () => import('../layout/index.vue'),
+ redirect: '/home',
+ children: [
+ {
+ path: '/home',
+ name: 'Home',
+ component: () => import('../views/home.vue'),
+ meta: {
+ title: i18n.global.t('router.home'),
+ affix: true
+ }
+ },
+ {
+ path: '/profile/password',
+ name: 'ProfilePassword',
+ component: () => import('../views/profile/password.vue'),
+ meta: {
+ title: i18n.global.t('router.profilePassword'),
+ cache: true
+ }
+ },
+ {
+ path: '/data-assets/resource/db-resource',
+ name: 'DataAssetsDbResource',
+ component: () => import('../views/data-assets/resource/db-resource.vue'),
+ meta: {
+ title: '数据库表',
+ cache: true
+ }
+ },
+ {
+ path: '/data-assets/resource/api-resource',
+ name: 'DataAssetsApiResource',
+ component: () => import('../views/data-assets/resource/api-resource.vue'),
+ meta: {
+ title: 'API',
+ cache: false
+ }
+ },
+ {
+ path: '/data-assets/resource/file-resource',
+ name: 'DataAssetsFileResource',
+ component: () => import('../views/data-assets/resource/file-resource.vue'),
+ meta: {
+ title: '文件',
+ cache: false
+ }
+ }
+ ]
+}
+
+// 配置常量菜单
+export const constantMenu = [
+ {
+ id: 1000,
+ name: 'Demo',
+ url: null,
+ openStyle: 0,
+ icon: 'icon-windows',
+ children: [
+ {
+ id: 1001,
+ name: 'Icon 图标',
+ url: 'demo/icons/index',
+ openStyle: 0,
+ icon: 'icon-unorderedlist'
+ },
+ {
+ id: 1002,
+ name: '二维码生成',
+ url: 'demo/qrcode/index',
+ openStyle: 0,
+ icon: 'icon-unorderedlist'
+ },
+ {
+ id: 1003,
+ name: '页面打印',
+ url: 'demo/printJs/index',
+ openStyle: 0,
+ icon: 'icon-unorderedlist'
+ },
+ {
+ id: 1004,
+ name: '图片裁剪',
+ url: 'demo/cropper/index',
+ openStyle: 0,
+ icon: 'icon-unorderedlist'
+ },
+ {
+ id: 1005,
+ name: '富文本编辑器',
+ url: 'demo/wangeditor/index',
+ openStyle: 0,
+ icon: 'icon-unorderedlist'
+ }
+ ]
+ }
+]
+
+export const errorRoute: RouteRecordRaw = {
+ path: '/:pathMatch(.*)',
+ redirect: '/404'
+}
+
+export const router = createRouter({
+ history: createWebHashHistory(),
+ routes: constantRoutes
+})
+
+// 白名单列表
+const whiteList = ['/login']
+
+// 路由加载前
+router.beforeEach(async (to, from, next) => {
+ NProgress.start()
+
+ // token存在的情况
+ if (store.userStore.token) {
+ if (to.path === '/login') {
+ next('/home')
+ } else {
+ // 用户信息不存在,则重新拉取用户等信息
+ if (!store.userStore.user.id) {
+ await store.userStore.getUserInfoAction()
+ await store.userStore.getAuthorityListAction()
+ await store.appStore.getDictListAction()
+ await store.appStore.getProjectListAction()
+ await store.appStore.getSysUserListAction()
+ const menuRoutes = await store.routerStore.getMenuRoutes()
+
+ // 根据后端菜单路由,生成KeepAlive路由
+ const keepAliveRoutes = getKeepAliveRoutes(menuRoutes, [])
+ //console.log("keepAliveRoutes"+JSON.stringify(keepAliveRoutes))
+
+ // 添加菜单路由
+ asyncRoutes.children?.push(...keepAliveRoutes)
+ router.addRoute(asyncRoutes)
+
+ // 错误路由
+ router.addRoute(errorRoute)
+
+ // 保存路由数据
+ store.routerStore.setRoutes(constantRoutes.concat(asyncRoutes))
+
+ next({ ...to, replace: true })
+ } else {
+ next()
+ }
+ }
+ } else {
+ // 没有token的情况下,可以进入白名单
+ if (whiteList.indexOf(to.path) > -1) {
+ next()
+ } else {
+ next('/login')
+ }
+ }
+})
+
+// 路由加载后
+router.afterEach(() => {
+ NProgress.done()
+})
+
+// 获取扁平化路由,将多级路由转换成一级路由
+export const getKeepAliveRoutes = (rs: RouteRecordRaw[], breadcrumb: string[]): RouteRecordRaw[] => {
+ const routerList: RouteRecordRaw[] = []
+
+ rs.forEach((item: any) => {
+ if (item.meta.title) {
+ breadcrumb.push(item.meta.title)
+ }
+
+ if (item.children && item.children.length > 0) {
+ routerList.push(...getKeepAliveRoutes(item.children, breadcrumb))
+ } else {
+ item.meta.breadcrumb.push(...breadcrumb)
+ routerList.push(item)
+ }
+
+ breadcrumb.pop()
+ })
+ return routerList
+}
+
+// 加载vue组件
+const layoutModules = import.meta.glob('/src/views/**/*.vue')
+
+// 根据路径,动态获取vue组件
+const getDynamicComponent = (path: string): any => {
+ const component = layoutModules[`/src/views/${path}.vue`]
+ if (!component) {
+ console.error('组件不存在,路径为:', path)
+ }
+ return component
+}
+
+// 根据菜单列表,生成路由数据
+export const generateRoutes = (menuList: any): RouteRecordRaw[] => {
+ const routerList: RouteRecordRaw[] = []
+
+ menuList.forEach((menu: any) => {
+ let component
+ let path
+ if (menu.children && menu.children.length > 0) {
+ component = () => import('@/layout/index.vue')
+ path = '/p/' + menu.id
+ } else {
+ component = getDynamicComponent(menu.url)
+ path = '/' + menu.url
+ }
+ const route: RouteRecordRaw = {
+ path: path,
+ name: pathToCamel(path),
+ component: component,
+ children: [],
+ meta: {
+ title: menu.name,
+ icon: menu.icon,
+ id: '' + menu.id,
+ cache: true,
+ _blank: menu.openStyle === 1,
+ breadcrumb: []
+ }
+ }
+
+ // 有子菜单的情况
+ if (menu.children && menu.children.length > 0) {
+ route.children?.push(...generateRoutes(menu.children))
+ }
+
+ routerList.push(route)
+ })
+
+ return routerList
+}
diff --git a/src/store/index.ts b/src/store/index.ts
new file mode 100644
index 0000000..6c232d5
--- /dev/null
+++ b/src/store/index.ts
@@ -0,0 +1,15 @@
+import { userStore } from './modules/user'
+import { routerStore } from './modules/router'
+import { appStore } from './modules/app'
+import { tabsStore } from './modules/tabs'
+
+const store: any = {}
+
+export const registerStore = () => {
+ store.userStore = userStore()
+ store.routerStore = routerStore()
+ store.appStore = appStore()
+ store.tabsStore = tabsStore()
+}
+
+export default store
diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts
new file mode 100644
index 0000000..c119f68
--- /dev/null
+++ b/src/store/modules/app.ts
@@ -0,0 +1,55 @@
+import { defineStore } from 'pinia'
+import { ITheme } from '@/store/theme/interface'
+import cache from '@/utils/cache'
+import { useDictTypeAllApi } from '@/api/sys/dict'
+import { currentUserProjectsApi } from '@/api/data-integrate/project'
+import { listAllUserApi } from '@/api/sys/user'
+
+export const appStore = defineStore('appStore', {
+ state: () => ({
+ // sidebar 是否展开
+ sidebarOpened: cache.getSidebarOpened(),
+ // 国际化
+ language: cache.getLanguage(),
+ // 组件大小
+ componentSize: cache.getComponentSize(),
+ // 字典列表
+ dictList: [],
+ //当前用户的项目列表
+ projectList: [],
+ //用户列表
+ sysUserList: [],
+ // 主题
+ theme: cache.getTheme()
+ }),
+ actions: {
+ setSidebarOpened() {
+ this.sidebarOpened = !this.sidebarOpened
+ cache.setSidebarOpened(this.sidebarOpened)
+ },
+ setLanguage(locale: string) {
+ this.language = locale
+ cache.setLanguage(locale)
+ },
+ setComponentSize(size: string) {
+ this.componentSize = size
+ cache.setComponentSize(size)
+ },
+ async getDictListAction() {
+ const { data } = await useDictTypeAllApi()
+ this.dictList = data || []
+ },
+ async getProjectListAction() {
+ const { data } = await currentUserProjectsApi()
+ this.projectList = data || []
+ },
+ async getSysUserListAction() {
+ const { data } = await listAllUserApi()
+ this.sysUserList = data || []
+ },
+ setTheme(theme: ITheme) {
+ this.theme = theme
+ cache.setTheme(theme)
+ }
+ }
+})
diff --git a/src/store/modules/router.ts b/src/store/modules/router.ts
new file mode 100644
index 0000000..1f1db47
--- /dev/null
+++ b/src/store/modules/router.ts
@@ -0,0 +1,28 @@
+import { defineStore } from 'pinia'
+import { useMenuNavApi } from '@/api/sys/menu'
+import { generateRoutes, constantMenu } from '@/router'
+import { RouteRecordRaw } from 'vue-router'
+
+export const routerStore = defineStore('routerStore', {
+ state: () => ({
+ menuRoutes: [] as RouteRecordRaw[],
+ routes: [] as RouteRecordRaw[]
+ }),
+ actions: {
+ async getMenuRoutes() {
+ const { data } = await useMenuNavApi()
+ const routes = generateRoutes(data)
+
+ this.menuRoutes.push(...routes)
+
+ // 常量菜单(去除)
+ /* const constantRoutes = generateRoutes(constantMenu)
+ this.menuRoutes.push(...constantRoutes) */
+
+ return this.menuRoutes
+ },
+ setRoutes(routers: RouteRecordRaw[]) {
+ this.routes = routers
+ }
+ }
+})
diff --git a/src/store/modules/tabs.ts b/src/store/modules/tabs.ts
new file mode 100644
index 0000000..7c40c37
--- /dev/null
+++ b/src/store/modules/tabs.ts
@@ -0,0 +1,65 @@
+import { defineStore } from 'pinia'
+import { RouteLocationNormalizedLoaded } from 'vue-router'
+
+export const tabsStore = defineStore('tabsStore', {
+ state: () => ({
+ visitedViews: [] as any[],
+ cachedViews: [] as any[]
+ }),
+ actions: {
+ addView(view: RouteLocationNormalizedLoaded) {
+ if (this.visitedViews.some(value => value.path === view.path)) {
+ return
+ }
+ this.visitedViews.push(
+ Object.assign({}, view, {
+ title: view.meta?.title || 'unknown'
+ })
+ )
+ },
+ addCachedView(view: RouteLocationNormalizedLoaded) {
+ if (this.cachedViews.includes(view.name)) {
+ return
+ }
+
+ if (view.meta.cache) {
+ this.cachedViews.push(view.name)
+ }
+ },
+ delView(view: RouteLocationNormalizedLoaded) {
+ for (const [i, v] of this.visitedViews.entries()) {
+ if (v.path === view.path) {
+ this.visitedViews.splice(i, 1)
+ break
+ }
+ }
+
+ this.delCachedView(view).then()
+ },
+ delCachedView(view: RouteLocationNormalizedLoaded) {
+ return new Promise(resolve => {
+ const index = this.cachedViews.indexOf(view.name)
+ if (index > -1) {
+ this.cachedViews.splice(index, 1)
+ }
+ resolve([...this.cachedViews])
+ })
+ },
+ delOthersViews(view: RouteLocationNormalizedLoaded) {
+ this.visitedViews = this.visitedViews.filter(v => {
+ return v.meta.affix || v.path === view.path
+ })
+
+ const index = this.cachedViews.indexOf(view.name)
+ if (index > -1) {
+ this.cachedViews = this.cachedViews.slice(index, index + 1)
+ } else {
+ this.cachedViews = []
+ }
+ },
+ delAllViews() {
+ this.visitedViews = this.visitedViews.filter(tab => tab.meta.affix)
+ this.cachedViews = []
+ }
+ }
+})
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
new file mode 100644
index 0000000..34efa12
--- /dev/null
+++ b/src/store/modules/user.ts
@@ -0,0 +1,56 @@
+import { defineStore } from 'pinia'
+import { useAccountLoginApi, useMobileLoginApi, useLogoutApi } from '@/api/auth'
+import { useUserInfoApi } from '@/api/sys/user'
+import cache from '@/utils/cache'
+import { useAuthorityListApi } from '@/api/sys/menu'
+
+export const userStore = defineStore('userStore', {
+ state: () => ({
+ // 用户信息
+ user: {
+ id: '',
+ username: '',
+ avatar: ''
+ },
+ // 权限列表
+ authorityList: [],
+ // 登录token
+ token: cache.getToken()
+ }),
+ actions: {
+ setUser(val: any) {
+ this.user = val
+ },
+ setToken(val: any) {
+ this.token = val
+ cache.setToken(val)
+ },
+ // 账号登录
+ async accountLoginAction(loginForm: any) {
+ const { data } = await useAccountLoginApi(loginForm)
+ this.setToken(data.access_token)
+ },
+ // 手机号登录
+ async mobileLoginAction(loginForm: any) {
+ const { data } = await useMobileLoginApi(loginForm)
+ this.setToken(data.access_token)
+ },
+ // 获取用户信息
+ async getUserInfoAction() {
+ const { data } = await useUserInfoApi()
+ this.setUser(data)
+ },
+ // 获取权限
+ async getAuthorityListAction() {
+ const { data } = await useAuthorityListApi()
+ this.authorityList = data || []
+ },
+ // 用户退出
+ async logoutAction() {
+ await useLogoutApi()
+
+ // 移除 token
+ this.setToken(null)
+ }
+ }
+})
diff --git a/src/store/theme/config.ts b/src/store/theme/config.ts
new file mode 100644
index 0000000..dd84d40
--- /dev/null
+++ b/src/store/theme/config.ts
@@ -0,0 +1,17 @@
+import { ITheme } from '@/store/theme/interface'
+
+export const themeConfig: ITheme = {
+ "sidebarStyle": "dark",
+ "headerStyle": "light",
+ "primaryColor": "#667AFA",
+ "layout": "vertical",
+ "uniqueOpened": true,
+ "isLogo": true,
+ "isBreadcrumb": true,
+ "isTabsView": true,
+ "isTabsCache": true,
+ "tabsStyle": "style-1"
+}
+
+
+
diff --git a/src/store/theme/interface.ts b/src/store/theme/interface.ts
new file mode 100644
index 0000000..ea6393a
--- /dev/null
+++ b/src/store/theme/interface.ts
@@ -0,0 +1,22 @@
+export interface ITheme {
+ // 侧栏风格 [light、dark]
+ sidebarStyle: string
+ // 顶栏风格 [light、theme]
+ headerStyle: string
+ // 主题颜色
+ primaryColor: string
+ // 布局风格 [vertical、columns、transverse]
+ layout: string
+ // 侧栏排他展开(只保持一个子菜单展开)
+ uniqueOpened: boolean
+ // 开启LOGO
+ isLogo: boolean
+ // 开启面包屑
+ isBreadcrumb: boolean
+ // 开启标签页
+ isTabsView: boolean
+ // 开启标签页缓存
+ isTabsCache: boolean
+ // 标签页风格 [style-1、style-2]
+ tabsStyle: string
+}
diff --git a/src/styles/dark.scss b/src/styles/dark.scss
new file mode 100644
index 0000000..76ed3b1
--- /dev/null
+++ b/src/styles/dark.scss
@@ -0,0 +1,65 @@
+@import 'element-plus/theme-chalk/dark/css-vars.css';
+
+html.dark {
+ --el-text-color-primary: #d0d0d0;
+
+ --el-color-primary-light-1: var(--el-color-primary-dark-1) !important;
+ --el-color-primary-light-2: var(--el-color-primary-dark-2) !important;
+ --el-color-primary-light-3: var(--el-color-primary-dark-3) !important;
+ --el-color-primary-light-4: var(--el-color-primary-dark-4) !important;
+ --el-color-primary-light-5: var(--el-color-primary-dark-5) !important;
+ --el-color-primary-light-6: var(--el-color-primary-dark-6) !important;
+ --el-color-primary-light-7: var(--el-color-primary-dark-7) !important;
+ --el-color-primary-light-8: var(--el-color-primary-dark-8) !important;
+ --el-color-primary-light-9: var(--el-color-primary-dark-9) !important;
+
+ *{
+ --theme-main-bg-color: var(--el-bg-color);
+
+ --theme-border-color-light: var(--el-border-color-dark);
+ --theme-logo-text-color: var(--el-text-color-primary);
+
+ --theme-menu-text-color: rgb(255 255 255 / 66%);
+ --theme-menu-bg-color: var(--el-bg-color);
+ --theme-menu-hover-color: #eee;
+ --theme-menu-hover-bg-color: var(--el-color-primary);
+
+ --theme-header-bg-color: var(--el-bg-color);
+ --theme-header-text-color: #eee;
+ --theme-header-hover-color: var(--el-border-color-dark);
+ }
+
+ .el-popover.el-popper{
+ background: var(--el-bg-color-overlay);
+ }
+
+ .tabs-container{
+ background: none;
+ }
+ .columns-sub-menu {
+ background: none;
+ }
+
+ // 编辑器
+ --w-e-textarea-bg-color: #333;
+ --w-e-textarea-color: #fff;
+ .v-md-editor textarea{
+ color: #fff;
+ }
+ .v-md-editor .scrollbar__wrap{
+ background-color: #444;
+ color: #999;
+ }
+
+ .sidebar-dark {
+ .el-menu-item.is-active{
+ border-right: 2px solid var(--theme-menu-border-color) !important;
+ position: relative !important;
+ right:1px !important;
+ }
+ &.layout-sidebar {
+ border-right: var(--theme-border-color-light) 1px solid !important;
+ }
+ }
+
+}
diff --git a/src/styles/element.scss b/src/styles/element.scss
new file mode 100644
index 0000000..123d6a5
--- /dev/null
+++ b/src/styles/element.scss
@@ -0,0 +1,97 @@
+// cover some element-plus styles
+
+.el-menu {
+ border-right: none !important;
+ &:not(.el-menu--collapse) {
+ width: var(--theme-aside-width);
+ }
+}
+
+.el-menu-item,
+.el-sub-menu__title {
+ color: var(--theme-menu-text-color) !important;
+ height: 48px !important;
+ overflow: hidden;
+}
+
+.el-menu.el-menu--horizontal {
+ border-bottom: none !important;
+}
+
+.el-menu-item {
+ height: 45px !important;
+ line-height: 45px !important;
+}
+
+.el-menu-item a,
+.el-menu-item a:hover,
+.el-menu-item i,
+.el-sub-menu__title i {
+ color: inherit;
+ text-decoration: none;
+}
+
+.el-menu-item .svg-icon,
+.el-sub-menu .svg-icon {
+ font-size: 16px !important;
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 5px;
+ width: 24px;
+ text-align: center;
+}
+
+.el-sub-menu.is-active > :first-child {
+ overflow: hidden;
+ color: var(--theme-menu-hover-color) !important;
+}
+
+.el-menu-item.is-active{
+ border-right: 2px solid var(--theme-menu-border-color);
+ position: relative;
+ right:1px;
+ overflow: hidden;
+ color: var(--theme-menu-hover-color) !important;
+ background-color: var(--theme-menu-hover-bg-color) !important;
+ &:hover{
+ background-color: var(--theme-menu-hover-bg-color) !important;
+ }
+}
+
+.el-sub-menu.is-active.is-opened {
+ .el-sub-menu__title {
+ background-color: unset !important;
+ color: var(--theme-menu-hover-color);
+ }
+}
+
+// 鼠标 hover 时
+.el-menu-item:hover,
+.el-sub-menu__title:hover {
+ background-color: unset !important;
+ color: var(--theme-menu-hover-color) !important;
+}
+
+.el-pagination{
+ margin-top: 15px;
+ justify-content: flex-end;
+}
+
+.el-form--inline .el-form-item{
+ margin-right: 16px !important;
+}
+
+.el-drawer .el-drawer__header {
+ display: flex;
+ align-items: center;
+ height: var(--theme-header-height);
+ padding: 0 15px;
+ margin-bottom: 0 !important;
+ font-size: 15px;
+ border-bottom: 1px solid var(--el-border-color);
+ color: var(--el-text-color-primary);
+}
+.el-card.is-always-shadow{
+ box-shadow: none !important;
+}
+
diff --git a/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Bold.otf b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Bold.otf
new file mode 100644
index 0000000..9ec95bc
Binary files /dev/null and b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Bold.otf differ
diff --git a/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Heavy.otf b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Heavy.otf
new file mode 100644
index 0000000..7be3ffb
Binary files /dev/null and b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Heavy.otf differ
diff --git a/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Light.otf b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Light.otf
new file mode 100644
index 0000000..d9743d2
Binary files /dev/null and b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Light.otf differ
diff --git a/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Medium.otf b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Medium.otf
new file mode 100644
index 0000000..0ebd1f4
Binary files /dev/null and b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Medium.otf differ
diff --git a/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Regular.otf b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Regular.otf
new file mode 100644
index 0000000..237e1aa
Binary files /dev/null and b/src/styles/fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Regular.otf differ
diff --git a/src/styles/index.scss b/src/styles/index.scss
new file mode 100644
index 0000000..a387d7d
--- /dev/null
+++ b/src/styles/index.scss
@@ -0,0 +1,46 @@
+@font-face {
+ font-family: 'Alibaba-PuHuiTi-B';
+ src: url('./fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Bold.otf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Alibaba-PuHuiTi-H';
+ src: url('./fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Heavy.otf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Alibaba-PuHuiTi-L';
+ src: url('./fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Light.otf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Alibaba-PuHuiTi-M';
+ src: url('./fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Medium.otf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+//
+@font-face {
+ font-family: 'Alibaba-PuHuiTi-R';
+ src: url('./fonts/Alibaba-PuHuiTi/Alibaba-PuHuiTi-Regular.otf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+@font-face {
+ font-family: 'YouSheBiaoTiHei';
+ src: url('./fonts/YouSheBiaoTiHei/YouSheBiaoTiHei.ttf');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@import './variables.scss';
+@import './layout.scss';
+@import './element.scss';
+@import './theme.scss';
+@import './dark.scss';
diff --git a/src/styles/layout.scss b/src/styles/layout.scss
new file mode 100644
index 0000000..cb66c87
--- /dev/null
+++ b/src/styles/layout.scss
@@ -0,0 +1,81 @@
+* {
+ margin: 0;
+ padding: 0;
+ outline: none !important;
+}
+
+html,
+body,
+#app {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
+ font-weight: 400;
+ -webkit-font-smoothing: antialiased;
+ -webkit-tap-highlight-color: transparent;
+ font-size: 14px;
+ overflow: hidden;
+ position: relative;
+}
+
+a,
+a:focus,
+a:hover {
+ cursor: pointer;
+ color: inherit;
+ text-decoration: none;
+}
+
+#nprogress {
+ .bar {
+ background: var(--el-color-primary) !important;
+ z-index: 99999 !important;
+ }
+}
+
+.layout-container {
+ width: 100%;
+ height: 100%;
+ .layout-sidebar {
+ background: var(--theme-menu-bg-color);
+ border-right: var(--theme-border-color-light) 1px solid;
+ height: inherit;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ overflow-x: hidden !important;
+ .el-scrollbar__view {
+ overflow: hidden;
+ }
+ &.aside-expend {
+ width: var(--theme-aside-width) !important;
+ transition: width 0.3s ease;
+ }
+ &.aside-compress {
+ width: 64px !important;
+ transition: width 0.3s ease;
+ }
+ }
+ .layout-header {
+ padding: 0 !important;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: calc(40px + var(--theme-header-height));
+ }
+ .layout-main {
+ padding: 0 !important;
+ overflow: hidden;
+ width: 100%;
+ background-color: var(--theme-main-bg-color);
+ .layout-card{
+ min-height: calc(100vh - 70px - var(--theme-header-height));
+ }
+ }
+ .layout-scrollbar {
+ //width: 100%;
+ padding: 15px;
+ }
+}
diff --git a/src/styles/theme.scss b/src/styles/theme.scss
new file mode 100644
index 0000000..e977ba4
--- /dev/null
+++ b/src/styles/theme.scss
@@ -0,0 +1,38 @@
+// 侧边栏暗色
+.sidebar-dark{
+ --theme-logo-text-color: #e7e3e3;
+ --theme-main-bg-color: #000;
+ --theme-menu-text-color: rgb(255 255 255 / 66%);
+ --theme-menu-bg-color: #263238;
+ --theme-menu-hover-color: #eee;
+ --theme-menu-hover-bg-color: var(--el-color-primary);
+ .el-menu-item.is-active{
+ border-right: none;
+ right: 0;
+ }
+ &.layout-sidebar {
+ border-right: none;
+ }
+}
+
+.layout-columns{
+ .sidebar-dark {
+ .sidebar-logo {
+ border-bottom: #444 1px solid !important;
+ }
+ }
+ }
+
+// 顶栏主题色
+.header-theme{
+ --theme-header-bg-color: var(--el-color-primary);
+ --theme-header-text-color: rgb(255 255 255 / 80%);
+ --theme-header-hover-color: rgba(0, 0, 0, 0.1);
+ --theme-menu-text-color: #ddd;
+ --theme-logo-text-color: #fff;
+ --theme-menu-hover-color: #fff;
+ --el-menu-active-color: #fff;
+ .el-dropdown{
+ color: inherit;
+ }
+}
diff --git a/src/styles/variables.scss b/src/styles/variables.scss
new file mode 100644
index 0000000..1f50142
--- /dev/null
+++ b/src/styles/variables.scss
@@ -0,0 +1,18 @@
+:root {
+ --theme-aside-width: 230px;
+ --theme-header-height: 50px;
+ --theme-border-color-light: #f1f2f3;
+ --theme-logo-text-color: var(--el-color-primary);
+
+ --theme-menu-text-color: #333333;
+ --theme-menu-bg-color: #ffffff;
+ --theme-menu-border-color: var(--el-color-primary);
+ --theme-menu-hover-color: var(--el-color-primary);
+ --theme-menu-hover-bg-color: var(--el-color-primary-light-9);
+
+ --theme-header-bg-color: #ffffff;
+ --theme-header-text-color: #444444;
+ --theme-header-hover-color: rgba(0, 0, 0, 0.1);
+
+ --theme-main-bg-color: #f0f2f5;
+}
diff --git a/src/types/shims.d.ts b/src/types/shims.d.ts
new file mode 100644
index 0000000..66d0c36
--- /dev/null
+++ b/src/types/shims.d.ts
@@ -0,0 +1,13 @@
+declare module '*.svg'
+declare module '*.png'
+declare module '*.jpg'
+declare module '*.gif'
+declare module '*.scss'
+declare module '*.ts'
+declare module '*.js'
+
+declare module '*.vue' {
+ import type { DefineComponent } from 'vue'
+ const component: DefineComponent<{}, {}, any>
+ export default component
+}
diff --git a/src/utils/cache/index.ts b/src/utils/cache/index.ts
new file mode 100644
index 0000000..8324001
--- /dev/null
+++ b/src/utils/cache/index.ts
@@ -0,0 +1,53 @@
+import { SessionStorage, Storage } from '@/utils/storage'
+import CacheKey from '@/utils/cache/key'
+import { ITheme } from '@/store/theme/interface'
+import { themeConfig } from '@/store/theme/config'
+
+// 缓存
+class Cache {
+ getToken = (): string => {
+ return Storage.getItem(CacheKey.TokenKey) || ''
+ }
+
+ setToken = (value: string) => {
+ Storage.setItem(CacheKey.TokenKey, value)
+ }
+
+ getSidebarOpened = (): boolean => {
+ return Storage.getItem(CacheKey.SidebarOpenedKey) || false
+ }
+
+ setSidebarOpened = (value: boolean) => {
+ Storage.setItem(CacheKey.SidebarOpenedKey, value)
+ }
+
+ getLanguage = (): string => {
+ return Storage.getItem(CacheKey.LangKey) || 'zh-CN'
+ }
+
+ setLanguage = (value: string) => {
+ Storage.setItem(CacheKey.LangKey, value)
+ }
+
+ getComponentSize = (): string => {
+ return Storage.getItem(CacheKey.ComponentSizeKey) || 'default'
+ }
+
+ setComponentSize = (value: string) => {
+ Storage.setItem(CacheKey.ComponentSizeKey, value)
+ }
+
+ getTheme = (): ITheme => {
+ return (SessionStorage.getItem(CacheKey.ThemeKey) as ITheme) || themeConfig
+ }
+
+ setTheme = (value: ITheme) => {
+ SessionStorage.setItem(CacheKey.ThemeKey, value)
+ }
+
+ removeTheme = () => {
+ SessionStorage.removeItem(CacheKey.ThemeKey)
+ }
+}
+
+export default new Cache()
diff --git a/src/utils/cache/key.ts b/src/utils/cache/key.ts
new file mode 100644
index 0000000..2c71921
--- /dev/null
+++ b/src/utils/cache/key.ts
@@ -0,0 +1,7 @@
+export default {
+ SidebarOpenedKey: 'sidebarOpened',
+ LangKey: 'lang',
+ ComponentSizeKey: 'componentSize',
+ TokenKey: 'token',
+ ThemeKey: 'theme'
+}
diff --git a/src/utils/constant.ts b/src/utils/constant.ts
new file mode 100644
index 0000000..5456c51
--- /dev/null
+++ b/src/utils/constant.ts
@@ -0,0 +1,16 @@
+import appPackage from '../../package.json'
+import cache from '@/utils/cache'
+
+/**
+ * 常量
+ */
+export default {
+ // 版本号
+ version: appPackage.version,
+
+ // API地址
+ apiUrl: import.meta.env.VITE_API_URL,
+
+ // 文件上传地址
+ uploadUrl: import.meta.env.VITE_API_URL + '/sys/file/upload?access_token=' + cache.getToken()
+}
diff --git a/src/utils/directive/auth.ts b/src/utils/directive/auth.ts
new file mode 100644
index 0000000..cb8cb99
--- /dev/null
+++ b/src/utils/directive/auth.ts
@@ -0,0 +1,13 @@
+import type { App } from 'vue'
+import store from '@/store'
+
+export function auth(app: App) {
+ // 权限验证
+ app.directive('auth', {
+ mounted(el, binding) {
+ if (!store.userStore.authorityList.some((v: string) => v === binding.value)) {
+ el.parentNode.removeChild(el)
+ }
+ }
+ })
+}
diff --git a/src/utils/directive/index.ts b/src/utils/directive/index.ts
new file mode 100644
index 0000000..c44b0bf
--- /dev/null
+++ b/src/utils/directive/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue'
+import { auth } from './auth'
+
+export const directive = (app: App) => {
+ // 权限指令
+ auth(app)
+}
diff --git a/src/utils/emits.ts b/src/utils/emits.ts
new file mode 100644
index 0000000..5380b4b
--- /dev/null
+++ b/src/utils/emits.ts
@@ -0,0 +1,3 @@
+import mitt, { Emitter } from 'mitt'
+
+export default mitt() as Emitter
diff --git a/src/utils/request.ts b/src/utils/request.ts
new file mode 100644
index 0000000..e36a4d3
--- /dev/null
+++ b/src/utils/request.ts
@@ -0,0 +1,72 @@
+import axios from 'axios'
+import qs from 'qs'
+import { ElMessage } from 'element-plus'
+import store from '@/store'
+import cache from '@/utils/cache'
+
+// axios实例
+const service = axios.create({
+ baseURL: import.meta.env.VITE_API_URL as any,
+ timeout: 600000,
+ headers: { 'Content-Type': 'application/json;charset=UTF-8' }
+})
+
+// 请求拦截器
+service.interceptors.request.use(
+ (config: any) => {
+ const userStore = store.userStore
+ if (userStore?.token) {
+ config.headers.Authorization = userStore.token
+ }
+
+ config.headers['Accept-Language'] = cache.getLanguage()
+
+ // 追加时间戳,防止GET请求缓存
+ if (config.method?.toUpperCase() === 'GET') {
+ config.params = { ...config.params, t: new Date().getTime() }
+ }
+
+ if (Object.values(config.headers).includes('application/x-www-form-urlencoded')) {
+ config.data = qs.stringify(config.data)
+ }
+
+ return config
+ },
+ error => {
+ return Promise.reject(error)
+ }
+)
+
+// 响应拦截器
+service.interceptors.response.use(
+ response => {
+ if (response.status !== 200) {
+ return Promise.reject(new Error(response.statusText || 'Error'))
+ }
+
+ const res = response.data
+ //console.log(res)
+ // 响应成功
+ if (res.code === 0) {
+ return res
+ }
+
+ // 错误提示
+ ElMessage.error(res.msg)
+
+ // 没有权限,如:未登录、登录过期等,需要跳转到登录页
+ if (res.code === 401) {
+ store.userStore?.setToken('')
+ location.reload()
+ }
+
+ return Promise.reject(new Error(res.msg || 'Error'))
+ },
+ error => {
+ ElMessage.error(error.message)
+ return Promise.reject(error)
+ }
+)
+
+// 导出 axios 实例
+export default service
diff --git a/src/utils/storage.ts b/src/utils/storage.ts
new file mode 100644
index 0000000..789492a
--- /dev/null
+++ b/src/utils/storage.ts
@@ -0,0 +1,51 @@
+/**
+ * window.localStorage 浏览器永久缓存
+ * @method setItem 设置缓存
+ * @method getItem 获取缓存
+ * @method removeItem 移除缓存
+ * @method clear 移除全部缓存
+ */
+export const Storage = {
+ setItem(key: string, value: any) {
+ if (value === undefined) {
+ return
+ }
+ window.localStorage.setItem(key, JSON.stringify(value))
+ },
+ getItem(key: string) {
+ let json: any = window.localStorage.getItem(key)
+ return JSON.parse(json)
+ },
+ removeItem(key: string) {
+ window.localStorage.removeItem(key)
+ },
+ clear() {
+ window.localStorage.clear()
+ }
+}
+
+/**
+ * window.sessionStorage 浏览器临时缓存
+ * @method setItem 设置缓存
+ * @method getItem 获取缓存
+ * @method removeItem 移除缓存
+ * @method clear 移除全部缓存
+ */
+export const SessionStorage = {
+ setItem(key: string, value: any) {
+ if (value === undefined) {
+ return
+ }
+ window.sessionStorage.setItem(key, JSON.stringify(value))
+ },
+ getItem(key: string) {
+ let json: any = window.sessionStorage.getItem(key)
+ return JSON.parse(json)
+ },
+ removeItem(key: string) {
+ window.sessionStorage.removeItem(key)
+ },
+ clear() {
+ window.sessionStorage.clear()
+ }
+}
diff --git a/src/utils/tabs.ts b/src/utils/tabs.ts
new file mode 100644
index 0000000..e9cf5d7
--- /dev/null
+++ b/src/utils/tabs.ts
@@ -0,0 +1,37 @@
+import store from '@/store'
+
+// 关闭tab
+export const closeTab = (router: any, tab: any) => {
+ if (tab.meta && tab.meta.affix) {
+ return
+ }
+
+ store.tabsStore.delView(tab)
+ toLastView(router, store.tabsStore.visitedViews, tab)
+}
+
+// 关闭其他tabs
+export const closeOthersTabs = (router: any, tab: any) => {
+ router.push(tab)
+ store.tabsStore.delOthersViews(tab)
+}
+
+// 关闭全部tabs
+export const closeAllTabs = (router: any, tab: any) => {
+ store.tabsStore.delAllViews()
+ toLastView(router, store.tabsStore.visitedViews, tab)
+}
+
+// 跳转到最后一个tab
+export const toLastView = (router: any, visitedViews: any[], view: any) => {
+ const latestView = visitedViews.slice(-1)[0]
+ if (latestView) {
+ router.push(latestView.fullPath)
+ } else {
+ if (view.name === 'Home') {
+ router.replace({ path: '/redirect' + view.fullPath })
+ } else {
+ router.push('/')
+ }
+ }
+}
diff --git a/src/utils/theme.ts b/src/utils/theme.ts
new file mode 100644
index 0000000..3fa7fb3
--- /dev/null
+++ b/src/utils/theme.ts
@@ -0,0 +1,51 @@
+import { ITheme } from '@/store/theme/interface'
+
+// 处理主题样式
+export const handleThemeStyle = (theme: ITheme) => {
+ document.documentElement.style.setProperty('--el-color-primary', theme.primaryColor)
+ for (let i = 1; i <= 9; i++) {
+ document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, `${getLightColor(theme.primaryColor, i / 10)}`)
+ }
+ for (let i = 1; i <= 9; i++) {
+ document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, `${getDarkColor(theme.primaryColor, i / 10)}`)
+ }
+}
+
+// hex颜色转rgb颜色
+const hexToRgb = (str: any) => {
+ str = str.replace('#', '')
+ let hexs = str.match(/../g)
+ for (let i = 0; i < 3; i++) {
+ hexs[i] = parseInt(hexs[i], 16)
+ }
+ return hexs
+}
+
+// rgb颜色转Hex颜色
+const rgbToHex = (r: any, g: any, b: any) => {
+ let hexs = [r.toString(16), g.toString(16), b.toString(16)]
+ for (let i = 0; i < 3; i++) {
+ if (hexs[i].length == 1) {
+ hexs[i] = `0${hexs[i]}`
+ }
+ }
+ return `#${hexs.join('')}`
+}
+
+// 变浅颜色值
+const getLightColor = (color: string, level: number) => {
+ let rgb = hexToRgb(color)
+ for (let i = 0; i < 3; i++) {
+ rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i])
+ }
+ return rgbToHex(rgb[0], rgb[1], rgb[2])
+}
+
+// 变深颜色值
+const getDarkColor = (color: string, level: number) => {
+ let rgb = hexToRgb(color)
+ for (let i = 0; i < 3; i++) {
+ rgb[i] = Math.floor(rgb[i] * (1 - level))
+ }
+ return rgbToHex(rgb[0], rgb[1], rgb[2])
+}
diff --git a/src/utils/tool.ts b/src/utils/tool.ts
new file mode 100644
index 0000000..4c05e38
--- /dev/null
+++ b/src/utils/tool.ts
@@ -0,0 +1,103 @@
+import type { App, Plugin } from 'vue'
+
+// 把路径转换成驼峰命名
+export const pathToCamel = (path: string): string => {
+ return path.replace(/\/(\w)/g, (all, letter) => letter.toUpperCase())
+}
+
+// 是否外链
+export const isExternalLink = (url: string): boolean => {
+ return /^(https?:|\/\/|http?:|\/\/|^{{\s?apiUrl\s?}})/.test(url)
+}
+
+// 替换外链参数
+export const replaceLinkParam = (url: string): string => {
+ return url.replace('{{apiUrl}}', constant.apiUrl)
+}
+
+// 转换文件大小格式
+export const convertSizeFormat = (size: number): string => {
+ const unit = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']
+ let index = Math.floor(Math.log(size) / Math.log(1024))
+ let newSize = size / Math.pow(1024, index)
+
+ // 保留的小数位数
+ return newSize.toFixed(2) + ' ' + unit[index]
+}
+
+// 获取svg图标(id)列表
+export const getIconList = (): string[] => {
+ const rs: string[] = []
+ const list = document.querySelectorAll('svg symbol')
+ for (let i = 0; i < list.length; i++) {
+ rs.push(list[i].id)
+ }
+ return rs
+}
+
+// 获取字典Label
+export const getDictLabel = (dictList: any[], dictType: string, dictValue: string) => {
+ const type = dictList.find((element: any) => element.dictType === dictType)
+ if (type) {
+ const val = type.dataList.find((element: any) => element.dictValue === dictValue + '')
+ if (val) {
+ return val.dictLabel
+ } else {
+ return dictValue
+ }
+ } else {
+ return dictValue
+ }
+}
+
+// 获取字典数据列表
+export function getDictDataList(dictList: any[], dictType: string) {
+ const type = dictList.find((element: any) => element.dictType === dictType)
+ if (type) {
+ return type.dataList
+ } else {
+ return []
+ }
+}
+
+// 获取项目名称
+export const getValByProjectId = (projectList: any[], projectId: number) => {
+ const project = projectList.find((element: any) => element.id === projectId)
+ if (project) {
+ const projectVal = project.name
+ if (projectVal) {
+ return projectVal
+ } else {
+ return projectId
+ }
+ } else {
+ return projectId
+ }
+}
+
+// 获取用户名称
+export const getNameByUserId = (sysUserList: any[], userId: number) => {
+ const user = sysUserList.find((element: any) => element.id === userId)
+ if (user) {
+ const username = user.username
+ if (username) {
+ return username
+ } else {
+ return userId
+ }
+ } else {
+ return userId
+ }
+}
+
+// 全局组件安装
+export const withInstall = (component: T, alias?: string) => {
+ const comp = component as any
+ comp.install = (app: App) => {
+ app.component(comp.name || comp.displayName, component)
+ if (alias) {
+ app.config.globalProperties[alias] = component
+ }
+ }
+ return component as T & Plugin
+}
diff --git a/src/utils/validate.ts b/src/utils/validate.ts
new file mode 100644
index 0000000..78d896d
--- /dev/null
+++ b/src/utils/validate.ts
@@ -0,0 +1,28 @@
+import { i18n } from '@/i18n'
+
+export const isExternalLink = (path: string): boolean => {
+ return /^(https?:|mailto:|tel:)/.test(path)
+}
+
+export const validateEmail = (rule: any, value: any, callback: (e?: Error) => any) => {
+ const reg =
+ /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+
+ if (reg.test(value)) {
+ callback()
+ } else {
+ callback(new Error(i18n.global.t('error.email')))
+ }
+}
+
+export const validatePassword = (rule: any, value: any, callback: (e?: Error) => any) => {
+ if (value.length < 4) {
+ callback(new Error(i18n.global.t('error.password', { len: 4 })))
+ } else {
+ callback()
+ }
+}
+
+export const validateMobile = (mobile: string): boolean => {
+ return /^1[3456789]\d{9}$/.test(mobile)
+}
diff --git a/src/views/404.vue b/src/views/404.vue
new file mode 100644
index 0000000..e2371ef
--- /dev/null
+++ b/src/views/404.vue
@@ -0,0 +1,32 @@
+
+
+

+
+ {{ $t('back') }}
+ {{ $t('router.home') }}
+
+
+
+
+
+
+
diff --git a/src/views/data-assets/catalog/add-mount.vue b/src/views/data-assets/catalog/add-mount.vue
new file mode 100644
index 0000000..3b83045
--- /dev/null
+++ b/src/views/data-assets/catalog/add-mount.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-assets/catalog/add-or-update.vue b/src/views/data-assets/catalog/add-or-update.vue
new file mode 100644
index 0000000..7ae8d8c
--- /dev/null
+++ b/src/views/data-assets/catalog/add-or-update.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-assets/catalog/api-mount.vue b/src/views/data-assets/catalog/api-mount.vue
new file mode 100644
index 0000000..61ced0b
--- /dev/null
+++ b/src/views/data-assets/catalog/api-mount.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+ {{state.path}}
+
+
+
+
+ 未发布
+ 已发布
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-assets/catalog/file-mount.vue b/src/views/data-assets/catalog/file-mount.vue
new file mode 100644
index 0000000..2517d21
--- /dev/null
+++ b/src/views/data-assets/catalog/file-mount.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+ {{state.path}}
+
+
+
+ 点击前往
+
+
+
+
+ {{ scope.row.size?convertSizeFormat(scope.row.size):'' }}
+
+
+
+
+
+ {{ props.row.description?props.row.description:'无描述信息!'}}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-assets/catalog/index.vue b/src/views/data-assets/catalog/index.vue
new file mode 100644
index 0000000..c7622ec
--- /dev/null
+++ b/src/views/data-assets/catalog/index.vue
@@ -0,0 +1,479 @@
+
+
+
+
+
+ 资产目录
+
+
+
+
+
+
+
+
+
+
+
+ 添加根目录
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
查询
新增
+
+
+
+
+
+ {{ item.code }}
+ {{ item.name }}
+
+
+
+
+
{{ curentNode.parentPath }}
+
+
+
+
{{ item.versionNo }}
+
+
+
+
{{ item.releaseTime }}
+
+
+
+
{{ item.createTime }}
+
+
+
+
{{ item.updateTime }}
+
+
+
+
{{ item.summary }}
+
+
+
+ {{ item.status == 1? '已上架':'未上架' }}
+ {{ item.mountStatus == 1? '已挂载':'未挂载' }}
+
+
+ 详情
+ 修改
+ 资源挂载
+ 下架
+ 上架
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加子目录
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-assets/catalog/mount-info.vue b/src/views/data-assets/catalog/mount-info.vue
new file mode 100644
index 0000000..e3388e4
--- /dev/null
+++ b/src/views/data-assets/catalog/mount-info.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+ 查询
+
+
+
+ 数据库表
+
+
+ API
+
+
+ 文件
+
+
+
+
+
+
+
+
+
+
+ 解绑
+ 申请
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-assets/catalog/resource-detail.vue b/src/views/data-assets/catalog/resource-detail.vue
new file mode 100644
index 0000000..95d3ebb
--- /dev/null
+++ b/src/views/data-assets/catalog/resource-detail.vue
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
基本信息
+
+
+
+
+ {{resourceInfo.parentPath}}
+
+
+
+
+ {{resourceInfo.name}}
+
+
+
+
+
+
+ {{resourceInfo.code}}
+
+
+
+
+ {{resourceInfo.versionNo}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{resourceInfo.dutyUser}}
+
+
+ {{resourceInfo.summary}}
+
+
+
+
+
其他信息
+
+
+
+ {{getNameByUserId(store.appStore.sysUserList, resourceInfo.updater)}}
+
+
+
+
+ {{resourceInfo.updateTime}}
+
+
+
+
+
+
+ {{getNameByUserId(store.appStore.sysUserList, resourceInfo.releaseUserId)}}
+
+
+
+
+ {{resourceInfo.releaseTime}}
+
+
+
+
+
+
+
+
+
+
+ 开发中。。。
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-assets/catalog/resource-info.vue b/src/views/data-assets/catalog/resource-info.vue
new file mode 100644
index 0000000..a033311
--- /dev/null
+++ b/src/views/data-assets/catalog/resource-info.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-assets/catalog/resource-mount.vue b/src/views/data-assets/catalog/resource-mount.vue
new file mode 100644
index 0000000..524a93c
--- /dev/null
+++ b/src/views/data-assets/catalog/resource-mount.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+ 查询
+
+
+ 挂载资源
+
+
+ 数据库表
+
+
+ API
+
+
+ 文件
+
+
+
+
+
+
+
+
+
+
+ 解绑
+ 申请
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-assets/resource-overview/index.vue b/src/views/data-assets/resource-overview/index.vue
new file mode 100644
index 0000000..9ded8fe
--- /dev/null
+++ b/src/views/data-assets/resource-overview/index.vue
@@ -0,0 +1,9 @@
+
+ 开发中。。。
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-assets/resource/api-resource.vue b/src/views/data-assets/resource/api-resource.vue
new file mode 100644
index 0000000..09ea37e
--- /dev/null
+++ b/src/views/data-assets/resource/api-resource.vue
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 导出文档
+
+
+
+
+
+
+
+
+
+
+
+
+ 未发布
+ 已发布
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 测试
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-assets/resource/db-resource.vue b/src/views/data-assets/resource/db-resource.vue
new file mode 100644
index 0000000..12306af
--- /dev/null
+++ b/src/views/data-assets/resource/db-resource.vue
@@ -0,0 +1,817 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 日志信息
+
+
+
+
+
+
+
+
+ 结果
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-assets/resource/db.vue b/src/views/data-assets/resource/db.vue
new file mode 100644
index 0000000..04f0c80
--- /dev/null
+++ b/src/views/data-assets/resource/db.vue
@@ -0,0 +1,293 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.label }} {{ data.description }}
+
+
+
+
+
+
+
+
+ {{dbInfo.name}}
+ {{ getDictLabel(store.appStore.dictList, "database_type",dbInfo.databaseType ) }}
+ {{ dbInfo.databaseName }}
+ {{ dbInfo.databaseIp }}
+ {{ dbInfo.databasePort }}
+ {{ getDictLabel(store.appStore.dictList, "database_status",dbInfo.status ) }}
+ {{ dbInfo.userName }}
+ {{ dbInfo.password }}
+ {{ dbInfo.jdbcUrl }}
+
+
+
+
+
+
+
+
+
+ 字段信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SQL 生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 新建查询
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-assets/resource/file-resource.vue b/src/views/data-assets/resource/file-resource.vue
new file mode 100644
index 0000000..4748e49
--- /dev/null
+++ b/src/views/data-assets/resource/file-resource.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+ 点击前往
+
+
+
+
+ {{ scope.row.size?convertSizeFormat(scope.row.size):'' }}
+
+
+
+
+
+ {{ props.row.description?props.row.description:'无描述信息!'}}
+
+
+
+
+
+
+
+ 下载
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-assets/resource/middle-db.vue b/src/views/data-assets/resource/middle-db.vue
new file mode 100644
index 0000000..29c392e
--- /dev/null
+++ b/src/views/data-assets/resource/middle-db.vue
@@ -0,0 +1,302 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.label }} {{ data.description }}
+
+
+
+
+
+
+
+
+ {{dbInfo.name}}
+ {{ dbInfo.databaseName }}
+ {{ dbInfo.userName }}
+ {{ dbInfo.password }}
+ {{ dbInfo.jdbcUrl }}
+
+
+
+
+
+
+
+
+
+ 字段信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SQL 生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 新建查询
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/cluster-configuration/add-or-update.vue b/src/views/data-development/cluster-configuration/add-or-update.vue
new file mode 100644
index 0000000..e3fbe1c
--- /dev/null
+++ b/src/views/data-development/cluster-configuration/add-or-update.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ Hadoop 配置
+
+
+
+ Flink 配置
+
+
+
+
+
+
+ 自定义配置
+
+
+
+
+
+
+
+
+
+ 基本配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 测试
+ 确定
+
+
+
+
+
diff --git a/src/views/data-development/cluster-configuration/index.vue b/src/views/data-development/cluster-configuration/index.vue
new file mode 100644
index 0000000..41345bb
--- /dev/null
+++ b/src/views/data-development/cluster-configuration/index.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+ {{scope.row.isAvailable?'是':'否'}}
+
+
+
+
+ {{scope.row.enabled?'是':'否'}}
+
+
+
+
+
+
+
+ 查看
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-development/cluster/add-or-update.vue b/src/views/data-development/cluster/add-or-update.vue
new file mode 100644
index 0000000..c111cbc
--- /dev/null
+++ b/src/views/data-development/cluster/add-or-update.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-development/cluster/index.vue b/src/views/data-development/cluster/index.vue
new file mode 100644
index 0000000..f8ef9c7
--- /dev/null
+++ b/src/views/data-development/cluster/index.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 心跳检测
+
+
+ 回收
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.status?'正常':'断开'}}
+
+
+
+
+ {{scope.row.autoRegisters?'自动':'手动'}}
+
+
+
+
+ {{scope.row.enabled?'是':'否'}}
+
+
+
+
+
+
+
+ 修改
+ 删除
+ Flink WebUI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/dim/index.vue b/src/views/data-development/dim/index.vue
new file mode 100644
index 0000000..9ded8fe
--- /dev/null
+++ b/src/views/data-development/dim/index.vue
@@ -0,0 +1,9 @@
+
+ 开发中。。。
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/dwd/index.vue b/src/views/data-development/dwd/index.vue
new file mode 100644
index 0000000..9ded8fe
--- /dev/null
+++ b/src/views/data-development/dwd/index.vue
@@ -0,0 +1,9 @@
+
+ 开发中。。。
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/dws/index.vue b/src/views/data-development/dws/index.vue
new file mode 100644
index 0000000..9ded8fe
--- /dev/null
+++ b/src/views/data-development/dws/index.vue
@@ -0,0 +1,9 @@
+
+ 开发中。。。
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/production/catalogue-add-or-update.vue b/src/views/data-development/production/catalogue-add-or-update.vue
new file mode 100644
index 0000000..95d4ce1
--- /dev/null
+++ b/src/views/data-development/production/catalogue-add-or-update.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-development/production/console-result.vue b/src/views/data-development/production/console-result.vue
new file mode 100644
index 0000000..1488d4c
--- /dev/null
+++ b/src/views/data-development/production/console-result.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
> Affected rows: {{item.count}}
+
> time: {{item.time}}ms
+
+
+
> rows: {{item.rowData.length}}
+
+
+
+
+
+
> time: {{item.time}}ms
+
+
+
> errorMsg:
+
+
+
> time: {{item.time}}ms
+
+
+
+
+
+
+
+
+ 注意:flinkSql只有在同步执行模式下,当执行配置勾选了预览结果并且最后一条语句为查询语句时才会有结果显示!
+
+
+ 获取最近一次任务执行返回的最新数据
+
+
没有获取到jobId,请自行排查原因(local模式下第一次可能获取不到,初始本地flink需要时间,有些语句不需要启动flink实例,也会导致无jobId)
+
+
> rows: {{flinkResult.rowData.length}}
+
+
+
+
+
+ 过程中的错误日志:
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/production/data-studio.vue b/src/views/data-development/production/data-studio.vue
new file mode 100644
index 0000000..4d37cf1
--- /dev/null
+++ b/src/views/data-development/production/data-studio.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/production/databases.vue b/src/views/data-development/production/databases.vue
new file mode 100644
index 0000000..d080ac6
--- /dev/null
+++ b/src/views/data-development/production/databases.vue
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.label }} {{ data.description }}
+
+
+
+
+
+
+
+
+ {{dbInfo.name}}
+ {{ getDictLabel(store.appStore.dictList, "database_type",dbInfo.databaseType ) }}
+ {{ dbInfo.databaseName }}
+ {{ dbInfo.databaseIp }}
+ {{ dbInfo.databasePort }}
+ {{ getDictLabel(store.appStore.dictList, "database_status",dbInfo.status ) }}
+ {{ dbInfo.userName }}
+ {{ dbInfo.password }}
+ {{ dbInfo.jdbcUrl }}
+
+
+
+
+
+
+
+
+
+ 字段信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SQL 生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/production/explainSql.vue b/src/views/data-development/production/explainSql.vue
new file mode 100644
index 0000000..46dc391
--- /dev/null
+++ b/src/views/data-development/production/explainSql.vue
@@ -0,0 +1,84 @@
+
+
+
+
+ 语法校验中。。。
+
+
+
{{resultColor == 'green'? '全部正确':'存在错误'}}
+
+
+
{{index}}
+
{{item.type?item.type:'errorType'}}
+
{{item.explainTrue?'语法正确':'语法错误'}}
+
{{item.parseTrue?'逻辑正确':'逻辑错误'}}
+
{{item.explainTime}}
+
+
+ {{item.sql?item.sql:'没有识别到有效sql'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/production/index.vue b/src/views/data-development/production/index.vue
new file mode 100644
index 0000000..ceddfa8
--- /dev/null
+++ b/src/views/data-development/production/index.vue
@@ -0,0 +1,1506 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 实时即未来,数睿通实时计算平台,让 Flink SQL 纵享丝滑,目前支持 Flink SQL 和 SQL 开发两种模式
+
+ 1. 前往数据开发—注册中心,注册集群
+ 2. 左侧目录维护作业目录结构,可以添加 Flink SQL 和 SQL 两种作业类型
+ 3. 编写 Flink SQL 或 SQL 任务代码,保存,运行,发布
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 螺旋编程极客
+
+ 点击前往
+
+
+
+
+
+
+ 数据库
+ 中台库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 作业配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 执行配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 日志信息
+
+
+
+
+
+
+
+
+ 结果
+
+
+
+
+
+
+
+
+ 作业运维
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加子目录
+ 创建作业
+ 重命名
+ 删除
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-development/production/middledb.vue b/src/views/data-development/production/middledb.vue
new file mode 100644
index 0000000..8b37a2d
--- /dev/null
+++ b/src/views/data-development/production/middledb.vue
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.label }} {{ data.description }}
+
+
+
+
+
+
+
+
+ {{dbInfo.name}}
+ {{ dbInfo.databaseName }}
+ {{ dbInfo.userName }}
+ {{ dbInfo.password }}
+ {{ dbInfo.jdbcUrl }}
+
+
+
+
+
+
+
+
+
+ 字段信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SQL 生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/production/readonly-studio.vue b/src/views/data-development/production/readonly-studio.vue
new file mode 100644
index 0000000..e7c9487
--- /dev/null
+++ b/src/views/data-development/production/readonly-studio.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/savepoints/index.vue b/src/views/data-development/savepoints/index.vue
new file mode 100644
index 0000000..f6369a9
--- /dev/null
+++ b/src/views/data-development/savepoints/index.vue
@@ -0,0 +1,91 @@
+
+
+ tips:当前 ~ 该条历史记录的所有 savepoint 记录;全部 ~ 该条记录对应作业的所有 savepoint 记录
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-development/schedule-record/flow-detail.vue b/src/views/data-development/schedule-record/flow-detail.vue
new file mode 100644
index 0000000..9f19f88
--- /dev/null
+++ b/src/views/data-development/schedule-record/flow-detail.vue
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 日志信息
+
+
+
+
+
+
+
+
+ 关联作业
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{nodeDataForm.properties.name}}
+
+
+
+ 节点信息
+
+
+ {{nodeDataForm.properties.name}}
+ {{nodeDataForm.properties.taskTypeVal}}
+ {{nodeDataForm.properties.weight}}
+ {{nodeDataForm.properties.failGoOn?'是':'否'}}
+ {{nodeDataForm.startTime}}
+ {{nodeDataForm.endTime}}
+
+
+ 正常
+
+ 未运行
+ 异常
+
+ {{nodeDataForm.properties.note}}
+
+
+ 节点日志
+
+
+
+
+ 关联作业
+
+
+
+
+
+
+
+
+
+ {{scheduleForm.name}}
+ {{scheduleForm.ifCycle?'是':'否'}}
+ {{scheduleForm.cron}}
+ {{scheduleForm.note}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/schedule-record/index.vue b/src/views/data-development/schedule-record/index.vue
new file mode 100644
index 0000000..7b155a5
--- /dev/null
+++ b/src/views/data-development/schedule-record/index.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+ 等待中
+ 运行中
+ 正常结束
+ 异常结束
+
+
+
+
+
+
+
+
+ 详情
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-development/schedule/FlowLink.js b/src/views/data-development/schedule/FlowLink.js
new file mode 100644
index 0000000..a77670f
--- /dev/null
+++ b/src/views/data-development/schedule/FlowLink.js
@@ -0,0 +1,19 @@
+/* import { BezierEdge, BezierEdgeModel } from "@logicflow/core"; */
+import { PolylineEdge, PolylineEdgeModel } from "@logicflow/core";
+
+class FlowLinkModel extends PolylineEdgeModel {
+ getEdgeStyle() {
+ const style = super.getEdgeStyle();
+ style.strokeWidth = 3;
+ style.stroke = this.isSelected ? '#ff7f0e' : '#999';
+ return style;
+ }
+}
+class FlowLink extends PolylineEdge {}
+
+export default {
+ type: 'flow-link',
+ view: FlowLink,
+ model: FlowLinkModel
+}
+
diff --git a/src/views/data-development/schedule/TaskNode.vue b/src/views/data-development/schedule/TaskNode.vue
new file mode 100644
index 0000000..f68d560
--- /dev/null
+++ b/src/views/data-development/schedule/TaskNode.vue
@@ -0,0 +1,43 @@
+
+
+
+
名称:{{properties.name}}
+
名称:{{properties.name.substring(0,10) + '...'}}
+
+
+
类型:{{properties.taskTypeVal}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/schedule/UserTaskNode.js b/src/views/data-development/schedule/UserTaskNode.js
new file mode 100644
index 0000000..4352640
--- /dev/null
+++ b/src/views/data-development/schedule/UserTaskNode.js
@@ -0,0 +1,93 @@
+// UserTaskNode.js
+import { HtmlNodeModel, HtmlNode } from "@logicflow/core";
+import { createApp, ref, h } from 'vue';
+import TaskNode from './TaskNode.vue';
+
+class UserTaskView extends HtmlNode {
+ constructor (props) {
+ super(props)
+ this.isMounted = false
+ this.r = h(TaskNode, {
+ properties: props.model.getProperties()
+ })
+ this.app = createApp({
+ render: () => this.r
+ })
+ }
+ setHtml(rootEl) {
+ if (!this.isMounted) {
+ this.isMounted = true
+ const node = document.createElement('div')
+ rootEl.appendChild(node)
+ this.app.mount(node)
+ } else {
+ this.r.component.props.properties = this.props.model.getProperties()
+ }
+ }
+ getText () {
+ return null
+ }
+}
+
+class UserTaskModel extends HtmlNodeModel {
+ setAttributes() {
+ this.width = 220;
+ this.height = 100;
+ this.text.editable = false;
+ }
+ initNodeData(data) {
+ super.initNodeData(data);
+ this.text.draggable = false; // 不允许文本被拖动
+ this.text.editable = false; // 不允许文本被编辑
+ const rule = {
+ message: "只允许从右边的锚点连出",
+ validate: (sourceNode, targetNode, sourceAnchor, targetAnchor) => {
+ /* console.log(sourceAnchor)
+ console.log(targetAnchor) */
+ return sourceAnchor.type === "right" && targetAnchor.type === "left";
+ }
+ };
+ this.sourceRules.push(rule);
+ }
+ /* getTextStyle() {
+ const style = super.getTextStyle();
+ style.fontSize = 12;
+ style.color = 'red';
+ return style;
+ } */
+ getAnchorStyle(anchorInfo) {
+ const style = super.getAnchorStyle(anchorInfo);
+ if (anchorInfo.type === 'left') {
+ style.stroke = "transparent";
+ style.fill = 'none'
+ style.hover.stroke = 'transpanrent'
+ } else {
+ style.fill = 'green'
+ }
+ return style;
+ }
+ getDefaultAnchor() {
+ const { width, height, x, y, id } = this;
+ return [
+ {
+ x: x - width / 2,
+ y,
+ type: 'left',
+ //edgeAddable: false, // 控制锚点是否可以从此锚点手动创建连线。默认为true。
+ id: `${id}_0`
+ },
+ {
+ x: x + width / 2,
+ y,
+ type: 'right',
+ id: `${id}_1`
+ },
+ ]
+ }
+}
+
+export default {
+ type: "UserTask",
+ view: UserTaskView,
+ model: UserTaskModel
+};
diff --git a/src/views/data-development/schedule/detail.vue b/src/views/data-development/schedule/detail.vue
new file mode 100644
index 0000000..d5e2333
--- /dev/null
+++ b/src/views/data-development/schedule/detail.vue
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{nodeDataForm.properties.name}}
+
+
+
+ {{nodeDataForm.properties.name}}
+ {{nodeDataForm.properties.taskTypeVal}}
+ {{nodeDataForm.properties.weight}}
+ {{nodeDataForm.properties.failGoOn?'是':'否'}}
+ {{nodeDataForm.properties.note}}
+
+
+
+
+
+
+
+ {{scheduleForm.name}}
+ {{scheduleForm.ifCycle?'是':'否'}}
+ {{scheduleForm.cron}}
+ {{scheduleForm.note}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/schedule/flow.vue b/src/views/data-development/schedule/flow.vue
new file mode 100644
index 0000000..3c4e903
--- /dev/null
+++ b/src/views/data-development/schedule/flow.vue
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 日志信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑调度
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-development/schedule/index.vue b/src/views/data-development/schedule/index.vue
new file mode 100644
index 0000000..80d0141
--- /dev/null
+++ b/src/views/data-development/schedule/index.vue
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+ {{scope.row.cron}}
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 执行
+ 发布
+ 取消发布
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-development/sys-config/index.vue b/src/views/data-development/sys-config/index.vue
new file mode 100644
index 0000000..0938bb9
--- /dev/null
+++ b/src/views/data-development/sys-config/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 提交
+ 取消
+
+
+
+
+
+
diff --git a/src/views/data-development/task-history/index.vue b/src/views/data-development/task-history/index.vue
new file mode 100644
index 0000000..07e0e77
--- /dev/null
+++ b/src/views/data-development/task-history/index.vue
@@ -0,0 +1,656 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+ {{ getDictLabel(store.appStore.dictList, "production_task_type", scope.row.dialect ) }}
+ {{ getDictLabel(store.appStore.dictList, "production_task_type", scope.row.dialect ) }}
+
+
+
+
+ {{ getDictLabel(store.appStore.dictList, "task_status", scope.row.status ) }}
+ {{ getDictLabel(store.appStore.dictList, "task_status", scope.row.status ) }}
+ {{ getDictLabel(store.appStore.dictList, "task_status", scope.row.status ) }}
+
+
+
+
+
+
+
+
+
+ {{ scope.row.instanceStatus }}
+
+
+ {{ scope.row.instanceStatus }}
+
+
+ {{ scope.row.instanceStatus }}
+
+
+ {{ scope.row.instanceStatus }}
+
+
+ {{ scope.row.instanceStatus }}
+
+
+
+
+
+
+
+ {{ scope.row.duration }}
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+
+ 作业信息
+ select结果
+ 作业错误日志
+ flink实例错误日志
+
+
+
+
+
+ 操作
+
+
+
+ savepoint触发
+ savepoint停止
+ 普通停止
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 作业代码
+
+
+
+
+
+ 实际执行的sql任务代码
+
+
tips:如果是 local,standalone 或 session 模式,没有勾选 insert 语句集,flink 会把每条 DML sql 解析为一个 job 执行,所以存在执行一次作业有多条任务记录的情况,每执行一次作业会产生唯一的执行编号,有些语句不会产生实例(如 desc 等),也就不存在实例 id
+
+
+ savepoint保存点列表
+
+
+
+
+
+ 配置信息
+
+
+
+
+ {{currentConfig.sqlDbType==1?'外部数据库':'中台库'}}
+
+
+ {{currentConfig.database.name}}
+ {{currentConfig.database.databaseName}}
+ {{currentConfig.database.userName}}
+ {{currentConfig.database.password}}
+ {{currentConfig.database.jdbcUrl}}
+
+
+ {{currentConfig.pvdataNum}}
+
+
+
+
+
+ {{ currentConfig.jobName }}
+ {{ currentRow.type }}
+ {{ currentConfig.useBatchModel }}
+ {{ currentConfig.useSqlFragment }}
+ {{ currentConfig.useStatementSet }}
+ {{ currentConfig.parallelism }}
+ {{ currentConfig.savePointStrategy }}
+ {{ currentConfig.savePointPath }}
+
+
+ {{ currentConfig.useResult }}
+ {{ currentConfig.useChangeLog }}
+ {{ currentConfig.useAutoCancel }}
+ {{ currentConfig.maxRowNum }}
+
+
+
+ {{ currentClusterInfo.cluster.alias }}
+ {{ currentClusterInfo.cluster.jobManagerHost }}
+ {{ currentClusterInfo.cluster.flinkVersion }}
+ {{ getDictLabel(store.appStore.dictList, "production_cluster_type", currentClusterInfo.cluster.type ) }}
+ {{ currentClusterInfo.cluster.autoRegisters }}
+ {{ currentClusterInfo.cluster.note }}
+
+
+
+
+
+
+ {{ currentClusterInfo.clusterConfiguration.name }}
+ {{ getDictLabel(store.appStore.dictList, "production_cluster_configuration_type", currentClusterInfo.clusterConfiguration.type ) }}
+ {{ currentClusterInfo.clusterConfiguration.configInfo.hadoopConfigPath }}
+ {{ currentClusterInfo.clusterConfiguration.configInfo.flinkLibPath }}
+ {{ currentClusterInfo.clusterConfiguration.configInfo.flinkConfigPath }}
+ {{ currentClusterInfo.clusterConfiguration.configInfo["taskmanager.numberOfTaskSlots"] }}
+ {{ currentClusterInfo.clusterConfiguration.configInfo["state.savepoints.dir"] }}
+ {{ currentClusterInfo.clusterConfiguration.configInfo["state.checkpoints.dir"] }}
+ {{ currentClusterInfo.clusterConfiguration.note }}
+
+
+
+
+
+
+ 异常信息
+
+
+
+ 作业错误日志
+
+
+
+
+
+
+
+ flink实例错误日志
+
+
+
tips:如果开启了 checkpoint 并且重启策略不是 none(默认每隔一段时间重启),flink 遇到错误会自行 restart 指定次数的任务,就算最终状态不是 falied,有错误日志也是正常的
+
+
+
+
+
+
+
+ select结果
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tips:如果开启了 checkpoint 并且重启策略不是 none(默认每隔一段时间重启),flink 遇到错误会自行 restart 指定次数的任务,就算最终状态不是 falied,有错误日志也是正常的
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-governance/data-blood/index.vue b/src/views/data-governance/data-blood/index.vue
new file mode 100644
index 0000000..bda78f6
--- /dev/null
+++ b/src/views/data-governance/data-blood/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+ 编辑
+ 保存
+ 前往查看
+ 取消
+
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard-code/add-or-update.vue b/src/views/data-governance/data-standard-code/add-or-update.vue
new file mode 100644
index 0000000..72b6341
--- /dev/null
+++ b/src/views/data-governance/data-standard-code/add-or-update.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard-code/index.vue b/src/views/data-governance/data-standard-code/index.vue
new file mode 100644
index 0000000..9dab023
--- /dev/null
+++ b/src/views/data-governance/data-standard-code/index.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard/add-or-update.vue b/src/views/data-governance/data-standard/add-or-update.vue
new file mode 100644
index 0000000..25c7aa9
--- /dev/null
+++ b/src/views/data-governance/data-standard/add-or-update.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard/index.vue b/src/views/data-governance/data-standard/index.vue
new file mode 100644
index 0000000..6235e05
--- /dev/null
+++ b/src/views/data-governance/data-standard/index.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+ 添加根目录
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加子项
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard/standard-check.vue b/src/views/data-governance/data-standard/standard-check.vue
new file mode 100644
index 0000000..f63387b
--- /dev/null
+++ b/src/views/data-governance/data-standard/standard-check.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+ 符合
+ 不符合
+
+
+
+
+
+
+ 标准字段未关联码表,无比对结果!
+
+
+
+
+
+ {{checkData.fillNum}}
+
+
+ {{checkData.notFullNum}}
+
+
+
+
+
+
+
+ 标准字段关联的码表没有数据,无比对结果!
+
+
+
+
+
+
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard/standard-edit.vue b/src/views/data-governance/data-standard/standard-edit.vue
new file mode 100644
index 0000000..b1a8854
--- /dev/null
+++ b/src/views/data-governance/data-standard/standard-edit.vue
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard/standard-info.vue b/src/views/data-governance/data-standard/standard-info.vue
new file mode 100644
index 0000000..c78f768
--- /dev/null
+++ b/src/views/data-governance/data-standard/standard-info.vue
@@ -0,0 +1,105 @@
+
+
+
+
+ {{dataForm.engName}}
+
+
+ {{dataForm.cnName}}
+
+
+
+
+
+
+
+
+ {{dataForm.dataLength}}
+
+
+ {{dataForm.dataPrecision}}
+
+
+
+
+
+ {{dataForm.note}}
+
+
+
+
+
+
+
+
+ 取消
+
+
+
+
+
diff --git a/src/views/data-governance/data-standard/standard.vue b/src/views/data-governance/data-standard/standard.vue
new file mode 100644
index 0000000..dee39cd
--- /dev/null
+++ b/src/views/data-governance/data-standard/standard.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ -
+ {{scope.row.codeNum}}
+
+
+
+
+
+
+
+
+
+ 码表数据
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/metadata-collect/add-or-update.vue b/src/views/data-governance/metadata-collect/add-or-update.vue
new file mode 100644
index 0000000..6a1c376
--- /dev/null
+++ b/src/views/data-governance/metadata-collect/add-or-update.vue
@@ -0,0 +1,200 @@
+
+
+
+ 基本配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 采集配置
+
+
+ 数据库
+ 中台库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/metadata-collect/index.vue b/src/views/data-governance/metadata-collect/index.vue
new file mode 100644
index 0000000..54ddb52
--- /dev/null
+++ b/src/views/data-governance/metadata-collect/index.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 全量
+ 增量
+
+
+
+
+
+
+
+
+ 未发布
+ 已发布
+
+
+
+
+
+
+
+
+ 查看
+ 采集记录
+ 执行
+ 发布
+ 取消发布
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/metadata-collect/info.vue b/src/views/data-governance/metadata-collect/info.vue
new file mode 100644
index 0000000..124c1eb
--- /dev/null
+++ b/src/views/data-governance/metadata-collect/info.vue
@@ -0,0 +1,152 @@
+
+
+
+ 基本配置
+
+ {{dataForm.name}}
+
+
+ {{getDictLabel(store.appStore.dictList, 'metadata_collect_strategy', dataForm.strategy)}}
+
+
+ {{getDictLabel(store.appStore.dictList, 'metadata_collect_type', dataForm.taskType)}}
+
+
+ {{dataForm.cron}}
+
+
+ {{dataForm.description}}
+
+ 采集配置
+
+
+ 数据库
+ 中台库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/metadata-collect/record.vue b/src/views/data-governance/metadata-collect/record.vue
new file mode 100644
index 0000000..e974569
--- /dev/null
+++ b/src/views/data-governance/metadata-collect/record.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 失败
+ 成功
+ 运行中
+
+
+
+
+
+
+
+ 实时日志
+ 错误日志
+ 删除
+
+
+
+
+
+
+
+
+ 获取最新日志
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/metadata-manage/add-or-update.vue b/src/views/data-governance/metadata-manage/add-or-update.vue
new file mode 100644
index 0000000..822d4ed
--- /dev/null
+++ b/src/views/data-governance/metadata-manage/add-or-update.vue
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 元数据属性
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/metadata-manage/index.vue b/src/views/data-governance/metadata-manage/index.vue
new file mode 100644
index 0000000..cc00718
--- /dev/null
+++ b/src/views/data-governance/metadata-manage/index.vue
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+ 添加子项
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-governance/metadata-manage/info.vue b/src/views/data-governance/metadata-manage/info.vue
new file mode 100644
index 0000000..846786b
--- /dev/null
+++ b/src/views/data-governance/metadata-manage/info.vue
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+
+ 基本信息
+
+
+
+
+ {{bisData.name}}
+ {{bisData.code}}
+ {{bisData.metamodel}}
+ {{bisData.path}}
+ {{ bisData.createTime }}
+ {{ bisData.description }}
+
+
+
+
+
+ {{item.value}}
+
+
+
+
+
+
+
+ 数据标准
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 标准检测
+ 关联
+ 取消关联
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-governance/metamodel/add-or-update.vue b/src/views/data-governance/metamodel/add-or-update.vue
new file mode 100644
index 0000000..4dcb70b
--- /dev/null
+++ b/src/views/data-governance/metamodel/add-or-update.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/metamodel/index.vue b/src/views/data-governance/metamodel/index.vue
new file mode 100644
index 0000000..200ccfa
--- /dev/null
+++ b/src/views/data-governance/metamodel/index.vue
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+ 添加子项
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-governance/metamodel/info.vue b/src/views/data-governance/metamodel/info.vue
new file mode 100644
index 0000000..e627fe3
--- /dev/null
+++ b/src/views/data-governance/metamodel/info.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+ 基本信息
+
+
+
+
+ {{bisData.name}}
+ {{bisData.code}}
+ {{bisData.builtin == 1?'内置元模型':'自定义元模型'}}
+ {{bisData.path}}
+ {{ getNameByUserId(store.appStore.sysUserList,bisData.creator) }}
+ {{ bisData.createTime }}
+ {{ bisData.description }}
+
+
+
+
+
+
+
+ 属性
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-governance/metamodel/property-add-or-update.vue b/src/views/data-governance/metamodel/property-add-or-update.vue
new file mode 100644
index 0000000..00d3529
--- /dev/null
+++ b/src/views/data-governance/metamodel/property-add-or-update.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/metamodel/property-info.vue b/src/views/data-governance/metamodel/property-info.vue
new file mode 100644
index 0000000..2d06071
--- /dev/null
+++ b/src/views/data-governance/metamodel/property-info.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/quality-config/add-or-update.vue b/src/views/data-governance/quality-config/add-or-update.vue
new file mode 100644
index 0000000..628542a
--- /dev/null
+++ b/src/views/data-governance/quality-config/add-or-update.vue
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dataForm.metadataStrs}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dataForm.relMetadataStr}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/quality-config/index.vue b/src/views/data-governance/quality-config/index.vue
new file mode 100644
index 0000000..7139519
--- /dev/null
+++ b/src/views/data-governance/quality-config/index.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ 已关闭
+ 已启用
+
+
+
+
+ 一次性任务
+ 周期性任务
+
+
+
+
+
+
+
+
+
+ 执行
+ 启用
+ 关闭
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/quality-rule/category-add-or-update.vue b/src/views/data-governance/quality-rule/category-add-or-update.vue
new file mode 100644
index 0000000..331429e
--- /dev/null
+++ b/src/views/data-governance/quality-rule/category-add-or-update.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-governance/quality-rule/index.vue b/src/views/data-governance/quality-rule/index.vue
new file mode 100644
index 0000000..fbe4998
--- /dev/null
+++ b/src/views/data-governance/quality-rule/index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+ 单选
+ 多选
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/quality-rule/rule-category.vue b/src/views/data-governance/quality-rule/rule-category.vue
new file mode 100644
index 0000000..2be48b8
--- /dev/null
+++ b/src/views/data-governance/quality-rule/rule-category.vue
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+
+
+
+ 添加根目录
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加子项
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/quality-task/index.vue b/src/views/data-governance/quality-task/index.vue
new file mode 100644
index 0000000..6ecc392
--- /dev/null
+++ b/src/views/data-governance/quality-task/index.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 检测记录
+ 错误日志
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/quality-task/task-column.vue b/src/views/data-governance/quality-task/task-column.vue
new file mode 100644
index 0000000..4ca1f1c
--- /dev/null
+++ b/src/views/data-governance/quality-task/task-column.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 未通过
+ 通过
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-governance/quality-task/task-table.vue b/src/views/data-governance/quality-task/task-table.vue
new file mode 100644
index 0000000..6e1f795
--- /dev/null
+++ b/src/views/data-governance/quality-task/task-table.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 详情
+ 错误日志
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-integrate/access/access-task-detail.vue b/src/views/data-integrate/access/access-task-detail.vue
new file mode 100644
index 0000000..b3c6b81
--- /dev/null
+++ b/src/views/data-integrate/access/access-task-detail.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.row.errorMsg?props.row.errorMsg:'无信息可查看!'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-integrate/access/access-task.vue b/src/views/data-integrate/access/access-task.vue
new file mode 100644
index 0000000..14c4e86
--- /dev/null
+++ b/src/views/data-integrate/access/access-task.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 实时日志
+ 同步结果
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 获取最新日志
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-integrate/access/add-or-update.vue b/src/views/data-integrate/access/add-or-update.vue
new file mode 100644
index 0000000..e3f110e
--- /dev/null
+++ b/src/views/data-integrate/access/add-or-update.vue
@@ -0,0 +1,741 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
说明:
+
+
(1) 支持正则表达式匹配,也可直接填写需要映射的表名。
+
+
(2) 当表名映射规则为空时,若接入方式为接入到ods层,会自动给表名添加ods_前缀,否则代表目标表名与源表名的名称相同; 不为空时,若接入方式为接入到ods层,会自动给映射的表名添加ods_前缀,否则与映射的表名一致。
+
+
(3) 当字段名映射规则记录为空时,代表目标表的字段名与源表名的字段名相同;不为空时,与映射的字段名一致。
+
+
(4) 若不想同步某个字段,填写源端字段之后,目标字段名映射留空即可。
+
+
+
添加表名映射
+
预览表名映射
+
+
+ 请点击"添加表名映射"按钮添加表名映射关系记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
添加字段名映射
+
预览字段名映射
+
+
+ 请点击"添加字段名映射"按钮添加字段名映射关系记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+ {{dataForm.taskName}}
+ {{dataForm.description}}
+
+
+ 实时同步
+
+
+ 一次性全量同步
+
+
+ 一次性全量周期性增量
+
+
+ {{dataForm.cron}}
+ [{{dataForm.sourceDatabaseId}}]{{dataForm.sourceDatabase.name}}
+
+
+ 包含表
+
+
+ 排除表
+
+
+
+ 所有物理表
+ {{item}}
+
+ [{{dataForm.targetDatabaseId}}]{{dataForm.targetDatabase.name}}
+ {{dataForm.targetOnlyCreate}}
+ {{dataForm.targetSyncExit}}
+ {{dataForm.targetDropTable}}
+ {{dataForm.targetDataSync}}
+ {{dataForm.targetIndexCreate}}
+ {{dataForm.targetLowerCase}}
+ {{dataForm.targetUpperCase}}
+ {{dataForm.targetAutoIncrement}}
+ {{dataForm.batchSize}}
+
+ [映射关系为空]
+
+
+ 表名匹配的正则名 |
+ 替换的目标值 |
+
+
+ {{item['fromPattern']}} |
+ {{item['toValue']}} |
+
+
+
+
+ [映射关系为空]
+
+
+ 字段名匹配的正则名 |
+ 替换的目标值 |
+
+
+ {{item['fromPattern']}} |
+ {{item['toValue']}} |
+
+
+
+
+
+
+
+
+ 上一步
+
+
+ 下一步
+
+
+ 提交
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-integrate/access/index.vue b/src/views/data-integrate/access/index.vue
new file mode 100644
index 0000000..ce293ca
--- /dev/null
+++ b/src/views/data-integrate/access/index.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+ {{ getDictLabel(store.appStore.dictList, "task_type", scope.row.taskType ) }}
+ {{ getDictLabel(store.appStore.dictList, "task_type", scope.row.taskType ) }}
+ {{ getDictLabel(store.appStore.dictList, "task_type", scope.row.taskType ) }}
+
+
+
+
+ {{scope.row.cron?scope.row.cron:'无'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 编辑
+ 发布
+ 取消发布
+ 执行
+ 执行记录
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-integrate/access/info.vue b/src/views/data-integrate/access/info.vue
new file mode 100644
index 0000000..d394f83
--- /dev/null
+++ b/src/views/data-integrate/access/info.vue
@@ -0,0 +1,165 @@
+
+
+
+
+ {{dataForm.taskName}}
+ {{dataForm.description}}
+
+
+ 接入ods贴源层
+
+
+ 自定义接入
+
+
+
+
+ 实时同步
+
+
+ 一次性全量同步
+
+
+ 一次性全量周期性增量
+
+
+ {{dataForm.cron}}
+ [{{dataForm.sourceDatabaseId}}]{{dataForm.sourceDatabase.name}}
+
+
+ 包含表
+
+
+ 排除表
+
+
+
+ 所有物理表
+ {{item}}
+
+ [{{dataForm.targetDatabaseId}}]{{dataForm.targetDatabase.name}}
+ {{dataForm.targetOnlyCreate}}
+ {{dataForm.targetSyncExit}}
+ {{dataForm.targetDropTable}}
+ {{dataForm.targetDataSync}}
+ {{dataForm.targetIndexCreate}}
+ {{dataForm.targetLowerCase}}
+ {{dataForm.targetUpperCase}}
+ {{dataForm.targetAutoIncrement}}
+ {{dataForm.batchSize}}
+
+ [映射关系为空]
+
+
+ 表名匹配的正则名 |
+ 替换的目标值 |
+
+
+ {{item['fromPattern']}} |
+ {{item['toValue']}} |
+
+
+
+
+ [映射关系为空]
+
+
+ 字段名匹配的正则名 |
+ 替换的目标值 |
+
+
+ {{item['fromPattern']}} |
+ {{item['toValue']}} |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-integrate/database/add-or-update.vue b/src/views/data-integrate/database/add-or-update.vue
new file mode 100644
index 0000000..dec4152
--- /dev/null
+++ b/src/views/data-integrate/database/add-or-update.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 测试
+ 确定
+
+
+
+
+
diff --git a/src/views/data-integrate/database/index.vue b/src/views/data-integrate/database/index.vue
new file mode 100644
index 0000000..ee146b2
--- /dev/null
+++ b/src/views/data-integrate/database/index.vue
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 库表
+ 测试
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
执行sql
+
+
+
若超过100条,只显示前100条数据!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-integrate/file-category/add-or-update.vue b/src/views/data-integrate/file-category/add-or-update.vue
new file mode 100644
index 0000000..3091332
--- /dev/null
+++ b/src/views/data-integrate/file-category/add-or-update.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-integrate/file-category/index.vue b/src/views/data-integrate/file-category/index.vue
new file mode 100644
index 0000000..15beaec
--- /dev/null
+++ b/src/views/data-integrate/file-category/index.vue
@@ -0,0 +1,131 @@
+
+
+
+
+ 添加根节点
+
+
+
+
+
+
{{ node.label }}
+
{{ node.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-integrate/file/add-or-update.vue b/src/views/data-integrate/file/add-or-update.vue
new file mode 100644
index 0000000..d8ade89
--- /dev/null
+++ b/src/views/data-integrate/file/add-or-update.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+ 选择文件
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-integrate/file/index.vue b/src/views/data-integrate/file/index.vue
new file mode 100644
index 0000000..91a6c0f
--- /dev/null
+++ b/src/views/data-integrate/file/index.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+ {{state.path}}
+
+
+
+ 点击前往
+
+
+
+
+ {{ scope.row.size?convertSizeFormat(scope.row.size):'' }}
+
+
+
+
+
+ {{ props.row.description?props.row.description:'无描述信息!'}}
+
+
+
+
+
+
+
+
+ 下载
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-integrate/ods/index.vue b/src/views/data-integrate/ods/index.vue
new file mode 100644
index 0000000..ef9c24b
--- /dev/null
+++ b/src/views/data-integrate/ods/index.vue
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ tips:此处显示的是通过数据接入同步的表,手动新增的不在范围内
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 表属性
+
+
+ {{state.currentRow.tableName}}
+ {{state.currentRow.remarks}}
+ 查看
+ {{state.currentRow.recentlySyncTime}}
+
+
+
+ 字段信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
若超过50条,只显示前50条数据!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-integrate/ods/ods-task-detail.vue b/src/views/data-integrate/ods/ods-task-detail.vue
new file mode 100644
index 0000000..c9af706
--- /dev/null
+++ b/src/views/data-integrate/ods/ods-task-detail.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-market/my-apply/index.vue b/src/views/data-market/my-apply/index.vue
new file mode 100644
index 0000000..9ded8fe
--- /dev/null
+++ b/src/views/data-market/my-apply/index.vue
@@ -0,0 +1,9 @@
+
+ 开发中。。。
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-market/resource/index.vue b/src/views/data-market/resource/index.vue
new file mode 100644
index 0000000..76fad41
--- /dev/null
+++ b/src/views/data-market/resource/index.vue
@@ -0,0 +1,338 @@
+
+
+
+
+
+ 资产目录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
查询
+
+
+
+
+
+ {{ item.code }}
+ {{ item.name }}
+
+
+
+
+
{{ curentNode.parentPath }}
+
+
+
+
{{ item.versionNo }}
+
+
+
+
{{ item.releaseTime }}
+
+
+
+
{{ item.createTime }}
+
+
+
+
{{ item.updateTime }}
+
+
+
+
{{ item.summary }}
+
+
+
+
+ 详情
+
+ 资源信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-market/service-check/index.vue b/src/views/data-market/service-check/index.vue
new file mode 100644
index 0000000..9ded8fe
--- /dev/null
+++ b/src/views/data-market/service-check/index.vue
@@ -0,0 +1,9 @@
+
+ 开发中。。。
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/api-config/add-or-update.vue b/src/views/data-service/api-config/add-or-update.vue
new file mode 100644
index 0000000..379e401
--- /dev/null
+++ b/src/views/data-service/api-config/add-or-update.vue
@@ -0,0 +1,321 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ipPortAddress}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 数据库
+ 中台库
+
+ 库表信息
+
+
+
+
+
+
+
+
+
+ sql分割符:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 开放
+ 私有
+
+
+
+
+
+
+
+
+ 取消
+ 提交
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-service/api-config/api-auth-detail.vue b/src/views/data-service/api-config/api-auth-detail.vue
new file mode 100644
index 0000000..87fdfe6
--- /dev/null
+++ b/src/views/data-service/api-config/api-auth-detail.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+ 不限次数
+ 指定次数
+
+
+
+
+
+
+ {{dataForm.requestedTimes}}
+
+
+ {{dataForm.requestedSuccessTimes}}
+
+
+ {{dataForm.requestedFailedTimes}}
+
+
+
+ 取消
+ 重置调用次数
+ 确定
+
+
+
+
+
diff --git a/src/views/data-service/api-config/api-auth.vue b/src/views/data-service/api-config/api-auth.vue
new file mode 100644
index 0000000..2999cfd
--- /dev/null
+++ b/src/views/data-service/api-config/api-auth.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+ 不限次数
+ 指定次数
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-service/api-config/api-test.vue b/src/views/data-service/api-config/api-test.vue
new file mode 100644
index 0000000..3fb8da4
--- /dev/null
+++ b/src/views/data-service/api-config/api-test.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+ token 申请:
+
+
+
+
+ 获取token
+
+ 请求地址:
+
+
+
+
+
+
+ 请求头:
+
+
+
+
+
+
+ 请求参数:
+
+
+
+
+ 点击请求
+
+ 响应结果:
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-service/api-config/app-info.vue b/src/views/data-service/api-config/app-info.vue
new file mode 100644
index 0000000..5a6b7ad
--- /dev/null
+++ b/src/views/data-service/api-config/app-info.vue
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+ {{basicDataForm.name}}
+
+
+ {{ipPortAddress}}{{basicDataForm.path}}
+
+
+ {{basicDataForm.type}}
+
+
+ {{basicDataForm.requestedTimes}}
+
+
+ {{basicDataForm.requestedSuccessTimes}}
+
+
+ {{basicDataForm.requestedFailedTimes}}
+
+
+ {{basicDataForm.note}}
+
+
+
+
+
+
+
+ 数据库
+ 中台库
+
+ 库表信息
+
+
+
+
+
+
+
+ {{apiSqlForm.sqlSeparator}}
+
+
+ {{apiSqlForm.openTrans == 1?'是':'否'}}
+
+
+ {{apiSqlForm.sqlMaxRow}}
+
+
+
+
+
+
+ {{apiSqlForm.contentType}}
+
+
+ {{apiSqlForm.previlege == 1?'私有':'开放'}}
+
+
+
+
+
+
+
+ 不限次数
+ 指定次数
+
+
+
+ {{authDataForm.requestTimes}}
+
+
+ tips:这里的调用次数指的是该应用下被授权的api的调用次数,并非总次数
+
+
+ {{authDataForm.requestedTimes}}
+
+
+ {{authDataForm.requestedSuccessTimes}}
+
+
+ {{authDataForm.requestedFailedTimes}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/data-service/api-config/index.vue b/src/views/data-service/api-config/index.vue
new file mode 100644
index 0000000..670fd58
--- /dev/null
+++ b/src/views/data-service/api-config/index.vue
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 导出文档
+
+
+
+
+
+ {{state.path}}
+
+
+
+
+
+
+ 未发布
+ 已发布
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+ 授权
+ 修改授权
+ 取消授权
+ 上线
+ 测试
+ 下线
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/api-config/json-studio.vue b/src/views/data-service/api-config/json-studio.vue
new file mode 100644
index 0000000..9ff0e0e
--- /dev/null
+++ b/src/views/data-service/api-config/json-studio.vue
@@ -0,0 +1,137 @@
+
+
+
+ SQL参数设置:
+
+
+
+
+ 格式化
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/api-config/param-studio.vue b/src/views/data-service/api-config/param-studio.vue
new file mode 100644
index 0000000..36fb393
--- /dev/null
+++ b/src/views/data-service/api-config/param-studio.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/api-config/sql-studio.vue b/src/views/data-service/api-config/sql-studio.vue
new file mode 100644
index 0000000..0e47f22
--- /dev/null
+++ b/src/views/data-service/api-config/sql-studio.vue
@@ -0,0 +1,367 @@
+
+
+
+
+
+
+
+

+

+
+
+ trim
+ if
+ where
+ foreach
+
+
+
+
+
+
+
+
+
+ 执行结果
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/api-group/add-or-update.vue b/src/views/data-service/api-group/add-or-update.vue
new file mode 100644
index 0000000..75852db
--- /dev/null
+++ b/src/views/data-service/api-group/add-or-update.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-service/api-group/index.vue b/src/views/data-service/api-group/index.vue
new file mode 100644
index 0000000..2ee6e9e
--- /dev/null
+++ b/src/views/data-service/api-group/index.vue
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+ 添加根目录
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加子目录
+ 重命名
+ 删除
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/app/add-or-update.vue b/src/views/data-service/app/add-or-update.vue
new file mode 100644
index 0000000..d3bfe45
--- /dev/null
+++ b/src/views/data-service/app/add-or-update.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/data-service/app/app-auth.vue b/src/views/data-service/app/app-auth.vue
new file mode 100644
index 0000000..3835f76
--- /dev/null
+++ b/src/views/data-service/app/app-auth.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+ 添加根目录
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/app/index.vue b/src/views/data-service/app/index.vue
new file mode 100644
index 0000000..feba874
--- /dev/null
+++ b/src/views/data-service/app/index.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 创建应用
+
+
+
+
+
+
+
+
+
+
+
+ API 授权
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/data-service/log/index.vue b/src/views/data-service/log/index.vue
new file mode 100644
index 0000000..04115d9
--- /dev/null
+++ b/src/views/data-service/log/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+ {{scope.row.status}}
+ {{scope.row.status}}
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/demo/cropper/index.vue b/src/views/demo/cropper/index.vue
new file mode 100644
index 0000000..145432b
--- /dev/null
+++ b/src/views/demo/cropper/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
![]()
+
+
+
+
+ 选择图片
+ 下载图片
+
+
+
+
+
+
+
diff --git a/src/views/demo/icons/index.vue b/src/views/demo/icons/index.vue
new file mode 100644
index 0000000..c0a873c
--- /dev/null
+++ b/src/views/demo/icons/index.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/demo/printJs/index.vue b/src/views/demo/printJs/index.vue
new file mode 100644
index 0000000..e3e57a2
--- /dev/null
+++ b/src/views/demo/printJs/index.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/src/views/demo/qrcode/index.vue b/src/views/demo/qrcode/index.vue
new file mode 100644
index 0000000..ada3033
--- /dev/null
+++ b/src/views/demo/qrcode/index.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/demo/wangeditor/index.vue b/src/views/demo/wangeditor/index.vue
new file mode 100644
index 0000000..b37cb2e
--- /dev/null
+++ b/src/views/demo/wangeditor/index.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/global-manage/layer/add-or-update.vue b/src/views/global-manage/layer/add-or-update.vue
new file mode 100644
index 0000000..79c9fbb
--- /dev/null
+++ b/src/views/global-manage/layer/add-or-update.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/global-manage/layer/index.vue b/src/views/global-manage/layer/index.vue
new file mode 100644
index 0000000..6cb27c4
--- /dev/null
+++ b/src/views/global-manage/layer/index.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/global-manage/project/add-or-update.vue b/src/views/global-manage/project/add-or-update.vue
new file mode 100644
index 0000000..7ba1cd2
--- /dev/null
+++ b/src/views/global-manage/project/add-or-update.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 测试数仓连通性
+ 确定
+
+
+
+
+
diff --git a/src/views/global-manage/project/add-project-user.vue b/src/views/global-manage/project/add-project-user.vue
new file mode 100644
index 0000000..f57a661
--- /dev/null
+++ b/src/views/global-manage/project/add-project-user.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/global-manage/project/index.vue b/src/views/global-manage/project/index.vue
new file mode 100644
index 0000000..2ac369d
--- /dev/null
+++ b/src/views/global-manage/project/index.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加成员
+ 成员列表
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/global-manage/project/project-user.vue b/src/views/global-manage/project/project-user.vue
new file mode 100644
index 0000000..e2b0f87
--- /dev/null
+++ b/src/views/global-manage/project/project-user.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/home.vue b/src/views/home.vue
new file mode 100644
index 0000000..e07f43d
--- /dev/null
+++ b/src/views/home.vue
@@ -0,0 +1,35 @@
+
+
+ 介绍
+ 前台基于Vue3、TypeScript、Element Plus、Vue Router、Pinia、Axios、i18n、Vite 等开发
+ 后台基于SpringCloudAlibaba、filnk、tidb、dbswitch、neo4j 等开发
+ 最新版数睿通数据中台,包含数据集成,数据开发,数据治理,数据资产,数据服务,数据集市六大模块,解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府等解决数据问题!
+
+
+ 系统采用 flink + dbswitch + neo4j + tidb 构建数据仓库,可满足实时计算和离线计算两种使用场景!
+ flink 负责数据实时同步,计算,流批一体化处理;dbswitch 负责离线数据的同步计算,支持 MYSQL/ORACLE/SQLSERVER/POSTGRESQL/GREENPLUM/MARIADB/DB2/DM/OSCAR/KINGBASE8/OSCAR/GBASE8A/HIVE/SQLITE3/SYBASE
+ tidb 负责存储海量数据,分为 ods,dim,dwd,dws,ads 五层:
+ ods:用于接收并处理需要存储至数据仓库系统的原始数据,其数据表的结构与原始数据所在的数据系统中的表结构一致,是数据仓库的数据准备区
+ dim:使用维度构建数据模型
+ dwd:通过企业的业务活动事件构建数据模型。基于具体业务事件的特点,构建最细粒度的明细数据事实表
+ dws:通过分析的主题对象构建数据模型。基于上层应用和产品的指标需求,构建公共粒度的汇总指标表
+ ads:用于存放数据产品个性化的统计指标数据,输出各种报表,提供数据服务
+
+
+
+ 交流和反馈
+ 技术解答、交流、反馈、建议等,请关注公众号 螺旋编程极客 联系作者进交流群,备注 “数睿通2.0” !
+
+
+
+
+
diff --git a/src/views/login/account.vue b/src/views/login/account.vue
new file mode 100644
index 0000000..0ad79e0
--- /dev/null
+++ b/src/views/login/account.vue
@@ -0,0 +1,104 @@
+
+
+ {{ $t('app.signIn') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('app.signIn') }}
+
+
+
+
+
+
+
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
new file mode 100644
index 0000000..35f2133
--- /dev/null
+++ b/src/views/login/index.vue
@@ -0,0 +1,108 @@
+
+
+
+
{{ $t('app.title') }}
+
+ {{ $t('app.description') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/login/mobile.vue b/src/views/login/mobile.vue
new file mode 100644
index 0000000..9f72bb7
--- /dev/null
+++ b/src/views/login/mobile.vue
@@ -0,0 +1,118 @@
+
+
+ {{ $t('app.signIn') }}
+
+
+
+
+
+ 发送验证码
+ {{ sms.count }} 秒后重新发送
+
+
+ {{ $t('app.signIn') }}
+
+
+
+
+
+
+
diff --git a/src/views/message/sms/log/detail.vue b/src/views/message/sms/log/detail.vue
new file mode 100644
index 0000000..5a55339
--- /dev/null
+++ b/src/views/message/sms/log/detail.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 失败
+ 成功
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
diff --git a/src/views/message/sms/log/index.vue b/src/views/message/sms/log/index.vue
new file mode 100644
index 0000000..07665c3
--- /dev/null
+++ b/src/views/message/sms/log/index.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/message/sms/platform/add-or-update.vue b/src/views/message/sms/platform/add-or-update.vue
new file mode 100644
index 0000000..3c1c5fa
--- /dev/null
+++ b/src/views/message/sms/platform/add-or-update.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/message/sms/platform/index.vue b/src/views/message/sms/platform/index.vue
new file mode 100644
index 0000000..36fd620
--- /dev/null
+++ b/src/views/message/sms/platform/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 测试
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/message/sms/platform/send.vue b/src/views/message/sms/platform/send.vue
new file mode 100644
index 0000000..1e7c538
--- /dev/null
+++ b/src/views/message/sms/platform/send.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 发送
+
+
+
+
+
diff --git a/src/views/profile/password.vue b/src/views/profile/password.vue
new file mode 100644
index 0000000..049e17d
--- /dev/null
+++ b/src/views/profile/password.vue
@@ -0,0 +1,64 @@
+
+
+
+
+ {{ store.userStore.user.username }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('confirm') }}
+
+
+
+
+
+
diff --git a/src/views/quartz/log/detail.vue b/src/views/quartz/log/detail.vue
new file mode 100644
index 0000000..0c8f081
--- /dev/null
+++ b/src/views/quartz/log/detail.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dataForm.times }}ms
+
+
+
+
+ 失败
+ 成功
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
diff --git a/src/views/quartz/log/index.vue b/src/views/quartz/log/index.vue
new file mode 100644
index 0000000..15e9eee
--- /dev/null
+++ b/src/views/quartz/log/index.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+ {{ scope.row.beanName }}.{{ scope.row.method }}()
+
+
+
+ 失败
+ 成功
+
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quartz/schedule/add-or-update.vue b/src/views/quartz/schedule/add-or-update.vue
new file mode 100644
index 0000000..8ff41c7
--- /dev/null
+++ b/src/views/quartz/schedule/add-or-update.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 允许
+ 禁止
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/quartz/schedule/index.vue b/src/views/quartz/schedule/index.vue
new file mode 100644
index 0000000..172ca30
--- /dev/null
+++ b/src/views/quartz/schedule/index.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+
+ 日志
+
+
+
+
+
+
+
+
+
+ {{scope.row.typeId?'是(不可编辑)':'否'}}
+
+
+
+ {{ scope.row.beanName }}.{{ scope.row.method }}()
+
+
+
+ 否
+ 是
+
+
+
+
+
+
+ 修改
+ 恢复
+ 暂停
+ 执行
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/attachment/index.vue b/src/views/sys/attachment/index.vue
new file mode 100644
index 0000000..6050442
--- /dev/null
+++ b/src/views/sys/attachment/index.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+ 上传
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+ {{ convertSizeFormat(scope.row.size) }}
+
+
+
+
+
+
+ 下载
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/dict/data-add-or-update.vue b/src/views/sys/dict/data-add-or-update.vue
new file mode 100644
index 0000000..97b6941
--- /dev/null
+++ b/src/views/sys/dict/data-add-or-update.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/sys/dict/data.vue b/src/views/sys/dict/data.vue
new file mode 100644
index 0000000..48560da
--- /dev/null
+++ b/src/views/sys/dict/data.vue
@@ -0,0 +1,72 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/dict/type-add-or-update.vue b/src/views/sys/dict/type-add-or-update.vue
new file mode 100644
index 0000000..d845c73
--- /dev/null
+++ b/src/views/sys/dict/type-add-or-update.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/sys/dict/type.vue b/src/views/sys/dict/type.vue
new file mode 100644
index 0000000..f113e3d
--- /dev/null
+++ b/src/views/sys/dict/type.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ 字典配置
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/log/login.vue b/src/views/sys/log/login.vue
new file mode 100644
index 0000000..0b3c6d3
--- /dev/null
+++ b/src/views/sys/log/login.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/menu/add-or-update.vue b/src/views/sys/menu/add-or-update.vue
new file mode 100644
index 0000000..103a35a
--- /dev/null
+++ b/src/views/sys/menu/add-or-update.vue
@@ -0,0 +1,255 @@
+
+
+
+
+
+ 菜单
+ 按钮
+ 接口
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 内部打开
+ 外部打开
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/sys/menu/index.vue b/src/views/sys/menu/index.vue
new file mode 100644
index 0000000..068fd76
--- /dev/null
+++ b/src/views/sys/menu/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/src/views/sys/org/add-or-update.vue b/src/views/sys/org/add-or-update.vue
new file mode 100644
index 0000000..89186b1
--- /dev/null
+++ b/src/views/sys/org/add-or-update.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/sys/org/index.vue b/src/views/sys/org/index.vue
new file mode 100644
index 0000000..de13899
--- /dev/null
+++ b/src/views/sys/org/index.vue
@@ -0,0 +1,41 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/post/add-or-update.vue b/src/views/sys/post/add-or-update.vue
new file mode 100644
index 0000000..07fdcce
--- /dev/null
+++ b/src/views/sys/post/add-or-update.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/sys/post/index.vue b/src/views/sys/post/index.vue
new file mode 100644
index 0000000..fa9418b
--- /dev/null
+++ b/src/views/sys/post/index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/role/add-or-update.vue b/src/views/sys/role/add-or-update.vue
new file mode 100644
index 0000000..24c8970
--- /dev/null
+++ b/src/views/sys/role/add-or-update.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/sys/role/data-scope.vue b/src/views/sys/role/data-scope.vue
new file mode 100644
index 0000000..d8e4a0b
--- /dev/null
+++ b/src/views/sys/role/data-scope.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/sys/role/index.vue b/src/views/sys/role/index.vue
new file mode 100644
index 0000000..dffefeb
--- /dev/null
+++ b/src/views/sys/role/index.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+ handleCommand(command, scope.row)">
+ 更多
+
+
+ 数据权限
+ 分配用户
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/role/user.vue b/src/views/sys/role/user.vue
new file mode 100644
index 0000000..a73d769
--- /dev/null
+++ b/src/views/sys/role/user.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/user/add-or-update.vue b/src/views/sys/user/add-or-update.vue
new file mode 100644
index 0000000..0b8004f
--- /dev/null
+++ b/src/views/sys/user/add-or-update.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
diff --git a/src/views/sys/user/index.vue b/src/views/sys/user/index.vue
new file mode 100644
index 0000000..522cd76
--- /dev/null
+++ b/src/views/sys/user/index.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..1637512
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "target": "esnext",
+ "useDefineForClassFields": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "strict": true,
+ "jsx": "preserve",
+// "allowJs": true,
+ "sourceMap": true,
+ "resolveJsonModule": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "lib": ["esnext", "dom"],
+ "types": [
+ "web-bluetooth",
+ "vite/client"
+ ],
+ "paths": {
+ "@/*": ["./src/*"]
+ },
+ "compilerOptions": {
+ "types": ["vite-plugin-svg-icons/client"]
+ }
+ },
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
+ "exclude": ["node_modules"]
+}
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 0000000..619a162
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,40 @@
+import { resolve } from 'path'
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
+import vueSetupExtend from 'vite-plugin-vue-setup-extend'
+
+// 参考:https://cn.vitejs.dev/config/
+export default defineConfig({
+ base: './',
+ resolve: {
+ // 配置别名
+ alias: {
+ '@': resolve(__dirname, './src'),
+ 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
+ }
+ },
+ plugins: [
+ vue(),
+ vueSetupExtend(),
+ createSvgIconsPlugin({
+ iconDirs: [resolve(__dirname, 'src/icons/svg')],
+ symbolId: 'icon-[dir]-[name]'
+ })
+ ],
+ server: {
+ host: '0.0.0.0',
+ port: 3000, // 端口号
+ open: false // 是否自动打开浏览器
+ },
+ optimizeDeps: {
+ include: [
+ `monaco-editor/esm/vs/language/json/json.worker`,
+ `monaco-editor/esm/vs/language/css/css.worker`,
+ `monaco-editor/esm/vs/language/html/html.worker`,
+ `monaco-editor/esm/vs/language/typescript/ts.worker`,
+ `monaco-editor/esm/vs/editor/editor.worker`
+ ],
+ }
+})