diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3e10c03 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..af76382 --- /dev/null +++ b/.env.development @@ -0,0 +1,2 @@ +VITE_APP_NAME = 'DEV' +VITE_DEPLOY_API_BASE_URL = 'http://127.0.0.1:8081/deploy-ease/' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..8d12788 --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +VITE_APP_DEV = 'dev-api-prd' +VITE_DEPLOY_API_BASE_URL = 'http://devops.iscmtech.com/deploy-ease/' diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a6f34fe --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +node_modules +dist +out +.gitignore diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..2e678a3 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,10 @@ +module.exports = { + extends: [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "@electron-toolkit/eslint-config-ts/recommended", + "@electron-toolkit/eslint-config-prettier", + "@typescript-eslint/explicit-module-boundary-types" + ] +}; diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..bf2e764 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +shamefully-hoist=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..9c6b791 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +out +dist +pnpm-lock.yaml +LICENSE.md +tsconfig.json +tsconfig.*.json diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..f99263a --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,4 @@ +singleQuote: false +semi: false +printWidth: 100 +trailingComma: none diff --git a/README.md b/README.md new file mode 100644 index 0000000..47bd292 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# deploy-ease-app \ No newline at end of file diff --git a/application.log b/application.log new file mode 100644 index 0000000..1bb82bd --- /dev/null +++ b/application.log @@ -0,0 +1,594 @@ +[2024-08-05T11:23:24.786] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T11:23:50.346] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T11:23:50.348] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T11:23:56.550] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T11:25:17.931] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T11:25:17.933] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T11:25:20.726] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:00:39.450] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:00:39.452] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:00:41.146] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:01:28.408] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:01:28.409] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:02:52.481] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:02:54.932] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:02:54.933] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:03:02.957] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:03:04.472] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:03:04.473] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:03:08.362] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:03:09.959] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T13:03:09.959] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T13:03:12.929] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T13:03:55.210] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:03:55.211] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:04:20.609] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:04:22.872] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:04:22.873] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:04:26.488] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:12:28.495] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:12:28.497] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:12:40.290] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:12:55.205] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:12:55.207] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:13:35.306] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:13:37.887] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:13:37.888] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:13:48.580] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:13:51.869] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:13:51.869] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:15:03.850] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:15:06.133] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:15:06.133] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:15:19.490] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:15:22.928] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:15:22.928] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:16:09.478] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm ibp-dev-backend-longi-scp-heuristic-engine-group-1-v1-backend-longi-scp-heuristic-engine-group-1-v1-9645b84cf-jcxdm +[2024-08-05T13:20:04.632] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:20:04.633] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:20:11.464] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:34:30.840] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:34:34.189] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:34:34.239] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:34:42.869] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:34:42.930] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:34:49.925] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:34:49.966] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:35:33.699] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:35:42.869] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:35:54.527] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-867c7f49d8-76m65 +[2024-08-05T13:36:20.053] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:38:08.881] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:38:38.979] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:39:14.441] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:40:12.740] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:40:12.741] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:40:13.075] [INFO] default - KubeConfig is loaded: KubeConfig { + authenticators: [ + AzureAuth {}, + GoogleCloudPlatformAuth {}, + ExecAuth { tokenCache: {}, execFn: [Function: spawnSync] }, + FileAuth { token: null, lastRead: null }, + DelayedOpenIDConnectAuth { delegate: undefined } + ], + contexts: [ + { + cluster: 'kubernetes', + name: '298101684398995518-c380e8dff45a3440b8f8dfda227eccfa6', + user: '298101684398995518', + namespace: undefined + } + ], + clusters: [ + { + caData: 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ2akNDQXRLZ0F3SUJBZ0lDRHhzd0RRWUpLb1pJaHZjTkFRRUxCUUF3YWpFcU1DZ0dBMVVFQ2hNaFl6TTQKTUdVNFpHWm1ORFZoTXpRME1HSTRaamhrWm1SaE1qSTNaV05qWm1FMk1SQXdEZ1lEVlFRTEV3ZGtaV1poZFd4MApNU293S0FZRFZRUURFeUZqTXpnd1pUaGtabVkwTldFek5EUXdZamhtT0dSbVpHRXlNamRsWTJObVlUWXdIaGNOCk1qTXdOVEU1TURJek16QXdXaGNOTkRNd05URTBNREl6T0RVMldqQnFNU293S0FZRFZRUUtFeUZqTXpnd1pUaGsKWm1ZME5XRXpORFF3WWpobU9HUm1aR0V5TWpkbFkyTm1ZVFl4RURBT0JnTlZCQXNUQjJSbFptRjFiSFF4S2pBbwpCZ05WQkFNVElXTXpPREJsT0dSbVpqUTFZVE0wTkRCaU9HWTRaR1prWVRJeU4yVmpZMlpoTmpDQ0FTSXdEUVlKCktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9FTmlzRWtSblNsSDhtRDJFUkFoS2ZWdWkyN0hTUFMKQTViT2lKdDZWNnRxVHhmTWRwR0RIMTVCbFlKL1laMFZyeERGUjVyMkJBREVkcXdsVG10NWozTFVIcXN6MnRoKwp2RzFrY0UyMmhUdFNtR05KQjhjbzA2YWNxaHV6YlhMbEZMQlc5eURNVnNENWc4RFBvZzh4QnFXZGg2NVRqeGx5ClkwZjJLeUVBS2V6YUFzc3RHV0swSDIvU2EvenZlb25GNnBJREtKcHh6SjZOSTZ5dUdlTk5hRkMwYXNTTVRJSjIKZHFGT01uWFpFdmZqTVlhU2QxWk5FdFUweUxkYzEyRDlVRmJUamxMSEZxcG9rYit2a202T0tGNi9iOUhCN0xXNgpsZFZMTFdHUkhrbS81Vmg5NTVnOVJFUUNVYVN4THpiSkwrVzlBU3puWWJlcnc0RUtpWWxjSUkwQ0F3RUFBYU9CCm1UQ0JsakFPQmdOVkhROEJBZjhFQkFNQ0Fxd3dEd1lEVlIwVEFRSC9CQVV3QXdFQi96QThCZ2dyQmdFRkJRY0IKQVFRd01DNHdMQVlJS3dZQkJRVUhNQUdHSUdoMGRIQTZMeTlqWlhKMGN5NWhZM011WVd4cGVYVnVMbU52YlM5dgpZM053TURVR0ExVWRId1F1TUN3d0txQW9vQ2FHSkdoMGRIQTZMeTlqWlhKMGN5NWhZM011WVd4cGVYVnVMbU52CmJTOXliMjkwTG1OeWJEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFNTVJOVjF0K1F6TUo5ZDlkekNDZzVULzkKQnI2T2piQVFSeHhodkVDV0JmODVOeEZUWDNYRmMzbVpkcytNeWFRRERhcUhjbzRmNGZHZ3hKRjVldmZ6cWlTZApVUVZYYktVRlFGVVgvZklnNHlDM290NWxSakw3QjR1VDJyYnI0dEhNYkUySy92ZGVUTXVBNUo0Z0pHV0IvRzBqCmtWSldYYmNJVVFDbGZzMUVQZDQ5b2VDdzBianRXOG9HSkt3S2NYYTloK1U1QytCVktTN21LNm9veUFqQ0kzRE4KNW9NS0VCdlM0aElqdFBTYjJlOE5HOWNCaGd2TXRTU2pITGRXaHpINUlrZ013dWJTUldMOEJqRDd1SzVFWmJteQpOMzNMSGFldEFIMTZQM0IvT0F0WGJWcmk2aWM2Q2lLbXBseTdhWnlGcitEeW92b2NpdjNxNFRtZVVwaHNRQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K', + caFile: undefined, + name: 'kubernetes', + server: 'https://10.201.127.46:6443', + skipTLSVerify: false, + tlsServerName: undefined + } + ], + users: [ + { + authProvider: undefined, + certData: 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQwVENDQXJtZ0F3SUJBZ0lDRDNrd0RRWUpLb1pJaHZjTkFRRUxCUUF3YWpFcU1DZ0dBMVVFQ2hNaFl6TTQKTUdVNFpHWm1ORFZoTXpRME1HSTRaamhrWm1SaE1qSTNaV05qWm1FMk1SQXdEZ1lEVlFRTEV3ZGtaV1poZFd4MApNU293S0FZRFZRUURFeUZqTXpnd1pUaGtabVkwTldFek5EUXdZamhtT0dSbVpHRXlNamRsWTJObVlUWXdIaGNOCk1qTXdOVEkwTURZME16QXdXaGNOTWpZd05USXpNRFkwT0RJMVdqQS9NUlV3RXdZRFZRUUtFd3h6ZVhOMFpXMDYKZFhObGNuTXhDVEFIQmdOVkJBc1RBREViTUJrR0ExVUVBeE1TTWprNE1UQXhOamcwTXprNE9UazFOVEU0TUlJQgpJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcU85R3YyRWJsUWt5ZFJmR2FTK0NabndVClMyZXFRaUJTL1JxRlVyRTlxR2dsYWtMS0g3aGZmMjdXZXppVTNzQWJQT2RLUEtSQWpSZy9jcnc4WTRXVTV0clAKWUZIb2IwTnoyMjVWcFl1YUlGWnhIVzRLTTlqSzM1Q0dQNmJDK3FCOXBGV0JxcDl1bkJKS0RKbFBSUUJLUDVucQpRRmx6aG0wQ2E1a2haNXovNWczeitpRlVWck1zazlJWGVDc2dFeE5kMjE1ckRHUUhKRVhkSlB2T2RpVmlJTUF4CmdtNmI5SzRHVUZnRXVWa0tROU1lNTVQQ2NuMnVYbnFZRVA1ckZZSU81SUFtVFlhV016NUJCZnZDTDZiRndocEIKMVR5UHVNWjRkWXZjZkNXVmNFQWpuZDdmMEN0aHdEL2FiYTNsT1JGbTB4UFVLSzRxY1FTM1kxYWhHaURBc1FJRApBUUFCbzRHck1JR29NQTRHQTFVZER3RUIvd1FFQXdJSGdEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFNCkJnTlZIUk1CQWY4RUFqQUFNRHdHQ0NzR0FRVUZCd0VCQkRBd0xqQXNCZ2dyQmdFRkJRY3dBWVlnYUhSMGNEb3YKTDJObGNuUnpMbUZqY3k1aGJHbDVkVzR1WTI5dEwyOWpjM0F3TlFZRFZSMGZCQzR3TERBcW9DaWdKb1lrYUhSMApjRG92TDJObGNuUnpMbUZqY3k1aGJHbDVkVzR1WTI5dEwzSnZiM1F1WTNKc01BMEdDU3FHU0liM0RRRUJDd1VBCkE0SUJBUUNJV0VSZzFUU3IrUEg2bHh1enhTd2lEWHlGbWoxdXJZays1clhKUVZQSnVmYlF5T2ZremRIUThGWWkKSGQ5bUQxQVVKKzNGQWh1Yyt0aUFzaDZXbW5oK0s3Q1k2K0xJRWZNYm5hWlJzckQ1R1M0YjJMYWJRUE5QWXVXQQoyNjVIWWNwV1BOUE5ENFNWV1VWbGRvNi9TZmdoY2RyZG1jUERMcG56SWUzaTdKQ0NYWEJmbDNjZTdWUXU0Vk53CkVzVGQ0ZURGYTdoTlBWZ25yanVmZjBCNzZjU1hySGJkblEzdmFFcnBGUXh4elNCSnFnQTUwY0gwT21xMXRHUWEKWlZlbzBjWkRpS28rTmdnVm9xVUNtanpab0JZZjRkUmVnQXUzZ3g5eEhqVGRpY0hrRTkrdmNmS2xtRy9xZ01oRQpCbzl5WFVtc0IyUTN1b0UrRkxjZ1VTTmRodXk2Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K', + certFile: undefined, + exec: undefined, + keyData: 'LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBcU85R3YyRWJsUWt5ZFJmR2FTK0NabndVUzJlcVFpQlMvUnFGVXJFOXFHZ2xha0xLCkg3aGZmMjdXZXppVTNzQWJQT2RLUEtSQWpSZy9jcnc4WTRXVTV0clBZRkhvYjBOejIyNVZwWXVhSUZaeEhXNEsKTTlqSzM1Q0dQNmJDK3FCOXBGV0JxcDl1bkJKS0RKbFBSUUJLUDVucVFGbHpobTBDYTVraFo1ei81ZzN6K2lGVQpWck1zazlJWGVDc2dFeE5kMjE1ckRHUUhKRVhkSlB2T2RpVmlJTUF4Z202YjlLNEdVRmdFdVZrS1E5TWU1NVBDCmNuMnVYbnFZRVA1ckZZSU81SUFtVFlhV016NUJCZnZDTDZiRndocEIxVHlQdU1aNGRZdmNmQ1dWY0VBam5kN2YKMEN0aHdEL2FiYTNsT1JGbTB4UFVLSzRxY1FTM1kxYWhHaURBc1FJREFRQUJBb0lCQUFoL3FSNTlveWFYUk51UgpLNkVsQzdsZUtxTTBmdU0rdnc0T3BJQnBmRUdabzdBNTFmTk1ramxWK1NKUDBXVjNZcWRvdDFwZnBRTzBJWlVECkZVS29lTG80YmRCWnJvalNhdVN5STBybHdBWTZjd3hZK2RocjRxRG1vMnBXV0Y3RmJpeXpSSWV4NTUyZ2FldEMKVnpPUWRTdkg4WG4xUmhPUUxsdjlZeW5VUXlkdW5WZndtY0NsM2ZsVjZqY3BoaHJYNmgrNzZjOVRGQXRpUDFlWAprNXNsOVUrZzl5N3ZlbzFEY2s4eXBENnZSMlF1MldKWlZLRDQycG52Y0YrUzlEYlA4UWRFLytlZ0Y5OEhSRitmClBoMHNaa2ErQ3R5dHVOWnVXaW5hN3hBRnI0cDRndXZ2U1RXVm02enpHU3ZhSkJZRC9CSjVQVThieGQ2NGRMNlAKVXVka0d2VUNnWUVBMEc5V09WbHJ5U0ZrMnhhOXk3T0RMSm13QXlJL0J3VkF3c2VUd0VOUjIxT1MxdmV1ajFYWgozc0p3emlubEpBTCt4dm9Sem0xbWljRnlDMUhqM1VZaytPck1IM1RyOW9sWnZ0VFhSbjNZeWtjUEl3Ny9acXlsCkV1dzhrZWZBSVJFZlV5YVlCUzNvOG5DUUtyVDdyWEV2Z0lOWUJGWVFCL0dpSW93Z1NUZ2RMSnNDZ1lFQXozeGIKQWd1c1I4b0ZPWUJ0bnBNZWNXdHp2WjRqTDVyWDIwQTN2bm9qc3hlS2QxdEJ3aTEzRnZjeUI2TDZuQ1NNS24xQQp6MFVJbENGREVqZzA1SHRDc3MzOGRRNHVIUG16eXdob2NiazRBeWdYcHVqNnA2MDdYS3NuN2xiWG9PMnV6SXlKCkp5QWpid2ozejN1UWNsQmhFOXF5UnpjOXN4MUszUGtQajg5MHJxTUNnWUJwSzRScU00QjdYK292MGUyNlZyMmQKUjM3VVZmZFBaNHNodk9vRVhQTjBvMXE0TlFsVE1aSlpIK3NqVzJoUEgyUEdxbTlKcFZIVHVGUCsramJyYzNVOApVOXpqRW0vdFdhaDY3WkloODJYcnlxY01uWWlwR2Z2QTdJb3paS2hCQnc2ek9nb0Nzd09UTU5ETmU3eHg2Mlo0CmhjMW5nclZjRE1RdWdsM1lGQVJFZVFLQmdHNTJhMUZVZTUwZ3ZkVldQWVllRnlnVkorSjhyWWpyckI0TE8ySksKVG5WTGhDbDFTVFlpMUhOQ21iMGRGTVZLWStFL0crRDloTXF3UnJBTmdvTmQ2QzJmb3RlQy9DUHJBTUNJTW1yUgpURFBLQllXVUpkWmRVT3hPSncwcDZOVEJsYjFLMkw0ZXl4NlRMTE9tdWtsUjU4MFZNckxkZ3hpMzhLSmlhdG1LCmZqbDNBb0dBYTlMVDZtTm9qejc1OVB2eCtwNEJoemhRakpSQm1ITUNLdUNoTnFYTkxwTmx3MXJscHluUDFjcXgKNlhjL09iUVdrSHJEVUpUb2VyamZPS05HTkl4cUdOcDdHMm5GVWorT290UElkVEpKU1ErQVNtWU5HSlJWVUJIWQpWYmNLWENSZE1yQTNoNFB2RUl2V0M4d21iZEtaYnBLYUI0NzdVeEF3S2gxYmpEcnU1OWs9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==', + keyFile: undefined, + name: '298101684398995518', + token: undefined, + password: undefined, + username: undefined + } + ], + currentContext: '298101684398995518-c380e8dff45a3440b8f8dfda227eccfa6' +} +[2024-08-05T13:46:19.470] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:46:19.472] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:46:21.474] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:46:37.548] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:46:37.548] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:46:40.377] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:48:31.222] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:48:31.224] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:48:51.460] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:49:00.216] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:49:00.217] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:49:38.157] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T13:49:43.019] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T13:49:43.020] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T13:50:06.197] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:50:06.198] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:50:10.596] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:51:00.695] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:51:00.696] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:52:34.201] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:52:34.202] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:52:54.651] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:52:54.653] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:54:07.567] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:54:11.627] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:54:11.628] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:54:46.603] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:54:50.115] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:54:50.115] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:55:07.495] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T13:55:16.371] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:55:16.372] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:56:02.628] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:56:05.929] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:56:05.929] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:58:45.149] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:58:48.459] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:58:48.459] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:58:55.350] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-backend-longi-scp-algorithm-group-1-v2-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-05T13:59:00.932] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:59:00.933] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:59:15.775] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv +[2024-08-05T13:59:15.775] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv +[2024-08-05T13:59:18.738] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T13:59:55.927] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv +[2024-08-05T14:00:07.890] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv +[2024-08-05T14:00:07.891] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv +[2024-08-05T14:00:17.042] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:00:17.043] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:00:30.003] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:00:31.860] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv ibp-uat-backend-longi-scp-data-center-group-1-v1-backend-longi-scp-data-center-group-1-v1-694cb5cb6d-6x5kv +[2024-08-05T14:00:34.367] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:00:34.367] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:00:39.474] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:00:45.495] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T14:00:45.495] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T14:00:59.627] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk ibp-dev-backend-longi-datax-executor-group-1-v1-backend-longi-datax-executor-group-1-v1-789b96dc8b-dfvwk +[2024-08-05T14:09:31.025] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-idaas-bsm-group-1-v1-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-05T14:09:31.026] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-idaas-bsm-group-1-v1-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp ibp-uat-backend-longi-scp-idaas-bsm-group-1-v1-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-05T14:09:38.510] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-idaas-bsm-group-1-v1-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp ibp-uat-backend-longi-scp-idaas-bsm-group-1-v1-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-05T14:14:58.111] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-dsl-group-1-v10-backend-longi-scp-dsl-group-1-v10-74cb548dd-hc8t7 +[2024-08-05T14:14:58.113] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-dsl-group-1-v10-backend-longi-scp-dsl-group-1-v10-74cb548dd-hc8t7 ibp-uat-backend-longi-scp-dsl-group-1-v10-backend-longi-scp-dsl-group-1-v10-74cb548dd-hc8t7 +[2024-08-05T14:22:07.040] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-dsl-group-1-v10-backend-longi-scp-dsl-group-1-v10-74cb548dd-hc8t7 ibp-uat-backend-longi-scp-dsl-group-1-v10-backend-longi-scp-dsl-group-1-v10-74cb548dd-hc8t7 +[2024-08-05T14:22:15.410] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:22:15.411] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:23:38.709] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:23:41.988] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:23:41.988] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:23:47.191] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:23:49.072] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:23:49.073] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:24:00.252] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:24:14.696] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:24:14.696] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:24:47.838] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T14:24:49.590] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:24:49.591] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:25:15.913] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:30:09.521] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:30:09.521] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:56:45.558] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:56:48.446] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T14:56:48.446] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:00:51.478] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:00:58.139] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:00:58.139] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:02:13.261] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:02:15.371] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:02:15.372] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:04:15.056] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:04:21.551] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:04:21.551] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:06:02.604] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:06:05.111] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:06:05.111] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:15:03.410] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:15:06.058] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:15:06.058] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:17:37.596] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:17:40.926] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:17:40.927] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:10.485] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:12.482] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:12.483] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:21.595] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:23.389] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:24.925] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T15:18:24.926] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T15:18:41.227] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T15:18:44.054] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:18:44.055] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:20:24.804] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:20:27.102] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:20:27.102] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:24:31.128] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:24:33.607] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:24:33.607] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:24:54.063] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:24:59.756] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:24:59.756] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:25:28.277] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:26:31.829] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:26:31.830] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:04.068] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:07.880] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:07.881] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:28.095] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:29.945] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:29.945] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:32:45.708] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:33:18.711] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:33:18.711] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:33:49.632] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:58:55.115] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:58:55.117] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:58:58.490] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T15:58:59.872] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T15:58:59.872] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T15:59:05.258] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T16:16:29.234] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T16:16:29.236] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T16:16:35.729] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:08.887] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:08.888] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:35.158] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:36.933] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:38.158] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:38.159] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:40.115] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:05:40.115] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:05:42.022] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:43.634] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:05:46.052] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:05:50.042] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:05:52.036] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:06:17.852] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T17:06:18.947] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:09:57.812] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:09:57.812] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:10:00.892] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:34:22.340] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:34:22.341] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:34:25.470] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T17:48:35.946] [INFO] default - 添加了一个窗口 ibp-uat-null-front-scp-font-pro-75795c7794-wzw6w +[2024-08-05T17:48:35.947] [INFO] default - 获取了一个窗口 ibp-uat-null-front-scp-font-pro-75795c7794-wzw6w ibp-uat-null-front-scp-font-pro-75795c7794-wzw6w +[2024-08-05T17:48:39.644] [INFO] default - 销毁了一个窗口 ibp-uat-null-front-scp-font-pro-75795c7794-wzw6w ibp-uat-null-front-scp-font-pro-75795c7794-wzw6w +[2024-08-05T17:48:44.873] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-stone-message-center-group-1-v2-78dbd9bf49-7jr7z +[2024-08-05T17:48:44.874] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-stone-message-center-group-1-v2-78dbd9bf49-7jr7z ibp-uat-null-backend-longi-stone-message-center-group-1-v2-78dbd9bf49-7jr7z +[2024-08-05T17:48:47.416] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-stone-message-center-group-1-v2-78dbd9bf49-7jr7z ibp-uat-null-backend-longi-stone-message-center-group-1-v2-78dbd9bf49-7jr7z +[2024-08-05T18:09:32.721] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T18:09:32.724] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T18:09:34.005] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-05T18:11:03.038] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:11:03.038] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:11:06.543] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:11:08.567] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:11:08.568] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:12:12.443] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:12:12.445] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T18:13:31.962] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-c62rj +[2024-08-05T19:08:11.917] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-05T19:08:11.919] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T00:49:51.068] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T09:37:40.793] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T09:37:40.794] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T09:40:43.564] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:40:43.564] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:40:54.050] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:40:56.588] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T09:42:08.584] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:42:08.585] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:42:55.700] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:43:33.144] [INFO] default - 添加了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:43:33.144] [INFO] default - 获取了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:44:56.638] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T09:44:56.638] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T09:45:27.734] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-algorithm-group-1-v3-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T09:45:27.734] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-algorithm-group-1-v3-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s ibp-uat-backend-longi-scp-algorithm-group-1-v3-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T09:45:32.305] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-algorithm-group-1-v3-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s ibp-uat-backend-longi-scp-algorithm-group-1-v3-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T09:46:41.214] [INFO] default - 添加了一个窗口 ibp-uat-null-front-datax-web-ui-755fc4cf49-vwjqt +[2024-08-06T09:46:41.214] [INFO] default - 获取了一个窗口 ibp-uat-null-front-datax-web-ui-755fc4cf49-vwjqt ibp-uat-null-front-datax-web-ui-755fc4cf49-vwjqt +[2024-08-06T09:46:44.412] [INFO] default - 销毁了一个窗口 ibp-uat-null-front-datax-web-ui-755fc4cf49-vwjqt ibp-uat-null-front-datax-web-ui-755fc4cf49-vwjqt +[2024-08-06T09:51:23.540] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T09:51:31.986] [INFO] default - 销毁了一个窗口 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 ibp-dev-backend-longi-datax-admin-group-1-v2-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-06T09:51:41.697] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-gateway-group-1-v2-585856c59b-wrqhv +[2024-08-06T09:51:41.698] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-gateway-group-1-v2-585856c59b-wrqhv ibp-uat-null-backend-longi-scp-gateway-group-1-v2-585856c59b-wrqhv +[2024-08-06T09:51:48.055] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-gateway-group-1-v2-585856c59b-wrqhv ibp-uat-null-backend-longi-scp-gateway-group-1-v2-585856c59b-wrqhv +[2024-08-06T09:54:19.691] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-customization-engi-cf37c5-v1-696955596b-cj4ct +[2024-08-06T09:54:19.692] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-customization-engi-cf37c5-v1-696955596b-cj4ct ibp-uat-null-backend-longi-scp-customization-engi-cf37c5-v1-696955596b-cj4ct +[2024-08-06T09:54:23.627] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-customization-engi-cf37c5-v1-696955596b-cj4ct ibp-uat-null-backend-longi-scp-customization-engi-cf37c5-v1-696955596b-cj4ct +[2024-08-06T09:54:38.917] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-datax-admin-group-1-v2-867c7f49d8-76m65 +[2024-08-06T09:54:38.918] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-datax-admin-group-1-v2-867c7f49d8-76m65 ibp-uat-null-backend-longi-datax-admin-group-1-v2-867c7f49d8-76m65 +[2024-08-06T09:54:41.619] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-datax-admin-group-1-v2-867c7f49d8-76m65 ibp-uat-null-backend-longi-datax-admin-group-1-v2-867c7f49d8-76m65 +[2024-08-06T09:57:24.715] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T09:57:24.716] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T09:57:37.964] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T09:57:39.887] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-68d9458d4d-h72bz +[2024-08-06T09:57:39.887] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-68d9458d4d-h72bz ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-68d9458d4d-h72bz +[2024-08-06T09:57:43.548] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-68d9458d4d-h72bz ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-68d9458d4d-h72bz +[2024-08-06T10:02:17.761] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-datax-executor-group-1-v2-b6557c66-bg4sp +[2024-08-06T10:02:17.763] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-datax-executor-group-1-v2-b6557c66-bg4sp ibp-uat-null-backend-longi-datax-executor-group-1-v2-b6557c66-bg4sp +[2024-08-06T10:02:19.230] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-datax-executor-group-1-v2-b6557c66-bg4sp ibp-uat-null-backend-longi-datax-executor-group-1-v2-b6557c66-bg4sp +[2024-08-06T15:26:42.213] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:26:42.215] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:28:03.552] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:28:03.553] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:30:03.718] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:30:09.708] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:30:09.709] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:50:49.377] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:51:12.175] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:51:12.175] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:51:40.189] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-ffd4c757c-9nvxx +[2024-08-06T15:51:44.632] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:51:44.632] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:53:29.620] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:53:33.356] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:53:33.357] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:54:27.272] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:54:28.918] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:54:28.919] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:56:31.503] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:56:35.352] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:56:35.353] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:56:47.937] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:56:49.537] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:56:49.538] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:57:10.556] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:57:13.096] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:57:13.096] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:58:22.327] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:58:24.167] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:58:24.167] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:59:34.617] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:59:37.305] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T15:59:37.306] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:00:29.004] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:00:31.399] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:00:31.400] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:02:08.650] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:02:13.493] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:02:13.494] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:02:46.402] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:02:48.297] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:02:48.297] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:06:01.618] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:06:03.604] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:06:03.605] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:08:09.152] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:08:12.469] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:08:12.469] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:10:08.586] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:10:10.695] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:10:10.695] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:10:48.096] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:11:22.164] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:11:22.165] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:12:15.434] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:12:17.372] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:12:17.372] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:13:00.350] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:13:02.450] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:13:02.450] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:13:37.496] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:13:46.310] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:13:46.311] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:14:16.139] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:14:19.309] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:14:19.310] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:15:31.134] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:15:35.073] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:15:35.074] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:19:47.358] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:19:47.359] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:20:00.531] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:20:02.195] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:20:02.196] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:20:18.822] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T16:20:27.649] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:20:27.649] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:20:35.653] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:20:44.103] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:20:44.103] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:22:07.724] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:22:07.726] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:23:19.158] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:23:19.159] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:24:31.654] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:24:31.655] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:24:49.961] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:24:49.963] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:29:33.270] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:53:38.725] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T16:53:38.726] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:05:45.685] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:26:38.771] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:26:38.773] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:27:03.514] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:27:19.470] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:27:19.471] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:27:56.279] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:27:58.763] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:27:58.763] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:29:18.100] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T17:29:18.102] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T17:32:14.860] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T17:32:18.771] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T17:32:18.772] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-06T17:34:34.711] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:34:34.712] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:35:25.902] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:35:27.382] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:35:27.382] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:37:21.888] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:37:26.899] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-587b8ccd99-9z5pp +[2024-08-06T17:37:26.900] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-587b8ccd99-9z5pp ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-587b8ccd99-9z5pp +[2024-08-06T17:37:35.693] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-587b8ccd99-9z5pp ibp-uat-null-backend-longi-scp-planning-engine-group-1-v1-587b8ccd99-9z5pp +[2024-08-06T17:37:37.555] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:37:37.556] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:37:41.381] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:37:45.683] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-06T17:37:45.684] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-06T17:38:29.442] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-06T17:38:32.166] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-06T17:38:32.166] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-06T17:38:55.450] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-06T17:39:01.275] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-idaas-bsm-group-1-v2-77d4cd6d64-kgvqv +[2024-08-06T17:39:01.276] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-idaas-bsm-group-1-v2-77d4cd6d64-kgvqv ibp-dev-null-backend-longi-scp-idaas-bsm-group-1-v2-77d4cd6d64-kgvqv +[2024-08-06T17:39:15.519] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-idaas-bsm-group-1-v2-77d4cd6d64-kgvqv ibp-dev-null-backend-longi-scp-idaas-bsm-group-1-v2-77d4cd6d64-kgvqv +[2024-08-06T17:39:18.401] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:39:18.402] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:40:58.624] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:41:25.378] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:41:25.379] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:41:41.242] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:41:43.113] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:41:43.114] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-06T17:42:51.052] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:42:51.054] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:43:44.914] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:43:44.916] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:44:03.152] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:44:03.154] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:44:22.148] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:44:22.150] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:45:32.481] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:45:32.482] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:46:16.206] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:46:16.208] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:47:04.824] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:47:20.245] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-06T17:47:20.245] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-06T17:47:45.915] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-06T17:48:51.649] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:48:51.651] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:49:24.349] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:49:28.408] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-06T17:49:28.409] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-06T17:49:35.967] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp ibp-uat-null-backend-longi-scp-idaas-bsm-group-1-v1-b47bc4c6c-vzgbp +[2024-08-06T17:49:37.582] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:49:37.582] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:50:20.785] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:50:20.787] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:50:54.262] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:50:54.264] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:51:58.247] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:52:05.022] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:52:05.022] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:53:02.718] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:53:34.813] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:53:34.813] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:54:58.498] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-06T17:55:04.264] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:55:04.264] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:56:43.944] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:56:48.956] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:56:48.957] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:57:10.985] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:57:13.413] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:57:13.413] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:57:19.328] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:57:28.902] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:57:28.902] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:58:03.841] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:58:05.709] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:58:05.710] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:58:10.605] [INFO] default - 销毁了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-vpxwb +[2024-08-06T17:59:18.458] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:59:18.461] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T17:59:48.745] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-dsl-group-1-v4-85d585f8dd-2sgc2 +[2024-08-06T17:59:48.747] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-dsl-group-1-v4-85d585f8dd-2sgc2 ibp-dev-null-backend-longi-scp-dsl-group-1-v4-85d585f8dd-2sgc2 +[2024-08-06T18:00:06.023] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T18:00:06.025] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T18:00:22.194] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T18:00:22.195] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T18:00:41.917] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-06T18:00:41.918] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T09:16:59.662] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T09:16:59.665] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T09:17:23.864] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-tlppv +[2024-08-07T09:17:23.864] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-tlppv ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-tlppv +[2024-08-07T09:18:12.091] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:18:12.093] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:23:57.691] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:24:01.319] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-process-group-1-v3-f95fd5b54-gngtd +[2024-08-07T09:24:01.320] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-process-group-1-v3-f95fd5b54-gngtd ibp-uat-null-backend-longi-scp-process-group-1-v3-f95fd5b54-gngtd +[2024-08-07T09:24:51.139] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:24:51.141] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:28:31.744] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:28:31.746] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:28:34.353] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:29:15.696] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T09:29:15.697] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T09:29:22.102] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T09:58:51.881] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:58:51.883] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:59:06.084] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:59:09.277] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:59:09.277] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:59:21.539] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-8djj7 +[2024-08-07T09:59:23.291] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-07T09:59:23.292] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-07T09:59:36.191] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g ibp-uat-null-backend-longi-scp-performance-batch-group-1-v4-69485758fb-n6q8g +[2024-08-07T11:17:48.706] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T11:17:48.708] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T11:24:58.001] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-07T11:24:58.003] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-algorithm-group-1-v3-7695c69c59-28t2s +[2024-08-07T13:20:39.277] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:20:39.279] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:21:30.729] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:21:35.680] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-07T13:21:35.681] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-07T13:24:10.541] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-meta-group-1-v11-6d4457bf78-krrfr +[2024-08-07T13:24:13.691] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:24:13.692] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:24:33.437] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:24:56.413] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:24:56.415] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:29:04.518] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:29:04.520] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:30:05.179] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:30:08.091] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:30:08.091] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:30:15.506] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:30:57.629] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T13:30:57.629] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-datax-admin-group-1-v2-5db5ddd78b-2h5x9 +[2024-08-07T16:14:13.520] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:14:13.521] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:14:54.291] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:14:56.360] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:14:56.361] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:19:12.093] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:19:13.900] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:19:13.901] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:20:42.311] [INFO] default - 销毁了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:20:43.956] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:20:43.956] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-dsl-group-1-v10-7f6dcd94c6-9nvts +[2024-08-07T16:39:53.134] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-07T16:39:53.137] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-07T16:50:46.198] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-07T16:50:47.972] [INFO] default - 添加了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-07T16:50:47.972] [INFO] default - 获取了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-07T17:09:10.537] [INFO] default - 销毁了一个窗口 ibp-dev-null-backend-longi-scp-algorithm-group-1-v2-7d86759dd5-tw4vw +[2024-08-07T17:09:16.594] [INFO] default - 添加了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T17:09:16.595] [INFO] default - 获取了一个窗口 ibp-uat-null-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T17:14:16.555] [INFO] default - 添加了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr +[2024-08-07T17:14:16.557] [INFO] default - 获取了一个窗口 ibp-uat-backend-longi-scp-meta-group-1-v4-backend-longi-scp-meta-group-1-v4-56f88c4b95-hwbrr diff --git a/dev-app-update.yml b/dev-app-update.yml new file mode 100644 index 0000000..167690d --- /dev/null +++ b/dev-app-update.yml @@ -0,0 +1,3 @@ +provider: generic +url: https://example.com/auto-updates +updaterCacheDirName: deploy-ease-app-updater diff --git a/electron-builder.yml b/electron-builder.yml new file mode 100644 index 0000000..bf7b3c8 --- /dev/null +++ b/electron-builder.yml @@ -0,0 +1,46 @@ +appId: com.electron.app +productName: deploy-ease-app +directories: + buildResources: build +files: + - '!**/.vscode/*' + - '!src/*' + - '!electron.vite.config.{js,ts,mjs,cjs}' + - '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' + - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' + - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}' +asarUnpack: + - resources/** +win: + icon: "./resources/icon.ico" + executableName: deploy-ease-app +nsis: + artifactName: ${name}-${version}-setup.${ext} + shortcutName: ${productName} + uninstallDisplayName: ${productName} + createDesktopShortcut: always + oneClick: false + allowToChangeInstallationDirectory: true +mac: + entitlementsInherit: build/entitlements.mac.plist + extendInfo: + - NSCameraUsageDescription: Application requests access to the device's camera. + - NSMicrophoneUsageDescription: Application requests access to the device's microphone. + - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. + - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. + notarize: false +dmg: + artifactName: ${name}-${version}.${ext} +linux: + target: + - AppImage + - snap + - deb + maintainer: dqc.org + category: Utility +appImage: + artifactName: ${name}-${version}.${ext} +npmRebuild: false +publish: + provider: generic + url: https://example.com/auto-updates diff --git a/electron.vite.config.ts b/electron.vite.config.ts new file mode 100644 index 0000000..23bd6b3 --- /dev/null +++ b/electron.vite.config.ts @@ -0,0 +1,25 @@ +import { resolve } from "path"; +import { defineConfig, externalizeDepsPlugin } from "electron-vite"; +import react from "@vitejs/plugin-react"; + +export default defineConfig({ + main: { + plugins: [externalizeDepsPlugin()] + }, + preload: { + plugins: [externalizeDepsPlugin()] + }, + renderer: { + resolve: { + alias: { + "@renderer": resolve("src/renderer/src") + } + }, + plugins: [ + react() + ], + define: { + "process.env": {} + } + } +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..8d3b206 --- /dev/null +++ b/package.json @@ -0,0 +1,62 @@ +{ + "name": "deploy-ease-app", + "version": "1.0.0", + "description": "", + "main": "./out/main/index.js", + "author": "Deng qi chen", + "homepage": "", + "scripts": { + "format": "prettier --write .", + "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix", + "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false", + "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false", + "typecheck": "npm run typecheck:node && npm run typecheck:web", + "start": "electron-vite preview", + "dev": "electron-vite dev --watch", + "build": "npm run typecheck && electron-vite pro build", + "postinstall": "electron-builder install-app-deps", + "build:unpack": "npm run build && electron-builder --dir", + "build:win": "npm run build && electron-builder --win", + "build:mac": "electron-vite build && electron-builder --mac", + "build:linux": "electron-vite build && electron-builder --linux" + }, + "dependencies": { + "@electron-toolkit/preload": "3.0.1", + "@electron-toolkit/utils": "3.0.0", + "@kubernetes/client-node": "0.21.0", + "@reduxjs/toolkit": "2.2.7", + "axios": "1.7.3", + "crypto-js": "4.2.0", + "electron-updater": "6.2.1", + "forever-agent": "0.6.1", + "log4js": "^6.9.1", + "moment": "2.30.1", + "react-redux": "9.1.2", + "react-router-dom": "6.26.0", + "tdesign-react": "1.7.8" + }, + "devDependencies": { + "@electron-toolkit/eslint-config-prettier": "2.0.0", + "@electron-toolkit/eslint-config-ts": "2.0.0", + "@electron-toolkit/tsconfig": "1.0.1", + "@types/log4js": "^2.3.5", + "@types/node": "20.14.14", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", + "@vitejs/plugin-react": "4.3.1", + "buffer": "6.0.3", + "electron": "31.3.1", + "electron-builder": "24.13.3", + "electron-vite": "2.3.0", + "eslint": "8.57.0", + "eslint-plugin-react": "7.35.0", + "events": "3.3.0", + "less": "4.2.0", + "pnpm": "9.6.0", + "prettier": "3.3.3", + "react": "18.3.1", + "react-dom": "18.3.1", + "typescript": "5.5.4", + "util": "0.12.5" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..5cbcbd5 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,5299 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@electron-toolkit/preload': + specifier: 3.0.1 + version: 3.0.1(electron@31.3.1) + '@electron-toolkit/utils': + specifier: 3.0.0 + version: 3.0.0(electron@31.3.1) + '@kubernetes/client-node': + specifier: 0.21.0 + version: 0.21.0 + '@reduxjs/toolkit': + specifier: 2.2.7 + version: 2.2.7(react-redux@9.1.2)(react@18.3.1) + axios: + specifier: 1.7.3 + version: 1.7.3 + crypto-js: + specifier: 4.2.0 + version: 4.2.0 + electron-updater: + specifier: 6.2.1 + version: 6.2.1 + forever-agent: + specifier: 0.6.1 + version: 0.6.1 + log4js: + specifier: ^6.9.1 + version: 6.9.1 + moment: + specifier: 2.30.1 + version: 2.30.1 + react-redux: + specifier: 9.1.2 + version: 9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) + react-router-dom: + specifier: 6.26.0 + version: 6.26.0(react-dom@18.3.1)(react@18.3.1) + tdesign-react: + specifier: 1.7.8 + version: 1.7.8(react-dom@18.3.1)(react@18.3.1) + +devDependencies: + '@electron-toolkit/eslint-config-prettier': + specifier: 2.0.0 + version: 2.0.0(eslint@8.57.0)(prettier@3.3.3) + '@electron-toolkit/eslint-config-ts': + specifier: 2.0.0 + version: 2.0.0(eslint@8.57.0)(typescript@5.5.4) + '@electron-toolkit/tsconfig': + specifier: 1.0.1 + version: 1.0.1(@types/node@20.14.14) + '@types/log4js': + specifier: ^2.3.5 + version: 2.3.5 + '@types/node': + specifier: 20.14.14 + version: 20.14.14 + '@types/react': + specifier: 18.3.3 + version: 18.3.3 + '@types/react-dom': + specifier: 18.3.0 + version: 18.3.0 + '@vitejs/plugin-react': + specifier: 4.3.1 + version: 4.3.1(vite@5.3.5) + buffer: + specifier: 6.0.3 + version: 6.0.3 + electron: + specifier: 31.3.1 + version: 31.3.1 + electron-builder: + specifier: 24.13.3 + version: 24.13.3(electron-builder-squirrel-windows@24.13.3) + electron-vite: + specifier: 2.3.0 + version: 2.3.0(vite@5.3.5) + eslint: + specifier: 8.57.0 + version: 8.57.0 + eslint-plugin-react: + specifier: 7.35.0 + version: 7.35.0(eslint@8.57.0) + events: + specifier: 3.3.0 + version: 3.3.0 + less: + specifier: 4.2.0 + version: 4.2.0 + pnpm: + specifier: 9.6.0 + version: 9.6.0 + prettier: + specifier: 3.3.3 + version: 3.3.3 + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + typescript: + specifier: 5.5.4 + version: 5.5.4 + util: + specifier: 0.12.5 + version: 0.12.5 + +packages: + + /7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + dev: true + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + dev: true + + /@babel/compat-data@7.25.2: + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.25.2: + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + convert-source-map: 2.0.0 + debug: 4.3.6 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.25.0: + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.2 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets@7.25.2: + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils@7.24.8: + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-string-parser@7.24.8: + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.24.8: + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.25.0: + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + dev: true + + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + dev: true + + /@babel/parser@7.25.3: + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.25.2 + dev: true + + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/runtime@7.24.8: + resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/template@7.25.0: + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + dev: true + + /@babel/traverse@7.25.3: + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + debug: 4.3.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.25.2: + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + dev: true + + /@develar/schema-utils@2.6.5: + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /@electron-toolkit/eslint-config-prettier@2.0.0(eslint@8.57.0)(prettier@3.3.3): + resolution: {integrity: sha512-L+uG1FvJcAZkPZpSi6B1pmdpyJFyOxWDTjr1Vs47vSryxv/EX1Ch6o4HVsachlDq3fMEkDgojuP2F3ZvVZMoLw==} + peerDependencies: + eslint: '>= 8.0.0' + prettier: '>= 3.0.0' + dependencies: + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.3) + prettier: 3.3.3 + transitivePeerDependencies: + - '@types/eslint' + dev: true + + /@electron-toolkit/eslint-config-ts@2.0.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-NGXadMyWH9+ZsgYe/u5E0mqK2qTDq01kKKnyo7oiq/7v/dWoMoPhqSkn69NZvt7WmnFNOm57l71fv6128mAx3Q==} + peerDependencies: + eslint: '>=8.56.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + eslint: 8.57.0 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron-toolkit/preload@3.0.1(electron@31.3.1): + resolution: {integrity: sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==} + peerDependencies: + electron: '>=13.0.0' + dependencies: + electron: 31.3.1 + dev: false + + /@electron-toolkit/tsconfig@1.0.1(@types/node@20.14.14): + resolution: {integrity: sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==} + peerDependencies: + '@types/node': '*' + dependencies: + '@types/node': 20.14.14 + dev: true + + /@electron-toolkit/utils@3.0.0(electron@31.3.1): + resolution: {integrity: sha512-GaXHDhiT7KCvMJjXdp/QqpYinq69T/Pdl49Z1XLf8mKGf63dnsODMWyrmIjEQ0z/vG7dO8qF3fvmI6Eb2lUNZA==} + peerDependencies: + electron: '>=13.0.0' + dependencies: + electron: 31.3.1 + dev: false + + /@electron/asar@3.2.10: + resolution: {integrity: sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /@electron/get@2.0.3: + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + dependencies: + debug: 4.3.6 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + /@electron/notarize@2.2.1: + resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.6 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/osx-sign@1.0.5: + resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + compare-version: 0.1.2 + debug: 4.3.6 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/universal@1.5.1: + resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==} + engines: {node: '>=8.6'} + dependencies: + '@electron/asar': 3.2.10 + '@malept/cross-spawn-promise': 1.1.1 + debug: 4.3.6 + dir-compare: 3.3.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + + /@isaacs/fs-minipass@4.0.1: + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + dependencies: + minipass: 7.1.2 + dev: false + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + dev: true + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true + + /@kubernetes/client-node@0.21.0: + resolution: {integrity: sha512-yYRbgMeyQbvZDHt/ZqsW3m4lRefzhbbJEuj8sVXM+bufKrgmzriA2oq7lWPH/k/LQIicAME9ixPUadTrxIF6dQ==} + dependencies: + '@types/js-yaml': 4.0.9 + '@types/node': 20.14.14 + '@types/request': 2.48.12 + '@types/ws': 8.5.12 + byline: 5.0.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + js-yaml: 4.1.0 + jsonpath-plus: 8.1.0 + request: 2.88.2 + rfc4648: 1.5.3 + stream-buffers: 3.0.3 + tar: 7.4.3 + tslib: 2.6.3 + ws: 8.18.0 + optionalDependencies: + openid-client: 5.6.5 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@malept/cross-spawn-promise@1.1.1: + resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} + engines: {node: '>= 10'} + dependencies: + cross-spawn: 7.0.3 + dev: true + + /@malept/flatpak-bundler@0.4.0: + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.6 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + optional: true + + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@reduxjs/toolkit@2.2.7(react-redux@9.1.2)(react@18.3.1): + resolution: {integrity: sha512-faI3cZbSdFb8yv9dhDTmGwclW0vk0z5o1cia+kf7gCbaCwHI5e+7tP57mJUv22pNcNbeA62GSrPpfrUfdXcQ6g==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + dependencies: + immer: 10.1.1 + react: 18.3.1 + react-redux: 9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + dev: false + + /@remix-run/router@1.19.0: + resolution: {integrity: sha512-zDICCLKEwbVYTS6TjYaWtHXxkdoUvD/QXvyVZjGCsWz5vyH7aFeONlPffPdW+Y/t6KT0MgXb2Mfjun9YpWN1dA==} + engines: {node: '>=14.0.0'} + dev: false + + /@rollup/rollup-android-arm-eabi@4.20.0: + resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.20.0: + resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.20.0: + resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.20.0: + resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.20.0: + resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + cpu: [arm] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.20.0: + resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + cpu: [arm] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.20.0: + resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.20.0: + resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.20.0: + resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.20.0: + resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.20.0: + resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.20.0: + resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.20.0: + resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.20.0: + resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.20.0: + resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.20.0: + resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + /@szmarczak/http-timer@4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + dev: true + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.25.2 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + dev: true + + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + dependencies: + '@babel/types': 7.25.2 + dev: true + + /@types/cacheable-request@6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 20.14.14 + '@types/responselike': 1.0.3 + + /@types/caseless@0.12.5: + resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} + dev: false + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/fs-extra@9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 20.14.14 + dev: true + + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + dev: false + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 20.14.14 + + /@types/log4js@2.3.5: + resolution: {integrity: sha512-SwF8LkSHqHy9A8GQ67NAYJiGl8zzP4Qtx65Wa+IOxDGdMHxKeoQZjg7m2M1erIT6VK0DYHpu2aTbdLkdkuMHjw==} + deprecated: This is a stub types definition for log4js (https://github.com/nomiddlename/log4js-node). log4js provides its own type definitions, so you don't need @types/log4js installed! + dependencies: + log4js: 6.9.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true + + /@types/node@20.14.14: + resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==} + dependencies: + undici-types: 5.26.5 + + /@types/plist@3.0.5: + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + requiresBuild: true + dependencies: + '@types/node': 20.14.14 + xmlbuilder: 15.1.1 + dev: true + optional: true + + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + /@types/react-dom@18.3.0: + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + dependencies: + '@types/react': 18.3.3 + dev: true + + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + /@types/request@2.48.12: + resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} + dependencies: + '@types/caseless': 0.12.5 + '@types/node': 20.14.14 + '@types/tough-cookie': 4.0.5 + form-data: 2.5.1 + dev: false + + /@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + dependencies: + '@types/node': 20.14.14 + + /@types/sortablejs@1.15.8: + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} + dev: false + + /@types/tinycolor2@1.4.6: + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + dev: false + + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: false + + /@types/use-sync-external-store@0.0.3: + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} + dev: false + + /@types/validator@13.12.0: + resolution: {integrity: sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag==} + dev: false + + /@types/verror@1.10.10: + resolution: {integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==} + requiresBuild: true + dev: true + optional: true + + /@types/ws@8.5.12: + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} + dependencies: + '@types/node': 20.14.14 + dev: false + + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 20.14.14 + optional: true + + /@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 + eslint: 8.57.0 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@7.18.0: + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + dev: true + + /@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.6 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@7.18.0: + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + + /@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4): + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@7.18.0: + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@vitejs/plugin-react@4.3.1(vite@5.3.5): + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.3.5(@types/node@20.14.14)(less@4.2.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dev: true + + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.12.1 + dev: true + + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + dev: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + /app-builder-bin@4.0.0: + resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + dev: true + + /app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3): + resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 24.13.3 + electron-builder-squirrel-windows: 24.13.3 + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 2.2.1 + '@electron/osx-sign': 1.0.5 + '@electron/universal': 1.5.1 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chromium-pickle-js: 0.2.0 + debug: 4.3.6 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + ejs: 3.1.10 + electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3) + electron-publish: 24.13.1 + form-data: 4.0.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.2 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + minimatch: 5.1.6 + read-config-file: 6.3.2 + sanitize-filename: 1.6.3 + semver: 7.6.3 + tar: 6.2.1 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + dev: true + + /archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: true + + /archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + async: 3.2.5 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + requiresBuild: true + dev: true + optional: true + + /async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + dev: true + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: false + + /aws4@1.13.0: + resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} + dev: false + + /axios@1.7.3: + resolution: {integrity: sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==} + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: false + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + dependencies: + bluebird: 3.7.2 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + requiresBuild: true + optional: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + dev: true + + /browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001647 + electron-to-chromium: 1.5.4 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + /buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builder-util-runtime@9.2.4: + resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==} + engines: {node: '>=12.0.0'} + dependencies: + debug: 4.3.6 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + + /builder-util@24.13.1: + resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==} + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 4.0.0 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + fs-extra: 10.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /byline@5.0.0: + resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} + engines: {node: '>=0.10.0'} + dev: false + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite@1.0.30001647: + resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} + dev: true + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + dev: false + + /chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + dev: true + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true + + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + dev: false + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + optional: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + + /compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + dev: true + + /compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /config-file-ts@0.2.6: + resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} + dependencies: + glob: 10.4.5 + typescript: 5.5.4 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: true + + /crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + dev: true + + /crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + requiresBuild: true + dependencies: + buffer: 5.7.1 + dev: true + optional: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: false + + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + + /debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + requiresBuild: true + optional: true + + /dir-compare@3.3.0: + resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + dependencies: + buffer-equal: 1.0.1 + minimatch: 3.1.2 + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + resolution: {integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==} + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + dev: true + + /dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + requiresBuild: true + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.10 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.1 + dev: true + optional: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.24.8 + csstype: 3.1.3 + dev: false + + /dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dev: true + + /dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: false + + /ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.9.2 + dev: true + + /electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3): + resolution: {integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==} + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + archiver: 5.3.2 + builder-util: 24.13.1 + fs-extra: 10.1.0 + transitivePeerDependencies: + - dmg-builder + - supports-color + dev: true + + /electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + resolution: {integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + read-config-file: 6.3.2 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + dev: true + + /electron-publish@24.13.1: + resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==} + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /electron-to-chromium@1.5.4: + resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} + dev: true + + /electron-updater@6.2.1: + resolution: {integrity: sha512-83eKIPW14qwZqUUM6wdsIRwVKZyjmHxQ4/8G+1C6iS5PdDt7b1umYQyj1/qPpH510GmHEQe4q0kCPe3qmb3a0Q==} + dependencies: + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.6.3 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /electron-vite@2.3.0(vite@5.3.5): + resolution: {integrity: sha512-lsN2FymgJlp4k6MrcsphGqZQ9fKRdJKasoaiwIrAewN1tapYI/KINLdfEL7n10LuF0pPSNf/IqjzZbB5VINctg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@swc/core': ^1.0.0 + vite: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + '@swc/core': + optional: true + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) + cac: 6.7.14 + esbuild: 0.21.5 + magic-string: 0.30.11 + picocolors: 1.0.1 + vite: 5.3.5(@types/node@20.14.14)(less@4.2.0) + transitivePeerDependencies: + - supports-color + dev: true + + /electron@31.3.1: + resolution: {integrity: sha512-9fiuWlRhBfygtcT+auRd/WdBK/f8LZZcrpx0RjpXhH2DPTP/PfnkC4JB1PW55qCbGbh4wAgkYbf4ExIag8oGCA==} + engines: {node: '>= 12.20.55'} + hasBin: true + requiresBuild: true + dependencies: + '@electron/get': 2.0.3 + '@types/node': 20.14.14 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.2 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + requiresBuild: true + optional: true + + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.3): + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.3.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.1 + dev: true + + /eslint-plugin-react@7.35.0(eslint@8.57.0): + resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + dev: true + + /esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.6 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: false + + /extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + requiresBuild: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: false + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /form-data@2.5.1: + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.6.3 + serialize-error: 7.0.1 + optional: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: false + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + dev: true + + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + dev: false + + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + dev: true + + /iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + requiresBuild: true + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + dev: true + optional: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.9.0 + dev: true + + /is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.2 + dev: true + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true + + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true + + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.15 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: false + + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + dev: true + + /isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isomorphic-ws@5.0.0(ws@8.18.0): + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + dependencies: + ws: 8.18.0 + dev: false + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + dev: true + + /jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + /jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jose@4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + requiresBuild: true + dev: false + optional: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: false + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + /jsonpath-plus@8.1.0: + resolution: {integrity: sha512-qVTiuKztFGw0dGhYi3WNqvddx3/SHtyDT0xJaeyz4uP0d1tkpG+0y5uYQ4OcIo1TLAz3PE/qDOW9F0uDt3+CTw==} + engines: {node: '>=14.0.0'} + hasBin: true + dev: false + + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + + /lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.8 + dev: true + + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.3 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + dev: true + + /lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + dev: true + + /lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + dev: false + + /lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} + dependencies: + date-format: 4.0.14 + debug: 4.3.6 + flatted: 3.3.1 + rfdc: 1.4.1 + streamroller: 3.1.5 + transitivePeerDependencies: + - supports-color + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + /lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + dev: true + optional: true + + /matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + escape-string-regexp: 4.0.0 + optional: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} + dependencies: + minipass: 7.1.2 + rimraf: 5.0.10 + dev: false + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: false + + /moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + dev: true + optional: true + + /node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + requiresBuild: true + dev: true + optional: true + + /node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash@2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + requiresBuild: true + dev: false + optional: true + + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /oidc-token-hash@5.0.3: + resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} + engines: {node: ^10.13.0 || >=12.0.0} + requiresBuild: true + dev: false + optional: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /openid-client@5.6.5: + resolution: {integrity: sha512-5P4qO9nGJzB5PI0LFlhj4Dzg3m4odt0qsJTfyEtZyOlkgpILwEioOhVVJOrS1iVH494S4Ee5OCjjg6Bf5WOj3w==} + requiresBuild: true + dependencies: + jose: 4.15.9 + lru-cache: 6.0.0 + object-hash: 2.2.0 + oidc-token-hash: 5.0.3 + dev: false + optional: true + + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + dev: true + + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: false + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true + dev: true + optional: true + + /plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + dev: true + + /pnpm@9.6.0: + resolution: {integrity: sha512-ONxvuo26NbOTQLlwARLC/h4S8QsXE0cVpKqYzPe7A152/Zgc8Ls4TfqY+NavVIHCvvL0Jmokv6IMNOtxR84LXg==} + engines: {node: '>=18.12'} + hasBin: true + dev: true + + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + + /postcss@8.4.40: + resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + dev: true + optional: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: false + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + /raf@3.4.1: + resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + dependencies: + performance-now: 2.1.0 + dev: false + + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + /react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: false + + /react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==} + peerDependencies: + '@popperjs/core': ^2.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + dependencies: + '@popperjs/core': 2.11.8 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + warning: 4.0.3 + dev: false + + /react-redux@9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1): + resolution: {integrity: sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==} + peerDependencies: + '@types/react': ^18.2.25 + react: ^18.0 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + dependencies: + '@types/react': 18.3.3 + '@types/use-sync-external-store': 0.0.3 + react: 18.3.1 + redux: 5.0.1 + use-sync-external-store: 1.2.2(react@18.3.1) + dev: false + + /react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + dev: true + + /react-router-dom@6.26.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.19.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.26.0(react@18.3.1) + dev: false + + /react-router@6.26.0(react@18.3.1): + resolution: {integrity: sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.19.0 + react: 18.3.1 + dev: false + + /react-transition-group@4.4.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.24.8 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + + /read-config-file@6.3.2: + resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} + engines: {node: '>=12.0.0'} + dependencies: + config-file-ts: 0.2.6 + dotenv: 9.0.2 + dotenv-expand: 5.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + dependencies: + minimatch: 5.1.6 + dev: true + + /redux-thunk@3.1.0(redux@5.0.1): + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + dependencies: + redux: 5.0.1 + dev: false + + /redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + dev: false + + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: false + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + dev: false + + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.15.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + dependencies: + lowercase-keys: 2.0.0 + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfc4648@1.5.3: + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + dev: false + + /rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + dependencies: + glob: 10.4.5 + dev: false + + /roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true + + /rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.20.0 + '@rollup/rollup-android-arm64': 4.20.0 + '@rollup/rollup-darwin-arm64': 4.20.0 + '@rollup/rollup-darwin-x64': 4.20.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 + '@rollup/rollup-linux-arm-musleabihf': 4.20.0 + '@rollup/rollup-linux-arm64-gnu': 4.20.0 + '@rollup/rollup-linux-arm64-musl': 4.20.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 + '@rollup/rollup-linux-riscv64-gnu': 4.20.0 + '@rollup/rollup-linux-s390x-gnu': 4.20.0 + '@rollup/rollup-linux-x64-gnu': 4.20.0 + '@rollup/rollup-linux-x64-musl': 4.20.0 + '@rollup/rollup-win32-arm64-msvc': 4.20.0 + '@rollup/rollup-win32-ia32-msvc': 4.20.0 + '@rollup/rollup-win32-x64-msvc': 4.20.0 + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + dependencies: + truncate-utf8-bytes: 1.0.2 + dev: true + + /sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + dependencies: + loose-envify: 1.4.0 + + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + requiresBuild: true + optional: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + /serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + type-fest: 0.13.1 + optional: true + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + /simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.3 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + optional: true + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + requiresBuild: true + dev: true + optional: true + + /sortablejs@1.15.2: + resolution: {integrity: sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==} + dev: false + + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + requiresBuild: true + optional: true + + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: false + + /stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + dev: true + + /stream-buffers@3.0.3: + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} + engines: {node: '>= 0.10.0'} + dev: false + + /streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} + dependencies: + date-format: 4.0.14 + debug: 4.3.6 + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: true + + /string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: true + + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.3 + dev: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 + dev: false + + /tdesign-icons-react@0.3.4(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-y4QOyqZkkxn7B2HDRHEqOKqQaVzw1ODp9Apu0i7TbpsLnakFYxnQzeTgDYUR7rIzsPrkkzIBkOh8myA9RKrZCQ==} + peerDependencies: + react: '>=16.13.1' + react-dom: '>=16.13.1' + dependencies: + '@babel/runtime': 7.24.8 + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /tdesign-react@1.7.8(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-cEw4fVAkvUAVYsyyb7rCu2X4CvBwMkjpbQVQVgpVasFYMwNwr/pkcUw19jtqhJwaIyMh6UJvn2ps+9A0xC7Hhg==} + peerDependencies: + react: '>=16.13.1' + react-dom: '>=16.13.1' + dependencies: + '@babel/runtime': 7.24.8 + '@popperjs/core': 2.11.8 + '@types/sortablejs': 1.15.8 + '@types/tinycolor2': 1.4.6 + '@types/validator': 13.12.0 + classnames: 2.5.1 + dayjs: 1.11.10 + hoist-non-react-statics: 3.3.2 + lodash: 4.17.21 + mitt: 3.0.1 + raf: 3.4.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.3.1)(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) + sortablejs: 1.15.2 + tdesign-icons-react: 0.3.4(react-dom@18.3.1)(react@18.3.1) + tinycolor2: 1.6.0 + tslib: 2.3.1 + validator: 13.7.0 + dev: false + + /temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + dev: false + + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + dev: false + + /tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + dependencies: + tmp: 0.2.3 + dev: true + + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + dev: false + + /truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + dependencies: + utf8-byte-length: 1.0.5 + dev: true + + /ts-api-utils@1.3.0(typescript@5.5.4): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.5.4 + dev: true + + /tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + dev: false + + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + requiresBuild: true + optional: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + + /typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + /update-browserslist-db@1.1.0(browserslist@4.23.3): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.3 + escalade: 3.1.2 + picocolors: 1.0.1 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + + /use-sync-external-store@1.2.2(react@18.3.1): + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.3.1 + dev: false + + /utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + dev: true + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + + /validator@13.7.0: + resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} + engines: {node: '>= 0.10'} + dev: false + + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + dev: false + + /verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + requiresBuild: true + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + dev: true + optional: true + + /vite@5.3.5(@types/node@20.14.14)(less@4.2.0): + resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.14.14 + esbuild: 0.21.5 + less: 4.2.0 + postcss: 8.4.40 + rollup: 4.20.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + dev: true + + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + requiresBuild: true + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + dev: true diff --git a/resources/icon.ico b/resources/icon.ico new file mode 100644 index 0000000..884fd27 Binary files /dev/null and b/resources/icon.ico differ diff --git a/resources/icon.png b/resources/icon.png new file mode 100644 index 0000000..bc69d4b Binary files /dev/null and b/resources/icon.png differ diff --git a/src/main/index.ts b/src/main/index.ts new file mode 100644 index 0000000..0644339 --- /dev/null +++ b/src/main/index.ts @@ -0,0 +1,240 @@ +import { app, shell, BrowserWindow, ipcMain } from "electron"; +import { join } from "path"; +import { electronApp, optimizer, is } from "@electron-toolkit/utils"; +import icon from "../../resources/icon.png?asset"; +import store from "../renderer/src/store"; +import { setIsDev } from "../renderer/src/store/reducer/GlobalReducer"; +import { CoreV1Api, KubeConfig } from "@kubernetes/client-node"; +import { httpKubeConfigStr } from "../renderer/src/module/Api"; +import { K8sPod } from "../renderer/src/response/K8sPod"; +import log from "../renderer/src/module/Log"; + + +let kubeConfig: KubeConfig | null = null; +let mainWindow: BrowserWindow; + + +function createWindow(): void { + mainWindow = new BrowserWindow({ + title: "deploy-ease-app", + width: 1400, + height: 800, + show: false, + resizable: true, + autoHideMenuBar: true, + icon: join(__dirname, "../../resources/icon.ico"), + ...(process.platform === "linux" ? { icon } : {}), + webPreferences: { + preload: join(__dirname, "../preload/index.js"), + sandbox: false, + nodeIntegration: true, + contextIsolation: false, + enableRemoteModule: true + } + }); + if (mainWindow == null) { + return; + } + + httpKubeConfigStr().then(async config => { + kubeConfig = new KubeConfig(); + kubeConfig.loadFromString(config); + }); + + mainWindow.on("ready-to-show", () => { + mainWindow.show(); + }); + + mainWindow.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url); + return { action: "deny" }; + }); + mainWindow.webContents.on("did-finish-load", () => { + // mainWindow.webContents.openDevTools(); + // mainWindow.webContents.send('store', store.getState()); + }); + let channelResizeChannelName = "channel-resize-main"; + mainWindow.on("resize", () => { + console.log(mainWindow.getContentSize()); + mainWindow.webContents.send(channelResizeChannelName, mainWindow.getContentSize()); + }); + + if (is.dev && process.env["ELECTRON_RENDERER_URL"]) { + mainWindow.loadURL(process.env["ELECTRON_RENDERER_URL"]); + } else { + mainWindow.loadFile(join(__dirname, "../renderer/index.html")); + } + store.dispatch(setIsDev(is.dev)); + disableDevTools(mainWindow); +} + +function disableDevTools(window: BrowserWindow | null) { + if (is.dev) { + return; + } else { + window?.webContents.on("devtools-opened", () => { + window.webContents.closeDevTools(); // 关闭开发者工具 + }); + } +} + +app.whenReady().then(() => { + electronApp.setAppUserModelId("com.dqc"); + app.on("browser-window-created", (_, window) => { + optimizer.watchWindowShortcuts(window); + }); + createWindow(); + app.on("activate", function() { + if (BrowserWindow.getAllWindows().length === 0) createWindow(); + }); +}); + + +interface OpenedWindow { + windowName: string, + instance: BrowserWindow +} + + +let openedLogWindows: Array = []; + + +function setOpenedLogWindow(windowName: string, instance: BrowserWindow) { + const newWindow: OpenedWindow = { + windowName: windowName, + instance: instance + }; + openedLogWindows.push(newWindow); + log.info(`添加了一个窗口 ${windowName}`); +} + +const getOpenedLogWindow = (windowName: string) => { + for (let i = 0; i < openedLogWindows.length; i++) { + if (windowName === openedLogWindows[i].windowName) { + log.info(`获取了一个窗口 ${windowName}`); + return openedLogWindows[i].instance; + } + } + return null; +}; + +const destroyOpenedLogWindow = (windowName: string) => { + let index = openedLogWindows.findIndex(openedLogWindow => windowName === openedLogWindow.windowName); + if (index !== -1) { + log.info(`销毁了一个窗口 ${windowName}`); + let instance = openedLogWindows[index].instance; + // instance.webContents.removeAllListeners() + instance.destroy(); + openedLogWindows.splice(index, 1); + } +}; +// @ts-ignore +ipcMain.handle("createLogWindow", async (event, args) => { + const pod: K8sPod = args.pod; + let windowName = pod.namespace + "-" + pod.deploymentName + "-" + pod.name; + let windowInstance: BrowserWindow | null = getOpenedLogWindow(windowName); + if (windowInstance != null) { + windowInstance.focus(); + return; + } + const newLogWindow: BrowserWindow = new BrowserWindow({ + title: windowName, + width: 1220, + height: 640, + autoHideMenuBar: true, + webPreferences: { + preload: join(__dirname, "../preload/index.js"), + sandbox: false, + nodeIntegration: false, + gpuAcceleration: true, + enableRemoteModule: true, + contextIsolation: false, + experimentalFeatures: true + } + }); + await setOpenedLogWindow(windowName, newLogWindow); + windowInstance = await getOpenedLogWindow(windowName); + if (windowInstance == null) { + return; + } + if (is.dev && process.env["ELECTRON_RENDERER_URL"]) { + let fullUri = process.env["ELECTRON_RENDERER_URL"] + "#/k8s/pod/log?isFullScreen=true&namespace=" + pod.namespace + "&podName=" + pod.name + "&container=" + pod.container; + windowInstance?.loadURL(fullUri, {}); + } else { + windowInstance?.loadFile(join(__dirname, "../renderer/index.html"), { + hash: "#/k8s/pod/log", + query: { + isFullScreen: "true", + namespace: pod.namespace, + podName: pod.name, + container: pod.container + } + }); + } + let channelResizeChannelName = "channel-resize-" + pod.namespace + "-" + pod.name; + windowInstance?.on("resize", () => { + windowInstance.webContents.send(channelResizeChannelName, windowInstance?.getContentSize()); + }); + windowInstance?.on("closed", () => { + windowInstance.destroy(); + }); + windowInstance?.webContents.on("did-finish-load", () => { + if (kubeConfig == null) { + return; + } + // let coreV1Api = kubeConfig.makeApiClient(CoreV1Api); + // let channelLogName = "channel-log-" + pod.namespace + "-" + pod.name; + // windowInstance.webContents.send(channelLogName, c); + // pollLogs(windowInstance, coreV1Api, pod); + }); + windowInstance?.on("closed", () => { + destroyOpenedLogWindow(windowName); + }); + disableDevTools(windowInstance); +}); + +async function pollLogs(windowInstance: BrowserWindow, api: CoreV1Api, pod: K8sPod) { + if (windowInstance == null) { + return; + } + try { + let channelLogName = "channel-log-" + pod.namespace + "-" + pod.name; + let timestamp = Math.floor(new Date().getTime() / 1000 - (1000 * 5)); + let response = await api.readNamespacedPodLog( + pod.name, + pod.namespace, + pod.container, + false, + false, + 1024000, + "false", + false, + timestamp, + 100, + true + ); + let body = (response).body; + if (body != null && body.length > 0) { + if (!windowInstance.isDestroyed()) { + windowInstance.webContents.send(channelLogName, body); + } + setTimeout(() => { + pollLogs(windowInstance, api, pod); + }, 2000); + } + } catch (err) { + console.error("Error retrieving pod logs:", err); + } +} + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on("window-all-closed", () => { + if (process.platform !== "darwin") { + app.quit(); + } +}); + +// In this file you can include the rest of your app"s specific main process +// code. You can also put them in separate files and require them here. diff --git a/src/preload/index.d.ts b/src/preload/index.d.ts new file mode 100644 index 0000000..a153669 --- /dev/null +++ b/src/preload/index.d.ts @@ -0,0 +1,8 @@ +import { ElectronAPI } from '@electron-toolkit/preload' + +declare global { + interface Window { + electron: ElectronAPI + api: unknown + } +} diff --git a/src/preload/index.ts b/src/preload/index.ts new file mode 100644 index 0000000..d6a1c66 --- /dev/null +++ b/src/preload/index.ts @@ -0,0 +1,34 @@ +import { contextBridge } from "electron"; +import { electronAPI } from "@electron-toolkit/preload"; +import { httpKubeConfigStr } from "../renderer/src/module/Api"; +import { CoreV1Api, KubeConfig } from "@kubernetes/client-node"; +// Custom APIs for renderer +const api = { + async k8sCoreV1Api(): CoreV1Api { + let config = await httpKubeConfigStr(); + let kubeConfig: KubeConfig = new KubeConfig(); + kubeConfig.loadFromString(config); + return kubeConfig.makeApiClient(CoreV1Api); + } +}; + +// Use `contextBridge` APIs to expose Electron APIs to +// renderer only if context isolation is enabled, otherwise +// just add to the DOM global. +if (process.contextIsolated) { + try { + contextBridge.exposeInMainWorld("electron", electronAPI); + contextBridge.exposeInMainWorld("api", api); + } catch (error) { + console.error(error); + } +} else { + // @ts-ignore (define in dts) + window.electron = electronAPI; + // @ts-ignore (define in dts) + window.api = api; +} + + + + diff --git a/src/renderer/index.html b/src/renderer/index.html new file mode 100644 index 0000000..456881f --- /dev/null +++ b/src/renderer/index.html @@ -0,0 +1,13 @@ + + + + + + + + + +
+ + + diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx new file mode 100644 index 0000000..5a130d7 --- /dev/null +++ b/src/renderer/src/App.tsx @@ -0,0 +1,78 @@ +import "./assets/app.css"; +import { Fragment, useEffect, useState } from "react"; +import { Layout, Row, Col } from "tdesign-react"; +import HeadMenu from "tdesign-react/es/menu/HeadMenu"; +import Style from "./app.module.less"; +import AppRouter from "./pages/AppRouter"; +import AppMenus from "./pages/menu/AppMenu"; +import logo from "../src/assets/logo.png"; +import { getUrlHashParams } from "./utils/utils"; + +const { + Content, + Footer, + Aside +} = Layout; + + +export default function App() { + let [windowHeight, setWindowHeight] = useState(586); + let isFullScreen = getIsFullScreen(); + let channelResizeChannelName = "channel-resize-main"; + + // @ts-ignore + function getIsFullScreen() { + let result = getUrlHashParams(window.location.href, "isFullScreen"); + if (Object.keys(result).length === 0) { + return false; + } + return Boolean(result); + } + + useEffect(() => { + // @ts-ignore + window.electron.ipcRenderer.on(channelResizeChannelName, (event, size) => { + setWindowHeight(size[1] - 175); + }); + }, []); + return ( + <> + { + isFullScreen ? ( + + ) : ( + + + + } + > + + + + + + + + +
+ +
+ +
+
+
© 2024 Deng qi chen. All rights reserved.
+
+
+
+ ) + } + + ); +} diff --git a/src/renderer/src/app.module.less b/src/renderer/src/app.module.less new file mode 100644 index 0000000..da5c472 --- /dev/null +++ b/src/renderer/src/app.module.less @@ -0,0 +1,8 @@ +.contentContainer { + padding: 24px 24px 24px 24px; +} + +.container { + overflow-y: scroll; + padding-right: 10px; +} diff --git a/src/renderer/src/assets/app.css b/src/renderer/src/assets/app.css new file mode 100644 index 0000000..3e27a84 --- /dev/null +++ b/src/renderer/src/assets/app.css @@ -0,0 +1,473 @@ +body { + overflow: hidden; + margin: 0; +} + +.container { + padding: 10px 0; + overflow-y: scroll; + height: 600px; +} + +.t-breadcrumb { + margin-bottom: 10px; +} + +:root { + --td-screen-xs: 320px; + --td-screen-sm: 768px; + --td-screen-md: 992px; + --td-screen-lg: 1200px; + --td-screen-xl: 1400px; + --td-screen-xxl: 1880px; +} + +@-moz-document url-prefix() { + .narrow-scrollbar { + scrollbar-color: var(--td-scrollbar-color) transparent; + scrollbar-width: thin; + } +} + +.narrow-scrollbar::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +.narrow-scrollbar::-webkit-scrollbar-thumb { + border: 2px solid transparent; + background-clip: content-box; + background-color: var(--td-scrollbar-color); + border-radius: 15px; +} + +.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover, +.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover { + background-color: var(--td-scrollbar-hover-color); +} + +.t-fake-arrow path { + -webkit-transition: d 0.2s; + transition: d 0.2s; + stroke: currentcolor; +} + +.t-fake-arrow--active path { + d: path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425"); +} + +.t-slide-down-enter-active, +.t-slide-down-leave-active { + -webkit-transition: height 0.2s cubic-bezier(0.38, 0, 0.24, 1); + transition: height 0.2s cubic-bezier(0.38, 0, 0.24, 1); +} + +:root, +:root[theme-mode="light"] { + --td-brand-color-1: #f2f3ff; + --td-brand-color-2: #d9e1ff; + --td-brand-color-3: #b5c7ff; + --td-brand-color-4: #8eabff; + --td-brand-color-5: #618dff; + --td-brand-color-6: #366ef4; + --td-brand-color-7: #0052d9; + --td-brand-color-8: #003cab; + --td-brand-color-9: #002a7c; + --td-brand-color-10: #001a57; + --td-warning-color-1: #fff1e9; + --td-warning-color-2: #ffd9c2; + --td-warning-color-3: #ffb98c; + --td-warning-color-4: #fa9550; + --td-warning-color-5: #e37318; + --td-warning-color-6: #be5a00; + --td-warning-color-7: #954500; + --td-warning-color-8: #713300; + --td-warning-color-9: #532300; + --td-warning-color-10: #3b1700; + --td-error-color-1: #fff0ed; + --td-error-color-2: #ffd8d2; + --td-error-color-3: #ffb9b0; + --td-error-color-4: #ff9285; + --td-error-color-5: #f6685d; + --td-error-color-6: #d54941; + --td-error-color-7: #ad352f; + --td-error-color-8: #881f1c; + --td-error-color-9: #68070a; + --td-error-color-10: #490002; + --td-success-color-1: #e3f9e9; + --td-success-color-2: #c6f3d7; + --td-success-color-3: #92dab2; + --td-success-color-4: #56c08d; + --td-success-color-5: #2ba471; + --td-success-color-6: #008858; + --td-success-color-7: #006c45; + --td-success-color-8: #005334; + --td-success-color-9: #003b23; + --td-success-color-10: #002515; + --td-gray-color-1: #f3f3f3; + --td-gray-color-2: #eee; + --td-gray-color-3: #e8e8e8; + --td-gray-color-4: #ddd; + --td-gray-color-5: #c6c6c6; + --td-gray-color-6: #a6a6a6; + --td-gray-color-7: #8b8b8b; + --td-gray-color-8: #777; + --td-gray-color-9: #5e5e5e; + --td-gray-color-10: #4b4b4b; + --td-gray-color-11: #393939; + --td-gray-color-12: #2c2c2c; + --td-gray-color-13: #242424; + --td-gray-color-14: #181818; + --td-font-white-1: #ffffff; + --td-font-white-2: rgba(255, 255, 255, 0.55); + --td-font-white-3: rgba(255, 255, 255, 0.35); + --td-font-white-4: rgba(255, 255, 255, 0.22); + --td-font-gray-1: rgba(0, 0, 0, 0.9); + --td-font-gray-2: rgba(0, 0, 0, 0.6); + --td-font-gray-3: rgba(0, 0, 0, 0.4); + --td-font-gray-4: rgba(0, 0, 0, 0.26); + --td-brand-color: var(--td-brand-color-7); + --td-warning-color: var(--td-warning-color-5); + --td-error-color: var(--td-error-color-6); + --td-success-color: var(--td-success-color-5); + --td-brand-color-hover: var(--td-brand-color-6); + --td-brand-color-focus: var(--td-brand-color-2); + --td-brand-color-active: var(--td-brand-color-8); + --td-brand-color-disabled: var(--td-brand-color-3); + --td-brand-color-light: var(--td-brand-color-1); + --td-brand-color-light-hover: var(--td-brand-color-2); + --td-warning-color-hover: var(--td-warning-color-4); + --td-warning-color-focus: var(--td-warning-color-2); + --td-warning-color-active: var(--td-warning-color-6); + --td-warning-color-disabled: var(--td-warning-color-3); + --td-warning-color-light: var(--td-warning-color-1); + --td-warning-color-light-hover: var(--td-warning-color-2); + --td-error-color-hover: var(--td-error-color-5); + --td-error-color-focus: var(--td-error-color-2); + --td-error-color-active: var(--td-error-color-7); + --td-error-color-disabled: var(--td-error-color-3); + --td-error-color-light: var(--td-error-color-1); + --td-error-color-light-hover: var(--td-error-color-2); + --td-success-color-hover: var(--td-success-color-4); + --td-success-color-focus: var(--td-success-color-2); + --td-success-color-active: var(--td-success-color-6); + --td-success-color-disabled: var(--td-success-color-3); + --td-success-color-light: var(--td-success-color-1); + --td-success-color-light-hover: var(--td-success-color-2); + --td-mask-active: rgba(0, 0, 0, 0.6); + --td-mask-disabled: rgba(255, 255, 255, 0.6); + --td-bg-color-page: var(--td-gray-color-2); + --td-bg-color-container: #fff; + --td-bg-color-container-hover: var(--td-gray-color-1); + --td-bg-color-container-active: var(--td-gray-color-3); + --td-bg-color-container-select: #fff; + --td-bg-color-secondarycontainer: var(--td-gray-color-1); + --td-bg-color-secondarycontainer-hover: var(--td-gray-color-2); + --td-bg-color-secondarycontainer-active: var(--td-gray-color-4); + --td-bg-color-component: var(--td-gray-color-3); + --td-bg-color-component-hover: var(--td-gray-color-4); + --td-bg-color-component-active: var(--td-gray-color-6); + --td-bg-color-secondarycomponent: var(--td-gray-color-4); + --td-bg-color-secondarycomponent-hover: var(--td-gray-color-5); + --td-bg-color-secondarycomponent-active: var(--td-gray-color-6); + --td-bg-color-component-disabled: var(--td-gray-color-2); + --td-bg-color-specialcomponent: #fff; + --td-text-color-primary: var(--td-font-gray-1); + --td-text-color-secondary: var(--td-font-gray-2); + --td-text-color-placeholder: var(--td-font-gray-3); + --td-text-color-disabled: var(--td-font-gray-4); + --td-text-color-anti: #fff; + --td-text-color-brand: var(--td-brand-color-7); + --td-text-color-link: var(--td-brand-color-8); + --td-border-level-1-color: var(--td-gray-color-3); + --td-component-stroke: var(--td-gray-color-3); + --td-border-level-2-color: var(--td-gray-color-4); + --td-component-border: var(--td-gray-color-4); + --td-shadow-1: 0 1px 10px rgba(0, 0, 0, 0.05), 0 4px 5px rgba(0, 0, 0, 8%), 0 2px 4px -1px rgba(0, 0, 0, 12%); + --td-shadow-2: 0 3px 14px 2px rgba(0, 0, 0, 0.05), 0 8px 10px 1px rgba(0, 0, 0, 6%), 0 5px 5px -3px rgba(0, 0, 0, 10%); + --td-shadow-3: 0 6px 30px 5px rgba(0, 0, 0, 0.05), 0 16px 24px 2px rgba(0, 0, 0, 4%), 0 8px 10px -5px rgba(0, 0, 0, 8%); + --td-shadow-inset-top: inset 0 0.5px 0 #dcdcdc; + --td-shadow-inset-right: inset 0.5px 0 0 #dcdcdc; + --td-shadow-inset-bottom: inset 0 -0.5px 0 #dcdcdc; + --td-shadow-inset-left: inset -0.5px 0 0 #dcdcdc; + --td-table-shadow-color: rgba(0, 0, 0, 0.08); + --td-scrollbar-color: rgba(0, 0, 0, 0.1); + --td-scrollbar-hover-color: rgba(0, 0, 0, 0.3); + --td-scroll-track-color: #fff; +} + +:root[theme-mode="dark"] { + --td-brand-color-1: #1b2f51; + --td-brand-color-2: #173463; + --td-brand-color-3: #143975; + --td-brand-color-4: #103d88; + --td-brand-color-5: #0d429a; + --td-brand-color-6: #054bbe; + --td-brand-color-7: #2667d4; + --td-brand-color-8: #4582e6; + --td-brand-color-9: #699ef5; + --td-brand-color-10: #96bbf8; + --td-warning-color-1: #4f2a1d; + --td-warning-color-2: #582f21; + --td-warning-color-3: #733c23; + --td-warning-color-4: #a75d2b; + --td-warning-color-5: #cf6e2d; + --td-warning-color-6: #dc7633; + --td-warning-color-7: #e8935c; + --td-warning-color-8: #ecbf91; + --td-warning-color-9: #eed7bf; + --td-warning-color-10: #f3e9dc; + --td-error-color-1: #472324; + --td-error-color-2: #5e2a2d; + --td-error-color-3: #703439; + --td-error-color-4: #83383e; + --td-error-color-5: #a03f46; + --td-error-color-6: #c64751; + --td-error-color-7: #de6670; + --td-error-color-8: #ec888e; + --td-error-color-9: #edb1b6; + --td-error-color-10: #eeced0; + --td-success-color-1: #193a2a; + --td-success-color-2: #1a4230; + --td-success-color-3: #17533d; + --td-success-color-4: #0d7a55; + --td-success-color-5: #059465; + --td-success-color-6: #43af8a; + --td-success-color-7: #46bf96; + --td-success-color-8: #80d2b6; + --td-success-color-9: #b4e1d3; + --td-success-color-10: #deede8; + --td-gray-color-1: #f3f3f3; + --td-gray-color-2: #eee; + --td-gray-color-3: #e8e8e8; + --td-gray-color-4: #ddd; + --td-gray-color-5: #c6c6c6; + --td-gray-color-6: #a6a6a6; + --td-gray-color-7: #8b8b8b; + --td-gray-color-8: #777; + --td-gray-color-9: #5e5e5e; + --td-gray-color-10: #4b4b4b; + --td-gray-color-11: #393939; + --td-gray-color-12: #2c2c2c; + --td-gray-color-13: #242424; + --td-gray-color-14: #181818; + --td-font-white-1: rgba(255, 255, 255, 0.9); + --td-font-white-2: rgba(255, 255, 255, 0.55); + --td-font-white-3: rgba(255, 255, 255, 0.35); + --td-font-white-4: rgba(255, 255, 255, 0.22); + --td-font-gray-1: rgba(0, 0, 0, 0.9); + --td-font-gray-2: rgba(0, 0, 0, 0.6); + --td-font-gray-3: rgba(0, 0, 0, 0.4); + --td-font-gray-4: rgba(0, 0, 0, 0.26); + --td-brand-color: var(--td-brand-color-8); + --td-warning-color: var(--td-warning-color-5); + --td-error-color: var(--td-error-color-6); + --td-success-color: var(--td-success-color-5); + --td-brand-color-hover: var(--td-brand-color-7); + --td-brand-color-focus: var(--td-brand-color-2); + --td-brand-color-active: var(--td-brand-color-9); + --td-brand-color-disabled: var(--td-brand-color-3); + --td-brand-color-light: var(--td-brand-color-1); + --td-brand-color-light-hover: var(--td-brand-color-2); + --td-warning-color-hover: var(--td-warning-color-4); + --td-warning-color-focus: var(--td-warning-color-2); + --td-warning-color-active: var(--td-warning-color-6); + --td-warning-color-disabled: var(--td-warning-color-3); + --td-warning-color-light: var(--td-warning-color-1); + --td-warning-color-light-hover: var(--td-warning-color-2); + --td-error-color-hover: var(--td-error-color-5); + --td-error-color-focus: var(--td-error-color-2); + --td-error-color-active: var(--td-error-color-7); + --td-error-color-disabled: var(--td-error-color-3); + --td-error-color-light: var(--td-error-color-1); + --td-error-color-light-hover: var(--td-error-color-2); + --td-success-color-hover: var(--td-success-color-4); + --td-success-color-focus: var(--td-success-color-2); + --td-success-color-active: var(--td-success-color-6); + --td-success-color-disabled: var(--td-success-color-3); + --td-success-color-light: var(--td-success-color-1); + --td-success-color-light-hover: var(--td-success-color-2); + --td-mask-active: rgba(0, 0, 0, 0.4); + --td-mask-disabled: rgba(0, 0, 0, 0.6); + --td-bg-color-page: var(--td-gray-color-14); + --td-bg-color-container: var(--td-gray-color-13); + --td-bg-color-container-hover: var(--td-gray-color-12); + --td-bg-color-container-active: var(--td-gray-color-10); + --td-bg-color-container-select: var(--td-gray-color-9); + --td-bg-color-secondarycontainer: var(--td-gray-color-12); + --td-bg-color-secondarycontainer-hover: var(--td-gray-color-11); + --td-bg-color-secondarycontainer-active: var(--td-gray-color-9); + --td-bg-color-component: var(--td-gray-color-11); + --td-bg-color-component-hover: var(--td-gray-color-10); + --td-bg-color-component-active: var(--td-gray-color-9); + --td-bg-color-secondarycomponent: var(--td-gray-color-10); + --td-bg-color-secondarycomponent-hover: var(--td-gray-color-9); + --td-bg-color-secondarycomponent-active: var(--td-gray-color-8); + --td-bg-color-component-disabled: var(--td-gray-color-12); + --td-bg-color-specialcomponent: transparent; + --td-text-color-primary: var(--td-font-white-1); + --td-text-color-secondary: var(--td-font-white-2); + --td-text-color-placeholder: var(--td-font-white-3); + --td-text-color-disabled: var(--td-font-white-4); + --td-text-color-anti: #fff; + --td-text-color-brand: var(--td-brand-color-8); + --td-text-color-link: var(--td-brand-color-8); + --td-border-level-1-color: var(--td-gray-color-11); + --td-component-stroke: var(--td-gray-color-11); + --td-border-level-2-color: var(--td-gray-color-9); + --td-component-border: var(--td-gray-color-9); + --td-shadow-1: 0 4px 6px rgba(0, 0, 0, 0.06), 0 1px 10px rgba(0, 0, 0, 8%), 0 2px 4px rgba(0, 0, 0, 12%); + --td-shadow-2: 0 8px 10px rgba(0, 0, 0, 0.12), 0 3px 14px rgba(0, 0, 0, 10%), 0 5px 5px rgba(0, 0, 0, 16%); + --td-shadow-3: 0 16px 24px rgba(0, 0, 0, 0.14), 0 6px 30px rgba(0, 0, 0, 12%), 0 8px 10px rgba(0, 0, 0, 20%); + --td-shadow-inset-top: inset 0 0.5px 0 #5e5e5e; + --td-shadow-inset-right: inset 0.5px 0 0 #5e5e5e; + --td-shadow-inset-bottom: inset 0 -0.5px 0 #5e5e5e; + --td-shadow-inset-left: inset -0.5px 0 0 #5e5e5e; + --td-table-shadow-color: rgba(0, 0, 0, 0.55); + --td-scrollbar-color: rgba(255, 255, 255, 0.1); + --td-scrollbar-hover-color: rgba(255, 255, 255, 0.3); + --td-scroll-track-color: #333; +} + +:root { + --td-radius-small: 2px; + --td-radius-default: 3px; + --td-radius-medium: 6px; + --td-radius-large: 9px; + --td-radius-extraLarge: 12px; + --td-radius-round: 999px; + --td-radius-circle: 50%; +} + +:root { + --td-font-family: PingFang SC, Microsoft YaHei, Arial Regular; + --td-font-family-medium: PingFang SC, Microsoft YaHei, Arial Medium; + --td-font-size-link-small: 12px; + --td-font-size-link-medium: 14px; + --td-font-size-link-large: 16px; + --td-font-size-mark-small: 12px; + --td-font-size-mark-medium: 14px; + --td-font-size-body-small: 12px; + --td-font-size-body-medium: 14px; + --td-font-size-body-large: 16px; + --td-font-size-title-small: 14px; + --td-font-size-title-medium: 16px; + --td-font-size-title-large: 20px; + --td-font-size-headline-small: 24px; + --td-font-size-headline-medium: 28px; + --td-font-size-headline-large: 36px; + --td-font-size-display-medium: 48px; + --td-font-size-display-large: 64px; + --td-line-height-link-small: 20px; + --td-line-height-link-medium: 22px; + --td-line-height-link-large: 24px; + --td-line-height-mark-small: 20px; + --td-line-height-mark-medium: 22px; + --td-line-height-body-small: 20px; + --td-line-height-body-medium: 22px; + --td-line-height-body-large: 24px; + --td-line-height-title-small: 22px; + --td-line-height-title-medium: 24px; + --td-line-height-title-large: 28px; + --td-line-height-headline-small: 32px; + --td-line-height-headline-medium: 36px; + --td-line-height-headline-large: 44px; + --td-line-height-display-medium: 56px; + --td-line-height-display-large: 72px; + --td-font-link-small: var(--td-font-size-link-small) / + var(--td-line-height-link-small) var(--td-font-family); + --td-font-link-medium: var(--td-font-size-link-medium) / + var(--td-line-height-link-medium) var(--td-font-family); + --td-font-link-large: var(--td-font-size-link-large) / + var(--td-line-height-link-large) var(--td-font-family); + --td-font-mark-small: 600 var(--td-font-size-mark-small) / + var(--td-line-height-mark-small) var(--td-font-family); + --td-font-mark-medium: 600 var(--td-font-size-mark-medium) / + var(--td-line-height-mark-medium) var(--td-font-family); + --td-font-body-small: var(--td-font-size-body-small) / + var(--td-line-height-body-small) var(--td-font-family); + --td-font-body-medium: var(--td-font-size-body-medium) / + var(--td-line-height-body-medium) var(--td-font-family); + --td-font-body-large: var(--td-font-size-body-large) / + var(--td-line-height-body-large) var(--td-font-family); + --td-font-title-small: 600 var(--td-font-size-title-small) / + var(--td-line-height-title-small) var(--td-font-family); + --td-font-title-medium: 600 var(--td-font-size-title-medium) / + var(--td-line-height-title-medium) var(--td-font-family); + --td-font-title-large: 600 var(--td-font-size-title-large) / + var(--td-line-height-title-large) var(--td-font-family); + --td-font-headline-small: 600 var(--td-font-size-headline-small) / + var(--td-line-height-headline-small) var(--td-font-family); + --td-font-headline-medium: 600 var(--td-font-size-headline-medium) / + var(--td-line-height-headline-medium) var(--td-font-family); + --td-font-headline-large: 600 var(--td-font-size-headline-large) / + var(--td-line-height-headline-large) var(--td-font-family); + --td-font-display-medium: 600 var(--td-font-size-display-medium) / + var(--td-line-height-display-medium) var(--td-font-family); + --td-font-display-large: 600 var(--td-font-size-display-large) / + var(--td-line-height-display-large) var(--td-font-family); +} + +:root { + --td-size-1: 2px; + --td-size-2: 4px; + --td-size-3: 6px; + --td-size-4: 8px; + --td-size-5: 12px; + --td-size-6: 16px; + --td-size-7: 20px; + --td-size-8: 24px; + --td-size-9: 28px; + --td-size-10: 32px; + --td-size-11: 36px; + --td-size-12: 40px; + --td-size-13: 48px; + --td-size-14: 56px; + --td-size-15: 64px; + --td-size-16: 72px; + --td-comp-size-xxxs: var(--td-size-6); + --td-comp-size-xxs: var(--td-size-7); + --td-comp-size-xs: var(--td-size-8); + --td-comp-size-s: var(--td-size-9); + --td-comp-size-m: var(--td-size-10); + --td-comp-size-l: var(--td-size-11); + --td-comp-size-xl: var(--td-size-12); + --td-comp-size-xxl: var(--td-size-13); + --td-comp-size-xxxl: var(--td-size-14); + --td-comp-size-xxxxl: var(--td-size-15); + --td-comp-size-xxxxxl: var(--td-size-16); + --td-pop-padding-s: var(--td-size-2); + --td-pop-padding-m: var(--td-size-3); + --td-pop-padding-l: var(--td-size-4); + --td-pop-padding-xl: var(--td-size-5); + --td-pop-padding-xxl: var(--td-size-6); + --td-comp-paddingLR-xxs: var(--td-size-1); + --td-comp-paddingLR-xs: var(--td-size-2); + --td-comp-paddingLR-s: var(--td-size-4); + --td-comp-paddingLR-m: var(--td-size-5); + --td-comp-paddingLR-l: var(--td-size-6); + --td-comp-paddingLR-xl: var(--td-size-8); + --td-comp-paddingLR-xxl: var(--td-size-10); + --td-comp-paddingTB-xxs: var(--td-size-1); + --td-comp-paddingTB-xs: var(--td-size-2); + --td-comp-paddingTB-s: var(--td-size-4); + --td-comp-paddingTB-m: var(--td-size-5); + --td-comp-paddingTB-l: var(--td-size-6); + --td-comp-paddingTB-xl: var(--td-size-8); + --td-comp-paddingTB-xxl: var(--td-size-10); + --td-comp-margin-xxs: var(--td-size-1); + --td-comp-margin-xs: var(--td-size-2); + --td-comp-margin-s: var(--td-size-4); + --td-comp-margin-m: var(--td-size-5); + --td-comp-margin-l: var(--td-size-6); + --td-comp-margin-xl: var(--td-size-7); + --td-comp-margin-xxl: var(--td-size-8); + --td-comp-margin-xxxl: var(--td-size-10); + --td-comp-margin-xxxxl: var(--td-size-12); +} + +.loading { + display: flex; + justify-content: center; + margin: 20px 0; +} diff --git a/src/renderer/src/assets/icon.ico b/src/renderer/src/assets/icon.ico new file mode 100644 index 0000000..884fd27 Binary files /dev/null and b/src/renderer/src/assets/icon.ico differ diff --git a/src/renderer/src/assets/logo.png b/src/renderer/src/assets/logo.png new file mode 100644 index 0000000..5e3f13e Binary files /dev/null and b/src/renderer/src/assets/logo.png differ diff --git a/src/renderer/src/components/KBreadcrumb.module.less b/src/renderer/src/components/KBreadcrumb.module.less new file mode 100644 index 0000000..948f642 --- /dev/null +++ b/src/renderer/src/components/KBreadcrumb.module.less @@ -0,0 +1,7 @@ +.breadcrumb { + margin-bottom: 10px; +} + +.breadcrumb .t-breadcrumb__item .t-breadcrumb--text-overflow .t-breadcrumb__inner{ + max-width: 500px; +} diff --git a/src/renderer/src/components/KBreadcrumb.tsx b/src/renderer/src/components/KBreadcrumb.tsx new file mode 100644 index 0000000..4c68453 --- /dev/null +++ b/src/renderer/src/components/KBreadcrumb.tsx @@ -0,0 +1,13 @@ +import { Breadcrumb } from "tdesign-react"; +import Style from "./KBreadcrumb.module.less"; + +interface KBreadcrumb { + content: string; + href?: string; +} + +const KBreadcrumbComponent = ({ breadcrumbs }: { breadcrumbs: KBreadcrumb[] }) => { + return ; +}; + +export default KBreadcrumbComponent; diff --git a/src/renderer/src/components/card/KDeploymentCard.tsx b/src/renderer/src/components/card/KDeploymentCard.tsx new file mode 100644 index 0000000..4f41a3a --- /dev/null +++ b/src/renderer/src/components/card/KDeploymentCard.tsx @@ -0,0 +1,69 @@ +import React from "react"; +import { Card, Avatar, Tag, Dropdown, Button, Statistic } from "tdesign-react"; +import { MoreIcon } from "tdesign-icons-react"; +import { K8sDeployment } from "../../response/K8sDeployment"; +import Style from "./KPodCard.module.less"; +import { useNavigate } from "react-router-dom"; +import moment from "moment/moment"; + +const KDeploymentCard = ({ deployment }: { deployment: K8sDeployment }) => { + const navigate = useNavigate(); + const deploymentCreateTime = moment(new Date(deployment.creationTimestamp)); + function clickDropdown(data) { + let value = data.value; + if (value.type === "podList") { + navigate("/k8s/pods/" + value.namespace + "/" + value.deploymentName); + } + } + return ( + + {deployment.namespace} + + ) + } + avatar={ + + Deployment + + } + content={ +
{deployment?.name}
+ } + footer={ +
+
{deployment?.imageName}
+ + + +
+ } + > + +
{deployment?.name}
+
{deploymentCreateTime.format("YYYY-MM-DD HH:mm:ss")}
+
+ ); +}; + +export default React.memo(KDeploymentCard); diff --git a/src/renderer/src/components/card/KNamespace.module.less b/src/renderer/src/components/card/KNamespace.module.less new file mode 100644 index 0000000..c6b99df --- /dev/null +++ b/src/renderer/src/components/card/KNamespace.module.less @@ -0,0 +1,30 @@ + + +.loading { + display: flex; + justify-content: center; + margin: 20px 0; + min-height: 300px; +} + +.radioContainer { + background: #ffffff; + padding: 20px; + flex: 1; + display: flex; + margin-right: 10px; +} + +.radioLeft { + flex: 0.1; + line-height: 32px; +} + +.radioRight { + text-align: right; + flex: 0.9; +} + +.cardContainer { + margin-right: 10px; +} diff --git a/src/renderer/src/components/card/KNamespace.tsx b/src/renderer/src/components/card/KNamespace.tsx new file mode 100644 index 0000000..b201899 --- /dev/null +++ b/src/renderer/src/components/card/KNamespace.tsx @@ -0,0 +1,68 @@ +import { Radio, Col, Divider, Loading, Row } from "tdesign-react"; +import { K8sDeployment } from "../../response/K8sDeployment"; +import KDeploymentCard from "../../components/card/KDeploymentCard"; +import Style from "./KNamespace.module.less"; +import React, { useEffect, useState } from "react"; +import { httpDeployments, httpNamespaces } from "../../module/Api"; +import { K8sNamespace } from "../../response/K8sNamespace"; + + +const KNamespaceComponent: React.FC = () => { + let [loading, setLoading] = useState(false); + let [namespaces, setNamespaces] = useState([]); + let [deployments, setDeployments] = useState([]); + let [defaultNamespace, setDefaultNamespace] = useState(''); + useEffect(() => { + httpNamespaces().then((data) => { + setNamespaces(data); + changeNamespace(false, data[0].name); + }); + }, []); + + function changeNamespace(loading: boolean, namespaceName: string) { + setLoading(loading); + setDefaultNamespace(namespaceName); + httpDeployments(namespaceName).then((data) => { + setLoading(!loading); + setDeployments(data); + }); + } + + return ( + <> +
+
+ 集群筛选 +
+
+ { + changeNamespace(false, data); + }}> + {namespaces.map((namespace, index) => ( + {namespace.name} + ))} + +
+
+ + { + !loading ? ( +
+ +
+ ) : ( +
+ + {deployments?.map((deployment, index) => ( + + + + ))} + +
+ ) + } + + ); +}; +export default KNamespaceComponent; diff --git a/src/renderer/src/components/card/KPodCard.module.less b/src/renderer/src/components/card/KPodCard.module.less new file mode 100644 index 0000000..e619dae --- /dev/null +++ b/src/renderer/src/components/card/KPodCard.module.less @@ -0,0 +1,48 @@ +.panel { + cursor: pointer; +} + +.name { + font-size: 16px; + font-weight: 400; + color: var(--td-text-color-primary); + min-height: 45px; + margin-top: 10px; +} + +.description { + color: var(--td-text-color-secondary); + font-size: 13px; + line-height: 20px; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + margin-bottom: 10px; + margin-top: 10px; + position: relative; +} + +.namespaceContainer { + position: absolute; + top: 0; + right: 0; + height: 20px; +} + +.imageName { + color: var(--td-text-color-secondary); + font-size: 12px; + line-height: 20px; + text-overflow: ellipsis; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + height: 90px; +} + +.footer { + display: flex; + justify-content: space-between; + align-items: center; +} diff --git a/src/renderer/src/components/card/KPodCard.tsx b/src/renderer/src/components/card/KPodCard.tsx new file mode 100644 index 0000000..d30931f --- /dev/null +++ b/src/renderer/src/components/card/KPodCard.tsx @@ -0,0 +1,96 @@ +import React from "react"; +import { Card, Tag, Dropdown, Button, Statistic, Row, Col } from "tdesign-react"; +import { MoreIcon } from "tdesign-icons-react"; +import Style from "./KPodCard.module.less"; +import { K8sPod } from "../../response/K8sPod"; +import moment from "moment"; + +const KPodCard = ({ pod }: { pod: K8sPod }) => { + let cpuUsage: number = Math.floor(pod.cpuUsage * 100) / 100; + let memoryUsage: number = Math.floor(pod.memoryUsage / 1024 / 1024 / 1024 * 100) / 100; + let limits: number = Math.floor(pod.limits / 1024 / 1024 / 1024 * 100) / 100; + let podCreateTime = moment(new Date(pod.creationTimestamp)); + function clickDropdown(data) { + window.electron.ipcRenderer.invoke("createLogWindow", data.value); + } + + return ( + <> + {pod?.name} + // ) + // } + // avatar={ + // {pod.namespace} + // } + footer={ + + + + + { + limits > 0 ? ( + + + + ) : ( + + + + ) + } + + + + + + + + } + > + + +
+ {pod?.name} +
+
+ {podCreateTime.format("YYYY-MM-DD HH:mm:ss")} + + {pod.namespace} + +
+ +
+ + + + + + + + + + +
+ + ); +}; + +export default React.memo(KPodCard); diff --git a/src/renderer/src/components/card/KPods.module.less b/src/renderer/src/components/card/KPods.module.less new file mode 100644 index 0000000..c6b99df --- /dev/null +++ b/src/renderer/src/components/card/KPods.module.less @@ -0,0 +1,30 @@ + + +.loading { + display: flex; + justify-content: center; + margin: 20px 0; + min-height: 300px; +} + +.radioContainer { + background: #ffffff; + padding: 20px; + flex: 1; + display: flex; + margin-right: 10px; +} + +.radioLeft { + flex: 0.1; + line-height: 32px; +} + +.radioRight { + text-align: right; + flex: 0.9; +} + +.cardContainer { + margin-right: 10px; +} diff --git a/src/renderer/src/components/card/KPods.tsx b/src/renderer/src/components/card/KPods.tsx new file mode 100644 index 0000000..281e57a --- /dev/null +++ b/src/renderer/src/components/card/KPods.tsx @@ -0,0 +1,45 @@ +import React, { useEffect, useState } from "react"; +import { Col, Loading, Row } from "tdesign-react"; +import Style from "./KPods.module.less"; +import { httpPods } from "../../module/Api"; +import { K8sPod } from "../../response/K8sPod"; +import KPodCard from "./KPodCard"; + + +interface IKPodsComponent { + namespace: string | undefined, + deploymentName: string | undefined +} + +const KPodsComponent: React.FC = ({ namespace, deploymentName }) => { + let [loading, setLoading] = useState(false); + let [pods, setPods] = useState([]); + useEffect(() => { + httpPods(namespace, deploymentName).then((data) => { + setLoading(!loading); + setPods(data); + }); + }, []); + return ( + <> + { + !loading ? ( +
+ +
+ ) : ( +
+ + {pods?.map((pod, index) => ( + + + + ))} + +
+ ) + } + + ); +}; +export default KPodsComponent; diff --git a/src/renderer/src/components/logs/KLogs.module.less b/src/renderer/src/components/logs/KLogs.module.less new file mode 100644 index 0000000..e69de29 diff --git a/src/renderer/src/components/logs/KLogs.tsx b/src/renderer/src/components/logs/KLogs.tsx new file mode 100644 index 0000000..60aee0b --- /dev/null +++ b/src/renderer/src/components/logs/KLogs.tsx @@ -0,0 +1,11 @@ +import React from "react"; + +const KLogsComponent = ({ logs }: { logs: string }) => { + return ( +
+            {logs}
+        
+ ); +}; + +export default React.memo(KLogsComponent); diff --git a/src/renderer/src/env.d.ts b/src/renderer/src/env.d.ts new file mode 100644 index 0000000..6dfa2f6 --- /dev/null +++ b/src/renderer/src/env.d.ts @@ -0,0 +1,12 @@ +/// + +// export interface ImportMetaEnv { +// readonly VITE_APP_TITLE: string +// readonly VITE_APP_BASE_URL: string +// readonly VITE_APP_TOKEN_KEY?: string +// readonly VITE_UPLOAD_URL?: string +// } +// +// interface ImportMeta { +// readonly env: ImportMetaEnv +// } diff --git a/src/renderer/src/main.tsx b/src/renderer/src/main.tsx new file mode 100644 index 0000000..681f772 --- /dev/null +++ b/src/renderer/src/main.tsx @@ -0,0 +1,17 @@ +import ReactDOM from "react-dom/client"; +import App from "./App"; +import { HashRouter } from "react-router-dom"; +import store from "./store"; +import { Provider } from "react-redux"; + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement, { + +}).render( + // + + + + + + // +); diff --git a/src/renderer/src/module/Api.ts b/src/renderer/src/module/Api.ts new file mode 100644 index 0000000..b91fd60 --- /dev/null +++ b/src/renderer/src/module/Api.ts @@ -0,0 +1,69 @@ +import { HttpRequest } from "../utils/HttpRequest"; +import { K8sDeployment } from "../response/K8sDeployment"; +import { K8sPod } from "../response/K8sPod"; +import { K8sNamespace } from "../response/K8sNamespace"; + +const request = new HttpRequest({}); + + +export const httpNamespaces = () => { + return new Promise((resolve, reject) => { + request.get({ + url: "k8s/namespaces" + }).then(data => { + resolve(data); + }).catch(error => { + reject(error); + }); + }); +}; + +export const httpDeployments = (namespace: string) => { + return new Promise((resolve, reject) => { + request.get({ + url: "k8s/deployments/" + namespace + }).then(data => { + resolve(data); + }).catch(error => { + reject(error); + }); + }); +}; + +export const httpPods = (namespace: string | undefined, deploymentName: string | undefined) => { + return new Promise((resolve, reject) => { + request.get({ + url: "k8s/pods/" + namespace + "/" + deploymentName + }).then(data => { + resolve(data); + }).catch(error => { + reject(error); + }); + }); +}; + +export const httpAllPods = (namespace: string | undefined) => { + return new Promise((resolve, reject) => { + request.get({ + url: "k8s/pods/" + namespace + }).then(data => { + resolve(data); + }).catch(error => { + reject(error); + }); + }); +}; + +// @ts-ignore +export const httpKubeConfigStr = () => { + return new Promise((resolve, reject) => { + request.get({ + url: "k8s/kube/config" + }).then(async response => { + // @ts-ignore + resolve(await response); + }).catch(error => { + reject(error); + }); + }); +}; diff --git a/src/renderer/src/module/Log.ts b/src/renderer/src/module/Log.ts new file mode 100644 index 0000000..ebfe859 --- /dev/null +++ b/src/renderer/src/module/Log.ts @@ -0,0 +1,15 @@ +import log4js, { Logger } from "log4js"; + +log4js.configure({ + appenders: { + console: { type: "console" }, + file: { type: "file", filename: "application.log" } + }, + categories: { + default: { appenders: ["console", "file"], level: "info" } + } +}); + +const log: Logger = log4js.getLogger(); + +export default log; diff --git a/src/renderer/src/pages/AppRouter.tsx b/src/renderer/src/pages/AppRouter.tsx new file mode 100644 index 0000000..8489a04 --- /dev/null +++ b/src/renderer/src/pages/AppRouter.tsx @@ -0,0 +1,42 @@ +import "../assets/app.css"; +import React, { Suspense } from "react"; +import { Route, Routes } from "react-router-dom"; +import routers, { IRouter } from "../router"; + +type TRenderRoutes = (routes: IRouter[], parentPath?: string) => React.ReactNode[]; +export const resolve = (path1 = "", path2 = "") => { + let separator = "/"; + if (path1.endsWith("/") || path2.startsWith("/")) { + separator = ""; + } + return `${path1}${separator}${path2}`; +}; + +const renderRoutes: TRenderRoutes = (routes, parentPath = "") => + routes.map((route) => { + const { Component, children } = route; + const currentPath = resolve(parentPath, route.path); + if (Component) { + return ( + + } + /> + ); + } + return children ? renderRoutes(children, currentPath) : null; + }); +export default function AppRouter() { + return ( + + }> + + {renderRoutes(routers)} + + + ); +} diff --git a/src/renderer/src/pages/Versions.tsx b/src/renderer/src/pages/Versions.tsx new file mode 100644 index 0000000..531da69 --- /dev/null +++ b/src/renderer/src/pages/Versions.tsx @@ -0,0 +1,15 @@ +import { useState } from 'react' + +function Versions(): JSX.Element { + const [versions] = useState(window.electron.process.versions) + console.log(window.electron.process) + return ( +
    +
  • Electron v{versions.electron}
  • +
  • Chromium v{versions.chrome}
  • +
  • Node v{versions.node}
  • +
+ ) +} + +export default Versions diff --git a/src/renderer/src/pages/index/Dashboard.tsx b/src/renderer/src/pages/index/Dashboard.tsx new file mode 100644 index 0000000..512d018 --- /dev/null +++ b/src/renderer/src/pages/index/Dashboard.tsx @@ -0,0 +1,17 @@ +import KBreadcrumbComponent from "../../components/KBreadcrumb"; +import React from "react"; + + +const Dashboard: React.FC = () => { + const breadcrumbs: ({ content: string, href: string })[] = [ + { content: "仪表盘", href: "/" }, + { content: "首页", href: "/" } + ]; + return ( + <> + + 首页 + + ); +}; +export default Dashboard; diff --git a/src/renderer/src/pages/k8s/K8sDeployments.tsx b/src/renderer/src/pages/k8s/K8sDeployments.tsx new file mode 100644 index 0000000..1c17253 --- /dev/null +++ b/src/renderer/src/pages/k8s/K8sDeployments.tsx @@ -0,0 +1,17 @@ +import React from "react"; +import KNamespaceComponent from "../../components/card/KNamespace"; +import KBreadcrumbComponent from "../../components/KBreadcrumb"; + +const K8sDeployments: React.FC = () => { + const breadcrumbs: ({ content: string, to: string })[] = [ + { content: "集群", to: "" }, + { content: "服务列表", to: "/k8s/deployments" } + ]; + return ( + <> + + + + ); +}; +export default K8sDeployments; diff --git a/src/renderer/src/pages/k8s/K8sLogs.module.less b/src/renderer/src/pages/k8s/K8sLogs.module.less new file mode 100644 index 0000000..73f26d7 --- /dev/null +++ b/src/renderer/src/pages/k8s/K8sLogs.module.less @@ -0,0 +1,66 @@ +body { + +} + +.logContainer { + overflow-y: scroll; + //width: 100%; + background: black; + padding-left: 10px; + //scroll-behavior: smooth; + //will-change: scroll-position; +} + +pre { + font-family: 'Consolas', monospace; + color: #ffffff; + font-size: 12px; + word-break: break-all; + overflow-wrap: break-word; + white-space: pre; + //scroll-behavior: smooth; + //will-change: scroll-position; +} + +.loadingContainer { + background: #000000; + color: #ffffff; +} + +.logToolsContainer { + position: absolute; + right: 5px; + top: 0; + margin: 0; +} + +.logToolsUnLockedContailer { + font-size: 30px; + color: #0d7a55; + margin-right: 10px; + cursor: pointer; +} + +.logToolsLockedContailer { + font-size: 30px; + margin-right: 10px; + cursor: pointer; + color: #a03f46; +} + +::-webkit-scrollbar { + width: 15px; + background-color: #f5f5f5; +} + +::-webkit-scrollbar-thumb { + background-color: #888; /* 设置滑块背景颜色 */ +} + +::-webkit-scrollbar-track:hover { + background-color: #f1f1f1; /* 设置轨道hover状态时的背景颜色 */ +} + +::-webkit-scrollbar-thumb:hover { + background-color: #555; /* 设置滑块hover状态时的背景颜色 */ +} diff --git a/src/renderer/src/pages/k8s/K8sLogs.tsx b/src/renderer/src/pages/k8s/K8sLogs.tsx new file mode 100644 index 0000000..fb98b20 --- /dev/null +++ b/src/renderer/src/pages/k8s/K8sLogs.tsx @@ -0,0 +1,141 @@ +import React, { useCallback, useEffect, useMemo, useState } from "react"; +import Style from "./K8sLogs.module.less"; +import { getUrlHashParams } from "../../utils/utils"; +import { Col, Loading, Row } from "tdesign-react"; +import { CoreV1Api } from "@kubernetes/client-node"; + +function getK8sCoreV1Api() { + return window.api.k8sCoreV1Api(); +} + + +const K8sLogs: React.FC = () => { + let api = null; + let [coreV1Api, setCoreV1Api] = useState(null); + let [logsContainer, setLogsContainer] = useState(""); + let [windowWidth, setWindowWidth] = useState(1130); + let [windowHeight, setWindowHeight] = useState(601); + let namespace = getUrlHashParams(window.location.href, "namespace"); + let podName = getUrlHashParams(window.location.href, "podName"); + let container = getUrlHashParams(window.location.href, "container"); + let channelLogName = "channel-log-" + namespace + "-" + podName; + let channelResizeChannelName = "channel-resize-" + namespace + "-" + podName; + let lastLogs = []; + const memoizedFetchData = useCallback(async () => { + console.log(getK8sCoreV1Api()); + return getK8sCoreV1Api(); + }, []); + useEffect(() => { + memoizedFetchData().then((api) => { + setCoreV1Api(api); + }); + console.log(coreV1Api); + }, [memoizedFetchData]); // 使用 memoizedFetchData 作为依赖 + + // getApi(); + + // let response = window.api.getCoreV1Api().readNamespacedPodLog( + // podName, + // namespace + // ); + // let body = (response).body; + // + // useEffect(() => { + // console.log(coreV1Api, "core"); + // }); + // setTimeout(async () => { + // let log = await pollLogs(); + // console.log(log); + // }, 1000); + + async function pollLogs() { + let timestamp = Math.floor(new Date().getTime() / 1000 - (1000 * 5)); + let logs = (await coreV1Api.readNamespacedPodLog( + podName, + namespace, + undefined, + false, + false, + 1024000, + "false", + false, + timestamp, + 100, + true + )).response.body; + console.log(logs); + } + + // window.api.k8sCoreV1Api().then((coreV1Api) => { + // pollLogs(coreV1Api); + // // setCoreV1Api(coreV1Api) + // }); + + // useEffect(() => { + // async function fetchData() { + // await window.api.k8sCoreV1Api().then((coreV1Api) => { + // setCoreV1Api(coreV1Api); + // }); + // } + // fetchData() + // }, []); + + // useEffect(() => { + // pollLogs(); + // }, []); + + // let lastLogs = []; + + + // @ts-ignore + // window.electron.ipcRenderer.on(channelLogName, (event, logs) => { + // let logsSplits = logs.split("\n").filter(line => line.trim() !== ""); + // let filterLog = logsSplits.filter(log => !lastLogs.includes(log)); + // lastLogs = logs; + // setLogsContainer(logsContainer => logsContainer + filterLog.join("\n")); + // console.log(logsContainer.length) + // }); + // // @ts-ignore + window.electron.ipcRenderer.on(channelResizeChannelName, (event, size) => { + setWindowWidth(size[0]); + setWindowHeight(size[1]); + }); + + + return logsContainer === "" ? + ( + + ) : ( + + +
+
+ {/*{*/} + {/* unLogLockedStatus ? (*/} + {/* logLockedHandler(false)}>*/} + {/* */} + {/* */} + {/* ) : (*/} + {/* logLockedHandler(true)}>*/} + {/* */} + {/* */} + {/* )*/} + {/*}*/} + +
+
{logsContainer}
+
+ +
+ ); +}; +export default K8sLogs; diff --git a/src/renderer/src/pages/k8s/K8sPodList.tsx b/src/renderer/src/pages/k8s/K8sPodList.tsx new file mode 100644 index 0000000..304da73 --- /dev/null +++ b/src/renderer/src/pages/k8s/K8sPodList.tsx @@ -0,0 +1,75 @@ +import React, { useEffect, useState } from "react"; +import KBreadcrumbComponent from "../../components/KBreadcrumb"; +import Style from "../../components/card/KPods.module.less"; +import { Col, Divider, Loading, Radio, Row } from "tdesign-react"; +import KPodCard from "../../components/card/KPodCard"; +import { K8sPod } from "../../response/K8sPod"; +import { httpAllPods, httpNamespaces } from "../../module/Api"; +import { K8sNamespace } from "../../response/K8sNamespace"; + +const K8sPodList: React.FC = () => { + // const params = useParams<{ namespace: string | undefined, deploymentName: string | undefined }>(); + const breadcrumbs: ({ content: string, to?: string })[] = [ + { content: "集群", to: "/" }, + { content: "节点列表", to: "/k8s/deployments" } + ]; + + let [loading, setLoading] = useState(false); + let [namespaces, setNamespaces] = useState([]); + let [defaultNamespace, setDefaultNamespace] = useState(""); + let [pods, setPods] = useState([]); + useEffect(() => { + httpNamespaces().then((data) => { + setNamespaces(data); + changeNamespace(false, data[0].name); + }); + }, []); + + function changeNamespace(loading: boolean, namespaceName: string) { + setLoading(loading); + setDefaultNamespace(namespaceName); + httpAllPods(namespaceName).then((data) => { + setLoading(!loading); + setPods(data); + }); + } + + return ( + <> + +
+
+ 集群筛选 +
+
+ { + changeNamespace(false, data); + }}> + {namespaces.map((namespace, index) => ( + {namespace.name} + ))} + +
+
+ + { + !loading ? ( +
+ +
+ ) : ( +
+ + {pods?.map((pod, index) => ( + + + + ))} + +
+ ) + } + + ); +}; +export default K8sPodList; diff --git a/src/renderer/src/pages/k8s/K8sPods.tsx b/src/renderer/src/pages/k8s/K8sPods.tsx new file mode 100644 index 0000000..242ea3b --- /dev/null +++ b/src/renderer/src/pages/k8s/K8sPods.tsx @@ -0,0 +1,21 @@ +import React from "react"; +import { useParams } from "react-router-dom"; +import KPodsComponent from "../../components/card/KPods"; +import KBreadcrumbComponent from "../../components/KBreadcrumb"; + +const K8sPods: React.FC = () => { + const params = useParams<{ namespace: string | undefined, deploymentName: string | undefined }>(); + const breadcrumbs: ({ content: string, to?: string })[] = [ + { content: "集群", to: "" }, + { content: "服务列表", to: "/#/k8s/deployments" }, + { content: params.deploymentName || "" } + ]; + + return ( + <> + + + + ); +}; +export default K8sPods; diff --git a/src/renderer/src/pages/menu/AppMenu.tsx b/src/renderer/src/pages/menu/AppMenu.tsx new file mode 100644 index 0000000..72a124f --- /dev/null +++ b/src/renderer/src/pages/menu/AppMenu.tsx @@ -0,0 +1,47 @@ +import { useState } from "react"; +import routers, { IRouter } from "../../router"; +import MenuItem from "tdesign-react/es/menu/MenuItem"; +import SubMenu from "tdesign-react/es/menu/SubMenu"; +import { useNavigate } from "react-router-dom"; +import { Menu } from "tdesign-react"; + +export default function AppMenus() { + let [defaultMenu] = useState(window.location.pathname); + const navigate = useNavigate(); + const appMenus = (routes: IRouter[], parentPath: string) => + routes.map((route) => { + let correctUri: string = parentPath == undefined || parentPath === "" ? route?.path : parentPath + "/" + route?.path; + const Icon= route?.meta?.Icon; + if (route?.children == undefined || route?.children?.length == 0) { + if (route?.meta?.hidden) { + return; + } + return ( + navigate(correctUri)} + icon={Icon ? : undefined} + > + {route?.meta?.title} + + ); + } else { + return ( + : undefined} + > + {appMenus(route?.children, route?.path)} + + ); + } + }); + return ( + + {appMenus(routers, "")} + + ); +} diff --git a/src/renderer/src/response/K8sDeployment.ts b/src/renderer/src/response/K8sDeployment.ts new file mode 100644 index 0000000..7a23f12 --- /dev/null +++ b/src/renderer/src/response/K8sDeployment.ts @@ -0,0 +1,61 @@ +export class K8sDeployment { + + private _namespace: string; + + private _name: string; + + private _replicas: string; + + private _creationTimestamp: Date; + + private _imageName: string; + + + constructor(namespace: string, name: string, replicas: string, creationTimestamp: Date, imageName: string) { + this._namespace = namespace; + this._name = name; + this._replicas = replicas; + this._creationTimestamp = creationTimestamp; + this._imageName = imageName; + } + + get namespace(): string { + return this._namespace; + } + + set namespace(value: string) { + this._namespace = value; + } + + get name(): string { + return this._name; + } + + set name(value: string) { + this._name = value; + } + + get replicas(): string { + return this._replicas; + } + + set replicas(value: string) { + this._replicas = value; + } + + get creationTimestamp(): Date { + return this._creationTimestamp; + } + + set creationTimestamp(value: Date) { + this._creationTimestamp = value; + } + + get imageName(): string { + return this._imageName; + } + + set imageName(value: string) { + this._imageName = value; + } +} diff --git a/src/renderer/src/response/K8sNamespace.ts b/src/renderer/src/response/K8sNamespace.ts new file mode 100644 index 0000000..ebf7906 --- /dev/null +++ b/src/renderer/src/response/K8sNamespace.ts @@ -0,0 +1,18 @@ +export class K8sNamespace { + + private _name: string; + + + constructor(name: string) { + this._name = name; + } + + + get name(): string { + return this._name; + } + + set name(value: string) { + this._name = value; + } +} diff --git a/src/renderer/src/response/K8sPod.ts b/src/renderer/src/response/K8sPod.ts new file mode 100644 index 0000000..c2e76be --- /dev/null +++ b/src/renderer/src/response/K8sPod.ts @@ -0,0 +1,128 @@ +export class K8sPod { + + private _namespace: string; + + private _deploymentName: string; + + private _container: string; + + private _limits: number; + + private _requests: number; + + private _restartCount: number; + + private _name: string; + + private _cpuUsage: number; + + private _memoryUsage: number; + + private _imageName: string; + + private _creationTimestamp: Date; + + + constructor(namespace: string, deploymentName: string, container: string, limits: number, requests: number, restartCount: number, name: string, cpuUsage: number, memoryUsage: number, imageName: string, creationTimestamp: Date) { + this._namespace = namespace; + this._deploymentName = deploymentName; + this._container = container; + this._limits = limits; + this._requests = requests; + this._restartCount = restartCount; + this._name = name; + this._cpuUsage = cpuUsage; + this._memoryUsage = memoryUsage; + this._imageName = imageName; + this._creationTimestamp = creationTimestamp; + } + + + get namespace(): string { + return this._namespace; + } + + set namespace(value: string) { + this._namespace = value; + } + + get deploymentName(): string { + return this._deploymentName; + } + + set deploymentName(value: string) { + this._deploymentName = value; + } + + get container(): string { + return this._container; + } + + set container(value: string) { + this._container = value; + } + + get limits(): number { + return this._limits; + } + + set limits(value: number) { + this._limits = value; + } + + get requests(): number { + return this._requests; + } + + set requests(value: number) { + this._requests = value; + } + + get restartCount(): number { + return this._restartCount; + } + + set restartCount(value: number) { + this._restartCount = value; + } + + get name(): string { + return this._name; + } + + set name(value: string) { + this._name = value; + } + + get cpuUsage(): number { + return this._cpuUsage; + } + + set cpuUsage(value: number) { + this._cpuUsage = value; + } + + get memoryUsage(): number { + return this._memoryUsage; + } + + set memoryUsage(value: number) { + this._memoryUsage = value; + } + + get imageName(): string { + return this._imageName; + } + + set imageName(value: string) { + this._imageName = value; + } + + get creationTimestamp(): Date { + return this._creationTimestamp; + } + + set creationTimestamp(value: Date) { + this._creationTimestamp = value; + } +} diff --git a/src/renderer/src/router/index.ts b/src/renderer/src/router/index.ts new file mode 100644 index 0000000..bb6d2be --- /dev/null +++ b/src/renderer/src/router/index.ts @@ -0,0 +1,83 @@ +import React, { lazy } from "react"; +import { BrowserRouterProps } from "react-router-dom"; +import { DashboardIcon, TreeListIcon, ServerIcon, TreeRoundDotVerticalIcon } from "tdesign-icons-react"; + +export interface IRouter { + path: string; + redirect?: string; + Component?: React.FC | (() => any); + meta?: { + title?: string; + Icon?: React.FC; + hidden?: boolean; + single?: boolean; + fullScreen?: boolean; + }; + children?: IRouter[]; +} + +const routes: IRouter[] = [ + { + path: "/", + meta: { + title: "仪表盘", + hidden: false, + Icon: DashboardIcon + }, + Component: lazy(() => import("../pages/index/Dashboard")) + }, + { + path: "/k8s", + meta: { + title: "集群", + hidden: false, + Icon: TreeListIcon + }, + children: [ + { + path: "deployments", + Component: lazy(() => import("../pages/k8s/K8sDeployments")), + meta: { + title: "服务列表", + hidden: false, + Icon: ServerIcon + } + }, + { + path: "podList", + Component: lazy(() => import("../pages/k8s/K8sPodList")), + meta: { + title: "节点列表", + hidden: false, + Icon: TreeRoundDotVerticalIcon + } + }, + { + path: "pods", + Component: lazy(() => import("../pages/k8s/K8sPods")), + meta: { + hidden: true + } + }, + { + path: "pods/:namespace/:deploymentName", + Component: lazy(() => import("../pages/k8s/K8sPods")), + meta: { + hidden: true + } + }, + { + path: "/pod/log", + Component: lazy(() => import("../pages/k8s/K8sLogs")), + meta: { + title: "查看LOG", + hidden: true, + fullScreen: true + } + } + ] + } +]; +const allRoutes = [...routes]; + +export default allRoutes; diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts new file mode 100644 index 0000000..62ac47c --- /dev/null +++ b/src/renderer/src/store/index.ts @@ -0,0 +1,16 @@ +import { configureStore } from "@reduxjs/toolkit"; +import globalSlice from "./reducer/GlobalReducer"; + +const store = configureStore({ + reducer: { + global: globalSlice + }, + middleware: getDefaultMiddleware => getDefaultMiddleware({ + serializableCheck: false + }) +}); + +export type RootState = ReturnType +export type AppDispatch = typeof store.dispatch + +export default store; diff --git a/src/renderer/src/store/reducer/GlobalReducer.ts b/src/renderer/src/store/reducer/GlobalReducer.ts new file mode 100644 index 0000000..9c7e093 --- /dev/null +++ b/src/renderer/src/store/reducer/GlobalReducer.ts @@ -0,0 +1,38 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; + +interface GlobalState { // 定义初始化状态的类型 + isDev: boolean; + kubeConfig: any; +} + +const initialState: GlobalState = { // 初始化状态 + isDev: true, + kubeConfig: undefined +}; +export const globalSlice = createSlice({ + name: "global", + initialState, + reducers: { + setIsDev: (state, action: PayloadAction) => { + state.isDev = action.payload; + }, + // @ts-ignore + getIsDev: (state) => { + return state.isDev; + }, + setKubeConfig: (state, action: PayloadAction) => { + console.log("设置了kubeConfig") + state.kubeConfig = action.payload; + }, + getKubeConfig: (state) => { + return state.kubeConfig; + } + // incrementByAmount: (state, action: PayloadAction) => { + // state.value += action.payload; + // } + } +}); + +export const { setIsDev, getIsDev, setKubeConfig, getKubeConfig } = globalSlice.actions; // 导出操作state的喊出 +// export const selectCount = (state: RootState) => state; +export default globalSlice.reducer; diff --git a/src/renderer/src/utils/HttpRequest.ts b/src/renderer/src/utils/HttpRequest.ts new file mode 100644 index 0000000..32d29f7 --- /dev/null +++ b/src/renderer/src/utils/HttpRequest.ts @@ -0,0 +1,59 @@ +import axios, { AxiosResponse, InternalAxiosRequestConfig } from "axios"; +import type { AxiosInstance, AxiosRequestConfig } from "axios"; +import global from "./global"; +import { RequestConfig, RequestInterceptors } from "./types"; + +export class HttpRequest { + + instance: AxiosInstance; + + interceptorsObj?: RequestInterceptors; + + constructor(config: RequestConfig) { + config.baseURL = global.DEPLOY_API_BASE_URL; + this.instance = axios.create(config); + this.interceptorsObj = config.interceptors; + this.instance.interceptors.request.use((requestConfig: InternalAxiosRequestConfig) => { + return requestConfig; + }, + (error: any) => { + console.error(error); + } + ); + this.instance.interceptors.response.use( + (res: AxiosResponse) => { + return res.data; + }, + (error: any) => { + console.error(error); + } + ); + } + + private request(config: RequestConfig): Promise { + return new Promise((resolve, reject) => { + if (config.interceptors?.requestInterceptors) { + config = config.interceptors.requestInterceptors(config); + } + this.instance.request(config).then((response: AxiosResponse) => { + if (config.interceptors?.responseInterceptors) { + response = config.interceptors.responseInterceptors(response); + } + resolve(response); + }).catch((error: any) => { + reject(error); + }); + }); + } + + get(options: AxiosRequestConfig): Promise { + return this.request({ ...options, method: "GET" }).then((response) => { + if (response.data != null) { + return response.data; + } + return response; + }).catch((error: any) => { + throw new Error(error); + }); + } +} diff --git a/src/renderer/src/utils/global.ts b/src/renderer/src/utils/global.ts new file mode 100644 index 0000000..2ec309a --- /dev/null +++ b/src/renderer/src/utils/global.ts @@ -0,0 +1,5 @@ +export default class Global { + // @ts-ignore + static DEPLOY_API_BASE_URL = import.meta.env.VITE_DEPLOY_API_BASE_URL; +} + diff --git a/src/renderer/src/utils/types.ts b/src/renderer/src/utils/types.ts new file mode 100644 index 0000000..ede8298 --- /dev/null +++ b/src/renderer/src/utils/types.ts @@ -0,0 +1,16 @@ +// types.ts +import type { AxiosRequestConfig, AxiosResponse } from "axios"; + +export interface RequestInterceptors { + // 请求拦截 + requestInterceptors?: (config: AxiosRequestConfig) => AxiosRequestConfig; + requestInterceptorsCatch?: (err: any) => any; + // 响应拦截 + responseInterceptors?: (config: AxiosResponse) => AxiosResponse; + responseInterceptorsCatch?: (err: any) => any; +} + +// 自定义传入的参数 +export interface RequestConfig extends AxiosRequestConfig { + interceptors?: RequestInterceptors; +} diff --git a/src/renderer/src/utils/utils.ts b/src/renderer/src/utils/utils.ts new file mode 100644 index 0000000..99e087d --- /dev/null +++ b/src/renderer/src/utils/utils.ts @@ -0,0 +1,41 @@ +export function getUrlHashParams(url: string, name: string) { + let queryString = url.split("?")[1]; + // 如果没有查询参数,返回空对象 + if (!queryString) { + return {}; + } + // 处理带有 hash 地址的情况 + const hashIndex = queryString.indexOf("#"); + if (hashIndex !== -1) { + queryString = queryString.substring(0, hashIndex); + } + + // 将查询参数字符串解析为键值对 + const queryParams = {}; + queryString.split("&").forEach(param => { + const [key, value] = param.split("="); + // 如果值已经存在,则将其转换为数组存储 + if (queryParams[key]) { + if (Array.isArray(queryParams[key])) { + queryParams[key].push(decodeURIComponent(value)); + } else { + queryParams[key] = [queryParams[key], decodeURIComponent(value)]; + } + } else { + queryParams[key] = decodeURIComponent(value); + } + }); + + // 如果没有指定参数名称,则返回包含所有查询参数的对象 + if (!name) { + return queryParams; + } + + // 如果指定了参数名称 + if (queryParams[name]) { + return queryParams[name]; + } else { + // 参数不存在,返回空字符串 + return ""; + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9ef5993 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.web.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..d239cfb --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,14 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", + "include": [ + "electron.vite.config.*", + "src/main/**/*", + "src/preload/**/*" + ], + "compilerOptions": { + "composite": true, + "types": [ + "electron-vite/node" + ] + } +} diff --git a/tsconfig.web.json b/tsconfig.web.json new file mode 100644 index 0000000..b4e97a1 --- /dev/null +++ b/tsconfig.web.json @@ -0,0 +1,19 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.web.json", + "include": [ + "src/renderer/src/env.d.ts", + "src/renderer/src/**/*", + "src/renderer/src/**/*.tsx", + "src/preload/*.d.ts" + ], + "compilerOptions": { + "composite": true, + "jsx": "react-jsx", + "baseUrl": ".", + "paths": { + "@renderer/*": [ + "src/renderer/src/*" + ] + } + } +}