diff --git a/.npmrc b/.npmrc index beae5694..f1333798 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,6 @@ link-workspace-packages=deep prefer-workspace-packages=true +better_sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3 +better_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3 +better-sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3 +better-sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3 \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index b9ec5640..ed013d22 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,8 +10,8 @@ "type": "node", "request": "launch", "cwd": "${workspaceFolder}/packages/ui/certd-client", - "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev"], + "runtimeExecutable": "pnpm", + "runtimeArgs": ["dev"], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen" }, @@ -20,8 +20,8 @@ "type": "node", "request": "launch", "cwd": "${workspaceFolder}/packages/ui/certd-server", - "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev"], + "runtimeExecutable": "pnpm", + "runtimeArgs": ["dev"], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen" }, diff --git a/.vscode/settings.json b/.vscode/settings.json index 8f358458..4a9c1448 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { "eslint.debug": false, - "eslint.format.enable": true + "eslint.format.enable": true, + "typescript.tsc.autoDetect": "watch" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c728b265..c3a081d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Bug Fixes + +* 修复飞牛证书部署后无法生效的bug ([bf156a1](https://github.com/certd/certd/commit/bf156a13bd443cdadb73c9dff79bbef7231b4401)) +* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/certd/certd/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57)) + +### Performance Improvements + +* 优化start.sh脚本,去掉删除非ui目录的操作及提示 ([7993a7c](https://github.com/certd/certd/commit/7993a7cdb01885535950c63187e3f67d67ba2f75)) +* 增加飞牛证书id选择的提示 ([5a4d812](https://github.com/certd/certd/commit/5a4d8121462b1afe921d028465687be8c9679814)) +* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f)) +* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22)) +* 支持新网代理方式 ([f612509](https://github.com/certd/certd/commit/f612509cac87b859e81a7a52fe94b2eaccad22f9)) +* dns支持新网互联 ([f415190](https://github.com/certd/certd/commit/f41519048326d971acd9e0a30462231f77a299a6)) +* start.sh脚本支持根据当前系统判断是否使用sudo ([567cb7d](https://github.com/certd/certd/commit/567cb7d737023e26ec58403c6f28f109e212d379)) + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) ### Bug Fixes diff --git a/docker/run/docker-compose.yaml b/docker/run/docker-compose.yaml index 76e0eaae..e909030a 100644 --- a/docker/run/docker-compose.yaml +++ b/docker/run/docker-compose.yaml @@ -47,6 +47,8 @@ services: # 配置规则: certd_ + 配置项, 点号用_代替 # #↓↓↓↓ ----------------------------- 如果忘记管理员密码,可以设置为true,docker compose up -d 重建容器之后,管理员密码将改成123456,然后请及时修改回false - certd_system_resetAdminPasswd=false + # ↓↓↓ 要使用ipv6,将此配置修改为:: + - certd_koa_hostname=0.0.0.0 # 默认使用sqlite文件数据库,如果需要使用其他数据库,请设置以下环境变量 # 注意: 选定使用一种数据库之后,不支持更换数据库。 diff --git a/docs/guide/changelogs/CHANGELOG.md b/docs/guide/changelogs/CHANGELOG.md index c728b265..c3a081d0 100644 --- a/docs/guide/changelogs/CHANGELOG.md +++ b/docs/guide/changelogs/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Bug Fixes + +* 修复飞牛证书部署后无法生效的bug ([bf156a1](https://github.com/certd/certd/commit/bf156a13bd443cdadb73c9dff79bbef7231b4401)) +* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/certd/certd/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57)) + +### Performance Improvements + +* 优化start.sh脚本,去掉删除非ui目录的操作及提示 ([7993a7c](https://github.com/certd/certd/commit/7993a7cdb01885535950c63187e3f67d67ba2f75)) +* 增加飞牛证书id选择的提示 ([5a4d812](https://github.com/certd/certd/commit/5a4d8121462b1afe921d028465687be8c9679814)) +* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f)) +* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22)) +* 支持新网代理方式 ([f612509](https://github.com/certd/certd/commit/f612509cac87b859e81a7a52fe94b2eaccad22f9)) +* dns支持新网互联 ([f415190](https://github.com/certd/certd/commit/f41519048326d971acd9e0a30462231f77a299a6)) +* start.sh脚本支持根据当前系统判断是否使用sudo ([567cb7d](https://github.com/certd/certd/commit/567cb7d737023e26ec58403c6f28f109e212d379)) + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) ### Bug Fixes diff --git a/docs/guide/img.png b/docs/guide/img.png deleted file mode 100644 index a0adf9b5..00000000 Binary files a/docs/guide/img.png and /dev/null differ diff --git a/docs/guide/index.md b/docs/guide/index.md index fb38fa18..fecbbbce 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -5,6 +5,9 @@ Certd 是一款开源、免费、全自动申请和部署更新SSL证书的工 关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具 + +![首页](../images/start/home.png) + ## 1、关于证书续期 >* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。 >* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。 @@ -15,7 +18,7 @@ Certd 是一款开源、免费、全自动申请和部署更新SSL证书的工 本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。 * 全自动申请证书(支持所有注册商注册的域名,支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式) -* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等70+部署插件) +* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等100+部署插件) * 支持通配符域名/泛域名,支持多个域名打到一个证书上,支持pem、pfx、der、jks等多种证书格式 * 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式 * 私有化部署,数据保存本地,安装升级非常简单快捷 diff --git a/docs/guide/install/source/index.md b/docs/guide/install/source/index.md index 3c25c889..ef5d419b 100644 --- a/docs/guide/install/source/index.md +++ b/docs/guide/install/source/index.md @@ -11,9 +11,12 @@ git clone https://github.com/certd/certd --depth=1 # git checkout v1.x.x # 当v2主干分支代码无法正常启动时,可以尝试此命令,1.x.x换成最新版本号 cd certd + # 启动服务 ./start.sh + + ``` >如果是windows,请先安装`git for windows` ,然后右键,选择`open git bash here`打开终端,再执行`./start.sh`命令 diff --git a/docs/guide/qa/use.md b/docs/guide/qa/use.md index c75407dd..6bc289d9 100644 --- a/docs/guide/qa/use.md +++ b/docs/guide/qa/use.md @@ -19,7 +19,7 @@ "detail": too many certificates (5) already issued for this exact set of idantifiers in the last 168hm0s ``` -## ssl.com报错 CAA record does not include ssl.com which is required to issue the certificate +## 4. ssl.com报错 CAA record does not include ssl.com which is required to issue the certificate ssl.com申请证书要求必须设置CAA记录,表示允许ssl.com为该域名颁发证书 请按如下格式添加CAA记录 @@ -29,5 +29,18 @@ ssl.com申请证书要求必须设置CAA记录,表示允许ssl.com为该域名 | 一级泛域名 | CAA | * | 0 | issue/issuewild | "ssl.com" | | 固定子域名 | CAA | sub | 0 | issue |"ssl.com" | +## 5. address family not supported +启动时出现此错误,是由于您的服务器不支持绑定ipv6地址 + +请配置环境变量 certd_koa_hostname=0.0.0.0 + +在docker-compose.yml中添加如下配置 + +```yaml +service: + certd: + environment: + certd_koa_hostname: 0.0.0.0 +``` diff --git a/docs/guide/start.md b/docs/guide/start.md index 8d95a8c9..49ccd510 100644 --- a/docs/guide/start.md +++ b/docs/guide/start.md @@ -7,10 +7,16 @@ https://certd.handsfree.work/ -> 注意数据将不定期清理,不定期停止定时任务,生产使用请自行部署 +注册 -> 创建证书流水线 -> 添加部署任务 -> 测试运行 + +> 注意demo的数据将不定期清理,生产使用请自行部署 > 包含敏感信息,务必自己本地部署进行生产使用 +![首页](../images/start/home-2.png) + + + ## 二、私有化部署 由于证书、授权信息等属于高度敏感数据,请务必私有化部署,保障数据安全 diff --git a/docs/images/start/home-2.png b/docs/images/start/home-2.png new file mode 100644 index 00000000..dce982e1 Binary files /dev/null and b/docs/images/start/home-2.png differ diff --git a/docs/index.md b/docs/index.md index 035df666..222df78d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -24,13 +24,13 @@ features: - title: 全自动申请证书 details: 支持所有注册商注册的域名 - title: 全自动部署证书 - details: 支持部署到主机、阿里云、腾讯云等,目前已支持60+部署插件 + details: 支持部署到主机、阿里云、腾讯云等,目前已支持100+部署插件 - title: 多域名、泛域名打到一个证书上 details: 支持通配符域名/泛域名,支持多个域名打到一个证书上 - title: 多证书格式支持 details: 支持pem、pfx、der、jks等多种证书格式,支持Google、Letsencrypt、ZeroSSL证书颁发机构 - - title: 支持私有化部署 - details: 授权数据加密存储,保障数据安全 - - title: 多数据库支持 - details: 支持SQLite、Postgresql、MySQL数据库 + - title: 私有化部署,数据安全 + details: 授权数据加密存储,保障数据安全,支持SQLite、Postgresql、MySQL多种数据库 + - title: 无痛升级 + details: 有手就行,向下兼容,无需担心数据作废 --- diff --git a/lerna.json b/lerna.json index ea56846f..fb8dca50 100644 --- a/lerna.json +++ b/lerna.json @@ -9,5 +9,5 @@ } }, "npmClient": "pnpm", - "version": "1.37.1" + "version": "1.37.2" } diff --git a/package.json b/package.json index c68d1d4d..6ffe8c9c 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "docs:dev": "vitepress dev docs", "docs:build": "npm run copylogs && vitepress build docs", "docs:preview": "vitepress preview docs", - "pub": "echo 1" + "pub": "echo 1", + "dev": "pnpm run -r --parallel compile " }, "license": "AGPL-3.0", "dependencies": { diff --git a/packages/core/acme-client/CHANGELOG.md b/packages/core/acme-client/CHANGELOG.md index 93093cdd..c3fc31df 100644 --- a/packages/core/acme-client/CHANGELOG.md +++ b/packages/core/acme-client/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/publishlab/node-acme-client/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Bug Fixes + +* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/publishlab/node-acme-client/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57)) + ## [1.37.1](https://github.com/publishlab/node-acme-client/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/acme-client diff --git a/packages/core/acme-client/package.json b/packages/core/acme-client/package.json index f15cc208..c13dd35d 100644 --- a/packages/core/acme-client/package.json +++ b/packages/core/acme-client/package.json @@ -3,7 +3,7 @@ "description": "Simple and unopinionated ACME client", "private": false, "author": "nmorsman", - "version": "1.37.1", + "version": "1.37.2", "type": "module", "module": "scr/index.js", "main": "src/index.js", @@ -18,7 +18,7 @@ "types" ], "dependencies": { - "@certd/basic": "^1.37.1", + "@certd/basic": "^1.37.2", "@peculiar/x509": "^1.11.0", "asn1js": "^3.0.5", "axios": "^1.7.2", @@ -52,7 +52,8 @@ "lint-types": "tsd", "prepublishOnly": "npm run build-docs", "test": "mocha -t 60000 \"test/setup.js\" \"test/**/*.spec.js\"", - "pub": "npm publish" + "pub": "npm publish", + "compile": "tsc --skipLibCheck --watch" }, "repository": { "type": "git", @@ -69,5 +70,5 @@ "bugs": { "url": "https://github.com/publishlab/node-acme-client/issues" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/core/acme-client/src/auto.js b/packages/core/acme-client/src/auto.js index d7ecfce6..c18ec266 100644 --- a/packages/core/acme-client/src/auto.js +++ b/packages/core/acme-client/src/auto.js @@ -255,7 +255,7 @@ export default async (client, userOpts) => { await wait(waitDnsDiffuseTime * 1000) } - log("开始向提供商请求挑战验证"); + log("开始向提供商请求检查验证"); await runPromisePa(completeChallengeTasks, 1000); } catch (e) { log(`证书申请失败${e.message}`); diff --git a/packages/core/acme-client/src/client.js b/packages/core/acme-client/src/client.js index b2ff14dc..806723b1 100644 --- a/packages/core/acme-client/src/client.js +++ b/packages/core/acme-client/src/client.js @@ -502,7 +502,7 @@ class AcmeClient { await verify[challenge.type](authz, challenge, keyAuthorization); }; - log('Waiting for ACME challenge verification(等待ACME挑战验证)'); + log('Waiting for ACME challenge verification(等待ACME检查验证)'); return util.retry(verifyFn, this.backoffOpts); } @@ -570,7 +570,7 @@ class AcmeClient { const resp = await this.api.apiRequest(item.url, null, [200]); /* Verify status */ - log(`[${d}] Item has status(挑战状态): ${resp.data.status}`); + log(`[${d}] Item has status(检查状态): ${resp.data.status}`); if (invalidStates.includes(resp.data.status)) { abort(); diff --git a/packages/core/basic/CHANGELOG.md b/packages/core/basic/CHANGELOG.md index 4ab50a40..bfcae24d 100644 --- a/packages/core/basic/CHANGELOG.md +++ b/packages/core/basic/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Performance Improvements + +* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22)) + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/basic diff --git a/packages/core/basic/build.md b/packages/core/basic/build.md index 5bcd9595..0cf887ed 100644 --- a/packages/core/basic/build.md +++ b/packages/core/basic/build.md @@ -1 +1 @@ -20:32 +22:48 diff --git a/packages/core/basic/package.json b/packages/core/basic/package.json index dd66b965..80e5d0a0 100644 --- a/packages/core/basic/package.json +++ b/packages/core/basic/package.json @@ -1,7 +1,7 @@ { "name": "@certd/basic", "private": false, - "version": "1.37.1", + "version": "1.37.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -13,7 +13,8 @@ "dev-build": "npm run build", "preview": "vite preview", "test": "mocha --loader=ts-node/esm", - "pub": "npm publish" + "pub": "npm publish", + "compile": "tsc --skipLibCheck --watch" }, "dependencies": { "axios": "^1.7.2", @@ -45,5 +46,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/core/basic/src/utils/util.sp.ts b/packages/core/basic/src/utils/util.sp.ts index 1ff9cfc5..aad85e35 100644 --- a/packages/core/basic/src/utils/util.sp.ts +++ b/packages/core/basic/src/utils/util.sp.ts @@ -1,8 +1,10 @@ //转换为import -import childProcess from 'child_process'; -import { safePromise } from './util.promise.js'; -import { ILogger, logger } from './util.log.js'; -import iconv from 'iconv-lite'; +//@ts-ignore +import childProcess from "child_process"; +import { safePromise } from "./util.promise.js"; +import { ILogger, logger } from "./util.log.js"; +//@ts-ignore +import iconv from "iconv-lite"; export type ExecOption = { cmd: string | string[]; env: any; @@ -11,12 +13,12 @@ export type ExecOption = { }; async function exec(opts: ExecOption): Promise { - let cmd = ''; + let cmd = ""; const log = opts.logger || logger; if (opts.cmd instanceof Array) { for (const item of opts.cmd) { if (cmd) { - cmd += ' && ' + item; + cmd += " && " + item; } else { cmd = item; } @@ -28,17 +30,18 @@ async function exec(opts: ExecOption): Promise { cmd, { env: { + //@ts-ignore ...process.env, ...opts.env, }, ...opts.options, }, - (error, stdout, stderr) => { + (error: any, stdout: { toString: (arg0: string) => any }, stderr: any) => { if (error) { log.error(`exec error: ${error}`); reject(error); } else { - const res = stdout.toString('utf-8'); + const res = stdout.toString("utf-8"); log.info(`stdout: ${res}`); resolve(res); } @@ -57,11 +60,12 @@ export type SpawnOption = { }; function isWindows() { - return process.platform === 'win32'; + // @ts-ignore + return process.platform === "win32"; } function convert(buffer: any) { if (isWindows()) { - const decoded = iconv.decode(buffer, 'GBK'); + const decoded = iconv.decode(buffer, "GBK"); // 检查是否有有效字符 return decoded && decoded.trim().length > 0 ? decoded : buffer.toString(); } else { @@ -74,12 +78,12 @@ function convert(buffer: any) { // } async function spawn(opts: SpawnOption): Promise { - let cmd = ''; + let cmd = ""; const log = opts.logger || logger; if (opts.cmd instanceof Array) { for (const item of opts.cmd) { if (cmd) { - cmd += ' && ' + item; + cmd += " && " + item; } else { cmd = item; } @@ -88,37 +92,47 @@ async function spawn(opts: SpawnOption): Promise { cmd = opts.cmd; } log.info(`执行命令: ${cmd}`); - let stdout = ''; - let stderr = ''; + let stdout = ""; + let stderr = ""; return safePromise((resolve, reject) => { const ls = childProcess.spawn(cmd, { shell: true, env: { + //@ts-ignore ...process.env, ...opts.env, }, ...opts.options, }); - ls.stdout.on('data', data => { + ls.stdout.on("data", (data: string) => { data = convert(data); log.info(`stdout: ${data}`); stdout += data; }); - ls.stderr.on('data', data => { + ls.stderr.on("data", (data: string) => { data = convert(data); log.warn(`stderr: ${data}`); stderr += data; }); - ls.on('error', error => { + ls.on("error", (error: any) => { log.error(`child process error: ${error}`); + //@ts-ignore + error.stderr = stderr; + //@ts-ignore + error.stdout = stdout; reject(error); }); - ls.on('close', (code: number) => { + ls.on("close", (code: number) => { if (code !== 0) { log.error(`child process exited with code ${code}`); - reject(new Error(stderr)); + const e = new Error(stderr || "return " + code); + //@ts-ignore + e.stderr = stderr; + //@ts-ignore + e.stdout = stdout; + reject(e); } else { resolve(stdout); } diff --git a/packages/core/pipeline/CHANGELOG.md b/packages/core/pipeline/CHANGELOG.md index 68dfd6ec..d12c8699 100644 --- a/packages/core/pipeline/CHANGELOG.md +++ b/packages/core/pipeline/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/pipeline + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/pipeline diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json index c84c2c2f..7a4045f9 100644 --- a/packages/core/pipeline/package.json +++ b/packages/core/pipeline/package.json @@ -1,7 +1,7 @@ { "name": "@certd/pipeline", "private": false, - "version": "1.37.1", + "version": "1.37.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -14,11 +14,12 @@ "build3": "rollup -c", "preview": "vite preview", "test": "mocha --loader=ts-node/esm", - "pub": "npm publish" + "pub": "npm publish", + "compile": "tsc --skipLibCheck --watch" }, "dependencies": { - "@certd/basic": "^1.37.1", - "@certd/plus-core": "^1.37.1", + "@certd/basic": "^1.37.2", + "@certd/plus-core": "^1.37.2", "dayjs": "^1.11.7", "lodash-es": "^4.17.21", "reflect-metadata": "^0.1.13" @@ -44,5 +45,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/libs/lib-huawei/CHANGELOG.md b/packages/libs/lib-huawei/CHANGELOG.md index e57631b5..1dfd4607 100644 --- a/packages/libs/lib-huawei/CHANGELOG.md +++ b/packages/libs/lib-huawei/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/lib-huawei + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/lib-huawei diff --git a/packages/libs/lib-huawei/package.json b/packages/libs/lib-huawei/package.json index c19dfc4f..24e1076d 100644 --- a/packages/libs/lib-huawei/package.json +++ b/packages/libs/lib-huawei/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-huawei", "private": false, - "version": "1.37.1", + "version": "1.37.2", "main": "./dist/bundle.js", "module": "./dist/bundle.js", "types": "./dist/d/index.d.ts", @@ -24,5 +24,5 @@ "prettier": "^2.8.8", "tslib": "^2.8.1" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/libs/lib-iframe/CHANGELOG.md b/packages/libs/lib-iframe/CHANGELOG.md index 0add4a69..3201a962 100644 --- a/packages/libs/lib-iframe/CHANGELOG.md +++ b/packages/libs/lib-iframe/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/lib-iframe + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/lib-iframe diff --git a/packages/libs/lib-iframe/package.json b/packages/libs/lib-iframe/package.json index c2ddd199..cae969bf 100644 --- a/packages/libs/lib-iframe/package.json +++ b/packages/libs/lib-iframe/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-iframe", "private": false, - "version": "1.37.1", + "version": "1.37.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -31,5 +31,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/libs/lib-jdcloud/CHANGELOG.md b/packages/libs/lib-jdcloud/CHANGELOG.md index 00dd4580..315ab758 100644 --- a/packages/libs/lib-jdcloud/CHANGELOG.md +++ b/packages/libs/lib-jdcloud/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/jdcloud + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/jdcloud diff --git a/packages/libs/lib-jdcloud/package.json b/packages/libs/lib-jdcloud/package.json index 4e5cc760..bc69f866 100644 --- a/packages/libs/lib-jdcloud/package.json +++ b/packages/libs/lib-jdcloud/package.json @@ -1,6 +1,6 @@ { "name": "@certd/jdcloud", - "version": "1.37.1", + "version": "1.37.2", "description": "jdcloud openApi sdk", "main": "./dist/bundle.js", "module": "./dist/bundle.js", @@ -61,5 +61,5 @@ "fetch" ] }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/libs/lib-k8s/CHANGELOG.md b/packages/libs/lib-k8s/CHANGELOG.md index 8eaebe7b..4d76f5f5 100644 --- a/packages/libs/lib-k8s/CHANGELOG.md +++ b/packages/libs/lib-k8s/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/lib-k8s + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/lib-k8s diff --git a/packages/libs/lib-k8s/package.json b/packages/libs/lib-k8s/package.json index b4c23d15..5a1602b1 100644 --- a/packages/libs/lib-k8s/package.json +++ b/packages/libs/lib-k8s/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-k8s", "private": false, - "version": "1.37.1", + "version": "1.37.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -17,7 +17,7 @@ "pub": "npm publish" }, "dependencies": { - "@certd/basic": "^1.37.1", + "@certd/basic": "^1.37.2", "@kubernetes/client-node": "0.21.0" }, "devDependencies": { @@ -32,5 +32,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/libs/lib-server/CHANGELOG.md b/packages/libs/lib-server/CHANGELOG.md index 43339a72..22c9f235 100644 --- a/packages/libs/lib-server/CHANGELOG.md +++ b/packages/libs/lib-server/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/lib-server + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/lib-server diff --git a/packages/libs/lib-server/package.json b/packages/libs/lib-server/package.json index 8ebc8d27..a30976e2 100644 --- a/packages/libs/lib-server/package.json +++ b/packages/libs/lib-server/package.json @@ -1,6 +1,6 @@ { "name": "@certd/lib-server", - "version": "1.37.1", + "version": "1.37.2", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", @@ -17,7 +17,8 @@ "lint": "mwts check", "lint:fix": "mwts fix", "prepublish": "npm run build", - "pub": "npm publish" + "pub": "npm publish", + "compile": "tsc --skipLibCheck --watch" }, "keywords": [], "author": "greper", @@ -27,11 +28,11 @@ ], "license": "AGPL", "dependencies": { - "@certd/acme-client": "^1.37.1", - "@certd/basic": "^1.37.1", - "@certd/pipeline": "^1.37.1", - "@certd/plugin-lib": "^1.37.1", - "@certd/plus-core": "^1.37.1", + "@certd/acme-client": "^1.37.2", + "@certd/basic": "^1.37.2", + "@certd/pipeline": "^1.37.2", + "@certd/plugin-lib": "^1.37.2", + "@certd/plus-core": "^1.37.2", "@midwayjs/cache": "3.14.0", "@midwayjs/core": "3.20.11", "@midwayjs/i18n": "3.20.13", @@ -63,5 +64,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/libs/lib-server/src/system/basic/service/plus-service.ts b/packages/libs/lib-server/src/system/basic/service/plus-service.ts index 2b54833a..67ad88a1 100644 --- a/packages/libs/lib-server/src/system/basic/service/plus-service.ts +++ b/packages/libs/lib-server/src/system/basic/service/plus-service.ts @@ -3,7 +3,7 @@ import { AppKey, PlusRequestService } from '@certd/plus-core'; import { cache, http, HttpRequestConfig, logger } from '@certd/basic'; import { SysInstallInfo, SysLicenseInfo, SysSettingsService } from '../../settings/index.js'; import { merge } from 'lodash-es'; - +import fs from 'fs'; @Provide("plusService") @Scope(ScopeEnum.Request, { allowDowngrade: true }) export class PlusService { @@ -85,12 +85,31 @@ export class PlusService { async sendEmail(email: any) { const plusRequestService = await this.getPlusRequestService(); + + let attachments = email.attachments || []; + if (attachments.length > 0) { + const newAttachments: any[] = []; + attachments.forEach((item: any) => { + const name = item.filename || item.path.split('/').pop(); + const body = item.content || fs.readFileSync(item.path); + const bodyBase64 = Buffer.from(body).toString('base64'); + item = { + name, + body: bodyBase64, + }; + newAttachments.push(item); + }); + attachments = newAttachments; + } + await plusRequestService.request({ url: '/activation/emailSend', data: { subject: email.subject, - text: email.content, to: email.receivers, + text: email.content, + html: email.html, + attachments, }, }); } diff --git a/packages/libs/midway-flyway-js/CHANGELOG.md b/packages/libs/midway-flyway-js/CHANGELOG.md index dee4041e..82975def 100644 --- a/packages/libs/midway-flyway-js/CHANGELOG.md +++ b/packages/libs/midway-flyway-js/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/midway-flyway-js + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) **Note:** Version bump only for package @certd/midway-flyway-js diff --git a/packages/libs/midway-flyway-js/package.json b/packages/libs/midway-flyway-js/package.json index ae5e78ed..922854d1 100644 --- a/packages/libs/midway-flyway-js/package.json +++ b/packages/libs/midway-flyway-js/package.json @@ -1,6 +1,6 @@ { "name": "@certd/midway-flyway-js", - "version": "1.37.1", + "version": "1.37.2", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", @@ -46,5 +46,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/plugins/plugin-cert/CHANGELOG.md b/packages/plugins/plugin-cert/CHANGELOG.md index 82b40321..f7dbee2c 100644 --- a/packages/plugins/plugin-cert/CHANGELOG.md +++ b/packages/plugins/plugin-cert/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Performance Improvements + +* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f)) +* 支持新网代理方式 ([f612509](https://github.com/certd/certd/commit/f612509cac87b859e81a7a52fe94b2eaccad22f9)) + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) ### Performance Improvements diff --git a/packages/plugins/plugin-cert/package.json b/packages/plugins/plugin-cert/package.json index 1eefc09c..511cc910 100644 --- a/packages/plugins/plugin-cert/package.json +++ b/packages/plugins/plugin-cert/package.json @@ -1,7 +1,7 @@ { "name": "@certd/plugin-cert", "private": false, - "version": "1.37.1", + "version": "1.37.2", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -13,13 +13,14 @@ "build3": "rollup -c", "build2": "vue-tsc --noEmit && vite build", "preview": "vite preview", - "pub": "npm publish" + "pub": "npm publish", + "compile": "tsc --skipLibCheck --watch" }, "dependencies": { - "@certd/acme-client": "^1.37.1", - "@certd/basic": "^1.37.1", - "@certd/pipeline": "^1.37.1", - "@certd/plugin-lib": "^1.37.1", + "@certd/acme-client": "^1.37.2", + "@certd/basic": "^1.37.2", + "@certd/pipeline": "^1.37.2", + "@certd/plugin-lib": "^1.37.2", "@google-cloud/publicca": "^1.3.0", "dayjs": "^1.11.7", "jszip": "^3.10.1", @@ -31,7 +32,6 @@ "devDependencies": { "@types/chai": "^4.3.3", "@types/mocha": "^10.0.0", - "@types/psl": "^1.1.3", "@typescript-eslint/eslint-plugin": "^8.26.1", "@typescript-eslint/parser": "^8.26.1", "chai": "^4.3.6", @@ -43,5 +43,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts index 5991f22b..8811ccd3 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts @@ -117,11 +117,11 @@ export class CertApplyPlugin extends CertApplyBasePlugin { ], }, required: true, - helper: `1. DNS直接验证:域名dns解析是在阿里云/腾讯云/华为云/CF/NameSilo/西数/火山/dns.la/京东云/51dns的,选它 -2. CNAME代理验证:支持任何注册商的域名,第一次需要手动添加[CNAME记录](#/certd/cname/record)(建议将DNS服务器修改为阿里云/腾讯云的,然后使用DNS直接验证) + helper: `1. DNS直接验证:当域名dns解析已被本系统支持时(即下方DNS解析服务商选项中可选),推荐选择此方式 +2. CNAME代理验证:支持任何注册商的域名,第一次需要手动添加[CNAME记录](#/certd/cname/record)(如果经常申请失败,建议将DNS服务器修改为阿里云/腾讯云的,然后使用DNS直接验证) 3. HTTP文件验证:不支持泛域名,需要配置网站文件上传 4. 多DNS提供商:每个域名可以选择独立的DNS提供商 -5. 自动匹配:需要在[域名管理](#/certd/cert/domain)中事先配置好校验方式 +5. 自动匹配:此处无需选择校验方式,需要在[域名管理](#/certd/cert/domain)中提前配置好校验方式 `, }) challengeType!: string; @@ -133,9 +133,9 @@ export class CertApplyPlugin extends CertApplyBasePlugin { name: "icon-select", vModel: "value", options: [ - { value: "letsencrypt", label: "Let's Encrypt", icon: "simple-icons:letsencrypt" }, - { value: "google", label: "Google", icon: "flat-color-icons:google" }, - { value: "zerossl", label: "ZeroSSL", icon: "emojione:digit-zero" }, + { value: "letsencrypt", label: "Let's Encrypt(免费,新手推荐)", icon: "simple-icons:letsencrypt" }, + { value: "google", label: "Google(免费)", icon: "flat-color-icons:google" }, + { value: "zerossl", label: "ZeroSSL(免费)", icon: "emojione:digit-zero" }, { value: "sslcom", label: "SSL.com(仅主域名和www免费)", icon: "la:expeditedssl" }, ], }, diff --git a/packages/plugins/plugin-lib/CHANGELOG.md b/packages/plugins/plugin-lib/CHANGELOG.md index 9ee0c99d..eb4e40c2 100644 --- a/packages/plugins/plugin-lib/CHANGELOG.md +++ b/packages/plugins/plugin-lib/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +**Note:** Version bump only for package @certd/plugin-lib + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) ### Performance Improvements diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index 707b951e..2ca50f23 100644 --- a/packages/plugins/plugin-lib/package.json +++ b/packages/plugins/plugin-lib/package.json @@ -1,7 +1,7 @@ { "name": "@certd/plugin-lib", "private": false, - "version": "1.37.1", + "version": "1.37.2", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -13,7 +13,8 @@ "build3": "rollup -c", "build2": "vue-tsc --noEmit && vite build", "preview": "vite preview", - "pub": "npm publish" + "pub": "npm publish", + "compile": "tsc --skipLibCheck --watch" }, "dependencies": { "@alicloud/openapi-client": "^0.4.14", @@ -21,8 +22,8 @@ "@alicloud/pop-core": "^1.7.10", "@alicloud/tea-util": "^1.4.10", "@aws-sdk/client-s3": "^3.787.0", - "@certd/basic": "^1.37.1", - "@certd/pipeline": "^1.37.1", + "@certd/basic": "^1.37.2", + "@certd/pipeline": "^1.37.2", "@kubernetes/client-node": "0.21.0", "ali-oss": "^6.22.0", "basic-ftp": "^5.0.5", @@ -41,7 +42,6 @@ "devDependencies": { "@types/chai": "^4.3.3", "@types/mocha": "^10.0.0", - "@types/psl": "^1.1.3", "@typescript-eslint/eslint-plugin": "^8.26.1", "@typescript-eslint/parser": "^8.26.1", "chai": "^4.3.6", @@ -53,5 +53,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da" + "gitHead": "e1daaf07ce2fda6ce44998d65f8a989fc6af88db" } diff --git a/packages/ui/certd-client/.env.remote b/packages/ui/certd-client/.env.remote new file mode 100644 index 00000000..6a532d74 --- /dev/null +++ b/packages/ui/certd-client/.env.remote @@ -0,0 +1,2 @@ +#登录与权限开启 +VITE_APP_PM_ENABLED=false diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 070cbe95..db424139 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Performance Improvements + +* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f)) +* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22)) + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index b76e5bb4..36b1ed74 100644 --- a/packages/ui/certd-client/package.json +++ b/packages/ui/certd-client/package.json @@ -1,11 +1,12 @@ { "name": "@certd/ui-client", - "version": "1.37.1", + "version": "1.37.2", "private": true, "scripts": { "dev": "vite --open", "dev:pm": "vite --mode pm", "dev:force": "vite --force", + "remote": "vite --mode remote --open", "debug": "vite --mode debug --open", "debug:pm": "vite --mode debugpm", "debug:force": "vite --force --mode debug", @@ -105,8 +106,8 @@ "zod-defaults": "^0.1.3" }, "devDependencies": { - "@certd/lib-iframe": "^1.37.1", - "@certd/pipeline": "^1.37.1", + "@certd/lib-iframe": "^1.37.2", + "@certd/pipeline": "^1.37.2", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", "@types/chai": "^4.3.12", diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd.ts index d8805cff..373727a9 100644 --- a/packages/ui/certd-client/src/locales/langs/en-US/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd.ts @@ -175,6 +175,7 @@ export default { suiteSetting: "Suite Settings", orderManager: "Order Management", userSuites: "User Suites", + netTest: "Network Test", }, certificateRepo: { title: "Certificate Repository", @@ -280,6 +281,8 @@ export default { cronTrigger: "Scheduled trigger for monitoring", dnsServer: "DNS Server", dnsServerHelper: "Use a custom domain name resolution server, such as: 1.1.1.1 , support multiple", + certValidDays: "Certificate Valid Days", + certValidDaysHelper: "Number of days before expiration to send a notification", }, }, checkStatus: { diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts index f55c7a56..f5535c99 100644 --- a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts @@ -181,6 +181,7 @@ export default { suiteSetting: "套餐设置", orderManager: "订单管理", userSuites: "用户套餐", + netTest: "网络测试", }, certificateRepo: { title: "证书仓库", @@ -285,6 +286,8 @@ export default { cronTrigger: "定时触发监控", dnsServer: "DNS服务器", dnsServerHelper: "使用自定义的域名解析服务器,如:1.1.1.1 , 支持多个", + certValidDays: "证书到期前天数", + certValidDaysHelper: "证书到期前多少天发送通知", }, }, checkStatus: { diff --git a/packages/ui/certd-client/src/plugin/fast-crud/index.tsx b/packages/ui/certd-client/src/plugin/fast-crud/index.tsx index 506c8f2a..14bc403b 100644 --- a/packages/ui/certd-client/src/plugin/fast-crud/index.tsx +++ b/packages/ui/certd-client/src/plugin/fast-crud/index.tsx @@ -14,7 +14,7 @@ import { usePreferences } from "/@/vben/preferences"; import { LocalStorage } from "/@/utils/util.storage"; import { FsEditorCode } from "@fast-crud/editor-code"; -import "@fast-crud/editor-code/dist/style.css" +import "@fast-crud/editor-code/dist/style.css"; class ColumnSizeSaver { save: (key: string, size: number) => void; diff --git a/packages/ui/certd-client/src/router/source/modules/sys.ts b/packages/ui/certd-client/src/router/source/modules/sys.ts index b634f254..31fa225a 100644 --- a/packages/ui/certd-client/src/router/source/modules/sys.ts +++ b/packages/ui/certd-client/src/router/source/modules/sys.ts @@ -249,6 +249,17 @@ export const sysResources = [ }, ], }, + { + title: "certd.sysResources.netTest", + name: "NetTest", + path: "/sys/nettest", + component: "/sys/nettest/index.vue", + meta: { + icon: "ion:build-outline", + auth: true, + keepAlive: true, + }, + }, ], }, ]; diff --git a/packages/ui/certd-client/src/style/common.less b/packages/ui/certd-client/src/style/common.less index 70336dd0..5b3c3a2e 100644 --- a/packages/ui/certd-client/src/style/common.less +++ b/packages/ui/certd-client/src/style/common.less @@ -19,6 +19,10 @@ div#app { height: 100%; } +pre.pre{ + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +} + h1, h2, h3, diff --git a/packages/ui/certd-client/src/vben/popup-ui/modal/use-modal.ts b/packages/ui/certd-client/src/vben/popup-ui/modal/use-modal.ts index 820c466b..6560e8d2 100644 --- a/packages/ui/certd-client/src/vben/popup-ui/modal/use-modal.ts +++ b/packages/ui/certd-client/src/vben/popup-ui/modal/use-modal.ts @@ -54,8 +54,8 @@ export function useVbenModal( ); }, { - inheritAttrs: false, name: "VbenParentModal", + inheritAttrs: false, } ); return [Modal, extendedApi as ExtendedModalApi] as const; @@ -104,8 +104,8 @@ export function useVbenModal( ); }, { - inheritAttrs: false, name: "VbenModal", + inheritAttrs: false, } ); injectData.extendApi?.(extendedApi); diff --git a/packages/ui/certd-client/src/views/certd/cert/domain/api.ts b/packages/ui/certd-client/src/views/certd/cert/domain/api.ts index 9fed5c54..6d48bfe0 100644 --- a/packages/ui/certd-client/src/views/certd/cert/domain/api.ts +++ b/packages/ui/certd-client/src/views/certd/cert/domain/api.ts @@ -57,4 +57,3 @@ export async function DeleteBatch(ids: any[]) { data: { ids }, }); } - diff --git a/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx b/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx index e1189083..37e5827d 100644 --- a/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx @@ -2,6 +2,7 @@ import { useI18n } from "/src/locales"; import { AddReq, ColumnCompositionProps, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud"; import { siteInfoApi } from "./api"; +import * as settingApi from "./setting/api"; import dayjs from "dayjs"; import { Modal, notification } from "ant-design-vue"; import { useSettingStore } from "/@/store/settings"; @@ -9,6 +10,7 @@ import { mySuiteApi } from "/@/views/certd/suite/mine/api"; import { mitter } from "/@/utils/util.mitt"; import { useSiteIpMonitor } from "./ip/use"; import { useSiteImport } from "/@/views/certd/monitor/site/use"; +import { ref } from "vue"; export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { const { t } = useI18n(); @@ -47,6 +49,14 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat const { openSiteIpMonitorDialog } = useSiteIpMonitor(); const { openSiteImportDialog } = useSiteImport(); + const certValidDaysRef = ref(10); + + async function loadSetting() { + const setting = await settingApi.SiteMonitorSettingsGet(); + certValidDaysRef.value = setting?.certValidDays || 10; + } + loadSetting(); + function checkAll() { Modal.confirm({ title: t("certd.monitor.confirmTitle"), // "确认" @@ -385,10 +395,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat column: { conditionalRender: false, cellRender({ row }) { - const { - certEffectiveTime: effectiveTime, - certExpiresTime: expiresTime, - } = row || {}; + const certValidDays = certValidDaysRef.value; + const { certEffectiveTime: effectiveTime, certExpiresTime: expiresTime } = row || {}; if (!expiresTime) { return "-"; } @@ -400,7 +408,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat const effectiveDays = Math.max(90, dayjs(expiresTime).diff(applyDate, "day")); // 距离失效时间剩余天数 const leftDays = dayjs(expiresTime).diff(dayjs(), "day"); - const color = leftDays < 20 ? "red" : "#389e0d"; + const color = leftDays < certValidDays ? "red" : "#389e0d"; const percent = (leftDays / effectiveDays) * 100; // console.log('cellRender', 'effectiveDays', effectiveDays, 'expiresTime', expiresTime, 'applyTime', applyTime, 'percent', percent, row) return `${leftDays}${t("certd.monitor.days")}`} />; diff --git a/packages/ui/certd-client/src/views/certd/monitor/site/setting/api.ts b/packages/ui/certd-client/src/views/certd/monitor/site/setting/api.ts index ffe79de9..88e936b4 100644 --- a/packages/ui/certd-client/src/views/certd/monitor/site/setting/api.ts +++ b/packages/ui/certd-client/src/views/certd/monitor/site/setting/api.ts @@ -6,6 +6,7 @@ export type UserSiteMonitorSetting = { retryTimes?: number; cron?: string; dnsServer?: string[]; + certValidDays?: number; }; export async function SiteMonitorSettingsGet() { diff --git a/packages/ui/certd-client/src/views/certd/monitor/site/setting/index.vue b/packages/ui/certd-client/src/views/certd/monitor/site/setting/index.vue index 60054fd5..c0cfdd95 100644 --- a/packages/ui/certd-client/src/views/certd/monitor/site/setting/index.vue +++ b/packages/ui/certd-client/src/views/certd/monitor/site/setting/index.vue @@ -17,6 +17,12 @@
{{ t("certd.monitor.setting.monitorRetryTimes") }}
+ +
+ +
+
{{ t("certd.monitor.setting.certValidDaysHelper") }}
+
diff --git a/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx b/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx index 8ce42f4c..add581aa 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx @@ -366,10 +366,7 @@ export default function ({ crudExpose, context: { groupDictRef, selectedRowKeys }, column: { cellRender({ row }) { - const { - certEffectiveTime: effectiveTime, - certExpiresTime: expiresTime, - } = row?.lastVars || {}; + const { certEffectiveTime: effectiveTime, certExpiresTime: expiresTime } = row?.lastVars || {}; if (!expiresTime) { return "-"; } diff --git a/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue b/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue index 69a6b810..9bcffe56 100644 --- a/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue +++ b/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue @@ -193,7 +193,6 @@ async function loadLatestVersion() { const minVersion = settingsStore.productInfo?.app?.minVersion; if (minVersion) { - debugger; if (isNewVersion(version.value, minVersion)) { notification.error({ message: settingsStore.productInfo?.app?.minVersionTip ?? "版本过低,为了您的数据安全,请尽快升级", diff --git a/packages/ui/certd-client/src/views/sys/nettest/DomainTestCard.vue b/packages/ui/certd-client/src/views/sys/nettest/DomainTestCard.vue new file mode 100644 index 00000000..566811ac --- /dev/null +++ b/packages/ui/certd-client/src/views/sys/nettest/DomainTestCard.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/packages/ui/certd-client/src/views/sys/nettest/ServerInfoCard.vue b/packages/ui/certd-client/src/views/sys/nettest/ServerInfoCard.vue new file mode 100644 index 00000000..30f6fdff --- /dev/null +++ b/packages/ui/certd-client/src/views/sys/nettest/ServerInfoCard.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/packages/ui/certd-client/src/views/sys/nettest/TestCase.vue b/packages/ui/certd-client/src/views/sys/nettest/TestCase.vue new file mode 100644 index 00000000..5c4c3366 --- /dev/null +++ b/packages/ui/certd-client/src/views/sys/nettest/TestCase.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/packages/ui/certd-client/src/views/sys/nettest/api.ts b/packages/ui/certd-client/src/views/sys/nettest/api.ts new file mode 100644 index 00000000..f75d10fc --- /dev/null +++ b/packages/ui/certd-client/src/views/sys/nettest/api.ts @@ -0,0 +1,33 @@ +import { request } from "/@/api/service"; + +export async function DomainResolve(domain: string) { + return await request({ + url: "/sys/nettest/domainResolve", + method: "post", + data: { domain }, + }); +} + +export async function PingTest(domain: string) { + return await request({ + url: "/sys/nettest/ping", + method: "post", + data: { domain }, + }); +} + +export async function TelnetTest(domain: string, port: number) { + return await request({ + url: "/sys/nettest/telnet", + method: "post", + data: { domain, port }, + }); +} + +// 获取服务器信息(包括本地IP、外网IP和DNS服务器) +export async function GetServerInfo() { + return await request({ + url: "/sys/nettest/serverInfo", + method: "post", + }); +} diff --git a/packages/ui/certd-client/src/views/sys/nettest/index.vue b/packages/ui/certd-client/src/views/sys/nettest/index.vue new file mode 100644 index 00000000..c4bc4c34 --- /dev/null +++ b/packages/ui/certd-client/src/views/sys/nettest/index.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/packages/ui/certd-client/src/views/sys/suite/product/crud.tsx b/packages/ui/certd-client/src/views/sys/suite/product/crud.tsx index 6492c19b..16ad6e1f 100644 --- a/packages/ui/certd-client/src/views/sys/suite/product/crud.tsx +++ b/packages/ui/certd-client/src/views/sys/suite/product/crud.tsx @@ -55,15 +55,15 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat groups: { base: { header: t("certd.basicInfo"), - columns: ["title", "type", "disabled", "order", "supportBuy", "intro"] + columns: ["title", "type", "disabled", "order", "supportBuy", "intro"], }, content: { header: t("certd.packageContent"), - columns: ["content.maxDomainCount", "content.maxPipelineCount", "content.maxDeployCount", "content.maxMonitorCount"] + columns: ["content.maxDomainCount", "content.maxPipelineCount", "content.maxDeployCount", "content.maxMonitorCount"], }, price: { header: t("certd.price"), - columns: ["durationPrices"] + columns: ["durationPrices"], }, }, }, diff --git a/packages/ui/certd-client/vite.config.ts b/packages/ui/certd-client/vite.config.ts index fabd8e9f..87e4e745 100644 --- a/packages/ui/certd-client/vite.config.ts +++ b/packages/ui/certd-client/vite.config.ts @@ -84,6 +84,7 @@ export default ({ command, mode }) => { host: "0.0.0.0", port: 3008, fs: devServerFs, + allowedHosts: ["localhost", "127.0.0.1", "yfy.docmirror.cn"], proxy: { // with options "/api": { diff --git a/packages/ui/certd-server/CHANGELOG.md b/packages/ui/certd-server/CHANGELOG.md index 2c9de3e2..d8fa6a85 100644 --- a/packages/ui/certd-server/CHANGELOG.md +++ b/packages/ui/certd-server/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14) + +### Bug Fixes + +* 修复飞牛证书部署后无法生效的bug ([bf156a1](https://github.com/certd/certd/commit/bf156a13bd443cdadb73c9dff79bbef7231b4401)) +* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/certd/certd/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57)) + +### Performance Improvements + +* 增加飞牛证书id选择的提示 ([5a4d812](https://github.com/certd/certd/commit/5a4d8121462b1afe921d028465687be8c9679814)) +* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f)) +* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22)) +* 支持新网代理方式 ([f612509](https://github.com/certd/certd/commit/f612509cac87b859e81a7a52fe94b2eaccad22f9)) +* dns支持新网互联 ([f415190](https://github.com/certd/certd/commit/f41519048326d971acd9e0a30462231f77a299a6)) + ## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29) ### Bug Fixes diff --git a/packages/ui/certd-server/app.js b/packages/ui/certd-server/app.js index 63c18570..e82af0a9 100644 --- a/packages/ui/certd-server/app.js +++ b/packages/ui/certd-server/app.js @@ -5,9 +5,8 @@ const { Bootstrap } = require('@midwayjs/bootstrap'); const DirectoryFileDetector = require('@midwayjs/core').DirectoryFileDetector; const baseDir = process.cwd(); -const pipelineDir = baseDir + './node_modules/@certd/pipeline/dist'; const customFileDetector = new DirectoryFileDetector({ - loadDir: [baseDir, pipelineDir], + loadDir: [baseDir], }); module.exports = async () => { diff --git a/packages/ui/certd-server/package.json b/packages/ui/certd-server/package.json index fa009976..58581b2e 100644 --- a/packages/ui/certd-server/package.json +++ b/packages/ui/certd-server/package.json @@ -1,12 +1,14 @@ { "name": "@certd/ui-server", - "version": "1.37.1", + "version": "1.37.2", "description": "fast-server base midway", "private": true, "type": "module", "scripts": { "start": "cross-env NODE_ENV=production node ./bootstrap.js", - "dev": "cross-env NODE_ENV=local mwtsc --watch --run @midwayjs/mock/app", + "dev-start": "mwtsc --watch --run @midwayjs/mock/app", + "dc": "cd ../../../ && pnpm run dev", + "dev": "cross-env NODE_ENV=local & pnpm run dev-start", "dev-commlocal": "cross-env NODE_ENV=dev-commlocal mwtsc --watch --run @midwayjs/mock/app", "dev-commpro": "cross-env NODE_ENV=dev-commpro mwtsc --watch --run @midwayjs/mock/app", "dev-pg": "cross-env NODE_ENV=dev-pg mwtsc --watch --run @midwayjs/mock/app", @@ -43,20 +45,20 @@ "@aws-sdk/client-cloudfront": "^3.699.0", "@aws-sdk/client-iam": "^3.699.0", "@aws-sdk/client-s3": "^3.705.0", - "@certd/acme-client": "^1.37.1", - "@certd/basic": "^1.37.1", - "@certd/commercial-core": "^1.37.1", + "@certd/acme-client": "^1.37.2", + "@certd/basic": "^1.37.2", + "@certd/commercial-core": "^1.37.2", "@certd/cv4pve-api-javascript": "^8.4.2", - "@certd/jdcloud": "^1.37.1", - "@certd/lib-huawei": "^1.37.1", - "@certd/lib-k8s": "^1.37.1", - "@certd/lib-server": "^1.37.1", - "@certd/midway-flyway-js": "^1.37.1", - "@certd/pipeline": "^1.37.1", - "@certd/plugin-cert": "^1.37.1", - "@certd/plugin-lib": "^1.37.1", - "@certd/plugin-plus": "^1.37.1", - "@certd/plus-core": "^1.37.1", + "@certd/jdcloud": "^1.37.2", + "@certd/lib-huawei": "^1.37.2", + "@certd/lib-k8s": "^1.37.2", + "@certd/lib-server": "^1.37.2", + "@certd/midway-flyway-js": "^1.37.2", + "@certd/pipeline": "^1.37.2", + "@certd/plugin-cert": "^1.37.2", + "@certd/plugin-lib": "^1.37.2", + "@certd/plugin-plus": "^1.37.2", + "@certd/plus-core": "^1.37.2", "@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120", "@huaweicloud/huaweicloud-sdk-core": "^3.1.120", "@koa/cors": "^5.0.0", @@ -93,7 +95,6 @@ "jsonwebtoken": "^9.0.0", "jszip": "^3.10.1", "koa-send": "^5.0.1", - "kubernetes-client": "^9.0.0", "lodash-es": "^4.17.21", "log4js": "^6.7.1", "lru-cache": "^11.0.1", @@ -120,7 +121,8 @@ "svg-captcha": "^1.4.0", "tencentcloud-sdk-nodejs": "^4.1.112", "typeorm": "^0.3.20", - "uuid": "^10.0.0" + "uuid": "^10.0.0", + "xml2js": "^0.6.2" }, "devDependencies": { "@midwayjs/mock": "3.20.11", diff --git a/packages/ui/certd-server/src/config/config.default.ts b/packages/ui/certd-server/src/config/config.default.ts index 4285eda9..7166446e 100644 --- a/packages/ui/certd-server/src/config/config.default.ts +++ b/packages/ui/certd-server/src/config/config.default.ts @@ -27,7 +27,7 @@ const development = { }, keys: 'certd', koa: { - hostname:"::", + hostname: "::", port: 7001, }, https: { diff --git a/packages/ui/certd-server/src/configuration.ts b/packages/ui/certd-server/src/configuration.ts index a730e592..718866dc 100644 --- a/packages/ui/certd-server/src/configuration.ts +++ b/packages/ui/certd-server/src/configuration.ts @@ -20,9 +20,13 @@ import * as commercial from '@certd/commercial-core'; import * as upload from '@midwayjs/upload'; import { setLogger } from '@certd/acme-client'; import {HiddenMiddleware} from "./middleware/hidden.js"; + process.on('uncaughtException', error => { console.error('未捕获的异常:', error); // 在这里可以添加日志记录、发送错误通知等操作 + if(error?.message?.includes('address family not supported')){ + logger.error("您的服务器不支持监听IPV6格式的地址(::),请配置环境变量: certd_koa_hostname=0.0.0.0"); + } }); @Configuration({ @@ -107,5 +111,6 @@ export class MainConfiguration { }); logger.info('当前环境:', this.app.getEnv()); // prod + // throw new Error("address family not supported") } } diff --git a/packages/ui/certd-server/src/controller/sys/nettest/nettest-controller.ts b/packages/ui/certd-server/src/controller/sys/nettest/nettest-controller.ts new file mode 100644 index 00000000..75c55f28 --- /dev/null +++ b/packages/ui/certd-server/src/controller/sys/nettest/nettest-controller.ts @@ -0,0 +1,47 @@ +import { BaseController } from '@certd/lib-server'; +import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core'; +import { NetTestService } from '../../../modules/sys/nettest/nettest-service.js'; + + +@Provide() +@Controller('/api/sys/nettest/') +export class SysNetTestController extends BaseController { + + @Inject() + netTestService: NetTestService; + + + @Post('/domainResolve', { summary: 'sys:settings:view' }) + public async domainResolve(@Body(ALL) body: { domain: string }) { + + const { domain } = body; + const result = await this.netTestService.domainResolve(domain); + return this.ok(result); + } + + // ping + @Post('/ping', { summary: 'sys:settings:view' }) + public async ping(@Body(ALL) body: { domain: string }) { + + const { domain } = body; + const result = await this.netTestService.ping(domain); + return this.ok(result); + } + + // telnet + @Post('/telnet', { summary: 'sys:settings:view' }) + public async telnet(@Body(ALL) body: { domain: string, port: number }) { + + const { domain, port } = body; + const result = await this.netTestService.telnet(domain, port); + return this.ok(result); + } + + // telnet + @Post('/serverInfo', { summary: 'sys:settings:view' }) + public async serverInfo() { + + const result = await this.netTestService.serverInfo(); + return this.ok(result); + } +} diff --git a/packages/ui/certd-server/src/modules/auto/auto-z.ts b/packages/ui/certd-server/src/modules/auto/auto-z.ts index af459ff3..3fe49988 100644 --- a/packages/ui/certd-server/src/modules/auto/auto-z.ts +++ b/packages/ui/certd-server/src/modules/auto/auto-z.ts @@ -19,6 +19,8 @@ export class AutoZPrint { @Config('https') httpsConfig: HttpsServerOptions; + @Config('koa') + koaConfig: any; @Init() async init() { @@ -58,6 +60,7 @@ export class AutoZPrint { httpsServer.start({ ...this.httpsConfig, app: this.app, + hostname: this.httpsConfig.hostname || this.koaConfig.hostname, }); } } diff --git a/packages/ui/certd-server/src/modules/auto/https/server.ts b/packages/ui/certd-server/src/modules/auto/https/server.ts index 67d7ef5a..8e995bca 100644 --- a/packages/ui/certd-server/src/modules/auto/https/server.ts +++ b/packages/ui/certd-server/src/modules/auto/https/server.ts @@ -7,6 +7,7 @@ import {logger, safePromise} from '@certd/basic'; export type HttpsServerOptions = { enabled: boolean; app?: Application; + hostname?: string; port: number; key: string; cert: string; @@ -58,7 +59,7 @@ export class HttpsServer { opts.app.callback() ); this.server = httpServer; - const hostname = '::'; + let hostname = opts.hostname || '::'; // A function that runs in the context of the http server // and reports what type of server listens on which port function listeningReporter() { @@ -70,7 +71,19 @@ export class HttpsServer { httpServer.listen(opts.port, hostname, listeningReporter); return httpServer; } catch (e) { - logger.error('启动https服务失败', e); + if ( e.message?.includes("address family not supported")) { + hostname = "0.0.0.0" + logger.error(`${e.message},尝试监听${hostname}`, e); + try{ + httpServer.listen(opts.port, hostname, listeningReporter); + return httpServer; + }catch (e) { + logger.error('启动https服务失败', e); + } + }else{ + logger.error('启动https服务失败', e); + } + } } } diff --git a/packages/ui/certd-server/src/modules/mine/service/models.ts b/packages/ui/certd-server/src/modules/mine/service/models.ts index f74cebdb..fc8ce6ca 100644 --- a/packages/ui/certd-server/src/modules/mine/service/models.ts +++ b/packages/ui/certd-server/src/modules/mine/service/models.ts @@ -28,6 +28,7 @@ export class UserSiteMonitorSetting extends BaseSettings { cron?:string = undefined; retryTimes?:number = 3; dnsServer?:string[] = undefined; + certValidDays?:number = 10; } export class UserEmailSetting extends BaseSettings { diff --git a/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts b/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts index 8c21d9d4..a131eee7 100644 --- a/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts +++ b/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts @@ -275,13 +275,12 @@ export class SiteInfoService extends BaseService { } async sendExpiresNotify(site: SiteInfoEntity) { - - const tipDays = 10; + const setting = await this.userSettingsService.getSetting(site.userId, UserSiteMonitorSetting) + const tipDays = setting?.certValidDays || 10; const expires = site.certExpiresTime; const validDays = dayjs(expires).diff(dayjs(), "day"); const url = await this.notificationService.getBindUrl("#/certd/monitor/site"); - const setting = await this.userSettingsService.getSetting(site.userId, UserSiteMonitorSetting) const content = `站点名称: ${site.name} \n站点域名: ${site.domain} \n证书域名: ${site.certDomains} \n颁发机构: ${site.certProvider} \n过期时间: ${dayjs(site.certExpiresTime).format("YYYY-MM-DD")} \n`; if (validDays >= 0 && validDays < tipDays) { // 发通知 diff --git a/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts b/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts new file mode 100644 index 00000000..d1b46611 --- /dev/null +++ b/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts @@ -0,0 +1,231 @@ +import { Provide, Scope, ScopeEnum } from '@midwayjs/core'; +import { http, logger, utils } from '@certd/basic'; + +// 使用@certd/basic包中已有的utils.sp.spawn函数替代自定义的asyncExec +// 该函数已经内置了Windows系统编码问题的解决方案 + +export type NetTestResult = { + success: boolean; //是否成功 + message: string; //结果 + testLog: string; //测试日志 + error?: string; //执行错误信息 +} + +@Provide('nettestService') +@Scope(ScopeEnum.Request, { allowDowngrade: true }) +export class NetTestService { + /** + * 执行Telnet测试 + * @param domain 域名 + * @param port 端口 + * @returns 测试结果 + */ + async telnet(domain: string, port: number): Promise { + try { + let command = ''; + + if (this.isWindows()) { + // Windows系统使用PowerShell执行测试,避免输入重定向问题 + // 使用PowerShell的Test-NetConnection命令进行端口测试 + command = `powershell -Command "& { $result = Test-NetConnection -ComputerName ${domain} -Port ${port} -InformationLevel Quiet; if ($result) { Write-Host '端口连接成功' } else { Write-Host '端口连接失败' } }"`; + } else { + // Linux系统使用nc命令进行端口测试 + command = `nc -zv -w 5 ${domain} ${port} 2>&1`; + } + + // 使用utils.sp.spawn执行命令,它会自动处理Windows编码问题 + const output = await utils.sp.spawn({ + cmd: command, + logger: undefined // 可以根据需要传入logger + }); + + // 判断测试是否成功 + const success = this.isWindows() + ? output.includes('端口连接成功') + : output.includes('Connected to'); + + // 处理结果 + return { + success, + message: success ? '端口连接测试成功' : '端口连接测试失败', + testLog: output, + }; + + } catch (error) { + return { + success: false, + message: 'Telnet测试执行失败', + testLog: error.stdout || error.stderr || error?.message || String(error), + error: error.stderr || error?.message || String(error), + }; + } + } + + /** + * 执行Ping测试 + * @param domain 域名 + * @returns 测试结果 + */ + async ping(domain: string): Promise { + try { + let command = ''; + + if (this.isWindows()) { + // Windows系统ping命令,发送4个包 + command = `ping -n 4 ${domain}`; + } else { + // Linux系统ping命令,发送4个包 + command = `ping -c 4 ${domain}`; + } + + // 使用utils.sp.spawn执行命令 + const output = await utils.sp.spawn({ + cmd: command, + logger: undefined + }); + + // 判断测试是否成功 + const success = this.isWindows() + ? output.includes('TTL=') + : output.includes('time='); + + return { + success, + message: success ? 'Ping测试成功' : 'Ping测试失败', + testLog: output, + }; + + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + return { + success: false, + message: 'Ping测试执行失败', + testLog: error.stderr|| error.stdout || errorMessage, + error: errorMessage + }; + } + } + + private isWindows() { + return process.platform === 'win32'; + } + + /** + * 执行域名解析测试 + * @param domain 域名 + * @returns 解析结果 + */ + async domainResolve(domain: string): Promise { + try { + let command = ''; + if (this.isWindows()) { + // Windows系统使用nslookup命令 + command = `nslookup ${domain}`; + } else { + // Linux系统优先使用dig命令,如果没有则回退到nslookup + command = `which dig > /dev/null && dig ${domain} || nslookup ${domain}`; + } + + // 使用utils.sp.spawn执行命令 + const output = await utils.sp.spawn({ + cmd: command, + logger: undefined + }); + + // 判断测试是否成功 + const success = output.includes('Address:') || output.includes('IN A') || output.includes('IN AAAA') || + (this.isWindows() && output.includes('Name:')); + + return { + success, + message: success ? '域名解析测试成功' : '域名解析测试失败', + testLog: output, + }; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + return { + success: false, + message: '域名解析测试执行失败', + testLog: error.stdoout || error.stderr || errorMessage, + error: errorMessage + }; + } + } + + + async getLocalIP(): Promise { + try { + const output = await utils.sp.spawn({ + cmd: 'ip a | grep \'inet \' | grep -v \'127.0.0.1\' | awk \'{print $2}\' | cut -d/ -f1', + logger: undefined + }); + // 去除 inet 前缀 + let ips = output.trim().replace(/inet /g, ''); + return ips.split('\n').filter(ip => ip.length > 0); + } catch (error) { + return [error instanceof Error ? error.message : String(error)]; + } + } + + async getPublicIP(): Promise { + try { + const res = await http.request({ + url:"https://ipinfo.io/ip", + method:"GET", + }) + return[res] + } catch (error) { + return [error instanceof Error ? error.message : String(error)] + } + } + + async getDNSservers(): Promise { + let dnsServers: string[] = []; + try { + const output = await utils.sp.spawn({ + cmd: 'cat /etc/resolv.conf | grep nameserver | awk \'{print $2}\'', + logger: undefined + }); + dnsServers = output.trim().split('\n'); + } catch (error) { + dnsServers = [error instanceof Error ? error.message : String(error)]; + } + try{ + /** + * /app # cat /etc/resolv.conf | grep "ExtServers" +# ExtServers: [223.5.5.5 223.6.6.6] + */ + const extDnsServers = await utils.sp.spawn({ + cmd: 'cat /etc/resolv.conf | grep "ExtServers"', + logger: undefined + }); + const line = extDnsServers.trim() + if (line.includes('ExtServers') && line.includes('[')) { + const extDns = line.substring(line.indexOf('[') + 1, line.indexOf(']')).split(' '); + const dnsList = extDns.map(item=>`Ext:${item}`) + dnsServers = dnsServers.concat(dnsList); + } + } catch (error) { + logger.error('获取DNS ExtServers 服务器失败', error); + // dnsServers.push(error instanceof Error ? error.message : String(error)); + } + return dnsServers; + } + /** + * 获取服务器信息(包括本地IP、外网IP和DNS服务器) + * @returns 服务器信息 + */ + async serverInfo(): Promise { + + const res = { + localIP: [], + publicIP: [], + dnsServers: [], + } + + res.localIP = await this.getLocalIP(); + res.publicIP = await this.getPublicIP(); + res.dnsServers = await this.getDNSservers(); + return res + } +} diff --git a/packages/ui/certd-server/src/plugins/index.ts b/packages/ui/certd-server/src/plugins/index.ts index 94caa824..93ba1e2b 100644 --- a/packages/ui/certd-server/src/plugins/index.ts +++ b/packages/ui/certd-server/src/plugins/index.ts @@ -37,3 +37,4 @@ export * from './plugin-dokploy/index.js' export * from './plugin-godaddy/index.js' export * from './plugin-captcha/index.js' export * from './plugin-xinnet/index.js' +export * from './plugin-xinnetconnet/index.js' diff --git a/packages/ui/certd-server/src/plugins/plugin-aliyun/plugin/deploy-to-oss/index.ts b/packages/ui/certd-server/src/plugins/plugin-aliyun/plugin/deploy-to-oss/index.ts index 8f330fd1..8bd9739f 100644 --- a/packages/ui/certd-server/src/plugins/plugin-aliyun/plugin/deploy-to-oss/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-aliyun/plugin/deploy-to-oss/index.ts @@ -121,7 +121,7 @@ export class DeployCertToAliyunOSS extends AbstractTaskPlugin { name: 'a-select', options: [ { value: 'cn-hangzhou', label: '中国大陆' }, - { value: 'southeast-1', label: '新加坡' }, + { value: 'ap-southeast-1', label: '新加坡' }, { value: 'eu-central-1', label: '德国(法兰克福)' }, ], }, diff --git a/packages/ui/certd-server/src/plugins/plugin-fnos/index.ts b/packages/ui/certd-server/src/plugins/plugin-fnos/index.ts index 18c637ce..692878f4 100644 --- a/packages/ui/certd-server/src/plugins/plugin-fnos/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-fnos/index.ts @@ -6,7 +6,6 @@ import { SshAccess, SshClient } from "@certd/plugin-lib"; -import path from "node:path"; @IsTaskPlugin({ //命名规范,插件类型+功能(就是目录plugin-demo中的demo),大写字母开头,驼峰命名 @@ -57,7 +56,7 @@ export class FnOSDeployToNAS extends AbstractTaskPlugin { @TaskInput( createRemoteSelectInputDefine({ title: "证书Id", - helper: "要更新的证书id", + helper: "面板证书请选择fnOS,其他FTP、webdav等证书请选择已使用,可多选(如果证书域名都匹配的话)", action: FnOSDeployToNAS.prototype.onGetCertList.name }) ) @@ -87,7 +86,9 @@ export class FnOSDeployToNAS extends AbstractTaskPlugin { this.logger.info(`----------- 找到证书,开始部署:${item.sum},${item.domain}`) const certPath = item.certificate; const keyPath = item.privateKey; - const certDir = path.dirname(keyPath) + const certDir = keyPath.substring(0, keyPath.lastIndexOf("/")); + const fullchainPath = certDir+ "/fullchain.crt" + const caPath = certDir+ "/issuer_certificate.crt" const cmd = ` sudo tee ${certPath} > /dev/null <<'EOF' ${this.cert.crt} @@ -95,6 +96,12 @@ EOF sudo tee ${keyPath} > /dev/null <<'EOF' ${this.cert.key} EOF +sudo tee ${fullchainPath} > /dev/null <<'EOF' +${this.cert.crt} +EOF +sudo tee ${caPath} > /dev/null <<'EOF' +${this.cert.ic} +EOF sudo chmod 0755 "${certDir}/" -R @@ -157,7 +164,7 @@ echo "服务重启完成!" } if (!list || list.length === 0) { - throw new Error("没有找到证书,请先在证书管理也没上传一次证书"); + throw new Error("没有找到证书,请先在证书管理页面上传一次证书"); } return list } diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnet/access-agent.ts b/packages/ui/certd-server/src/plugins/plugin-xinnet/access-agent.ts new file mode 100644 index 00000000..93234566 --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-xinnet/access-agent.ts @@ -0,0 +1,157 @@ +import { IsAccess, AccessInput, BaseAccess, Pager, PageSearch } from "@certd/pipeline"; +import crypto from "crypto"; +/** + * 这个注解将注册一个授权配置 + * 在certd的后台管理系统中,用户可以选择添加此类型的授权 + */ +@IsAccess({ + name: "xinnetagent", + title: "新网授权(代理方式)", + icon: "lsicon:badge-new-filled", + desc: "" +}) +export class XinnetAgentAccess extends BaseAccess { + + /** + * 授权属性配置 + */ + @AccessInput({ + title: "代理账号", + component: { + placeholder: "代理账号,如:agent0001" + }, + required: true, + encrypt: false + }) + agentCode = ""; + + @AccessInput({ + title: "API密钥", + component: { + name: "a-input-password", + vModel: "value", + placeholder: "API密钥" + }, + required: true, + encrypt: true + }) + appSecret = ""; + + @AccessInput({ + title: "测试", + component: { + name: "api-test", + action: "TestRequest" + }, + helper: "点击测试接口是否正常" + }) + testRequest = true; + + async onTestRequest() { + + // const client = new XinnetClient({ + // access: this, + // logger: this.ctx.logger, + // http: this.ctx.http + // }); + await this.getDomainList({ pageNo: 1, pageSize: 1 }); + + return "ok"; + } + + + + async getDomainList(req:PageSearch) { + const pager = new Pager(req); + const conf = { + url: "/api/domain/list", + data: { + pageNo: String(pager.pageNo), + pageSize: String(pager.pageSize) + } + } + return await this.doRequest(conf); + } + + + /** + * 生成 UTC 0 时区的时间戳 + */ + generateTimestamp() { + const timestamp = new Date().toISOString().replace(/\.\d{3}Z$/, "Z").replaceAll(":", "").replaceAll("-", ""); + return timestamp; + } + + /** + * 字节转16进制字符串 + */ + bytesToHex(bytes:any) { + return bytes.toString('hex'); + } + + /** + * 生成签名 + */ + generateSignature(timestamp, urlPath, requestBody) { + const algorithm = 'HMAC-SHA256'; + const requestMethod = 'POST'; + + // 构建待签名字符串 + const stringToSign = `${algorithm}\n${timestamp}\n${requestMethod}\n${urlPath}\n${requestBody}`; + + // 使用 HMAC-SHA256 计算签名 + const hmac = crypto.createHmac('sha256', this.appSecret); + hmac.update(stringToSign); + const signatureBytes = hmac.digest(); + + // 转换为16进制字符串 + return this.bytesToHex(signatureBytes); + } + + /** + * 生成 authorization header + */ + generateAuthorization(timestamp, urlPath, requestBody) { + const signature = this.generateSignature(timestamp, urlPath, requestBody); + return `HMAC-SHA256 Access=${this.agentCode}, Signature=${signature}`; + } + + /** + * 查询域名分页列表 + */ + async doRequest(req:any) { + + const baseURL = 'https://apiv2.xinnet.com'; + const urlPath = req.url; + const requestURL = baseURL + urlPath; // 实际请求URL去掉最后的斜杠 + + // 请求体 + const requestBody = JSON.stringify(req.data); + + // 生成时间戳和授权头 + const timestamp = this.generateTimestamp(); + const authorization = this.generateAuthorization(timestamp, urlPath+"/", requestBody); + + // 请求配置 + const config = { + method: 'POST', + url: requestURL, + headers: { + 'Content-Type': 'application/json', + 'timestamp': timestamp, + 'authorization': authorization + }, + data: requestBody, + }; + + const res = await this.ctx.http.request(config); + + if (res.code !="0"){ + throw new Error(`API Error: ${res.code} ${res.requestId} - ${JSON.stringify(res.msg)}`); + } + return res.data; + } + +} + +new XinnetAgentAccess(); diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnet/dns-provider-agent.ts b/packages/ui/certd-server/src/plugins/plugin-xinnet/dns-provider-agent.ts new file mode 100644 index 00000000..c32b8da2 --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-xinnet/dns-provider-agent.ts @@ -0,0 +1,90 @@ +import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; +import { XinnetAgentAccess } from "./access-agent.js"; + +export type XinnetAgentRecord = { + recordId: number; + domainName: string; +}; + +// 这里通过IsDnsProvider注册一个dnsProvider +@IsDnsProvider({ + name: "xinnetagent", + title: "新网(代理方式)", + desc: "新网域名解析(代理方式)", + icon: "lsicon:badge-new-filled", + // 这里是对应的 cloudflare的access类型名称 + accessType: "xinnetagent", + order: 7 +}) +export class XinnetAgentProvider extends AbstractDnsProvider { + access!: XinnetAgentAccess; + + async onInstance() { + //一些初始化的操作 + // 也可以通过ctx成员变量传递context + this.access = this.ctx.access as XinnetAgentAccess; + } + + /** + * 创建dns解析记录,用于验证域名所有权 + */ + async createRecord(options: CreateRecordOptions): Promise { + /** + * fullRecord: '_acme-challenge.test.example.com', + * value: 一串uuid + * type: 'TXT', + * domain: 'example.com' + */ + const { fullRecord, value, type, domain } = options; + this.logger.info("添加域名解析:", fullRecord, value, type, domain); + + + /** + * /api/dns/create + * domainName 是 string 域名名称 test-xinnet-0516-ceshi.cn +recordName 是 string 记录名 test1.test-xinnet-0516-ceshi.cn,如果是@和空字符只需要传域名即可 +type 是 string 解析记录的类型 可选择类型如下: NS A CNAME MX TXT URL SRV AAAA A +value 是 string 解析内容 192.168.1.50 +line 是 string 线路 只能传"默认" + */ + + const res = await this.access.doRequest({ + url:"/api/dns/create", + data:{ + domainName: domain, + recordName: fullRecord, + type: type, + value: value, + line: "默认" + } + }); + + + return { + recordId:res, + domainName: domain + }; + } + + + /** + * 删除dns解析记录,清理申请痕迹 + * @param options + */ + async removeRecord(options: RemoveRecordOptions): Promise { + + const {domainName,recordId} = options.recordRes; + await this.access.doRequest({ + url:"/api/dns/delete", + data:{ + recordId: recordId, + domainName: domainName + } + }); + + + } +} + +//实例化这个provider,将其自动注册到系统中 +new XinnetAgentProvider(); diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnet/index.ts b/packages/ui/certd-server/src/plugins/plugin-xinnet/index.ts index db899c71..871ad205 100644 --- a/packages/ui/certd-server/src/plugins/plugin-xinnet/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-xinnet/index.ts @@ -1,2 +1,5 @@ export * from './dns-provider.js'; export * from './access.js'; + +export * from './access-agent.js'; +export * from './dns-provider-agent.js'; diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts new file mode 100644 index 00000000..33426b0e --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts @@ -0,0 +1,147 @@ +import { IsAccess, AccessInput, BaseAccess } from '@certd/pipeline'; + +/** + * 这个注解将注册一个授权配置 + * 在certd的后台管理系统中,用户可以选择添加此类型的授权 + */ +@IsAccess({ + name: 'xinnetconnect', + title: '新网互联授权', + icon: 'lsicon:badge-new-filled', + desc: '仅支持代理账号,ip需要加入白名单', +}) +export class XinnetConnectAccess extends BaseAccess { + /** + * 授权属性配置 + */ + @AccessInput({ + title: '用户名', + component: { + placeholder: '代理用户名,如:agent001', + help: '新网互联的代理用户名', + }, + required: true, + encrypt: false, + }) + username = ''; + + @AccessInput({ + title: '密码', + component: { + name: "a-input-password", + vModel: "value", + placeholder: '密码', + }, + required: true, + encrypt: true, + }) + password = ''; + + + + async addDnsRecord(req: {domain:string,hostRecord:string, value:string, type:string}): Promise { + const { domain,hostRecord, value, type } = req; + const bodyXml =` + + ${domain} + ${type} + ${hostRecord} + ${value} + 10 + ` + + const res = await this.doRequest({ + url: "/addDnsRecordService", + bodyXml: bodyXml, + service: "addDnsRecord", + }) + return res + } + + async delDnsRecord(req: {domain:string,hostRecord:string, type:string,value:string}): Promise { + const { domain,hostRecord, type,value } = req; + const bodyXml =` + + ${domain} + ${type} + ${hostRecord} + ${value} + 10 + ` + + const res = await this.doRequest({ + url: "/delDnsRecordService", + bodyXml: bodyXml, + service: "delDnsRecord", + }) + return res + } + + + + buildUserXml(){ + return ` + + ${this.username} + ${this.password} + + ` + } + + + async doRequest(req: {bodyXml:string,service:string,url:string}) { + + const xml2js = await import('xml2js'); + + const soapRequest = ` + + + + + ${this.buildUserXml()} + ${req.bodyXml} + + + + `; + + + const response = await this.ctx.http.request({ + url: req.url, + baseURL: "https://api.bizcn.com/rrpservices", + data: soapRequest, + headers: { + 'Content-Type': 'text/xml; charset=utf-8', + 'SOAPAction': '' // 根据WSDL,soapAction为空 + }, + method: "POST", + returnOriginRes: true, + }) + + + // 解析SOAP响应 + const parser = new xml2js.Parser({ explicitArray: false }); + const result = await parser.parseStringPromise(response.data); + + // 提取返回结果 + const soapBody = result['soap:Envelope']['soap:Body']; + const addDnsRecordResponse = soapBody["ns1:addDnsRecordResponse"]; + console.log(addDnsRecordResponse) + const resultData = addDnsRecordResponse.response.result; + + const res = { + code: resultData.$.code, + msg: resultData.msg + } + console.log('操作结果:', res); + + if (res.code != "200") { + throw new Error(res.msg + " code:" + res.code); + } + + return resultData; + } + +} + +new XinnetConnectAccess(); diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts new file mode 100644 index 00000000..3c8b5722 --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts @@ -0,0 +1,68 @@ +import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; +import { XinnetConnectAccess } from "./access.js"; + + +export type XinnetConnectRecord = { + domain: string; + hostRecord: string; + type: string; + value: string; +}; + +// 这里通过IsDnsProvider注册一个dnsProvider +@IsDnsProvider({ + name: 'xinnetconnect', + title: '新网互联', + desc: '新网互联', + icon: 'lsicon:badge-new-filled', + // 这里是对应的 cloudflare的access类型名称 + accessType: 'xinnetconnect', + order:999, +}) +export class XinnetConnectDnsProvider extends AbstractDnsProvider { + access!: XinnetConnectAccess; + + async onInstance() { + //一些初始化的操作 + // 也可以通过ctx成员变量传递context + this.access = this.ctx.access as XinnetConnectAccess; + + } + + /** + * 创建dns解析记录,用于验证域名所有权 + */ + async createRecord(options: CreateRecordOptions): Promise { + const { fullRecord,hostRecord, value, type, domain } = options; + this.logger.info('添加域名解析:', fullRecord, value, type, domain); + + const recordReq = { + domain: domain, + type: 'TXT', + hostRecord: hostRecord, + value: value, + } + await this.access.addDnsRecord(recordReq) + return recordReq; + } + + + /** + * 删除dns解析记录,清理申请痕迹 + * @param options + */ + async removeRecord(options: RemoveRecordOptions): Promise { + const { fullRecord, value } = options.recordReq; + const record = options.recordRes; + this.logger.info('删除域名解析:', fullRecord, value); + if (!record) { + this.logger.info('record为空,不执行删除'); + return; + } + await this.access.delDnsRecord(record) + this.logger.info(`删除域名解析成功:fullRecord=${fullRecord}`); + } +} + +//实例化这个provider,将其自动注册到系统中 +new XinnetConnectDnsProvider(); diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/index.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/index.ts new file mode 100644 index 00000000..db899c71 --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/index.ts @@ -0,0 +1,2 @@ +export * from './dns-provider.js'; +export * from './access.js'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 14fea808..2ae09cea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,6 @@ importers: .: dependencies: - '@certd/ui-server': - specifier: link:packages/ui/certd-server - version: link:packages/ui/certd-server axios: specifier: ^1.7.7 version: 1.9.0(debug@4.4.1) @@ -49,7 +46,7 @@ importers: packages/core/acme-client: dependencies: '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../basic '@peculiar/x509': specifier: ^1.11.0 @@ -84,10 +81,10 @@ importers: version: 20.17.47 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: ^4.4.1 version: 4.5.0 @@ -102,10 +99,10 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0) + version: 2.31.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) jsdoc-to-markdown: specifier: ^8.0.1 version: 8.0.3 @@ -175,13 +172,13 @@ importers: version: 10.0.10 '@types/node-forge': specifier: ^1.3.2 - version: 1.3.11 + version: 1.3.14 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: 4.3.10 version: 4.3.10 @@ -193,7 +190,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -210,10 +207,10 @@ importers: packages/core/pipeline: dependencies: '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../basic '@certd/plus-core': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../pro/plus-core dayjs: specifier: ^1.11.7 @@ -251,10 +248,10 @@ importers: version: 10.0.10 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: 4.3.10 version: 4.3.10 @@ -266,7 +263,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) mocha: specifier: ^10.2.0 version: 10.8.2 @@ -297,10 +294,10 @@ importers: devDependencies: '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -319,10 +316,10 @@ importers: version: 4.3.20 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) eslint: specifier: ^8.24.0 version: 8.57.0 @@ -331,7 +328,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -383,10 +380,10 @@ importers: version: 11.1.6(rollup@3.29.5)(tslib@2.8.1)(typescript@5.8.3) '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) babel-cli: specifier: ^6.26.0 version: 6.26.0 @@ -418,7 +415,7 @@ importers: packages/libs/lib-k8s: dependencies: '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@kubernetes/client-node': specifier: 0.21.0 @@ -429,10 +426,10 @@ importers: version: 4.3.20 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) eslint: specifier: ^8.24.0 version: 8.57.0 @@ -441,7 +438,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -458,19 +455,19 @@ importers: packages/libs/lib-server: dependencies: '@certd/acme-client': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@certd/plugin-lib': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../plugins/plugin-lib '@certd/plus-core': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../pro/plus-core '@midwayjs/cache': specifier: 3.14.0 @@ -529,10 +526,10 @@ importers: version: 18.19.100 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) eslint: specifier: ^8.24.0 version: 8.57.0 @@ -541,7 +538,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -578,10 +575,10 @@ importers: version: 18.19.100 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) eslint: specifier: ^8.24.0 version: 8.57.0 @@ -590,13 +587,13 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.26.0 - version: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0) + version: 2.31.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0) eslint-plugin-node: specifier: ^11.1.0 version: 11.1.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -616,16 +613,16 @@ importers: packages/plugins/plugin-cert: dependencies: '@certd/acme-client': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@certd/plugin-lib': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../plugin-lib '@google-cloud/publicca': specifier: ^1.3.0 @@ -655,15 +652,12 @@ importers: '@types/mocha': specifier: ^10.0.0 version: 10.0.10 - '@types/psl': - specifier: ^1.1.3 - version: 1.1.3 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: ^4.3.6 version: 4.5.0 @@ -675,7 +669,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) mocha: specifier: ^10.1.0 version: 10.8.2 @@ -707,10 +701,10 @@ importers: specifier: ^3.787.0 version: 3.810.0(aws-crt@1.26.2) '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@kubernetes/client-node': specifier: 0.21.0 @@ -753,7 +747,7 @@ importers: version: 7.1.0 tencentcloud-sdk-nodejs: specifier: ^4.0.1005 - version: 4.1.37(encoding@0.1.13) + version: 4.1.112(encoding@0.1.13) devDependencies: '@types/chai': specifier: ^4.3.3 @@ -761,15 +755,12 @@ importers: '@types/mocha': specifier: ^10.0.0 version: 10.0.10 - '@types/psl': - specifier: ^1.1.3 - version: 1.1.3 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: ^4.3.6 version: 4.5.0 @@ -781,7 +772,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) mocha: specifier: ^10.1.0 version: 10.8.2 @@ -798,19 +789,19 @@ importers: packages/pro/commercial-core: dependencies: '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@certd/lib-server': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-server '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@certd/plugin-plus': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../plugin-plus '@certd/plus-core': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../plus-core '@midwayjs/core': specifier: 3.20.11 @@ -854,10 +845,10 @@ importers: version: 18.19.100 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) eslint: specifier: ^8.24.0 version: 8.57.0 @@ -866,7 +857,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -895,19 +886,19 @@ importers: specifier: ^1.0.2 version: 1.0.3 '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@certd/lib-k8s': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-k8s '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@certd/plugin-cert': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../plugins/plugin-cert '@certd/plus-core': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../plus-core ali-oss: specifier: ^6.21.0 @@ -947,7 +938,7 @@ importers: version: 7.14.0 tencentcloud-sdk-nodejs: specifier: ^4.0.44 - version: 4.1.37(encoding@0.1.13) + version: 4.1.112(encoding@0.1.13) devDependencies: '@rollup/plugin-json': specifier: ^6.0.0 @@ -972,10 +963,10 @@ importers: version: 18.19.100 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: 4.3.10 version: 4.3.10 @@ -987,7 +978,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) mocha: specifier: ^10.2.0 version: 10.8.2 @@ -1010,7 +1001,7 @@ importers: packages/pro/plus-core: dependencies: '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic dayjs: specifier: ^1.11.7 @@ -1036,10 +1027,10 @@ importers: version: 18.19.100 '@typescript-eslint/eslint-plugin': specifier: ^8.26.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.26.1 - version: 8.32.1(eslint@8.57.0)(typescript@5.8.3) + version: 8.45.0(eslint@8.57.0)(typescript@5.8.3) chai: specifier: 4.3.10 version: 4.3.10 @@ -1051,7 +1042,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) + version: 4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8) mocha: specifier: ^10.2.0 version: 10.8.2 @@ -1306,10 +1297,10 @@ importers: version: 0.1.3(zod@3.24.4) devDependencies: '@certd/lib-iframe': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-iframe '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@rollup/plugin-commonjs': specifier: ^25.0.7 @@ -1492,46 +1483,46 @@ importers: specifier: ^3.705.0 version: 3.810.0(aws-crt@1.26.2) '@certd/acme-client': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/basic '@certd/commercial-core': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../pro/commercial-core '@certd/cv4pve-api-javascript': specifier: ^8.4.2 version: 8.4.2 '@certd/jdcloud': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-jdcloud '@certd/lib-huawei': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-huawei '@certd/lib-k8s': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-k8s '@certd/lib-server': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/lib-server '@certd/midway-flyway-js': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../libs/midway-flyway-js '@certd/pipeline': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../core/pipeline '@certd/plugin-cert': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../plugins/plugin-cert '@certd/plugin-lib': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../plugins/plugin-lib '@certd/plugin-plus': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../pro/plugin-plus '@certd/plus-core': - specifier: ^1.36.24 + specifier: ^1.37.1 version: link:../../pro/plus-core '@huaweicloud/huaweicloud-sdk-cdn': specifier: ^3.1.120 @@ -1641,9 +1632,6 @@ importers: koa-send: specifier: ^5.0.1 version: 5.0.1 - kubernetes-client: - specifier: ^9.0.0 - version: 9.0.0 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -1725,6 +1713,9 @@ importers: uuid: specifier: ^10.0.0 version: 10.0.0 + xml2js: + specifier: ^0.6.2 + version: 0.6.2 devDependencies: '@midwayjs/mock': specifier: 3.20.11 @@ -3659,9 +3650,6 @@ packages: resolution: {integrity: sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==} engines: {node: '>= 12'} - '@kubernetes/client-node@0.10.2': - resolution: {integrity: sha512-JvsmxbTwiMqsh9LyuXMzT5HjoENFbB3a/JroJsobuAzkxN162UqAOvg++/AA+ccIMWRR2Qln4FyaOJ0a4eKyXg==} - '@kubernetes/client-node@0.21.0': resolution: {integrity: sha512-yYRbgMeyQbvZDHt/ZqsW3m4lRefzhbbJEuj8sVXM+bufKrgmzriA2oq7lWPH/k/LQIicAME9ixPUadTrxIF6dQ==} @@ -3967,10 +3955,6 @@ packages: '@otplib/preset-v11@12.0.1': resolution: {integrity: sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==} - '@panva/asn1.js@1.0.0': - resolution: {integrity: sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==} - engines: {node: '>=10.13.0'} - '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} @@ -4767,9 +4751,6 @@ packages: '@types/express@5.0.1': resolution: {integrity: sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ==} - '@types/got@9.6.12': - resolution: {integrity: sha512-X4pj/HGHbXVLqTpKjA2ahI4rV/nNBc9mGO2I/0CgAra+F2dKgMXnENv2SRpemScBzBAI4vMelIVYViQxlSE6xA==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -4791,9 +4772,6 @@ packages: '@types/jest@29.5.14': resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} - '@types/js-yaml@3.12.10': - resolution: {integrity: sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA==} - '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -4845,11 +4823,8 @@ packages: '@types/mocha@10.0.10': resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - - '@types/node@10.17.60': - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + '@types/node-forge@1.3.14': + resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -4879,9 +4854,6 @@ packages: resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. - '@types/psl@1.1.3': - resolution: {integrity: sha512-Iu174JHfLd7i/XkXY6VDrqSlPvTDQOtQI7wNAXKKOAADJ9TduRLkNdMgjGiMxSttUIZnomv81JAbAbC0DhggxA==} - '@types/qs@6.9.18': resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} @@ -4924,9 +4896,6 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - '@types/underscore@1.13.0': - resolution: {integrity: sha512-L6LBgy1f0EFQZ+7uSA57+n2g/s4Qs5r06Vwrwn0/nuK1de+adz00NWaztRQ30aEqw5qOaWbPI8u2cGQ52lj6VA==} - '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -4936,9 +4905,6 @@ packages: '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} - '@types/ws@6.0.4': - resolution: {integrity: sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==} - '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} @@ -4973,13 +4939,13 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.32.1': - resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} + '@typescript-eslint/eslint-plugin@8.45.0': + resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.45.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/parser@5.62.0': resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} @@ -5001,12 +4967,18 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.32.1': - resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} + '@typescript-eslint/parser@8.45.0': + resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.45.0': + resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} @@ -5016,10 +4988,16 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.32.1': - resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} + '@typescript-eslint/scope-manager@8.45.0': + resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.45.0': + resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@5.62.0': resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5040,12 +5018,12 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.32.1': - resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} + '@typescript-eslint/type-utils@8.45.0': + resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} @@ -5055,8 +5033,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.32.1': - resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} + '@typescript-eslint/types@8.45.0': + resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -5077,11 +5055,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.32.1': - resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} + '@typescript-eslint/typescript-estree@8.45.0': + resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -5095,12 +5073,12 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.32.1': - resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} + '@typescript-eslint/utils@8.45.0': + resolution: {integrity: sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -5110,8 +5088,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.32.1': - resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} + '@typescript-eslint/visitor-keys@8.45.0': + resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -5766,9 +5744,6 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - async-limiter@1.0.1: - resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} - async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} @@ -6019,10 +5994,6 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - base64url@3.0.1: - resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} - engines: {node: '>=6.0.0'} - base@0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} @@ -7487,8 +7458,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-prettier@4.2.1: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + eslint-plugin-prettier@4.2.5: + resolution: {integrity: sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==} engines: {node: '>=12.0.0'} peerDependencies: eslint: '>=7.28.0' @@ -7551,8 +7522,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@7.32.0: @@ -8487,10 +8458,6 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} @@ -8927,11 +8894,6 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - jose@1.28.2: - resolution: {integrity: sha512-wWy51U2MXxYi3g8zk2lsQ8M6O1lartpkxuq1TYexzPKYLgHLZkCjklaATP36I5BUoWjF2sInB9U1Qf18fBZxNA==} - engines: {node: '>=10.13.0'} - deprecated: this version is no longer supported - jose@4.15.9: resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} @@ -9049,9 +9011,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stream@1.0.0: - resolution: {integrity: sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==} - json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -9087,10 +9046,6 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jsonpath-plus@0.19.0: - resolution: {integrity: sha512-GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg==} - engines: {node: '>=6.0'} - jsonpath-plus@8.1.0: resolution: {integrity: sha512-qVTiuKztFGw0dGhYi3WNqvddx3/SHtyDT0xJaeyz4uP0d1tkpG+0y5uYQ4OcIo1TLAz3PE/qDOW9F0uDt3+CTw==} engines: {node: '>=14.0.0'} @@ -9213,10 +9168,6 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - kubernetes-client@9.0.0: - resolution: {integrity: sha512-Qy8o42dZVHB9P+cIiKdWpQbz/65l/qW1fDYvlzzeSLftmL1Ne3HEiM+0TmKAwNuRW0pTJN2tRWhcccToclxJ8g==} - engines: {node: '>=10.13.0'} - latest-version@5.1.0: resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} engines: {node: '>=8'} @@ -10182,10 +10133,6 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - openid-client@3.15.10: - resolution: {integrity: sha512-C9r6/iVzNQ7aGp0krS5mFIY5nY8AH6ajYCH0Njns6AXy2fM3Khw/dY97QlaFJWW2QLhec6xfEk23LZw9EeX66Q==} - engines: {node: ^10.13.0 || >=12.0.0} - openid-client@5.7.1: resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==} @@ -10225,18 +10172,10 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - p-any@3.0.0: - resolution: {integrity: sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==} - engines: {node: '>=10'} - p-cancelable@1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -10289,10 +10228,6 @@ packages: resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} engines: {node: '>=12'} - p-some@5.0.0: - resolution: {integrity: sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==} - engines: {node: '>=10'} - p-timeout@6.1.4: resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} engines: {node: '>=14.16'} @@ -11297,10 +11232,6 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - rechoir@0.8.0: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} @@ -11693,11 +11624,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - shiki@3.4.1: resolution: {integrity: sha512-PSnoczt+iWIOB4iRQ+XVPFtTuN1FcmuYzPgUBZTSv5pC6CozssIx2M4O5n4S9gJlUu9A3FxMU0ZPaHflky/6LA==} @@ -11826,8 +11752,8 @@ packages: resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sort-array@5.0.0: - resolution: {integrity: sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==} + sort-array@5.1.1: + resolution: {integrity: sha512-EltS7AIsNlAFIM9cayrgKrM6XP94ATWwXP4LCL4IQbvbYhELSt2hZTrixg+AaQwnWFs/JGJgqU3rxMcNNWxGAA==} engines: {node: '>=12.17'} peerDependencies: '@75lb/nature': ^0.1.1 @@ -12196,9 +12122,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - swagger-fluent@5.0.3: - resolution: {integrity: sha512-i43ADMtPi7dxAN75Lw50SlncMB31FgaVwXqKioR8SWs+Yon2RbiLU1J1PGMXA4N8cSt9Vz5RHzaoKjz/+iW88g==} - synckit@0.11.5: resolution: {integrity: sha512-frqvfWyDA5VPVdrWfH24uM6SI/O8NLpVbIIJxb8t/a3YGsp4AW9CYgSKC0OaSEfexnp7Y1pVh2Y6IHO8ggGDmA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -12267,10 +12190,6 @@ packages: resolution: {integrity: sha512-30Ju53bTd3OjMRwfieDvEYvjHhHVg2Eqc0EM7H8gKEWq0y3xMEdrxgYRrjhIkRo5Doc5YEOl6uUJUCfeT7dmFA==} engines: {node: '>=10'} - tencentcloud-sdk-nodejs@4.1.37: - resolution: {integrity: sha512-rQV/jaUHGsB71JarqFdDJTl5tC2kIavgSUqlh8JoOUNpfJoAD4qHm1GLdDTUTEPKhv3qF9Is3qo6lj4cG9kKuw==} - engines: {node: '>=10'} - terser@5.39.1: resolution: {integrity: sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==} engines: {node: '>=10'} @@ -12830,9 +12749,6 @@ packages: resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated - url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - url-parse-lax@3.0.0: resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} engines: {node: '>=4'} @@ -13347,17 +13263,6 @@ packages: resolution: {integrity: sha512-DqUx8GI3r9BFWwU2DPKddL1E7xWfbFED82mLVhGXKlFEPe8IkBftzO7WfNwHtk7oGDHDeuH/o8VMpzzfMwmLUA==} engines: {node: '>=18'} - ws@6.2.3: - resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -16324,26 +16229,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@kubernetes/client-node@0.10.2': - dependencies: - '@types/js-yaml': 3.12.10 - '@types/node': 10.17.60 - '@types/request': 2.48.12 - '@types/underscore': 1.13.0 - '@types/ws': 6.0.4 - isomorphic-ws: 4.0.1(ws@6.2.3) - js-yaml: 3.14.1 - json-stream: 1.0.0 - jsonpath-plus: 0.19.0 - request: 2.88.2 - shelljs: 0.8.5 - tslib: 1.14.1 - underscore: 1.13.7 - ws: 6.2.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@kubernetes/client-node@0.21.0': dependencies: '@types/js-yaml': 4.0.9 @@ -16954,8 +16839,6 @@ snapshots: '@otplib/plugin-crypto': 12.0.1 '@otplib/plugin-thirty-two': 12.0.1 - '@panva/asn1.js@1.0.0': {} - '@paralleldrive/cuid2@2.2.2': dependencies: '@noble/hashes': 1.8.0 @@ -17942,7 +17825,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 18.19.100 + '@types/node': 20.17.47 '@types/ali-oss@6.16.11': {} @@ -17974,11 +17857,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.1 '@types/keygrip': 1.0.6 - '@types/node': 18.19.100 + '@types/node': 20.17.47 '@types/eslint@7.29.0': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@types/estree@1.0.7': {} @@ -18000,12 +17883,6 @@ snapshots: '@types/express-serve-static-core': 5.0.6 '@types/serve-static': 1.15.7 - '@types/got@9.6.12': - dependencies: - '@types/node': 20.17.47 - '@types/tough-cookie': 4.0.5 - form-data: 2.5.3 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -18029,8 +17906,6 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 - '@types/js-yaml@3.12.10': {} - '@types/js-yaml@4.0.9': {} '@types/json-schema@7.0.15': {} @@ -18056,7 +17931,7 @@ snapshots: '@types/http-errors': 2.0.4 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 18.19.100 + '@types/node': 20.17.47 '@types/linkify-it@5.0.0': {} @@ -18085,12 +17960,10 @@ snapshots: '@types/mocha@10.0.10': {} - '@types/node-forge@1.3.11': + '@types/node-forge@1.3.14': dependencies: '@types/node': 20.17.47 - '@types/node@10.17.60': {} - '@types/node@12.20.55': {} '@types/node@14.18.63': {} @@ -18109,7 +17982,7 @@ snapshots: '@types/nodemailer@6.4.17': dependencies: - '@types/node': 18.19.100 + '@types/node': 20.17.47 '@types/normalize-package-data@2.4.4': {} @@ -18119,8 +17992,6 @@ snapshots: dependencies: parse-path: 7.1.0 - '@types/psl@1.1.3': {} - '@types/qs@6.9.18': {} '@types/range-parser@1.2.7': {} @@ -18170,18 +18041,12 @@ snapshots: '@types/tough-cookie@4.0.5': {} - '@types/underscore@1.13.0': {} - '@types/unist@3.0.3': {} '@types/web-bluetooth@0.0.20': {} '@types/web-bluetooth@0.0.21': {} - '@types/ws@6.0.4': - dependencies: - '@types/node': 20.17.47 - '@types/ws@8.18.1': dependencies: '@types/node': 20.17.47 @@ -18233,14 +18098,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/type-utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/parser': 8.45.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/type-utils': 8.45.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.45.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.45.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 7.0.4 @@ -18275,18 +18140,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.45.0 debug: 4.4.1(supports-color@8.1.1) eslint: 8.57.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.45.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.8.3) + '@typescript-eslint/types': 8.45.0 + debug: 4.4.1(supports-color@8.1.1) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -18297,10 +18171,14 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.32.1': + '@typescript-eslint/scope-manager@8.45.0': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 + + '@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 '@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@5.8.3)': dependencies: @@ -18326,10 +18204,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.32.1(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.45.0(eslint@8.57.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.45.0(eslint@8.57.0)(typescript@5.8.3) debug: 4.4.1(supports-color@8.1.1) eslint: 8.57.0 ts-api-utils: 2.1.0(typescript@5.8.3) @@ -18341,7 +18220,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.32.1': {} + '@typescript-eslint/types@8.45.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': dependencies: @@ -18372,10 +18251,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.45.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/project-service': 8.45.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.8.3) + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 debug: 4.4.1(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 @@ -18412,12 +18293,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.32.1(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.45.0(eslint@8.57.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) eslint: 8.57.0 typescript: 5.8.3 transitivePeerDependencies: @@ -18433,10 +18314,10 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.32.1': + '@typescript-eslint/visitor-keys@8.45.0': dependencies: - '@typescript-eslint/types': 8.32.1 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.45.0 + eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -19265,8 +19146,6 @@ snapshots: async-function@1.0.0: {} - async-limiter@1.0.1: {} - async-validator@4.2.5: {} async@3.2.3: {} @@ -19806,8 +19685,6 @@ snapshots: base64-js@1.5.1: {} - base64url@3.0.1: {} - base@0.11.2: dependencies: cache-base: 1.0.1 @@ -21473,11 +21350,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.45.0(eslint@8.57.0)(typescript@5.8.3) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -21524,7 +21401,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -21535,7 +21412,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.45.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -21547,7 +21424,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.45.0(eslint@8.57.0)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -21573,15 +21450,15 @@ snapshots: resolve: 1.22.10 semver: 6.3.1 - eslint-plugin-prettier@3.4.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@7.32.0)(prettier@2.8.8): + eslint-plugin-prettier@3.4.1(eslint-config-prettier@8.10.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8): dependencies: eslint: 7.32.0 prettier: 2.8.8 prettier-linter-helpers: 1.0.0 optionalDependencies: - eslint-config-prettier: 8.10.0(eslint@8.57.0) + eslint-config-prettier: 8.10.0(eslint@7.32.0) - eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8): + eslint-plugin-prettier@4.2.5(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8): dependencies: eslint: 8.57.0 prettier: 2.8.8 @@ -21638,7 +21515,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} eslint@7.32.0: dependencies: @@ -22330,7 +22207,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -22786,8 +22663,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - interpret@1.4.0: {} - interpret@3.1.1: {} invariant@2.2.4: @@ -23107,10 +22982,6 @@ snapshots: isobject@3.0.1: {} - isomorphic-ws@4.0.1(ws@6.2.3): - dependencies: - ws: 6.2.3 - isomorphic-ws@4.0.1(ws@8.18.2): dependencies: ws: 8.18.2 @@ -23221,10 +23092,6 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - jose@1.28.2: - dependencies: - '@panva/asn1.js': 1.0.0 - jose@4.15.9: optional: true @@ -23282,7 +23149,7 @@ snapshots: array-back: 6.2.2 find-replace: 5.0.2 lodash.omit: 4.5.0 - sort-array: 5.0.0 + sort-array: 5.1.1 transitivePeerDependencies: - '@75lb/nature' @@ -23350,8 +23217,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json-stream@1.0.0: {} - json-stringify-nice@1.1.4: {} json-stringify-safe@5.0.1: {} @@ -23390,8 +23255,6 @@ snapshots: jsonparse@1.3.1: {} - jsonpath-plus@0.19.0: {} - jsonpath-plus@8.1.0: {} jsonrepair@3.1.0: {} @@ -23564,25 +23427,6 @@ snapshots: kolorist@1.8.0: {} - kubernetes-client@9.0.0: - dependencies: - '@kubernetes/client-node': 0.10.2 - camelcase: 6.3.0 - deepmerge: 4.3.1 - depd: 2.0.0 - js-yaml: 3.14.1 - json-stream: 1.0.0 - openid-client: 3.15.10 - pump: 3.0.2 - qs: 6.14.0 - request: 2.88.2 - swagger-fluent: 5.0.3 - url-join: 4.0.1 - ws: 7.5.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - latest-version@5.1.0: dependencies: package-json: 6.5.0 @@ -24287,7 +24131,7 @@ snapshots: eslint: 7.32.0 eslint-config-prettier: 8.10.0(eslint@7.32.0) eslint-plugin-node: 11.1.0(eslint@7.32.0) - eslint-plugin-prettier: 3.4.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@7.32.0)(prettier@2.8.8) + eslint-plugin-prettier: 3.4.1(eslint-config-prettier@8.10.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8) execa: 5.1.1 inquirer: 7.3.3 json5: 2.2.3 @@ -24577,7 +24421,8 @@ snapshots: object-get@2.1.1: {} - object-hash@2.2.0: {} + object-hash@2.2.0: + optional: true object-hash@3.0.0: {} @@ -24639,7 +24484,8 @@ snapshots: ohash@2.0.11: {} - oidc-token-hash@5.1.0: {} + oidc-token-hash@5.1.0: + optional: true on-finished@2.4.1: dependencies: @@ -24673,18 +24519,6 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openid-client@3.15.10: - dependencies: - '@types/got': 9.6.12 - base64url: 3.0.1 - got: 9.6.0 - jose: 1.28.2 - lru-cache: 6.0.0 - make-error: 1.3.6 - object-hash: 2.2.0 - oidc-token-hash: 5.1.0 - p-any: 3.0.0 - openid-client@5.7.1: dependencies: jose: 4.15.9 @@ -24737,15 +24571,8 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - p-any@3.0.0: - dependencies: - p-cancelable: 2.1.1 - p-some: 5.0.0 - p-cancelable@1.1.0: {} - p-cancelable@2.1.1: {} - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -24793,11 +24620,6 @@ snapshots: p-reduce@3.0.0: {} - p-some@5.0.0: - dependencies: - aggregate-error: 3.1.0 - p-cancelable: 2.1.1 - p-timeout@6.1.4: {} p-try@2.2.0: {} @@ -25611,7 +25433,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.100 + '@types/node': 20.17.47 long: 5.3.2 protobufjs@7.5.2: @@ -25891,10 +25713,6 @@ snapshots: readdirp@4.1.2: {} - rechoir@0.6.2: - dependencies: - resolve: 1.22.10 - rechoir@0.8.0: dependencies: resolve: 1.22.10 @@ -26329,12 +26147,6 @@ snapshots: shebang-regex@3.0.0: {} - shelljs@0.8.5: - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - shiki@3.4.1: dependencies: '@shikijs/core': 3.4.1 @@ -26516,7 +26328,7 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - sort-array@5.0.0: + sort-array@5.1.1: dependencies: array-back: 6.2.2 typical: 7.3.0 @@ -26958,12 +26770,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - swagger-fluent@5.0.3: - dependencies: - deepmerge: 4.3.1 - is-plain-object: 3.0.1 - request: 2.88.2 - synckit@0.11.5: dependencies: '@pkgr/core': 0.2.4 @@ -27088,20 +26894,6 @@ snapshots: - encoding - supports-color - tencentcloud-sdk-nodejs@4.1.37(encoding@0.1.13): - dependencies: - form-data: 3.0.3 - get-stream: 6.0.1 - https-proxy-agent: 5.0.1 - is-stream: 2.0.1 - json-bigint: 1.0.0 - node-fetch: 2.7.0(encoding@0.1.13) - tslib: 1.13.0 - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color - terser@5.39.1: dependencies: '@jridgewell/source-map': 0.3.6 @@ -27649,8 +27441,6 @@ snapshots: urix@0.1.0: optional: true - url-join@4.0.1: {} - url-parse-lax@3.0.0: dependencies: prepend-http: 2.0.0 @@ -27769,14 +27559,14 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@0.34.6(@types/node@18.19.100)(less@4.3.0)(terser@5.39.1): + vite-node@0.34.6(@types/node@20.17.47)(less@4.3.0)(terser@5.39.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@8.1.1) mlly: 1.7.4 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.19(@types/node@18.19.100)(less@4.3.0)(terser@5.39.1) + vite: 5.4.19(@types/node@20.17.47)(less@4.3.0)(terser@5.39.1) transitivePeerDependencies: - '@types/node' - less @@ -27848,6 +27638,17 @@ snapshots: less: 4.3.0 terser: 5.39.1 + vite@5.4.19(@types/node@20.17.47)(less@4.3.0)(terser@5.39.1): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.50.0 + optionalDependencies: + '@types/node': 20.17.47 + fsevents: 2.3.3 + less: 4.3.0 + terser: 5.39.1 + vite@6.3.5(@types/node@22.15.18)(jiti@2.4.2)(less@4.3.0)(terser@5.39.1)(yaml@2.8.0): dependencies: esbuild: 0.25.4 @@ -27924,7 +27725,7 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 18.19.100 + '@types/node': 20.17.47 '@vitest/expect': 0.34.6 '@vitest/runner': 0.34.6 '@vitest/snapshot': 0.34.6 @@ -27943,8 +27744,8 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.7.0 - vite: 5.4.19(@types/node@18.19.100)(less@4.3.0)(terser@5.39.1) - vite-node: 0.34.6(@types/node@18.19.100)(less@4.3.0)(terser@5.39.1) + vite: 5.4.19(@types/node@20.17.47)(less@4.3.0)(terser@5.39.1) + vite-node: 0.34.6(@types/node@20.17.47)(less@4.3.0)(terser@5.39.1) why-is-node-running: 2.3.0 transitivePeerDependencies: - less @@ -28234,10 +28035,6 @@ snapshots: type-fest: 4.41.0 write-json-file: 6.0.0 - ws@6.2.3: - dependencies: - async-limiter: 1.0.1 - ws@7.5.10: {} ws@8.18.2: {} diff --git a/start.sh b/start.sh index 1f3bb7ca..113bb86c 100755 --- a/start.sh +++ b/start.sh @@ -1,15 +1,29 @@ # set -e -echo "即将删除packages下除ui之外的其他目录,按y确认(如果您没有修改过源码,按y即可)" -read -p "y/n: " confirm -if [ $confirm != "y" ]; then - echo "取消操作" - exit 1 +# 设置SUDO命令 +if [[ "$(uname -s)" =~ ^MINGW || "$(uname -s)" =~ ^CYGWIN || "$(uname -s)" =~ ^MSYS ]]; then + SUDO_CMD="" + SUDO_CMD_E="" +else + SUDO_CMD="sudo" + SUDO_CMD_E="sudo -E" fi -find ./packages -mindepth 1 -maxdepth 1 -type d ! -name 'ui' -exec rm -rf {} + -echo "删除成功" +# echo "即将删除packages下除ui之外的其他目录,按y确认(如果您没有修改过源码,按y即可)" +# read -p "y/n: " confirm +# if [ $confirm != "y" ]; then +# echo "取消操作" +# exit 1 +# fi +# find ./packages -mindepth 1 -maxdepth 1 -type d ! -name 'ui' -exec rm -rf {} + +# echo "删除成功" + +cat > pnpm-workspace.yaml << EOF +packages: + - 'packages/ui/**' +EOF + # 检查输入是否正确 循环输入 while true; do @@ -25,30 +39,30 @@ done echo "安装pnpm, 前提是已经安装了nodejs" -sudo npm install -g pnpm --registry https://registry.npmmirror.com +$SUDO_CMD npm install -g pnpm --registry https://registry.npmmirror.com echo "安装依赖" -sudo pnpm install --registry https://registry.npmmirror.com +$SUDO_CMD pnpm install --registry https://registry.npmmirror.com echo "开始构建" echo "构建certd-client" export NODE_OPTIONS=--max-old-space-size=32768 cd packages/ui/certd-client -sudo -E pnpm run build +$SUDO_CMD_E pnpm run build cp -r dist/* ../certd-server/public echo "构建certd-server" cd ../certd-server -sudo -E pnpm run build +$SUDO_CMD_E pnpm run build echo "构建完成" echo "启动服务" # 前台运行 if [ $confirmNohup != "y" ]; then echo "当前运行模式为前台运行,ctrl+c或者关闭ssh将会停止运行" - sudo pnpm run start + $SUDO_CMD pnpm run start else echo "当前运行模式为后台运行,可以通过tail -f ./certd.log 命令查看日志" - nohup sudo pnpm run start > certd.log & + nohup $SUDO_CMD pnpm run start > certd.log & fi diff --git a/trigger/build.trigger b/trigger/build.trigger index 50b4aa2d..04e0b86a 100644 --- a/trigger/build.trigger +++ b/trigger/build.trigger @@ -1 +1 @@ -20:37 +22:52 diff --git a/trigger/release.trigger b/trigger/release.trigger index 7cc86ad1..6e68a0f7 100644 --- a/trigger/release.trigger +++ b/trigger/release.trigger @@ -1 +1 @@ -666 +777