Compare commits

..

56 Commits

Author SHA1 Message Date
whyour a3cbf8cdf4 迁移文件 2023-01-04 17:04:02 +08:00
whyour 0eab181d46 修改update逻辑 2022-12-29 12:15:25 +08:00
whyour f6f95308c7 monaco editor改为本地加载 2022-12-28 22:12:37 +08:00
whyour e93cad91b4 更新版本 v2.15.4 2022-12-28 11:15:20 +08:00
whyour 08ee61b179 修改 pub 脚本 2022-12-28 11:14:57 +08:00
whyour 0ab756665e 修改版本文件 2022-12-28 11:06:47 +08:00
whyour 3570cddce0 关于增加更新日志查看 2022-12-27 17:10:21 +08:00
whyour a2d9f1a5db 脚本管理支持重命名文件/文件夹 2022-12-27 16:02:15 +08:00
whyour 0c6a214e55 修复启动public服务命令 2022-12-27 12:24:24 +08:00
whyour 095fcdbe69 修复任务脚本快捷跳转 2022-12-17 12:46:26 +08:00
whyour 3afb1d18f6 更新版本 v2.15.3 2022-12-10 19:06:39 +08:00
whyour 4526c84330 任务视图支持标签筛选 2022-12-10 19:00:03 +08:00
whyour a9cc1cb4b9 修改token获取逻辑 2022-12-10 17:12:45 +08:00
whyour 7acf1eace3 修改添加任务视图筛选条件交互 2022-12-09 23:34:23 +08:00
whyour bb2e8cb287 修复调试保存文件默认目录和任务视图创建 2022-12-09 22:59:38 +08:00
whyour 3b389259c1 修复调试脚本日志 2022-12-06 00:22:05 +08:00
whyour 310ce55b09 修改默认基础镜像 2022-12-05 23:49:33 +08:00
CoolBoy 4662e3fec2 修复notify.js中智能微秘书 (#1736) 2022-12-05 23:44:34 +08:00
whyour 10fab9d415 修改进程默认退出信号 2022-12-05 21:00:14 +08:00
whyour acecf01cbe 修复 killTask 返回值 2022-12-05 15:38:21 +08:00
whyour b95fb9cda4 修改退出进程逻辑 2022-12-05 15:26:22 +08:00
whyour 23fd595582 修改 timeout 命令默认信号 2022-12-05 13:18:10 +08:00
whyour 468d05cb10 更新版本 v2.15.2 2022-12-02 18:07:54 +08:00
whyour 88c2e5d160 更新 readme 2022-12-02 18:07:21 +08:00
whyour 8cf491b802 task 命令增加 -m 参数,支持设置任务超时时间 2022-12-01 18:26:24 +08:00
whyour 5886e78299 修复获取更新分支 2022-12-01 16:25:02 +08:00
whyour 591ef9781c 修改获取 cpu 占用 2022-12-01 16:16:17 +08:00
whyour 52fef96c1c 修改check逻辑 2022-11-30 21:29:58 +08:00
whyour d5fd9c57ec 修复shell语法 2022-11-29 22:50:11 +08:00
whyour 8a7d6a1c13 修改资源检查逻辑 2022-11-29 21:01:28 +08:00
whyour 1745c72981 修改 check/update 逻辑 2022-11-29 00:05:50 +08:00
whyour b98b7646cb 修复日志样式 2022-11-28 23:59:23 +08:00
whyour 1446e925ec 任务视图增加系统视图 2022-11-26 20:34:07 +08:00
whyour 799cda1e3e 移除未使用依赖 2022-11-24 22:09:33 +08:00
whyour d2e0231341 修改 workflow node_modules 缓存 2022-11-22 21:33:03 +08:00
whyour 9e0aa655a0 修改 workflow 依赖缓存 2022-11-22 21:00:53 +08:00
whyour e303c73d44 workflow 增加 digest 打印 2022-11-22 20:03:56 +08:00
whyour e5e8e66d6b 增加 docker action 缓存 2022-11-22 19:53:02 +08:00
whyour 0bb3381122 修复拉去仓库逻辑 2022-11-22 16:51:57 +08:00
whyour 2c5bf2bd6b 更新 readme 2022-11-22 14:42:27 +08:00
whyour 83763b00ae 上传 pnpm-lock 2022-11-22 13:41:39 +08:00
whyour 47fc795c97 增加action缓存 2022-11-22 13:37:44 +08:00
whyour 6a59bf7af3 更新版本 v2.15.1 2022-11-20 21:04:58 +08:00
whyour 6f185570d6 pushDeer支持自架版 2022-11-20 20:05:02 +08:00
whyour 8b8336d9d0 系统升级增加gitee源 2022-11-17 22:01:47 +08:00
whyour a1e1d6ed3f 更新 readme 2022-11-17 11:47:44 +08:00
whyour df3e209534 修改 workflow 2022-11-17 11:37:45 +08:00
whyour 851408860e 修复 workflow 2022-11-17 11:18:15 +08:00
whyour d92ea23b0e 修改 workflow 2022-11-17 11:11:05 +08:00
whyour d83641db92 修复workflow 2022-11-17 00:28:28 +08:00
whyour 48f262e1f3 增加 workflow 2022-11-17 00:23:24 +08:00
whyour bc49a7db50 同步gitee 2022-11-16 23:04:39 +08:00
whyour 49975b461c 修改typescript版本 2022-11-16 22:52:34 +08:00
whyour 3ccb635956 修复移动端最后更新时间展示 2022-11-16 22:34:28 +08:00
whyour 074a90e0ac 修改同步gitlab私钥 2022-11-16 00:02:40 +08:00
whyour 526f927436 增加 gitlab workflow 2022-11-15 23:55:28 +08:00
188 changed files with 18399 additions and 426 deletions
+55 -3
View File
@@ -17,16 +17,47 @@ on:
workflow_dispatch:
jobs:
to_gitlab:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: pixta-dev/repository-mirroring-action@v1
with:
target_repo_url:
git@gitlab.com:whyour/qinglong.git
ssh_private_key:
${{ secrets.GITLAB_SSH_PK }}
to_gitee:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: pixta-dev/repository-mirroring-action@v1
with:
target_repo_url:
git@gitee.com:whyour/qinglong.git
ssh_private_key:
${{ secrets.GITLAB_SSH_PK }}
build-static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
cache: 'pnpm'
- name: build front and back
run: |
npm i -g pnpm
pnpm install
pnpm install --frozen-lockfile
pnpm build:front
pnpm build:back
@@ -34,6 +65,9 @@ jobs:
env:
GITHUB_REPO: github.com/${{ github.repository_owner }}/qinglong-static
GITHUB_BRANCH: ${{ github.ref_name }}
REPO_GITEE: git@gitee.com:whyour/qinglong-static.git
REPO_GITLAB: git@gitlab.com:whyour/qinglong-static.git
PRIVATE_KEY: ${{ secrets.GITLAB_SSH_PK }}
run: |
mkdir -p tmp
cd ./tmp
@@ -44,6 +78,16 @@ jobs:
git commit --allow-empty -m "copy static at $(date +'%Y-%m-%d %H:%M:%S')"
git push --force --quiet "https://${{ secrets.API_TOKEN }}@${GITHUB_REPO}.git" ${GITHUB_BRANCH}:${GITHUB_BRANCH}
mkdir -p ~/.ssh
echo "${PRIVATE_KEY}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
export GIT_SSH_COMMAND="ssh -v -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -l git"
git remote add gitee "${REPO_GITEE}"
git remote add gitlab "${REPO_GITLAB}"
git push --force --quiet gitee ${GITHUB_BRANCH}:${GITHUB_BRANCH}
git push --force --quiet gitlab ${GITHUB_BRANCH}:${GITHUB_BRANCH}
build:
needs: build-static
@@ -55,7 +99,12 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
cache: 'pnpm'
- name: Setup timezone
uses: zcong1993/setup-timezone@master
@@ -98,7 +147,7 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
id: docker_build
uses: docker/build-push-action@v3
@@ -112,3 +161,6 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
+2 -2
View File
@@ -5,7 +5,6 @@
/npm-debug.log*
/yarn-error.log
/yarn.lock
/pnpm-lock.yaml
/package-lock.json
# production
@@ -29,4 +28,5 @@
/db
/manual_log
/scripts
/bak
/bak
node_modules
+8 -3
View File
@@ -22,7 +22,7 @@ Timed task management panel with python3, javaScript, shell, typescript support
[docker-image-size-url]: https://hub.docker.com/r/whyour/qinglong
</div>
[![](https://user-images.githubusercontent.com/22700758/161788855-c4e51cb8-d4e9-44fe-bb17-ee1a56c8549b.png)](https://whyour.cn)
[![](https://user-images.githubusercontent.com/22700758/203243067-1a8a570d-b1b4-4837-9f12-d78d83e31f35.jpg)](https://whyour.cn)
[简体中文](./README.md) | English
@@ -41,7 +41,7 @@ Timed task management panel with python3, javaScript, shell, typescript support
### Local Deployment
```bash
# To be completed
# To be refined, see the development steps first (not supported on windows yet)
```
### Podman Deployment
@@ -160,7 +160,11 @@ task <file_path> now
# the foreground does not generate the day, directly recorded in the log file, and can be specified account execution
task <file_path> conc <env_name> <account_number>(Optional)
# Specify the account to execute and run immediately regardless of whether a random delay is set
task <file_path> desi <env_name> <account_number>
task <file_path> desi <env_name> <account_number>
# Set task timeout
task -m <max_time> <file_path>
# Print task log in real time, no need to carry this parameter when creating timed tasks
task -l <file_path>
```
2. parameter description
@@ -175,6 +179,7 @@ task <file_path> desi <env_name> <account_number>
* file_path: File path for task execution
* env_name: The name of the environment variable that needs to be concurrent or specified at the time of task execution
* account_number: Specify the account number of an environment variable to be executed when the task is executed
* max_time: Timeout, suffix "s" for seconds (default), "m" for minutes, "h" for hours, "d" for days
## Links
+8 -3
View File
@@ -22,7 +22,7 @@
[docker-image-size-url]: https://hub.docker.com/r/whyour/qinglong
</div>
[![](https://user-images.githubusercontent.com/22700758/161788855-c4e51cb8-d4e9-44fe-bb17-ee1a56c8549b.png)](https://whyour.cn)
[![](https://user-images.githubusercontent.com/22700758/203243067-1a8a570d-b1b4-4837-9f12-d78d83e31f35.jpg)](https://whyour.cn)
简体中文 | [English](./README-en.md)
@@ -41,7 +41,7 @@
### 本机部署
```bash
# 待完善
# 待完善,可先参考开发步骤 (windows暂时不支持)
```
### podman 部署
@@ -159,7 +159,11 @@ task <file_path> now
# 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日,直接记录在日志文件中,且可指定账号执行
task <file_path> conc <env_name> <account_number>(可选的)
# 指定账号执行,无论是否设置了随机延迟,均立即运行
task <file_path> desi <env_name> <account_number>
task <file_path> desi <env_name> <account_number>
# 设置任务超时时间
task -m <max_time> <file_path>
# 实时打印任务日志,创建定时任务时,不用携带此参数
task -l <file_path>
```
2. 参数说明
@@ -175,6 +179,7 @@ task <file_path> desi <env_name> <account_number>
* file_path: 任务执行时的文件路径
* env_name: 任务执行时需要并发或者指定时的环境变量名称
* account_number: 任务执行时指定某个环境变量需要执行的账号序号
* max_time: 超时时间,后缀"s"代表秒(默认值), "m"代表分, "h"代表小时, "d"代表天
## 链接
+1 -1
View File
@@ -1,4 +1,4 @@
FROM python:alpine
FROM python:3.10-alpine
ARG QL_MAINTAINER="whyour"
LABEL maintainer="${QL_MAINTAINER}"
-6
View File
@@ -1,6 +0,0 @@
{
"watch": ["back", ".env"],
"ext": "js,ts,json",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node --transpile-only ./back/app.ts"
}
+10 -6
View File
@@ -2,9 +2,10 @@
"private": true,
"scripts": {
"start": "concurrently -n w: npm:start:*",
"start:front": "max dev",
"start:back": "nodemon",
"start:public": "ts-node back/public.ts",
"start:env": "pnpm run --filter @qinglong/env start",
"start:front": "pnpm run --filter @qinglong/web start",
"start:back": "pnpm run --filter @qinglong/back start",
"start:public": "pnpm run --filter @qinglong/public start",
"build:front": "max build",
"build:back": "tsc -p tsconfig.back.json",
"panel": "npm run build:back && node static/build/app.js",
@@ -69,13 +70,14 @@
"got": "^11.8.2",
"hpagent": "^0.1.2",
"iconv-lite": "^0.6.3",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^8.5.1",
"lodash": "^4.17.21",
"multer": "^1.4.4",
"nedb": "^1.8.0",
"node-schedule": "^2.1.0",
"nodemailer": "^6.7.2",
"p-queue": "7.2.0",
"pstree.remy": "^1.1.8",
"reflect-metadata": "^0.1.13",
"sequelize": "^6.25.5",
"serve-handler": "^6.1.3",
@@ -90,13 +92,14 @@
"devDependencies": {
"@ant-design/icons": "^4.7.0",
"@ant-design/pro-layout": "^6.33.1",
"@monaco-editor/react": "4.2.1",
"@monaco-editor/react": "4.4.6",
"@react-hook/resize-observer": "^1.2.6",
"@sentry/react": "^7.12.1",
"@types/body-parser": "^1.19.2",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
"@types/express-jwt": "^6.0.4",
"@types/js-yaml": "^4.0.5",
"@types/jsonwebtoken": "^8.5.8",
"@types/lodash": "^4.14.185",
"@types/multer": "^1.4.7",
@@ -120,6 +123,7 @@
"compression-webpack-plugin": "9.2.0",
"concurrently": "^7.0.0",
"lint-staged": "^13.0.3",
"monaco-editor": "^0.34.1",
"nodemon": "^2.0.15",
"prettier": "^2.5.1",
"qiniu": "^7.4.0",
@@ -136,7 +140,7 @@
"sockjs-client": "^1.6.0",
"ts-node": "^10.6.0",
"tslib": "^2.4.0",
"typescript": "^4.6.2",
"typescript": "4.8.4",
"umi-request": "^1.4.0",
"vh-check": "^2.0.5",
"webpack": "^5.70.0",
+6
View File
@@ -0,0 +1,6 @@
{
"watch": ["src", ".env"],
"ext": "js,ts,json",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node --transpile-only ./src/app.ts"
}
+138
View File
@@ -0,0 +1,138 @@
{
"name": "@qinglong/back",
"private": true,
"scripts": {
"start": "nodemon",
"build": "tsc"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,less,md,json}": [
"prettier --write"
],
"*.ts?(x)": [
"prettier --parser=typescript --write"
]
},
"pnpm": {
"peerDependencyRules": {
"ignoreMissing": [
"react",
"react-dom",
"antd",
"dva",
"postcss",
"webpack",
"eslint",
"stylelint",
"redux",
"@babel/core",
"monaco-editor",
"rc-field-form",
"@types/lodash.merge",
"rollup"
],
"allowedVersions": {
"react": "18",
"react-dom": "18",
"dva-core": "2"
}
}
},
"dependencies": {
"@otplib/preset-default": "^12.0.1",
"@sentry/node": "^7.12.1",
"@sentry/tracing": "^7.12.1",
"body-parser": "^1.19.2",
"celebrate": "^15.0.1",
"chokidar": "^3.5.3",
"cors": "^2.8.5",
"cron-parser": "^4.2.1",
"dayjs": "^1.11.2",
"dotenv": "^16.0.0",
"express": "^4.17.3",
"express-jwt": "^6.1.1",
"express-urlrewrite": "^1.4.0",
"form-data": "^4.0.0",
"got": "^11.8.2",
"hpagent": "^0.1.2",
"iconv-lite": "^0.6.3",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^8.5.1",
"lodash": "^4.17.21",
"multer": "^1.4.4",
"nedb": "^1.8.0",
"node-schedule": "^2.1.0",
"nodemailer": "^6.7.2",
"pstree.remy": "^1.1.8",
"reflect-metadata": "^0.1.13",
"sequelize": "^6.25.5",
"serve-handler": "^6.1.3",
"sockjs": "^0.3.24",
"sqlite3": "npm:@louislam/sqlite3@^15.0.6",
"toad-scheduler": "^1.6.0",
"typedi": "^0.10.0",
"uuid": "^8.3.2",
"winston": "^3.6.0",
"yargs": "^17.3.1"
},
"devDependencies": {
"@ant-design/icons": "^4.7.0",
"@ant-design/pro-layout": "^6.33.1",
"@monaco-editor/react": "4.4.6",
"@react-hook/resize-observer": "^1.2.6",
"@sentry/react": "^7.12.1",
"@types/body-parser": "^1.19.2",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
"@types/express-jwt": "^6.0.4",
"@types/js-yaml": "^4.0.5",
"@types/jsonwebtoken": "^8.5.8",
"@types/lodash": "^4.14.185",
"@types/multer": "^1.4.7",
"@types/nedb": "^1.8.12",
"@types/node": "^17.0.21",
"@types/node-schedule": "^1.3.2",
"@types/nodemailer": "^6.4.4",
"@types/qrcode.react": "^1.0.2",
"@types/react": "^18.0.20",
"@types/react-dom": "^18.0.6",
"@types/serve-handler": "^6.1.1",
"@types/sockjs": "^0.3.33",
"@types/sockjs-client": "^1.5.1",
"@types/uuid": "^8.3.4",
"@umijs/max": "^4.0.21",
"@umijs/ssr-darkreader": "^4.9.45",
"ansi-to-react": "^6.1.6",
"antd": "^4.23.0",
"antd-img-crop": "^4.2.3",
"codemirror": "^5.65.2",
"compression-webpack-plugin": "9.2.0",
"concurrently": "^7.0.0",
"lint-staged": "^13.0.3",
"monaco-editor": "^0.34.1",
"nodemon": "^2.0.15",
"prettier": "^2.5.1",
"qiniu": "^7.4.0",
"qrcode.react": "^1.0.1",
"query-string": "^7.1.1",
"rc-tween-one": "^3.0.6",
"react": "18.2.0",
"react-codemirror2": "^7.2.1",
"react-diff-viewer": "^3.1.1",
"react-dnd": "^14.0.2",
"react-dnd-html5-backend": "^14.0.0",
"react-dom": "18.2.0",
"react-split-pane": "^0.1.92",
"sockjs-client": "^1.6.0",
"ts-node": "^10.6.0",
"tslib": "^2.4.0",
"typescript": "4.8.4",
"umi-request": "^1.4.0",
"vh-check": "^2.0.5",
"webpack": "^5.70.0",
"yorkie": "^2.0.0"
}
}
@@ -58,8 +58,12 @@ export default (app: Router) => {
async (req: Request, res: Response, next: NextFunction) => {
try {
const cronViewService = Container.get(CronViewService);
const data = await cronViewService.update(req.body);
return res.send({ code: 200, data });
if (req.body.type === 1) {
return res.send({ code: 400, message: '参数错误' });
} else {
const data = await cronViewService.update(req.body);
return res.send({ code: 200, data });
}
} catch (e) {
return next(e);
}
@@ -53,7 +53,7 @@ export default (app: Router) => {
body: Joi.object({
filename: Joi.string().required(),
path: Joi.string().allow(''),
type: Joi.string().optional()
type: Joi.string().optional(),
}),
}),
async (req: Request, res: Response, next: NextFunction) => {
@@ -65,7 +65,7 @@ export default (app: Router) => {
};
const filePath = join(config.logPath, path, filename);
if (type === 'directory') {
emptyDir(filePath);
emptyDir(filePath);
} else {
fs.unlinkSync(filePath);
}
@@ -75,5 +75,4 @@ export default (app: Router) => {
}
},
);
};
@@ -170,7 +170,7 @@ export default (app: Router) => {
body: Joi.object({
filename: Joi.string().required(),
path: Joi.string().allow(''),
type: Joi.string().optional()
type: Joi.string().optional(),
}),
}),
async (req: Request, res: Response, next: NextFunction) => {
@@ -183,7 +183,7 @@ export default (app: Router) => {
};
const filePath = join(config.scriptPath, path, filename);
if (type === 'directory') {
emptyDir(filePath);
emptyDir(filePath);
} else {
fs.unlinkSync(filePath);
}
@@ -255,23 +255,50 @@ export default (app: Router) => {
celebrate({
body: Joi.object({
filename: Joi.string().required(),
content: Joi.string().optional().allow(''),
path: Joi.string().optional().allow(''),
pid: Joi.number().optional().allow(''),
}),
}),
async (req: Request, res: Response, next: NextFunction) => {
const logger: Logger = Container.get('logger');
try {
let { filename, content, path } = req.body;
let { filename, path, pid } = req.body;
const { name, ext } = parse(filename);
const filePath = join(config.scriptPath, path, `${name}.swap${ext}`);
const scriptService = Container.get(ScriptService);
const result = await scriptService.stopScript(filePath);
const result = await scriptService.stopScript(filePath, pid);
res.send(result);
} catch (e) {
return next(e);
}
},
);
route.put(
'/rename',
celebrate({
body: Joi.object({
filename: Joi.string().required(),
path: Joi.string().allow(''),
newFilename: Joi.string().required(),
}),
}),
async (req: Request, res: Response, next: NextFunction) => {
try {
let { filename, path, type, newFilename } = req.body as {
filename: string;
path: string;
type: string;
newFilename: string;
};
const filePath = join(config.scriptPath, path, filename);
const newPath = join(config.scriptPath, path, newFilename);
fs.renameSync(filePath, newPath);
res.send({ code: 200 });
} catch (e) {
return next(e);
}
},
);
};
@@ -7,7 +7,8 @@ import SystemService from '../services/system';
import { celebrate, Joi } from 'celebrate';
import UserService from '../services/user';
import { EnvModel } from '../data/env';
import { promiseExec } from '../config/util';
import { parseVersion, promiseExec } from '../config/util';
import dayjs from 'dayjs';
const route = Router();
@@ -20,12 +21,13 @@ export default (app: Router) => {
const userService = Container.get(UserService);
const authInfo = await userService.getUserInfo();
const envCount = await EnvModel.count();
const versionRegx = /.*export const version = \'(.*)\'\;/;
const currentVersionFile = fs.readFileSync(config.versionFile, 'utf8');
const version = currentVersionFile.match(versionRegx)![1];
const { version, changeLog, changeLogLink } = await parseVersion(
config.versionFile,
);
const lastCommitTime = (
await promiseExec(`cd ${config.rootPath} && git show -s --format=%ai | head -1`)
await promiseExec(
`cd ${config.rootPath} && git show -s --format=%ai | head -1`,
)
).replace('\n', '');
const lastCommitId = (
await promiseExec(`cd ${config.rootPath} && git rev-parse --short HEAD`)
@@ -50,9 +52,11 @@ export default (app: Router) => {
data: {
isInitialized,
version,
lastCommitTime,
lastCommitTime: dayjs(lastCommitTime).unix(),
lastCommitId,
branch,
changeLog,
changeLogLink,
},
});
} catch (e) {
@@ -1 +1 @@
export const LOG_END_SYMBOL = '\n          ';
export const LOG_END_SYMBOL = '\n          ';
@@ -6,7 +6,7 @@ process.env.NODE_ENV = process.env.NODE_ENV || 'development';
if (!process.env.QL_DIR) {
// 声明QL_DIR环境变量
let qlHomePath = path.join(__dirname, '../../');
let qlHomePath = path.join(__dirname, '../../../../');
// 生产环境
if (qlHomePath.endsWith('/static/')) {
qlHomePath = path.join(qlHomePath, '../');
@@ -14,7 +14,7 @@ if (!process.env.QL_DIR) {
process.env.QL_DIR = qlHomePath.replace(/\/$/g, '');
}
const lastVersionFile = `https://qn.whyour.cn/version.ts`;
const lastVersionFile = `https://qn.whyour.cn/version.yaml`;
const rootPath = process.env.QL_DIR as string;
const envFound = dotenv.config({ path: path.join(rootPath, '.env') });
@@ -40,7 +40,7 @@ const sqliteFile = path.join(samplePath, 'database.sqlite');
const authError = '错误的用户名密码,请重试';
const loginFaild = '请先登录!';
const configString = 'config sample crontab shareCode diy';
const versionFile = path.join(rootPath, 'src/version.ts');
const versionFile = path.join(rootPath, 'version.yaml');
if (envFound.error) {
throw new Error("⚠️ Couldn't find .env file ⚠️");
@@ -4,6 +4,9 @@ import got from 'got';
import iconv from 'iconv-lite';
import { exec } from 'child_process';
import FormData from 'form-data';
import psTreeFun from 'pstree.remy';
import { promisify } from 'util';
import { load } from 'js-yaml';
export function getFileContentByName(fileName: string) {
if (fs.existsSync(fileName)) {
@@ -287,15 +290,15 @@ enum FileType {
interface IFile {
title: string;
key: string;
type: 'directory' | 'file',
type: 'directory' | 'file';
parent: string;
mtime: number;
children?: IFile[],
children?: IFile[];
}
export function dirSort(a: IFile, b: IFile) {
if (a.type !== b.type) return FileType[a.type] < FileType[b.type] ? -1 : 1
else if (a.mtime !== b.mtime) return a.mtime > b.mtime ? -1 : 1
if (a.type !== b.type) return FileType[a.type] < FileType[b.type] ? -1 : 1;
else if (a.mtime !== b.mtime) return a.mtime > b.mtime ? -1 : 1;
}
export function readDirs(
@@ -452,3 +455,45 @@ export function parseBody(
return parsed;
}
export function psTree(pid: number): Promise<number[]> {
return new Promise((resolve, reject) => {
psTreeFun(pid, (err: any, pids: number[]) => {
if (err) {
reject(err);
}
resolve(pids.filter((x) => !isNaN(x)));
});
});
}
export async function killTask(pid: number) {
const pids = await psTree(pid);
// SIGALRM 14 时钟信号
if (pids.length) {
process.kill(pids[0], 14);
} else {
process.kill(pid, 14);
}
}
export async function getPid(name: string) {
let taskCommand = `ps -ef | grep "${name}" | grep -v grep | awk '{print $1}'`;
const execAsync = promisify(exec);
let pid = (await execAsync(taskCommand)).stdout;
return Number(pid);
}
interface IVersion {
version: string;
changeLogLink: string;
changeLog: string;
}
export async function parseVersion(path: string): Promise<IVersion> {
return load(await promisify(fs.readFile)(path, 'utf8')) as IVersion;
}
export async function parseContentVersion(content: string): Promise<IVersion> {
return load(content) as IVersion;
}
@@ -1,6 +1,11 @@
import { sequelize } from '.';
import { DataTypes, Model } from 'sequelize';
export enum CronViewType {
'系统' = 1,
'个人',
}
interface SortType {
type: 'ASC' | 'DESC';
value: string;
@@ -20,6 +25,7 @@ export class CrontabView {
filters?: FilterType[];
sorts?: SortType[];
filterRelation?: 'and' | 'or';
type?: CronViewType;
constructor(options: CrontabView) {
this.name = options.name;
@@ -29,6 +35,7 @@ export class CrontabView {
this.filters = options.filters;
this.sorts = options.sorts;
this.filterRelation = options.filterRelation;
this.type = options.type || CronViewType.;
}
}
@@ -50,5 +57,6 @@ export const CrontabViewModel = sequelize.define<CronViewInstance>(
type: DataTypes.STRING,
allowNull: true,
},
type: DataTypes.NUMBER,
},
);
@@ -41,6 +41,7 @@ export class ServerChanNotification extends NotificationBaseInfo {
export class PushDeerNotification extends NotificationBaseInfo {
public pushDeerKey = '';
public pushDeerUrl = '';
}
export class ChatNotification extends NotificationBaseInfo {
View File
@@ -10,7 +10,7 @@ import { fileExist } from '../config/util';
import { SubscriptionModel } from '../data/subscription';
import { CrontabViewModel } from '../data/cronView';
import config from '../config';
import { sequelize } from '../data'
import { sequelize } from '../data';
export default async () => {
try {
@@ -24,10 +24,17 @@ export default async () => {
// 初始化新增字段
try {
await sequelize.query('alter table CrontabViews add column filterRelation VARCHAR(255)')
await sequelize.query(
'alter table CrontabViews add column filterRelation VARCHAR(255)',
);
} catch (error) {}
try {
await sequelize.query('alter table Subscriptions add column proxy VARCHAR(255)')
await sequelize.query(
'alter table Subscriptions add column proxy VARCHAR(255)',
);
} catch (error) {}
try {
await sequelize.query('alter table CrontabViews add column type NUMBER');
} catch (error) {}
// 2.10-2.11 升级
@@ -8,13 +8,28 @@ import groupBy from 'lodash/groupBy';
import { DependenceModel } from '../data/dependence';
import { Op } from 'sequelize';
import config from '../config';
import { CrontabViewModel } from '../data/cronView';
import { CrontabViewModel, CronViewType } from '../data/cronView';
import { initPosition } from '../data/env';
export default async () => {
const cronService = Container.get(CronService);
const envService = Container.get(EnvService);
const dependenceService = Container.get(DependenceService);
// 初始化新增默认全部任务视图
CrontabViewModel.findAll({
where: { type: CronViewType., name: '全部任务' },
raw: true,
}).then((docs) => {
if (docs.length === 0) {
CrontabViewModel.create({
name: '全部任务',
type: CronViewType.,
position: initPosition / 2,
});
}
});
// 初始化更新所有任务状态为空闲
await CrontabModel.update(
{ status: CrontabStatus.idle },
@@ -4,8 +4,7 @@ import os from 'os';
import dotenv from 'dotenv';
import Logger from './logger';
import { fileExist } from '../config/util';
const rootPath = process.env.QL_DIR as string;;
const rootPath = process.env.QL_DIR as string;
const dataPath = path.join(rootPath, 'data/');
const configPath = path.join(dataPath, 'config/');
const scriptPath = path.join(dataPath, 'scripts/');
@@ -4,13 +4,11 @@ import * as Tracing from '@sentry/tracing';
import Logger from './logger';
import config from '../config';
import fs from 'fs';
import { parseVersion } from '../config/util';
export default ({ expressApp }: { expressApp: Application }) => {
const versionRegx = /.*export const version = \'(.*)\'\;/;
export default async ({ expressApp }: { expressApp: Application }) => {
const { version } = await parseVersion(config.versionFile);
const currentVersionFile = fs.readFileSync(config.versionFile, 'utf8');
const currentVersion = currentVersionFile.match(versionRegx)![1];
Sentry.init({
dsn: 'https://f4b5b55fb3c645b29a5dc2d70a1a4ef4@o1098464.ingest.sentry.io/6122819',
integrations: [
@@ -18,7 +16,7 @@ export default ({ expressApp }: { expressApp: Application }) => {
new Tracing.Integrations.Express({ app: expressApp }),
],
tracesSampleRate: 0.1,
release: currentVersion,
release: version,
});
expressApp.use(Sentry.Handlers.requestHandler());
@@ -5,13 +5,15 @@ import { Crontab, CrontabModel, CrontabStatus } from '../data/cron';
import { exec, execSync, spawn } from 'child_process';
import fs from 'fs';
import cron_parser from 'cron-parser';
import { getFileContentByName, concurrentRun, fileExist } from '../config/util';
import {
getFileContentByName,
concurrentRun,
fileExist,
killTask,
} from '../config/util';
import { promises, existsSync } from 'fs';
import { promisify } from 'util';
import { Op } from 'sequelize';
import { Op, where, col as colFn } from 'sequelize';
import path from 'path';
import dayjs from 'dayjs';
import { LOG_END_SYMBOL } from '../config/const';
@Service()
export default class CronService {
@@ -161,9 +163,23 @@ export default class CronService {
}
if (operate && operate2) {
q[property] = {
[operate2]: [
{ [operate]: `%${value}%` },
{ [operate]: `%${encodeURIComponent(value)}%` },
[Op.or]: [
{
[operate2]: [
{ [operate]: `%${value}%` },
{ [operate]: `%${encodeURIComponent(value)}%` },
],
},
{
[operate2]: [
where(colFn(property), operate, `%${value}%`),
where(
colFn(property),
operate,
`%${encodeURIComponent(value)}%`,
),
],
},
],
};
}
@@ -315,31 +331,11 @@ export default class CronService {
for (const doc of docs) {
if (doc.pid) {
try {
process.kill(-doc.pid);
await killTask(doc.pid);
} catch (error) {
this.logger.silly(error);
}
}
const err = await this.killTask(doc.command);
const absolutePath = path.resolve(config.logPath, `${doc.log_path}`);
const logFileExist = doc.log_path && (await fileExist(absolutePath));
const endTime = dayjs();
const diffTimeStr = doc.last_execution_time
? `,耗时 ${endTime.diff(
dayjs(doc.last_execution_time * 1000),
'second',
)}`
: '';
if (logFileExist) {
const str = err ? `\n${err}` : '';
fs.appendFileSync(
`${absolutePath}`,
`${str}\n## 执行结束... ${endTime.format(
'YYYY-MM-DD HH:mm:ss',
)}${diffTimeStr}${LOG_END_SYMBOL}`,
);
}
}
await CrontabModel.update(
@@ -348,42 +344,6 @@ export default class CronService {
);
}
public async killTask(name: string) {
let taskCommand = `ps -ef | grep "${name}" | grep -v grep | awk '{print $1}'`;
const execAsync = promisify(exec);
try {
let pid = (await execAsync(taskCommand)).stdout;
if (pid) {
pid = (await execAsync(`pstree -p ${pid}`)).stdout;
} else {
return;
}
let pids = pid.match(/\(\d+/g);
const killLogs = [];
if (pids && pids.length > 0) {
// node 执行脚本时还会有10个子进程,但是ps -ef中不存在,所以截取前三个
pids = pids.slice(0, 3);
for (const id of pids) {
const c = `kill -9 ${id.slice(1)}`;
try {
const { stdout, stderr } = await execAsync(c);
if (stderr) {
killLogs.push(stderr);
}
if (stdout) {
killLogs.push(stdout);
}
} catch (error: any) {
killLogs.push(error.message);
}
}
}
return killLogs.length > 0 ? JSON.stringify(killLogs) : '';
} catch (e) {
return JSON.stringify(e);
}
}
private async runSingle(cronId: number): Promise<number> {
return new Promise(async (resolve: any) => {
const cron = await this.getDb({ id: cronId });
@@ -123,8 +123,8 @@ export default class NotificationService {
}
private async pushDeer() {
const { pushDeerKey } = this.params;
const url = `https://api2.pushdeer.com/message/push`;
const { pushDeerKey, pushDeerUrl } = this.params;
const url = pushDeerUrl || `https://api2.pushdeer.com/message/push`;
const res: any = await got
.post(url, {
...this.gotOption,
@@ -42,7 +42,11 @@ export default class ScheduleService {
constructor(@Inject('logger') private logger: winston.Logger) {}
async runTask(command: string, callbacks: TaskCallbacks = {}) {
async runTask(
command: string,
callbacks: TaskCallbacks = {},
completionTime: 'start' | 'end' = 'end',
) {
return new Promise(async (resolve, reject) => {
try {
const startTime = dayjs();
@@ -52,6 +56,7 @@ export default class ScheduleService {
// TODO:
callbacks.onStart?.(cp, startTime);
completionTime === 'start' && resolve(cp.pid);
cp.stdout.on('data', async (data) => {
await callbacks.onLog?.(data.toString());
@@ -100,7 +105,6 @@ export default class ScheduleService {
error,
);
await callbacks.onError?.(JSON.stringify(error));
resolve(null);
}
});
}
@@ -7,6 +7,7 @@ import CronService from './cron';
import ScheduleService, { TaskCallbacks } from './schedule';
import config from '../config';
import { LOG_END_SYMBOL } from '../config/const';
import { getPid, killTask } from '../config/util';
@Service()
export default class ScriptService {
@@ -42,22 +43,24 @@ export default class ScriptService {
public async runScript(filePath: string) {
const relativePath = path.relative(config.scriptPath, filePath);
const command = `task -l ${relativePath} now`;
this.scheduleService.runTask(command, this.taskCallbacks(filePath));
const pid = await this.scheduleService.runTask(
command,
this.taskCallbacks(filePath),
'start',
);
return { code: 200 };
return { code: 200, data: pid };
}
public async stopScript(filePath: string) {
const relativePath = path.relative(config.scriptPath, filePath);
const err = await this.cronService.killTask(`task -l ${relativePath} now`);
const str = err ? `\n${err}` : '';
this.sockService.sendMessage({
type: 'manuallyRunScript',
message: `${str}\n## 执行结束... ${new Date()
.toLocaleString('zh', { hour12: false })
.replace(' 24:', ' 00:')}${LOG_END_SYMBOL}`,
});
public async stopScript(filePath: string, pid: number) {
let str = '';
if (!pid) {
const relativePath = path.relative(config.scriptPath, filePath);
pid = await getPid(`task -l ${relativePath} now`);
}
try {
await killTask(pid);
} catch (error) {}
return { code: 200 };
}
@@ -14,7 +14,7 @@ export default class SshKeyService {
private generatePrivateKeyFile(alias: string, key: string): void {
try {
fs.writeFileSync(`${this.sshPath}/${alias}`, key, {
fs.writeFileSync(`${this.sshPath}/${alias}`, `${key}${os.EOL}`, {
encoding: 'utf8',
mode: '400',
});
@@ -19,9 +19,9 @@ import {
concurrentRun,
fileExist,
createFile,
killTask,
} from '../config/util';
import { promises, existsSync } from 'fs';
import { promisify } from 'util';
import { Op } from 'sequelize';
import path from 'path';
import ScheduleService, { TaskCallbacks } from './schedule';
@@ -351,19 +351,16 @@ export default class SubscriptionService {
for (const doc of docs) {
if (doc.pid) {
try {
process.kill(-doc.pid);
await killTask(doc.pid);
} catch (error) {
this.logger.silly(error);
}
}
const command = this.formatCommand(doc);
const err = await this.killTask(command);
const absolutePath = await this.handleLogPath(doc.log_path as string);
const str = err ? `\n${err}` : '';
fs.appendFileSync(
`${absolutePath}`,
`${str}\n## 执行结束... ${dayjs().format(
`\n## 执行结束... ${dayjs().format(
'YYYY-MM-DD HH:mm:ss',
)}${LOG_END_SYMBOL}`,
);
@@ -375,41 +372,6 @@ export default class SubscriptionService {
);
}
public async killTask(name: string) {
let taskCommand = `ps -ef | grep "${name}" | grep -v grep | awk '{print $1}'`;
const execAsync = promisify(exec);
try {
let pid = (await execAsync(taskCommand)).stdout;
if (pid) {
pid = (await execAsync(`pstree -p ${pid}`)).stdout;
} else {
return;
}
let pids = pid.match(/\(\d+/g);
const killLogs = [];
if (pids && pids.length > 0) {
// node 执行脚本时还会有10个子进程,但是ps -ef中不存在,所以截取前三个
for (const id of pids) {
const c = `kill -9 ${id.slice(1)}`;
try {
const { stdout, stderr } = await execAsync(c);
if (stderr) {
killLogs.push(stderr);
}
if (stdout) {
killLogs.push(stdout);
}
} catch (error: any) {
killLogs.push(error.message);
}
}
}
return killLogs.length > 0 ? JSON.stringify(killLogs) : '';
} catch (e) {
return JSON.stringify(e);
}
}
private async runSingle(subscriptionId: number) {
const subscription = await this.getDb({ id: subscriptionId });
if (subscription.status !== SubscriptionStatus.queued) {
@@ -9,6 +9,7 @@ import ScheduleService from './schedule';
import { spawn } from 'child_process';
import SockService from './sock';
import got from 'got';
import { parseContentVersion, parseVersion } from '../config/util';
@Service()
export default class SystemService {
@@ -78,14 +79,9 @@ export default class SystemService {
public async checkUpdate() {
try {
const versionRegx = /.*export const version = \'(.*)\'\;/;
const logRegx = /.*export const changeLog = \`((.*\n.*)+)\`;/;
const currentVersionContent = await parseVersion(config.versionFile);
const currentVersionFile = fs.readFileSync(config.versionFile, 'utf8');
const currentVersion = currentVersionFile.match(versionRegx)![1];
let lastVersion = '';
let lastLog = '';
let lastVersionContent;
try {
const result = await got.get(
`${config.lastVersionFile}?t=${Date.now()}`,
@@ -93,19 +89,23 @@ export default class SystemService {
timeout: 30000,
},
);
const lastVersionFileContent = result.body;
lastVersion = lastVersionFileContent.match(versionRegx)![1];
lastLog = lastVersionFileContent.match(logRegx)
? lastVersionFileContent.match(logRegx)![1]
: '';
lastVersionContent = await parseContentVersion(result.body);
} catch (error) {}
if (!lastVersionContent) {
lastVersionContent = currentVersionContent;
}
return {
code: 200,
data: {
hasNewVersion: this.checkHasNewVersion(currentVersion, lastVersion),
lastVersion,
lastLog,
hasNewVersion: this.checkHasNewVersion(
currentVersionContent.version,
lastVersionContent.version,
),
lastVersion: lastVersionContent.version,
lastLog: lastVersionContent.changeLog,
lastLogLink: lastVersionContent.changeLogLink,
},
};
} catch (error: any) {
+9 -3
View File
@@ -5,6 +5,7 @@ import LoggerInstance from './loaders/logger';
import fs from 'fs';
import config from './config';
import path from 'path';
import os from 'os';
const tokenFile = path.join(config.configPath, 'token.json');
@@ -25,9 +26,14 @@ async function getToken() {
async function writeFile(data: any) {
return new Promise<void>((resolve, reject) => {
fs.writeFile(tokenFile, JSON.stringify(data), { encoding: 'utf8' }, () => {
resolve();
});
fs.writeFile(
tokenFile,
`${JSON.stringify(data)}${os.EOL}`,
{ encoding: 'utf8' },
() => {
resolve();
},
);
});
}
@@ -8,7 +8,7 @@
"./node_modules/celebrate/lib/index.d.ts"
],
"paths": {
"@/*": ["./back/*"],
"@/*": ["./back/*"]
},
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
+12
View File
@@ -0,0 +1,12 @@
declare module '*.css';
declare module '*.less';
declare module '*.png';
declare module '*.svg' {
export function ReactComponent(
props: React.SVGProps<SVGSVGElement>,
): React.ReactElement;
const url: string;
export default url;
}
declare module 'pstree.remy';
+6
View File
@@ -0,0 +1,6 @@
{
"watch": ["src"],
"ext": "js,ts,json",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node --transpile-only ./src/env.ts"
}
+16
View File
@@ -0,0 +1,16 @@
{
"name": "@qinglong/env",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon",
"build": "tsc"
},
"dependencies": {
"dotenv": "^16.0.0"
},
"keywords": [],
"author": "",
"license": "ISC"
}
+22
View File
@@ -0,0 +1,22 @@
import dotenv from 'dotenv';
import path from 'path';
if (!process.env.QL_DIR) {
// 声明QL_DIR环境变量
let qlHomePath = path.join(__dirname, '../../../');
// 生产环境
if (qlHomePath.endsWith('/static/')) {
qlHomePath = path.join(qlHomePath, '../');
}
process.env.QL_DIR = qlHomePath.replace(/\/$/g, '');
}
const rootPath = process.env.QL_DIR as string;
const envFound = dotenv.config({ path: path.join(rootPath, '.env') });
if (envFound.error) {
throw new Error("⚠️ Couldn't find .env file ⚠️");
}
const envs = process.env;
console.log(envs);
export default { ...envs };
+28
View File
@@ -0,0 +1,28 @@
{
"compilerOptions": {
"target": "es2017",
"lib": ["es2021", "esnext.asynciterable", "DOM"],
"typeRoots": [
"./node_modules/@types",
"./src/types",
"./node_modules/celebrate/lib/index.d.ts"
],
"paths": {
"@/*": ["./src/*"]
},
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"module": "commonjs",
"pretty": true,
"sourceMap": true,
"outDir": "./lib",
"allowJs": true,
"noEmit": false,
"esModuleInterop": true
},
"include": ["./src/**/*"],
"exclude": ["node_modules", "tests"]
}
+6
View File
@@ -0,0 +1,6 @@
{
"watch": ["src"],
"ext": "js,ts,json",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node --transpile-only ./src/public.ts"
}
+11
View File
@@ -0,0 +1,11 @@
{
"name": "@qinglong/public",
"private": true,
"scripts": {
"start": "nodemon",
"build": "tsc"
},
"dependencies": {
"@qinglong/env": "workspace:*"
}
}
@@ -1,7 +1,6 @@
import express from 'express';
import { exec } from 'child_process';
import Logger from './loaders/logger';
import config from './config';
import env from '@qinglong/env';
const app = express();
@@ -16,15 +15,11 @@ app.get('/api/public/panel/log', (req, res) => {
},
);
});
console.log(env);
app
.listen(config.publicPort, async () => {
await require('./loaders/sentry').default({ expressApp: app });
await require('./loaders/db').default();
Logger.debug(`✌️ 公共服务启动成功!`);
.listen(env.PUBLIC_PORT, async () => {
console.log('启动成功');
})
.on('error', (err) => {
Logger.error(err);
process.exit(1);
});
+28
View File
@@ -0,0 +1,28 @@
{
"compilerOptions": {
"target": "es2017",
"lib": ["es2021", "esnext.asynciterable", "DOM"],
"typeRoots": [
"./node_modules/@types",
"./src/types",
"./node_modules/celebrate/lib/index.d.ts"
],
"paths": {
"@/*": ["./back/*"]
},
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"module": "commonjs",
"pretty": true,
"sourceMap": true,
"outDir": "./static/build",
"allowJs": true,
"noEmit": false,
"esModuleInterop": true
},
"include": ["./back/**/*"],
"exclude": ["node_modules", "tests"]
}
+6
View File
@@ -0,0 +1,6 @@
{
"watch": ["src"],
"ext": "js,ts,json",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node --transpile-only ./src/public.ts"
}
+138
View File
@@ -0,0 +1,138 @@
{
"name": "@qinglong/schedule",
"private": true,
"scripts": {
"start": "nodemon",
"build": "tsc"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,less,md,json}": [
"prettier --write"
],
"*.ts?(x)": [
"prettier --parser=typescript --write"
]
},
"pnpm": {
"peerDependencyRules": {
"ignoreMissing": [
"react",
"react-dom",
"antd",
"dva",
"postcss",
"webpack",
"eslint",
"stylelint",
"redux",
"@babel/core",
"monaco-editor",
"rc-field-form",
"@types/lodash.merge",
"rollup"
],
"allowedVersions": {
"react": "18",
"react-dom": "18",
"dva-core": "2"
}
}
},
"dependencies": {
"@otplib/preset-default": "^12.0.1",
"@sentry/node": "^7.12.1",
"@sentry/tracing": "^7.12.1",
"body-parser": "^1.19.2",
"celebrate": "^15.0.1",
"chokidar": "^3.5.3",
"cors": "^2.8.5",
"cron-parser": "^4.2.1",
"dayjs": "^1.11.2",
"dotenv": "^16.0.0",
"express": "^4.17.3",
"express-jwt": "^6.1.1",
"express-urlrewrite": "^1.4.0",
"form-data": "^4.0.0",
"got": "^11.8.2",
"hpagent": "^0.1.2",
"iconv-lite": "^0.6.3",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^8.5.1",
"lodash": "^4.17.21",
"multer": "^1.4.4",
"nedb": "^1.8.0",
"node-schedule": "^2.1.0",
"nodemailer": "^6.7.2",
"pstree.remy": "^1.1.8",
"reflect-metadata": "^0.1.13",
"sequelize": "^6.25.5",
"serve-handler": "^6.1.3",
"sockjs": "^0.3.24",
"sqlite3": "npm:@louislam/sqlite3@^15.0.6",
"toad-scheduler": "^1.6.0",
"typedi": "^0.10.0",
"uuid": "^8.3.2",
"winston": "^3.6.0",
"yargs": "^17.3.1"
},
"devDependencies": {
"@ant-design/icons": "^4.7.0",
"@ant-design/pro-layout": "^6.33.1",
"@monaco-editor/react": "4.4.6",
"@react-hook/resize-observer": "^1.2.6",
"@sentry/react": "^7.12.1",
"@types/body-parser": "^1.19.2",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
"@types/express-jwt": "^6.0.4",
"@types/js-yaml": "^4.0.5",
"@types/jsonwebtoken": "^8.5.8",
"@types/lodash": "^4.14.185",
"@types/multer": "^1.4.7",
"@types/nedb": "^1.8.12",
"@types/node": "^17.0.21",
"@types/node-schedule": "^1.3.2",
"@types/nodemailer": "^6.4.4",
"@types/qrcode.react": "^1.0.2",
"@types/react": "^18.0.20",
"@types/react-dom": "^18.0.6",
"@types/serve-handler": "^6.1.1",
"@types/sockjs": "^0.3.33",
"@types/sockjs-client": "^1.5.1",
"@types/uuid": "^8.3.4",
"@umijs/max": "^4.0.21",
"@umijs/ssr-darkreader": "^4.9.45",
"ansi-to-react": "^6.1.6",
"antd": "^4.23.0",
"antd-img-crop": "^4.2.3",
"codemirror": "^5.65.2",
"compression-webpack-plugin": "9.2.0",
"concurrently": "^7.0.0",
"lint-staged": "^13.0.3",
"monaco-editor": "^0.34.1",
"nodemon": "^2.0.15",
"prettier": "^2.5.1",
"qiniu": "^7.4.0",
"qrcode.react": "^1.0.1",
"query-string": "^7.1.1",
"rc-tween-one": "^3.0.6",
"react": "18.2.0",
"react-codemirror2": "^7.2.1",
"react-diff-viewer": "^3.1.1",
"react-dnd": "^14.0.2",
"react-dnd-html5-backend": "^14.0.0",
"react-dom": "18.2.0",
"react-split-pane": "^0.1.92",
"sockjs-client": "^1.6.0",
"ts-node": "^10.6.0",
"tslib": "^2.4.0",
"typescript": "4.8.4",
"umi-request": "^1.4.0",
"vh-check": "^2.0.5",
"webpack": "^5.70.0",
"yorkie": "^2.0.0"
}
}
+28
View File
@@ -0,0 +1,28 @@
{
"compilerOptions": {
"target": "es2017",
"lib": ["es2021", "esnext.asynciterable", "DOM"],
"typeRoots": [
"./node_modules/@types",
"./src/types",
"./node_modules/celebrate/lib/index.d.ts"
],
"paths": {
"@/*": ["./back/*"]
},
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"module": "commonjs",
"pretty": true,
"sourceMap": true,
"outDir": "./static/build",
"allowJs": true,
"noEmit": false,
"esModuleInterop": true
},
"include": ["./back/**/*"],
"exclude": ["node_modules", "tests"]
}
+138
View File
@@ -0,0 +1,138 @@
{
"name": "@qinglong/web",
"private": true,
"scripts": {
"start": "max dev",
"build": "max build"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,less,md,json}": [
"prettier --write"
],
"*.ts?(x)": [
"prettier --parser=typescript --write"
]
},
"pnpm": {
"peerDependencyRules": {
"ignoreMissing": [
"react",
"react-dom",
"antd",
"dva",
"postcss",
"webpack",
"eslint",
"stylelint",
"redux",
"@babel/core",
"monaco-editor",
"rc-field-form",
"@types/lodash.merge",
"rollup"
],
"allowedVersions": {
"react": "18",
"react-dom": "18",
"dva-core": "2"
}
}
},
"dependencies": {
"@otplib/preset-default": "^12.0.1",
"@sentry/node": "^7.12.1",
"@sentry/tracing": "^7.12.1",
"body-parser": "^1.19.2",
"celebrate": "^15.0.1",
"chokidar": "^3.5.3",
"cors": "^2.8.5",
"cron-parser": "^4.2.1",
"dayjs": "^1.11.2",
"dotenv": "^16.0.0",
"express": "^4.17.3",
"express-jwt": "^6.1.1",
"express-urlrewrite": "^1.4.0",
"form-data": "^4.0.0",
"got": "^11.8.2",
"hpagent": "^0.1.2",
"iconv-lite": "^0.6.3",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^8.5.1",
"lodash": "^4.17.21",
"multer": "^1.4.4",
"nedb": "^1.8.0",
"node-schedule": "^2.1.0",
"nodemailer": "^6.7.2",
"pstree.remy": "^1.1.8",
"reflect-metadata": "^0.1.13",
"sequelize": "^6.25.5",
"serve-handler": "^6.1.3",
"sockjs": "^0.3.24",
"sqlite3": "npm:@louislam/sqlite3@^15.0.6",
"toad-scheduler": "^1.6.0",
"typedi": "^0.10.0",
"uuid": "^8.3.2",
"winston": "^3.6.0",
"yargs": "^17.3.1"
},
"devDependencies": {
"@ant-design/icons": "^4.7.0",
"@ant-design/pro-layout": "^6.33.1",
"@monaco-editor/react": "4.4.6",
"@react-hook/resize-observer": "^1.2.6",
"@sentry/react": "^7.12.1",
"@types/body-parser": "^1.19.2",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
"@types/express-jwt": "^6.0.4",
"@types/js-yaml": "^4.0.5",
"@types/jsonwebtoken": "^8.5.8",
"@types/lodash": "^4.14.185",
"@types/multer": "^1.4.7",
"@types/nedb": "^1.8.12",
"@types/node": "^17.0.21",
"@types/node-schedule": "^1.3.2",
"@types/nodemailer": "^6.4.4",
"@types/qrcode.react": "^1.0.2",
"@types/react": "^18.0.20",
"@types/react-dom": "^18.0.6",
"@types/serve-handler": "^6.1.1",
"@types/sockjs": "^0.3.33",
"@types/sockjs-client": "^1.5.1",
"@types/uuid": "^8.3.4",
"@umijs/max": "^4.0.21",
"@umijs/ssr-darkreader": "^4.9.45",
"ansi-to-react": "^6.1.6",
"antd": "^4.23.0",
"antd-img-crop": "^4.2.3",
"codemirror": "^5.65.2",
"compression-webpack-plugin": "9.2.0",
"concurrently": "^7.0.0",
"lint-staged": "^13.0.3",
"monaco-editor": "^0.34.1",
"nodemon": "^2.0.15",
"prettier": "^2.5.1",
"qiniu": "^7.4.0",
"qrcode.react": "^1.0.1",
"query-string": "^7.1.1",
"rc-tween-one": "^3.0.6",
"react": "18.2.0",
"react-codemirror2": "^7.2.1",
"react-diff-viewer": "^3.1.1",
"react-dnd": "^14.0.2",
"react-dnd-html5-backend": "^14.0.0",
"react-dom": "18.2.0",
"react-split-pane": "^0.1.92",
"sockjs-client": "^1.6.0",
"ts-node": "^10.6.0",
"tslib": "^2.4.0",
"typescript": "4.8.4",
"umi-request": "^1.4.0",
"vh-check": "^2.0.5",
"webpack": "^5.70.0",
"yorkie": "^2.0.0"
}
}

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

@@ -0,0 +1,9 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
import { Outlet, useOutletContext } from 'umi';
export default function EmptyRoute() {
const context = useOutletContext();
return <Outlet context={context} />;
}
@@ -0,0 +1,21 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
interface IDefaultRuntimeConfig {
onRouteChange?: (props: {
routes: any;
clientRoutes: any;
location: any;
action: any;
}) => void;
patchRoutes?: (props: { routes: any }) => void;
patchClientRoutes?: (props: { routes: any }) => void;
render?: (oldRender: () => void) => void;
rootContainer?: (lastRootContainer: JSX.Element, args?: any) => void;
[key: string]: any;
}
export type RuntimeConfig = IDefaultRuntimeConfig;
export function defineApp(config: RuntimeConfig): RuntimeConfig {
return config;
}
@@ -0,0 +1,66 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import {
createHashHistory,
createMemoryHistory,
createBrowserHistory,
History,
} from '/Users/whyour/resp/qinglong/node_modules/.pnpm/@umijs+renderer-react@4.0.21_ef5jwxihqo6n7gxfmzogljlgcm/node_modules/@umijs/renderer-react';
let history: History;
let basename: string = '/';
export function createHistory(opts: any) {
let h;
if (opts.type === 'hash') {
h = createHashHistory();
} else if (opts.type === 'memory') {
h = createMemoryHistory(opts);
} else {
h = createBrowserHistory();
}
if (opts.basename) {
basename = opts.basename;
}
history = {
...h,
push(to, state) {
h.push(patchTo(to), state);
},
replace(to, state) {
h.replace(patchTo(to), state);
},
get location() {
return h.location;
},
get action() {
return h.action;
},
};
return h;
}
// Patch `to` to support basename
// Refs:
// https://github.com/remix-run/history/blob/3e9dab4/packages/history/index.ts#L484
// https://github.com/remix-run/history/blob/dev/docs/api-reference.md#to
function patchTo(to: any) {
if (typeof to === 'string') {
return `${stripLastSlash(basename)}${to}`;
} else if (typeof to === 'object' && to.pathname) {
return {
...to,
pathname: `${stripLastSlash(basename)}${to.pathname}`,
};
} else {
throw new Error(`Unexpected to: ${to}`);
}
}
function stripLastSlash(path) {
return path.slice(-1) === '/' ? path.slice(0, -1) : path;
}
export { history };
@@ -0,0 +1,44 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import { PluginManager } from 'umi';
function __defaultExport(obj) {
if (obj.default) {
return typeof obj.default === 'function' ? obj.default() : obj.default;
}
return obj;
}
export function getPlugins() {
return [];
}
export function getValidKeys() {
return [
'patchRoutes',
'patchClientRoutes',
'modifyContextOpts',
'rootContainer',
'innerProvider',
'i18nProvider',
'accessProvider',
'dataflowProvider',
'outerProvider',
'render',
'onRouteChange',
'qiankun',
];
}
let pluginManager = null;
export function createPluginManager() {
pluginManager = PluginManager.create({
plugins: getPlugins(),
validKeys: getValidKeys(),
});
return pluginManager;
}
export function getPluginManager() {
return pluginManager;
}
+217
View File
@@ -0,0 +1,217 @@
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
// Created by Umi Plugin
export interface IConfigFromPlugins {
clientLoader?: {};
title?: string;
styles?: any[];
scripts?: any[];
routes?: {}[];
reactRouter5Compat?: {};
presets?: string[];
plugins?: string[];
npmClient?: 'pnpm' | 'tnpm' | 'cnpm' | 'yarn' | 'npm';
mountElementId?: string;
metas?: any[];
links?: any[];
historyWithQuery?: {};
history?: {
type?: 'browser' | 'hash' | 'memory';
};
headScripts?: any[];
conventionRoutes?: {
base?: string;
exclude?: any[];
};
base?: string;
writeToDisk?: boolean;
theme?: {};
targets?: {};
svgr?: {};
svgo?: {} | boolean;
styleLoader?: {};
srcTranspiler?: 'babel' | 'esbuild' | 'swc' | 'none';
sassLoader?: {};
runtimePublicPath?: {};
purgeCSS?: {};
publicPath?: string;
proxy?: {} | any[];
postcssLoader?: {};
outputPath?: string;
mfsu?:
| {
cacheDirectory?: string;
chainWebpack?: () => any;
esbuild?: boolean;
exclude?: any[];
include?: string[];
mfName?: string;
remoteAliases?: string[];
remoteName?: string;
runtimePublicPath?: boolean;
shared?: {};
strategy?: 'eager' | 'normal';
}
| boolean;
mdx?: {
loader?: string;
loaderOptions?: {};
};
manifest?: {};
lessLoader?: {};
jsMinifierOptions?: {};
jsMinifier?: 'esbuild' | 'swc' | 'terser' | 'uglifyJs' | 'none';
inlineLimit?: number;
ignoreMomentLocale?: boolean;
https?: {};
hash?: boolean;
forkTSChecker?: {};
fastRefresh?: boolean;
extraPostCSSPlugins?: any[];
extraBabelPresets?: any[];
extraBabelPlugins?: any[];
extraBabelIncludes?: any[];
externals?: {} | string | (() => any);
esm?: {};
devtool?: string | boolean;
depTranspiler?: 'babel' | 'esbuild' | 'swc' | 'none';
define?: {};
deadCode?: {};
cssMinifierOptions?: {};
cssMinifier?: 'cssnano' | 'esbuild' | 'parcelCSS' | 'none';
cssLoaderModules?: {};
cssLoader?: {};
copy?: any[];
chainWebpack?: () => any;
cacheDirectoryPath?: string;
babelLoaderCustomize?: string;
autoprefixer?: {};
autoCSSModules?: boolean;
alias?: {};
crossorigin?:
| boolean
| {
include?: {}[];
};
esmi?: {
cdnOrigin?: string;
shimUrl?: string;
};
favicons?: string[];
mock?: {
exclude?: string[];
include?: string[];
};
mpa?: {
template?: string;
getConfigFromEntryFile?: boolean;
};
polyfill?: {
imports?: string[];
};
routePrefetch?: {};
ssr?: {
serverBuildPath?: string;
platform?: string;
};
terminal?: {};
tmpFiles?: boolean;
lowImport?: {
libs?: any[];
css?: string;
};
vite?: {};
apiRoute?: {
platform?: string;
};
monorepoRedirect?:
| boolean
| {
srcDir?: string[];
exclude?: {}[];
};
clickToComponent?: {
editor?: string;
};
legacy?: {
buildOnly?: boolean;
nodeModulesTransform?: boolean;
};
verifyCommit?: {
scope?: string[];
allowEmoji?: boolean;
};
run?: {
globals?: string[];
};
access?: {} | boolean;
analytics?: {} | boolean;
antd?:
| {
configProvider?: {};
dark?: boolean;
compact?: boolean;
import?: boolean;
style?: 'less' | 'css';
}
| boolean;
dva?:
| {
extraModels?: string[];
immer?: {};
}
| boolean;
initialState?:
| {
loading?: string;
}
| boolean;
layout?: {} | boolean;
locale?:
| {
default?: string;
useLocalStorage?: boolean;
baseNavigator?: boolean;
title?: boolean;
antd?: boolean;
baseSeparator?: string;
}
| boolean;
mf?: {
name?: string;
remotes?: {
aliasName?: string;
name?: string;
entry?: string;
entries?: {};
keyResolver?: string;
}[];
shared?: {};
library?: {};
};
model?:
| {
extraModels?: string[];
}
| boolean;
moment2dayjs?:
| {
preset?: string;
plugins?: any[];
}
| boolean;
qiankun?:
| {
slave?: {};
master?: {};
externalQiankun?: boolean;
}
| boolean;
request?:
| {
dataField?: '';
}
| boolean;
tailwindcss?: {} | boolean;
}
@@ -0,0 +1,392 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.description.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.async-iterator.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.has-instance.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.iterator.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.match.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.match-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.replace.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.search.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.species.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.split.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.to-primitive.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.to-string-tag.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.symbol.unscopables.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.error.cause.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.error.to-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.aggregate-error.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.aggregate-error.cause.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.concat.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.copy-within.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.fill.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.find-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.flat.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.flat-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.includes.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.index-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.is-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.iterator.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.join.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.last-index-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.reduce-right.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.reverse.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.slice.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.sort.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.species.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.splice.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.unscopables.flat.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.unscopables.flat-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array-buffer.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array-buffer.is-view.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array-buffer.slice.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.data-view.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.get-year.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.now.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.set-year.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.to-gmt-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.to-iso-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.to-json.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.to-primitive.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.date.to-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.escape.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.function.bind.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.function.has-instance.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.function.name.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.global-this.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.json.stringify.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.json.to-string-tag.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.acosh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.asinh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.atanh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.cbrt.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.clz32.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.cosh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.expm1.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.fround.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.hypot.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.imul.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.log10.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.log1p.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.log2.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.sign.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.sinh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.tanh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.to-string-tag.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.math.trunc.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.epsilon.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.is-finite.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.is-integer.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.is-nan.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.is-safe-integer.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.max-safe-integer.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.min-safe-integer.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.parse-float.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.parse-int.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.to-exponential.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.to-fixed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.number.to-precision.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.assign.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.create.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.define-getter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.define-properties.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.define-property.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.define-setter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.entries.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.freeze.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.from-entries.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.get-own-property-descriptor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.get-own-property-descriptors.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.get-own-property-names.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.get-prototype-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.has-own.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.is.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.is-extensible.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.is-frozen.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.is-sealed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.lookup-getter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.lookup-setter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.prevent-extensions.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.seal.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.set-prototype-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.to-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.values.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.parse-float.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.parse-int.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.promise.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.promise.all-settled.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.promise.any.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.promise.finally.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.apply.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.construct.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.define-property.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.delete-property.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.get.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.get-prototype-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.has.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.is-extensible.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.own-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.prevent-extensions.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.set.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.set-prototype-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.to-string-tag.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.dot-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.exec.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.flags.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.sticky.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.test.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.to-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.set.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.at-alternative.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.code-point-at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.ends-with.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.from-code-point.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.includes.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.iterator.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.match.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.match-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.pad-end.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.pad-start.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.raw.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.repeat.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.replace.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.replace-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.search.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.split.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.starts-with.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.substr.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.trim.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.trim-end.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.trim-start.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.anchor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.big.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.blink.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.bold.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.fixed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.fontcolor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.fontsize.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.italics.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.link.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.small.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.strike.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.sub.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.sup.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.float32-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.float64-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.int8-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.int16-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.int32-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.uint8-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.uint16-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.uint32-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.copy-within.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.fill.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.find-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.includes.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.index-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.iterator.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.join.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.last-index-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.reduce-right.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.reverse.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.set.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.slice.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.sort.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.subarray.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.to-locale-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.to-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.unescape.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.weak-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.weak-set.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.from-async.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.filter-out.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.filter-reject.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.find-last.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.find-last-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.group-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.group-by-to-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.is-template-object.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.last-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.last-item.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.to-reversed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.to-sorted.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.to-spliced.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.unique-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.with.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.drop.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.flat-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.take.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.to-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.bigint.range.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.composite-key.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.composite-symbol.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.function.is-callable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.function.is-constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.function.un-this.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.drop.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.flat-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.take.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.to-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.to-async.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.emplace.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.find-key.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.group-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.includes.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.key-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.key-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.map-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.map-values.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.merge.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.update.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.update-or-insert.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.upsert.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.clamp.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.deg-per-rad.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.degrees.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.fscale.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.iaddh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.imulh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.isubh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.rad-per-deg.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.radians.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.scale.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.seeded-prng.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.signbit.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.umulh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.number.from-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.number.range.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.object.iterate-entries.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.object.iterate-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.object.iterate-values.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.observable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.promise.try.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.define-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.delete-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.has-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.add-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.difference.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.intersection.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.is-disjoint-from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.is-subset-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.is-superset-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.join.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.symmetric-difference.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.union.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.string.at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.string.cooked.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.string.code-points.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.async-dispose.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.dispose.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.matcher.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.observable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.pattern-match.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.replace-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.from-async.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.filter-out.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.filter-reject.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.find-last.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.find-last-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.group-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.to-reversed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.to-sorted.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.to-spliced.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.unique-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.with.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.emplace.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.upsert.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.add-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.atob.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.btoa.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.dom-collections.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.dom-collections.iterator.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.dom-exception.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.dom-exception.stack.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.dom-exception.to-string-tag.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.immediate.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.queue-microtask.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.structured-clone.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.timers.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.url.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.url.to-json.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.url-search-params.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/regenerator-runtime@0.13.9/node_modules/regenerator-runtime/runtime.js';
export {};
@@ -0,0 +1,421 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
export async function getRoutes() {
return {
routes: {
'crontab/viewCreateModal': {
path: 'crontab/viewCreateModal',
id: 'crontab/viewCreateModal',
parentId: '@@/global-layout',
file: 'crontab/viewCreateModal.tsx',
},
'crontab/viewManageModal': {
path: 'crontab/viewManageModal',
id: 'crontab/viewManageModal',
parentId: '@@/global-layout',
file: 'crontab/viewManageModal.tsx',
},
'subscription/logModal': {
path: 'subscription/logModal',
id: 'subscription/logModal',
parentId: '@@/global-layout',
file: 'subscription/logModal.tsx',
},
'initialization/index': {
path: 'initialization',
id: 'initialization/index',
parentId: '@@/global-layout',
file: 'initialization/index.tsx',
},
'script/editNameModal': {
path: 'script/editNameModal',
id: 'script/editNameModal',
parentId: '@@/global-layout',
file: 'script/editNameModal.tsx',
},
'setting/notification': {
path: 'setting/notification',
id: 'setting/notification',
parentId: '@@/global-layout',
file: 'setting/notification.tsx',
},
'dependence/logModal': {
path: 'dependence/logModal',
id: 'dependence/logModal',
parentId: '@@/global-layout',
file: 'dependence/logModal.tsx',
},
'setting/checkUpdate': {
path: 'setting/checkUpdate',
id: 'setting/checkUpdate',
parentId: '@@/global-layout',
file: 'setting/checkUpdate.tsx',
},
'subscription/index': {
path: 'subscription',
id: 'subscription/index',
parentId: '@@/global-layout',
file: 'subscription/index.tsx',
},
'subscription/modal': {
path: 'subscription/modal',
id: 'subscription/modal',
parentId: '@@/global-layout',
file: 'subscription/modal.tsx',
},
'env/editNameModal': {
path: 'env/editNameModal',
id: 'env/editNameModal',
parentId: '@@/global-layout',
file: 'env/editNameModal.tsx',
},
'crontab/logModal': {
path: 'crontab/logModal',
id: 'crontab/logModal',
parentId: '@@/global-layout',
file: 'crontab/logModal.tsx',
},
'dependence/index': {
path: 'dependence',
id: 'dependence/index',
parentId: '@@/global-layout',
file: 'dependence/index.tsx',
},
'dependence/modal': {
path: 'dependence/modal',
id: 'dependence/modal',
parentId: '@@/global-layout',
file: 'dependence/modal.tsx',
},
'script/editModal': {
path: 'script/editModal',
id: 'script/editModal',
parentId: '@@/global-layout',
file: 'script/editModal.tsx',
},
'script/saveModal': {
path: 'script/saveModal',
id: 'script/saveModal',
parentId: '@@/global-layout',
file: 'script/saveModal.tsx',
},
'setting/appModal': {
path: 'setting/appModal',
id: 'setting/appModal',
parentId: '@@/global-layout',
file: 'setting/appModal.tsx',
},
'setting/loginLog': {
path: 'setting/loginLog',
id: 'setting/loginLog',
parentId: '@@/global-layout',
file: 'setting/loginLog.tsx',
},
'setting/security': {
path: 'setting/security',
id: 'setting/security',
parentId: '@@/global-layout',
file: 'setting/security.tsx',
},
'crontab/detail': {
path: 'crontab/detail',
id: 'crontab/detail',
parentId: '@@/global-layout',
file: 'crontab/detail.tsx',
},
'script/setting': {
path: 'script/setting',
id: 'script/setting',
parentId: '@@/global-layout',
file: 'script/setting.tsx',
},
'crontab/index': {
path: 'crontab',
id: 'crontab/index',
parentId: '@@/global-layout',
file: 'crontab/index.tsx',
},
'crontab/modal': {
path: 'crontab/modal',
id: 'crontab/modal',
parentId: '@@/global-layout',
file: 'crontab/modal.tsx',
},
'setting/about': {
path: 'setting/about',
id: 'setting/about',
parentId: '@@/global-layout',
file: 'setting/about.tsx',
},
'setting/index': {
path: 'setting',
id: 'setting/index',
parentId: '@@/global-layout',
file: 'setting/index.tsx',
},
'config/index': {
path: 'config',
id: 'config/index',
parentId: '@@/global-layout',
file: 'config/index.tsx',
},
'script/index': {
path: 'script',
id: 'script/index',
parentId: '@@/global-layout',
file: 'script/index.tsx',
},
'error/index': {
path: 'error',
id: 'error/index',
parentId: '@@/global-layout',
file: 'error/index.tsx',
},
'login/index': {
path: 'login',
id: 'login/index',
parentId: '@@/global-layout',
file: 'login/index.tsx',
},
'diff/index': {
path: 'diff',
id: 'diff/index',
parentId: '@@/global-layout',
file: 'diff/index.tsx',
},
'env/index': {
path: 'env',
id: 'env/index',
parentId: '@@/global-layout',
file: 'env/index.tsx',
},
'env/modal': {
path: 'env/modal',
id: 'env/modal',
parentId: '@@/global-layout',
file: 'env/modal.tsx',
},
'log/index': {
path: 'log',
id: 'log/index',
parentId: '@@/global-layout',
file: 'log/index.tsx',
},
'@@/global-layout': {
id: '@@/global-layout',
path: '/',
file: '@/layouts/index.tsx',
isLayout: true,
},
},
routeComponents: {
'crontab/viewCreateModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__viewCreateModal" */ '../../../src/pages/crontab/viewCreateModal.tsx'
),
),
'crontab/viewManageModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__viewManageModal" */ '../../../src/pages/crontab/viewManageModal.tsx'
),
),
'subscription/logModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__subscription__logModal" */ '../../../src/pages/subscription/logModal.tsx'
),
),
'initialization/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__initialization__index" */ '../../../src/pages/initialization/index.tsx'
),
),
'script/editNameModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__editNameModal" */ '../../../src/pages/script/editNameModal.tsx'
),
),
'setting/notification': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__notification" */ '../../../src/pages/setting/notification.tsx'
),
),
'dependence/logModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__dependence__logModal" */ '../../../src/pages/dependence/logModal.tsx'
),
),
'setting/checkUpdate': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__checkUpdate" */ '../../../src/pages/setting/checkUpdate.tsx'
),
),
'subscription/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__subscription__index" */ '../../../src/pages/subscription/index.tsx'
),
),
'subscription/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__subscription__modal" */ '../../../src/pages/subscription/modal.tsx'
),
),
'env/editNameModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__env__editNameModal" */ '../../../src/pages/env/editNameModal.tsx'
),
),
'crontab/logModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__logModal" */ '../../../src/pages/crontab/logModal.tsx'
),
),
'dependence/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__dependence__index" */ '../../../src/pages/dependence/index.tsx'
),
),
'dependence/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__dependence__modal" */ '../../../src/pages/dependence/modal.tsx'
),
),
'script/editModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__editModal" */ '../../../src/pages/script/editModal.tsx'
),
),
'script/saveModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__saveModal" */ '../../../src/pages/script/saveModal.tsx'
),
),
'setting/appModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__appModal" */ '../../../src/pages/setting/appModal.tsx'
),
),
'setting/loginLog': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__loginLog" */ '../../../src/pages/setting/loginLog.tsx'
),
),
'setting/security': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__security" */ '../../../src/pages/setting/security.tsx'
),
),
'crontab/detail': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__detail" */ '../../../src/pages/crontab/detail.tsx'
),
),
'script/setting': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__setting" */ '../../../src/pages/script/setting.tsx'
),
),
'crontab/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__index" */ '../../../src/pages/crontab/index.tsx'
),
),
'crontab/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__modal" */ '../../../src/pages/crontab/modal.tsx'
),
),
'setting/about': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__about" */ '../../../src/pages/setting/about.tsx'
),
),
'setting/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__index" */ '../../../src/pages/setting/index.tsx'
),
),
'config/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__config__index" */ '../../../src/pages/config/index.tsx'
),
),
'script/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__index" */ '../../../src/pages/script/index.tsx'
),
),
'error/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__error__index" */ '../../../src/pages/error/index.tsx'
),
),
'login/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__login__index" */ '../../../src/pages/login/index.tsx'
),
),
'diff/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__diff__index" */ '../../../src/pages/diff/index.tsx'
),
),
'env/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__env__index" */ '../../../src/pages/env/index.tsx'
),
),
'env/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__env__modal" */ '../../../src/pages/env/modal.tsx'
),
),
'log/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__log__index" */ '../../../src/pages/log/index.tsx'
),
),
'@@/global-layout': React.lazy(
() =>
import(
/* webpackChunkName: "layouts__index" */ '@/layouts/index.tsx'
),
),
},
};
}
@@ -0,0 +1,63 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
const console = globalThis.console;
let count = 0;
let groupLevel = 0;
function send(type: string, message?: string) {
if (process.env.NODE_ENV === 'production') {
return;
} else {
const encodedMessage = message ? `&m=${encodeURI(message)}` : '';
fetch(
`/__umi/api/terminal?type=${type}&t=${Date.now()}&c=${count++}&g=${groupLevel}${encodedMessage}`,
{ mode: 'no-cors' },
);
}
}
function prettyPrint(obj: any) {
return JSON.stringify(obj, null, 2);
}
function stringifyObjs(objs: any[]) {
const obj = objs.length > 1 ? objs.map(stringify).join(' ') : objs[0];
return typeof obj === 'object' ? `${prettyPrint(obj)}` : obj.toString();
}
function stringify(obj: any) {
return typeof obj === 'object' ? `${JSON.stringify(obj)}` : obj.toString();
}
const terminal = {
log(...objs: any[]) {
send('log', stringifyObjs(objs));
},
info(...objs: any[]) {
send('info', stringifyObjs(objs));
},
warn(...objs: any[]) {
send('warn', stringifyObjs(objs));
},
error(...objs: any[]) {
send('error', stringifyObjs(objs));
},
group() {
groupLevel++;
},
groupCollapsed() {
groupLevel++;
},
groupEnd() {
groupLevel && --groupLevel;
},
clear() {
send('clear');
},
trace(...args: any[]) {
console.trace(...args);
},
profile(...args: any[]) {
console.profile(...args);
},
profileEnd(...args: any[]) {
console.profileEnd(...args);
},
};
export { terminal };
@@ -0,0 +1,46 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
// @umijs/renderer-*
export {
createBrowserHistory,
createHashHistory,
createMemoryHistory,
createSearchParams,
generatePath,
matchPath,
matchRoutes,
Navigate,
NavLink,
Outlet,
resolvePath,
useLocation,
useMatch,
useNavigate,
useOutlet,
useOutletContext,
useParams,
useResolvedPath,
useRoutes,
useSearchParams,
useAppData,
useClientLoaderData,
useServerLoaderData,
renderClient,
__getRoot,
Link,
useRouteData,
__useFetcher,
withRouter,
} from '/Users/whyour/resp/qinglong/node_modules/.pnpm/@umijs+renderer-react@4.0.21_ef5jwxihqo6n7gxfmzogljlgcm/node_modules/@umijs/renderer-react';
// umi/client/client/plugin
export {
ApplyPluginsType,
PluginManager,
} from '/Users/whyour/resp/qinglong/node_modules/.pnpm/umi@4.0.21_cuhbl366s6fdg3i7ra7vd4alre/node_modules/umi/client/client/plugin.js';
export { history, createHistory } from './core/history';
export { terminal } from './core/terminal';
// plugins
// plugins types.d.ts
export { defineApp } from './core/defineApp';
export type { RuntimeConfig } from './core/defineApp';
@@ -0,0 +1,29 @@
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"jsx": "react-jsx",
"esModuleInterop": true,
"sourceMap": true,
"baseUrl": "../../",
"strict": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true,
"paths": {
"@/*": ["src/*"],
"@@/*": ["src/.umi/*"],
"@umijs/max": [
"/Users/whyour/resp/qinglong/node_modules/.pnpm/umi@4.0.21_cuhbl366s6fdg3i7ra7vd4alre/node_modules/umi"
],
"@umijs/max/typings": ["src/.umi/typings"]
}
},
"include": [
"../../.umirc.ts",
"../../**/*.d.ts",
"../../**/*.ts",
"../../**/*.tsx"
]
}
+138
View File
@@ -0,0 +1,138 @@
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
type CSSModuleClasses = { readonly [key: string]: string };
declare module '*.css' {
const classes: CSSModuleClasses;
export default classes;
}
declare module '*.scss' {
const classes: CSSModuleClasses;
export default classes;
}
declare module '*.sass' {
const classes: CSSModuleClasses;
export default classes;
}
declare module '*.less' {
const classes: CSSModuleClasses;
export default classes;
}
declare module '*.styl' {
const classes: CSSModuleClasses;
export default classes;
}
declare module '*.stylus' {
const classes: CSSModuleClasses;
export default classes;
}
// images
declare module '*.jpg' {
const src: string;
export default src;
}
declare module '*.jpeg' {
const src: string;
export default src;
}
declare module '*.png' {
const src: string;
export default src;
}
declare module '*.gif' {
const src: string;
export default src;
}
declare module '*.svg' {
import * as React from 'react';
export const ReactComponent: React.FunctionComponent<
React.SVGProps<SVGSVGElement> & { title?: string }
>;
const src: string;
export default src;
}
declare module '*.ico' {
const src: string;
export default src;
}
declare module '*.webp' {
const src: string;
export default src;
}
declare module '*.avif' {
const src: string;
export default src;
}
// media
declare module '*.mp4' {
const src: string;
export default src;
}
declare module '*.webm' {
const src: string;
export default src;
}
declare module '*.ogg' {
const src: string;
export default src;
}
declare module '*.mp3' {
const src: string;
export default src;
}
declare module '*.wav' {
const src: string;
export default src;
}
declare module '*.flac' {
const src: string;
export default src;
}
declare module '*.aac' {
const src: string;
export default src;
}
// fonts
declare module '*.woff' {
const src: string;
export default src;
}
declare module '*.woff2' {
const src: string;
export default src;
}
declare module '*.eot' {
const src: string;
export default src;
}
declare module '*.ttf' {
const src: string;
export default src;
}
declare module '*.otf' {
const src: string;
export default src;
}
// other
declare module '*.wasm' {
const initWasm: (
options: WebAssembly.Imports,
) => Promise<WebAssembly.Exports>;
export default initWasm;
}
declare module '*.webmanifest' {
const src: string;
export default src;
}
declare module '*.pdf' {
const src: string;
export default src;
}
declare module '*.txt' {
const src: string;
export default src;
}
+60
View File
@@ -0,0 +1,60 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import './core/polyfill';
import 'antd/dist/antd.less';
import { renderClient } from '/Users/whyour/resp/qinglong/node_modules/.pnpm/@umijs+renderer-react@4.0.21_ef5jwxihqo6n7gxfmzogljlgcm/node_modules/@umijs/renderer-react';
import { getRoutes } from './core/route';
import { createPluginManager } from './core/plugin';
import { createHistory } from './core/history';
import Loading from '@/loading';
import { ApplyPluginsType } from 'umi';
const publicPath = '/';
const runtimePublicPath = false;
async function render() {
const pluginManager = createPluginManager();
const { routes, routeComponents } = await getRoutes(pluginManager);
// allow user to extend routes
await pluginManager.applyPlugins({
key: 'patchRoutes',
type: ApplyPluginsType.event,
args: {
routes,
routeComponents,
},
});
return pluginManager.applyPlugins({
key: 'render',
type: ApplyPluginsType.compose,
initialValue() {
const contextOpts = pluginManager.applyPlugins({
key: 'modifyContextOpts',
type: ApplyPluginsType.modify,
initialValue: {},
});
const basename = contextOpts.basename || '/';
const context = {
routes,
routeComponents,
pluginManager,
rootElement: contextOpts.rootElement || document.getElementById('root'),
loadingComponent: Loading,
publicPath,
runtimePublicPath,
history: createHistory({
type: contextOpts.historyType || 'browser',
basename,
...contextOpts.historyOpts,
}),
basename,
};
return renderClient(context);
},
})();
}
render();
@@ -0,0 +1,9 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
import { Outlet, useOutletContext } from 'umi';
export default function EmptyRoute() {
const context = useOutletContext();
return <Outlet context={context} />;
}
+21
View File
@@ -0,0 +1,21 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
interface IDefaultRuntimeConfig {
onRouteChange?: (props: {
routes: any;
clientRoutes: any;
location: any;
action: any;
}) => void;
patchRoutes?: (props: { routes: any }) => void;
patchClientRoutes?: (props: { routes: any }) => void;
render?: (oldRender: () => void) => void;
rootContainer?: (lastRootContainer: JSX.Element, args?: any) => void;
[key: string]: any;
}
export type RuntimeConfig = IDefaultRuntimeConfig;
export function defineApp(config: RuntimeConfig): RuntimeConfig {
return config;
}
+66
View File
@@ -0,0 +1,66 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import {
createHashHistory,
createMemoryHistory,
createBrowserHistory,
History,
} from '/Users/whyour/resp/qinglong/node_modules/.pnpm/@umijs+renderer-react@4.0.22_ef5jwxihqo6n7gxfmzogljlgcm/node_modules/@umijs/renderer-react';
let history: History;
let basename: string = '/';
export function createHistory(opts: any) {
let h;
if (opts.type === 'hash') {
h = createHashHistory();
} else if (opts.type === 'memory') {
h = createMemoryHistory(opts);
} else {
h = createBrowserHistory();
}
if (opts.basename) {
basename = opts.basename;
}
history = {
...h,
push(to, state) {
h.push(patchTo(to), state);
},
replace(to, state) {
h.replace(patchTo(to), state);
},
get location() {
return h.location;
},
get action() {
return h.action;
},
};
return h;
}
// Patch `to` to support basename
// Refs:
// https://github.com/remix-run/history/blob/3e9dab4/packages/history/index.ts#L484
// https://github.com/remix-run/history/blob/dev/docs/api-reference.md#to
function patchTo(to: any) {
if (typeof to === 'string') {
return `${stripLastSlash(basename)}${to}`;
} else if (typeof to === 'object' && to.pathname) {
return {
...to,
pathname: `${stripLastSlash(basename)}${to.pathname}`,
};
} else {
throw new Error(`Unexpected to: ${to}`);
}
}
function stripLastSlash(path) {
return path.slice(-1) === '/' ? path.slice(0, -1) : path;
}
export { history };
+44
View File
@@ -0,0 +1,44 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import { PluginManager } from 'umi';
function __defaultExport(obj) {
if (obj.default) {
return typeof obj.default === 'function' ? obj.default() : obj.default;
}
return obj;
}
export function getPlugins() {
return [];
}
export function getValidKeys() {
return [
'patchRoutes',
'patchClientRoutes',
'modifyContextOpts',
'rootContainer',
'innerProvider',
'i18nProvider',
'accessProvider',
'dataflowProvider',
'outerProvider',
'render',
'onRouteChange',
'qiankun',
];
}
let pluginManager = null;
export function createPluginManager() {
pluginManager = PluginManager.create({
plugins: getPlugins(),
validKeys: getValidKeys(),
});
return pluginManager;
}
export function getPluginManager() {
return pluginManager;
}
+221
View File
@@ -0,0 +1,221 @@
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
// Created by Umi Plugin
export interface IConfigFromPlugins {
clientLoader?: {};
title?: string;
styles?: any[];
scripts?: any[];
routes?: {}[];
reactRouter5Compat?: {};
presets?: string[];
plugins?: string[];
npmClient?: 'pnpm' | 'tnpm' | 'cnpm' | 'yarn' | 'npm';
mountElementId?: string;
metas?: any[];
links?: any[];
historyWithQuery?: {};
history?: {
type?: 'browser' | 'hash' | 'memory';
};
headScripts?: any[];
conventionRoutes?: {
base?: string;
exclude?: any[];
};
base?: string;
writeToDisk?: boolean;
theme?: {};
targets?: {};
svgr?: {};
svgo?: {} | boolean;
styleLoader?: {};
srcTranspiler?: 'babel' | 'esbuild' | 'swc' | 'none';
sassLoader?: {};
runtimePublicPath?: {};
purgeCSS?: {};
publicPath?: string;
proxy?: {} | any[];
postcssLoader?: {};
outputPath?: string;
mfsu?:
| {
cacheDirectory?: string;
chainWebpack?: () => any;
esbuild?: boolean;
exclude?: any[];
include?: string[];
mfName?: string;
remoteAliases?: string[];
remoteName?: string;
runtimePublicPath?: boolean;
shared?: {};
strategy?: 'eager' | 'normal';
}
| boolean;
mdx?: {
loader?: string;
loaderOptions?: {};
};
manifest?: {};
lessLoader?: {};
jsMinifierOptions?: {};
jsMinifier?: 'esbuild' | 'swc' | 'terser' | 'uglifyJs' | 'none';
inlineLimit?: number;
ignoreMomentLocale?: boolean;
https?: {};
hash?: boolean;
forkTSChecker?: {};
fastRefresh?: boolean;
extraPostCSSPlugins?: any[];
extraBabelPresets?: any[];
extraBabelPlugins?: any[];
extraBabelIncludes?: any[];
externals?: {} | string | (() => any);
esm?: {};
devtool?: string | boolean;
depTranspiler?: 'babel' | 'esbuild' | 'swc' | 'none';
define?: {};
deadCode?: {};
cssMinifierOptions?: {};
cssMinifier?: 'cssnano' | 'esbuild' | 'parcelCSS' | 'none';
cssLoaderModules?: {};
cssLoader?: {};
copy?: any[];
chainWebpack?: () => any;
cacheDirectoryPath?: string;
babelLoaderCustomize?: string;
autoprefixer?: {};
autoCSSModules?: boolean;
alias?: {};
crossorigin?:
| boolean
| {
include?: {}[];
};
esmi?: {
cdnOrigin?: string;
shimUrl?: string;
};
favicons?: string[];
mock?: {
exclude?: string[];
include?: string[];
};
mpa?: {
template?: string;
layout?: string;
getConfigFromEntryFile?: boolean;
entry?: {};
};
polyfill?: {
imports?: string[];
};
routePrefetch?: {};
ssr?: {
serverBuildPath?: string;
platform?: string;
};
terminal?: {};
tmpFiles?: boolean;
lowImport?: {
libs?: any[];
css?: string;
};
vite?: {};
apiRoute?: {
platform?: string;
};
monorepoRedirect?:
| boolean
| {
srcDir?: string[];
exclude?: {}[];
};
clickToComponent?: {
editor?: string;
};
legacy?: {
buildOnly?: boolean;
nodeModulesTransform?: boolean;
};
classPropertiesLoose?: {};
verifyCommit?: {
scope?: string[];
allowEmoji?: boolean;
};
run?: {
globals?: string[];
};
access?: {} | boolean;
analytics?: {} | boolean;
antd?:
| {
configProvider?: {};
dark?: boolean;
compact?: boolean;
import?: boolean;
style?: 'less' | 'css';
}
| boolean;
dva?:
| {
extraModels?: string[];
immer?: {};
skipModelValidate?: boolean;
}
| boolean;
initialState?:
| {
loading?: string;
}
| boolean;
layout?: {} | boolean;
locale?:
| {
default?: string;
useLocalStorage?: boolean;
baseNavigator?: boolean;
title?: boolean;
antd?: boolean;
baseSeparator?: string;
}
| boolean;
mf?: {
name?: string;
remotes?: {
aliasName?: string;
name?: string;
entry?: string;
entries?: {};
keyResolver?: string;
}[];
shared?: {};
library?: {};
};
model?:
| {
extraModels?: string[];
}
| boolean;
moment2dayjs?:
| {
preset?: string;
plugins?: any[];
}
| boolean;
qiankun?:
| {
slave?: {};
master?: {};
externalQiankun?: boolean;
}
| boolean;
request?:
| {
dataField?: '';
}
| boolean;
tailwindcss?: {} | boolean;
}
+169
View File
@@ -0,0 +1,169 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.error.cause.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.aggregate-error.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.aggregate-error.cause.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.array.reduce-right.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.object.has-own.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.promise.any.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.reflect.to-string-tag.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.regexp.flags.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.at-alternative.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.string.replace-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/es.typed-array.set.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.from-async.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.filter-out.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.filter-reject.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.find-last.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.find-last-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.group-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.group-by-to-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.is-template-object.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.last-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.last-item.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.to-reversed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.to-sorted.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.to-spliced.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.unique-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.array.with.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.drop.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.flat-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.take.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.async-iterator.to-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.bigint.range.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.composite-key.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.composite-symbol.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.function.is-callable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.function.is-constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.function.un-this.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.constructor.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.drop.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.flat-map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.for-each.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.take.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.to-array.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.iterator.to-async.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.emplace.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.find-key.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.group-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.includes.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.key-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.key-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.map-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.map-values.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.merge.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.update.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.update-or-insert.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.map.upsert.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.clamp.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.deg-per-rad.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.degrees.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.fscale.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.iaddh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.imulh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.isubh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.rad-per-deg.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.radians.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.scale.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.seeded-prng.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.signbit.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.math.umulh.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.number.from-string.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.number.range.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.object.iterate-entries.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.object.iterate-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.object.iterate-values.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.observable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.promise.try.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.define-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.delete-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.has-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.reflect.metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.add-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.difference.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.every.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.filter.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.find.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.intersection.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.is-disjoint-from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.is-subset-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.is-superset-of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.join.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.map.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.reduce.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.some.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.symmetric-difference.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.set.union.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.string.at.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.string.cooked.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.string.code-points.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.async-dispose.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.dispose.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.matcher.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.metadata.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.observable.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.pattern-match.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.symbol.replace-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.from-async.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.filter-out.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.filter-reject.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.find-last.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.find-last-index.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.group-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.to-reversed.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.to-sorted.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.to-spliced.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.unique-by.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.typed-array.with.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.emplace.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-map.upsert.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.add-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.delete-all.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.from.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/esnext.weak-set.of.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.dom-exception.stack.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.immediate.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/core-js@3.22.4/node_modules/core-js/modules/web.structured-clone.js';
import '/Users/whyour/resp/qinglong/node_modules/.pnpm/regenerator-runtime@0.13.9/node_modules/regenerator-runtime/runtime.js';
export {};
+433
View File
@@ -0,0 +1,433 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
export async function getRoutes() {
return {
routes: {
'crontab/viewCreateModal': {
path: 'crontab/viewCreateModal',
id: 'crontab/viewCreateModal',
parentId: '@@/global-layout',
file: 'crontab/viewCreateModal.tsx',
},
'crontab/viewManageModal': {
path: 'crontab/viewManageModal',
id: 'crontab/viewManageModal',
parentId: '@@/global-layout',
file: 'crontab/viewManageModal.tsx',
},
'subscription/logModal': {
path: 'subscription/logModal',
id: 'subscription/logModal',
parentId: '@@/global-layout',
file: 'subscription/logModal.tsx',
},
'initialization/index': {
path: 'initialization',
id: 'initialization/index',
parentId: '@@/global-layout',
file: 'initialization/index.tsx',
},
'script/editNameModal': {
path: 'script/editNameModal',
id: 'script/editNameModal',
parentId: '@@/global-layout',
file: 'script/editNameModal.tsx',
},
'setting/notification': {
path: 'setting/notification',
id: 'setting/notification',
parentId: '@@/global-layout',
file: 'setting/notification.tsx',
},
'dependence/logModal': {
path: 'dependence/logModal',
id: 'dependence/logModal',
parentId: '@@/global-layout',
file: 'dependence/logModal.tsx',
},
'setting/checkUpdate': {
path: 'setting/checkUpdate',
id: 'setting/checkUpdate',
parentId: '@@/global-layout',
file: 'setting/checkUpdate.tsx',
},
'script/renameModal': {
path: 'script/renameModal',
id: 'script/renameModal',
parentId: '@@/global-layout',
file: 'script/renameModal.tsx',
},
'subscription/index': {
path: 'subscription',
id: 'subscription/index',
parentId: '@@/global-layout',
file: 'subscription/index.tsx',
},
'subscription/modal': {
path: 'subscription/modal',
id: 'subscription/modal',
parentId: '@@/global-layout',
file: 'subscription/modal.tsx',
},
'env/editNameModal': {
path: 'env/editNameModal',
id: 'env/editNameModal',
parentId: '@@/global-layout',
file: 'env/editNameModal.tsx',
},
'crontab/logModal': {
path: 'crontab/logModal',
id: 'crontab/logModal',
parentId: '@@/global-layout',
file: 'crontab/logModal.tsx',
},
'dependence/index': {
path: 'dependence',
id: 'dependence/index',
parentId: '@@/global-layout',
file: 'dependence/index.tsx',
},
'dependence/modal': {
path: 'dependence/modal',
id: 'dependence/modal',
parentId: '@@/global-layout',
file: 'dependence/modal.tsx',
},
'script/editModal': {
path: 'script/editModal',
id: 'script/editModal',
parentId: '@@/global-layout',
file: 'script/editModal.tsx',
},
'script/saveModal': {
path: 'script/saveModal',
id: 'script/saveModal',
parentId: '@@/global-layout',
file: 'script/saveModal.tsx',
},
'setting/appModal': {
path: 'setting/appModal',
id: 'setting/appModal',
parentId: '@@/global-layout',
file: 'setting/appModal.tsx',
},
'setting/loginLog': {
path: 'setting/loginLog',
id: 'setting/loginLog',
parentId: '@@/global-layout',
file: 'setting/loginLog.tsx',
},
'setting/security': {
path: 'setting/security',
id: 'setting/security',
parentId: '@@/global-layout',
file: 'setting/security.tsx',
},
'crontab/detail': {
path: 'crontab/detail',
id: 'crontab/detail',
parentId: '@@/global-layout',
file: 'crontab/detail.tsx',
},
'script/setting': {
path: 'script/setting',
id: 'script/setting',
parentId: '@@/global-layout',
file: 'script/setting.tsx',
},
'crontab/index': {
path: 'crontab',
id: 'crontab/index',
parentId: '@@/global-layout',
file: 'crontab/index.tsx',
},
'crontab/modal': {
path: 'crontab/modal',
id: 'crontab/modal',
parentId: '@@/global-layout',
file: 'crontab/modal.tsx',
},
'setting/about': {
path: 'setting/about',
id: 'setting/about',
parentId: '@@/global-layout',
file: 'setting/about.tsx',
},
'setting/index': {
path: 'setting',
id: 'setting/index',
parentId: '@@/global-layout',
file: 'setting/index.tsx',
},
'config/index': {
path: 'config',
id: 'config/index',
parentId: '@@/global-layout',
file: 'config/index.tsx',
},
'script/index': {
path: 'script',
id: 'script/index',
parentId: '@@/global-layout',
file: 'script/index.tsx',
},
'error/index': {
path: 'error',
id: 'error/index',
parentId: '@@/global-layout',
file: 'error/index.tsx',
},
'login/index': {
path: 'login',
id: 'login/index',
parentId: '@@/global-layout',
file: 'login/index.tsx',
},
'diff/index': {
path: 'diff',
id: 'diff/index',
parentId: '@@/global-layout',
file: 'diff/index.tsx',
},
'env/index': {
path: 'env',
id: 'env/index',
parentId: '@@/global-layout',
file: 'env/index.tsx',
},
'env/modal': {
path: 'env/modal',
id: 'env/modal',
parentId: '@@/global-layout',
file: 'env/modal.tsx',
},
'log/index': {
path: 'log',
id: 'log/index',
parentId: '@@/global-layout',
file: 'log/index.tsx',
},
'@@/global-layout': {
id: '@@/global-layout',
path: '/',
file: '@/layouts/index.tsx',
isLayout: true,
},
},
routeComponents: {
'crontab/viewCreateModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__viewCreateModal" */ '../../../src/pages/crontab/viewCreateModal.tsx'
),
),
'crontab/viewManageModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__viewManageModal" */ '../../../src/pages/crontab/viewManageModal.tsx'
),
),
'subscription/logModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__subscription__logModal" */ '../../../src/pages/subscription/logModal.tsx'
),
),
'initialization/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__initialization__index" */ '../../../src/pages/initialization/index.tsx'
),
),
'script/editNameModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__editNameModal" */ '../../../src/pages/script/editNameModal.tsx'
),
),
'setting/notification': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__notification" */ '../../../src/pages/setting/notification.tsx'
),
),
'dependence/logModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__dependence__logModal" */ '../../../src/pages/dependence/logModal.tsx'
),
),
'setting/checkUpdate': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__checkUpdate" */ '../../../src/pages/setting/checkUpdate.tsx'
),
),
'script/renameModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__renameModal" */ '../../../src/pages/script/renameModal.tsx'
),
),
'subscription/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__subscription__index" */ '../../../src/pages/subscription/index.tsx'
),
),
'subscription/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__subscription__modal" */ '../../../src/pages/subscription/modal.tsx'
),
),
'env/editNameModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__env__editNameModal" */ '../../../src/pages/env/editNameModal.tsx'
),
),
'crontab/logModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__logModal" */ '../../../src/pages/crontab/logModal.tsx'
),
),
'dependence/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__dependence__index" */ '../../../src/pages/dependence/index.tsx'
),
),
'dependence/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__dependence__modal" */ '../../../src/pages/dependence/modal.tsx'
),
),
'script/editModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__editModal" */ '../../../src/pages/script/editModal.tsx'
),
),
'script/saveModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__saveModal" */ '../../../src/pages/script/saveModal.tsx'
),
),
'setting/appModal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__appModal" */ '../../../src/pages/setting/appModal.tsx'
),
),
'setting/loginLog': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__loginLog" */ '../../../src/pages/setting/loginLog.tsx'
),
),
'setting/security': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__security" */ '../../../src/pages/setting/security.tsx'
),
),
'crontab/detail': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__detail" */ '../../../src/pages/crontab/detail.tsx'
),
),
'script/setting': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__setting" */ '../../../src/pages/script/setting.tsx'
),
),
'crontab/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__index" */ '../../../src/pages/crontab/index.tsx'
),
),
'crontab/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__crontab__modal" */ '../../../src/pages/crontab/modal.tsx'
),
),
'setting/about': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__about" */ '../../../src/pages/setting/about.tsx'
),
),
'setting/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__setting__index" */ '../../../src/pages/setting/index.tsx'
),
),
'config/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__config__index" */ '../../../src/pages/config/index.tsx'
),
),
'script/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__script__index" */ '../../../src/pages/script/index.tsx'
),
),
'error/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__error__index" */ '../../../src/pages/error/index.tsx'
),
),
'login/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__login__index" */ '../../../src/pages/login/index.tsx'
),
),
'diff/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__diff__index" */ '../../../src/pages/diff/index.tsx'
),
),
'env/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__env__index" */ '../../../src/pages/env/index.tsx'
),
),
'env/modal': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__env__modal" */ '../../../src/pages/env/modal.tsx'
),
),
'log/index': React.lazy(
() =>
import(
/* webpackChunkName: "src__pages__log__index" */ '../../../src/pages/log/index.tsx'
),
),
'@@/global-layout': React.lazy(
() =>
import(
/* webpackChunkName: "layouts__index" */ '@/layouts/index.tsx'
),
),
},
};
}
+63
View File
@@ -0,0 +1,63 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
const console = globalThis.console;
let count = 0;
let groupLevel = 0;
function send(type: string, message?: string) {
if (process.env.NODE_ENV === 'production') {
return;
} else {
const encodedMessage = message ? `&m=${encodeURI(message)}` : '';
fetch(
`/__umi/api/terminal?type=${type}&t=${Date.now()}&c=${count++}&g=${groupLevel}${encodedMessage}`,
{ mode: 'no-cors' },
);
}
}
function prettyPrint(obj: any) {
return JSON.stringify(obj, null, 2);
}
function stringifyObjs(objs: any[]) {
const obj = objs.length > 1 ? objs.map(stringify).join(' ') : objs[0];
return typeof obj === 'object' ? `${prettyPrint(obj)}` : obj.toString();
}
function stringify(obj: any) {
return typeof obj === 'object' ? `${JSON.stringify(obj)}` : obj.toString();
}
const terminal = {
log(...objs: any[]) {
send('log', stringifyObjs(objs));
},
info(...objs: any[]) {
send('info', stringifyObjs(objs));
},
warn(...objs: any[]) {
send('warn', stringifyObjs(objs));
},
error(...objs: any[]) {
send('error', stringifyObjs(objs));
},
group() {
groupLevel++;
},
groupCollapsed() {
groupLevel++;
},
groupEnd() {
groupLevel && --groupLevel;
},
clear() {
send('clear');
},
trace(...args: any[]) {
console.trace(...args);
},
profile(...args: any[]) {
console.profile(...args);
},
profileEnd(...args: any[]) {
console.profileEnd(...args);
},
};
export { terminal };

Some files were not shown because too many files have changed in this diff Show More