Merge remote-tracking branch 'origin/v2-dev' into v2-dev

This commit is contained in:
xiaojunnuo
2025-03-24 23:59:24 +08:00
53 changed files with 569 additions and 119 deletions
+11
View File
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Bug Fixes
* 修复dns.la无法申请证书的bug ([90b045a](https://github.com/certd/certd/commit/90b045af6d1a4f46986e4b118885c1f050df067c))
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
### Bug Fixes
+1 -1
View File
@@ -1 +1 @@
15:05
23:52
+11
View File
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Bug Fixes
* 修复dns.la无法申请证书的bug ([90b045a](https://github.com/certd/certd/commit/90b045af6d1a4f46986e4b118885c1f050df067c))
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
### Bug Fixes
+1 -1
View File
@@ -9,5 +9,5 @@
}
},
"npmClient": "pnpm",
"version": "1.31.5"
"version": "1.31.6"
}
+4
View File
@@ -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.31.6](https://github.com/publishlab/node-acme-client/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/acme-client
## [1.31.5](https://github.com/publishlab/node-acme-client/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/acme-client
+3 -3
View File
@@ -3,7 +3,7 @@
"description": "Simple and unopinionated ACME client",
"private": false,
"author": "nmorsman",
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"module": "scr/index.js",
"main": "src/index.js",
@@ -18,7 +18,7 @@
"types"
],
"dependencies": {
"@certd/basic": "^1.31.5",
"@certd/basic": "^1.31.6",
"@peculiar/x509": "^1.11.0",
"asn1js": "^3.0.5",
"axios": "^1.7.2",
@@ -67,5 +67,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+4
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/basic
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/basic
+1 -1
View File
@@ -1 +1 @@
15:01
23:48
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/basic",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -44,5 +44,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+4
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/pipeline
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/pipeline
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/pipeline",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -16,8 +16,8 @@
"test": "mocha --loader=ts-node/esm"
},
"dependencies": {
"@certd/basic": "^1.31.5",
"@certd/plus-core": "^1.31.5",
"@certd/basic": "^1.31.6",
"@certd/plus-core": "^1.31.6",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"reflect-metadata": "^0.1.13"
@@ -43,5 +43,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+4
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-huawei
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-huawei
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/lib-huawei",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"main": "./dist/bundle.js",
"module": "./dist/bundle.js",
"types": "./dist/d/index.d.ts",
@@ -23,5 +23,5 @@
"prettier": "^2.8.8",
"tslib": "^2.8.1"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+4
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-iframe
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-iframe
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/lib-iframe",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -30,5 +30,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+4
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-k8s
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-k8s
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/lib-k8s",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -16,7 +16,7 @@
"preview": "vite preview"
},
"dependencies": {
"@certd/basic": "^1.31.5",
"@certd/basic": "^1.31.6",
"@kubernetes/client-node": "0.21.0"
},
"devDependencies": {
@@ -31,5 +31,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+4
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-server
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-server
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/lib-server",
"version": "1.31.5",
"version": "1.31.6",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -27,10 +27,10 @@
],
"license": "AGPL",
"dependencies": {
"@certd/acme-client": "^1.31.5",
"@certd/basic": "^1.31.5",
"@certd/pipeline": "^1.31.5",
"@certd/plus-core": "^1.31.5",
"@certd/acme-client": "^1.31.6",
"@certd/basic": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@certd/plus-core": "^1.31.6",
"@midwayjs/cache": "~3.14.0",
"@midwayjs/core": "~3.20.3",
"@midwayjs/i18n": "~3.20.3",
@@ -61,5 +61,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/midway-flyway-js
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/midway-flyway-js
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/midway-flyway-js",
"version": "1.31.5",
"version": "1.31.6",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -46,5 +46,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/plugin-cert
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/plugin-cert
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-cert",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -15,10 +15,10 @@
"preview": "vite preview"
},
"dependencies": {
"@certd/acme-client": "^1.31.5",
"@certd/basic": "^1.31.5",
"@certd/pipeline": "^1.31.5",
"@certd/plugin-lib": "^1.31.5",
"@certd/acme-client": "^1.31.6",
"@certd/basic": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@certd/plugin-lib": "^1.31.6",
"@google-cloud/publicca": "^1.3.0",
"dayjs": "^1.11.7",
"jszip": "^3.10.1",
@@ -41,5 +41,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+6
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/plugin-lib
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-lib",
"private": false,
"version": "1.31.5",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -16,8 +16,8 @@
},
"dependencies": {
"@alicloud/pop-core": "^1.7.10",
"@certd/basic": "^1.31.5",
"@certd/pipeline": "^1.31.5",
"@certd/basic": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@kubernetes/client-node": "0.21.0",
"ali-oss": "^6.21.0",
"basic-ftp": "^5.0.5",
@@ -48,5 +48,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
}
+54 -5
View File
@@ -7,6 +7,8 @@ import { SshAccess } from "./ssh-access.js";
import stripAnsi from "strip-ansi";
import { SocksClient } from "socks";
import { SocksProxy, SocksProxyType } from "socks/typings/common/constants.js";
import fs from "fs";
export type TransportItem = { localPath: string; remotePath: string };
export class AsyncSsh2Client {
@@ -265,15 +267,15 @@ export class SshClient {
}
* @param options
*/
async uploadFiles(options: { connectConf: SshAccess; transports: TransportItem[]; mkdirs: boolean; opts?: { mode?: string } }) {
async uploadFiles(options: { connectConf: SshAccess; transports: TransportItem[]; mkdirs: boolean; opts?: { mode?: string }; uploadType?: string }) {
const { connectConf, transports, mkdirs, opts } = options;
await this._call({
connectConf,
callable: async (conn: AsyncSsh2Client) => {
const sftp = await conn.getSftp();
this.logger.info("开始上传");
for (const transport of transports) {
if (mkdirs !== false) {
if (mkdirs !== false) {
this.logger.info("初始化父目录");
for (const transport of transports) {
const filePath = path.dirname(transport.remotePath);
let mkdirCmd = `mkdir -p ${filePath} `;
if (conn.windows) {
@@ -291,13 +293,60 @@ export class SshClient {
}
await conn.exec(mkdirCmd);
}
await conn.fastPut({ sftp, ...transport, opts });
}
if (options.uploadType === "sftp") {
const sftp = await conn.getSftp();
for (const transport of transports) {
await conn.fastPut({ sftp, ...transport, opts });
}
} else {
//scp
for (const transport of transports) {
await this.scpUpload({ conn, ...transport, opts });
}
}
this.logger.info("文件全部上传成功");
},
});
}
async scpUpload(options: { conn: any; localPath: string; remotePath: string; opts?: { mode?: string } }) {
const { conn, localPath, remotePath } = options;
return new Promise((resolve, reject) => {
// 关键步骤:构造 SCP 命令
try {
this.logger.info(`开始上传:${localPath} => ${remotePath}`);
conn.conn.exec(
`scp -t ${remotePath}`, // -t 表示目标模式
(err, stream) => {
if (err) {
return reject(err);
}
// 准备 SCP 协议头
const fileStats = fs.statSync(localPath);
const fileName = path.basename(localPath);
// SCP 协议格式:C[权限] [文件大小] [文件名]\n
stream.write(`C0644 ${fileStats.size} ${fileName}\n`);
// 通过管道传输文件
fs.createReadStream(localPath)
.pipe(stream)
.on("finish", () => {
this.logger.info(`上传文件成功:${localPath} => ${remotePath}`);
resolve(true);
})
.on("error", reject);
}
);
} catch (e) {
reject(e);
}
});
}
async removeFiles(opts: { connectConf: SshAccess; files: string[] }) {
const { connectConf, files } = opts;
await this._call({
+6
View File
@@ -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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Performance Improvements
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
### Bug Fixes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/ui-client",
"version": "1.31.5",
"version": "1.31.6",
"private": true,
"scripts": {
"dev": "vite --open",
@@ -96,8 +96,8 @@
"zod-defaults": "^0.1.3"
},
"devDependencies": {
"@certd/lib-iframe": "^1.31.5",
"@certd/pipeline": "^1.31.5",
"@certd/lib-iframe": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.12",
@@ -55,9 +55,57 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe61d;</span>
<div class="name">WAF-长亭-雷池</div>
<div class="code-name">&amp;#xe61d;</div>
<span class="icon iconfont">&#xecc0;</span>
<div class="name">plesk_</div>
<div class="code-name">&amp;#xecc0;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe741;</span>
<div class="name">易支付-01</div>
<div class="code-name">&amp;#xe741;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe606;</span>
<div class="name">1Panel</div>
<div class="code-name">&amp;#xe606;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe73c;</span>
<div class="name">西部数码</div>
<div class="code-name">&amp;#xe73c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe607;</span>
<div class="name">qnap</div>
<div class="code-name">&amp;#xe607;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe9cc;</span>
<div class="name">proxmox</div>
<div class="code-name">&amp;#xe9cc;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe604;</span>
<div class="name">aws</div>
<div class="code-name">&amp;#xe604;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe602;</span>
<div class="name">uni-app</div>
<div class="code-name">&amp;#xe602;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe752;</span>
<div class="name">lucky</div>
<div class="code-name">&amp;#xe752;</div>
</li>
<li class="dib">
@@ -66,6 +114,12 @@
<div class="code-name">&amp;#xe719;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe748;</span>
<div class="name">雷池</div>
<div class="code-name">&amp;#xe748;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe610;</span>
<div class="name">华为</div>
@@ -120,7 +174,7 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.svg?t=1741879397012#iconfont') format('svg');
src: url('iconfont.svg?t=1742822771904#iconfont') format('svg');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -147,11 +201,83 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-WAF-changting-leichi"></span>
<span class="icon iconfont icon-plesk"></span>
<div class="name">
WAF-长亭-雷池
plesk_
</div>
<div class="code-name">.icon-WAF-changting-leichi
<div class="code-name">.icon-plesk
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-yizhifu"></span>
<div class="name">
易支付-01
</div>
<div class="code-name">.icon-yizhifu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-onepanel"></span>
<div class="name">
1Panel
</div>
<div class="code-name">.icon-onepanel
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xibushuma"></span>
<div class="name">
西部数码
</div>
<div class="code-name">.icon-xibushuma
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-qnap"></span>
<div class="name">
qnap
</div>
<div class="code-name">.icon-qnap
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-proxmox"></span>
<div class="name">
proxmox
</div>
<div class="code-name">.icon-proxmox
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-aws"></span>
<div class="name">
aws
</div>
<div class="code-name">.icon-aws
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-uniapp"></span>
<div class="name">
uni-app
</div>
<div class="code-name">.icon-uniapp
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-lucky"></span>
<div class="name">
lucky
</div>
<div class="code-name">.icon-lucky
</div>
</li>
@@ -164,6 +290,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-safeline"></span>
<div class="name">
雷池
</div>
<div class="code-name">.icon-safeline
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-huawei"></span>
<div class="name">
@@ -247,10 +382,74 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-WAF-changting-leichi"></use>
<use xlink:href="#icon-plesk"></use>
</svg>
<div class="name">WAF-长亭-雷池</div>
<div class="code-name">#icon-WAF-changting-leichi</div>
<div class="name">plesk_</div>
<div class="code-name">#icon-plesk</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yizhifu"></use>
</svg>
<div class="name">易支付-01</div>
<div class="code-name">#icon-yizhifu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-onepanel"></use>
</svg>
<div class="name">1Panel</div>
<div class="code-name">#icon-onepanel</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xibushuma"></use>
</svg>
<div class="name">西部数码</div>
<div class="code-name">#icon-xibushuma</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-qnap"></use>
</svg>
<div class="name">qnap</div>
<div class="code-name">#icon-qnap</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-proxmox"></use>
</svg>
<div class="name">proxmox</div>
<div class="code-name">#icon-proxmox</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-aws"></use>
</svg>
<div class="name">aws</div>
<div class="code-name">#icon-aws</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-uniapp"></use>
</svg>
<div class="name">uni-app</div>
<div class="code-name">#icon-uniapp</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-lucky"></use>
</svg>
<div class="name">lucky</div>
<div class="code-name">#icon-lucky</div>
</li>
<li class="dib">
@@ -261,6 +460,14 @@
<div class="code-name">#icon-ctyun</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-safeline"></use>
</svg>
<div class="name">雷池</div>
<div class="code-name">#icon-safeline</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-huawei"></use>
@@ -1,6 +1,6 @@
@font-face {
font-family: "iconfont"; /* Project id 4688792 */
src: url('iconfont.svg?t=1741879397012#iconfont') format('svg');
src: url('iconfont.svg?t=1742822771904#iconfont') format('svg');
}
.iconfont {
@@ -11,14 +11,50 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-WAF-changting-leichi:before {
content: "\e61d";
.icon-plesk:before {
content: "\ecc0";
}
.icon-yizhifu:before {
content: "\e741";
}
.icon-onepanel:before {
content: "\e606";
}
.icon-xibushuma:before {
content: "\e73c";
}
.icon-qnap:before {
content: "\e607";
}
.icon-proxmox:before {
content: "\e9cc";
}
.icon-aws:before {
content: "\e604";
}
.icon-uniapp:before {
content: "\e602";
}
.icon-lucky:before {
content: "\e752";
}
.icon-ctyun:before {
content: "\e719";
}
.icon-safeline:before {
content: "\e748";
}
.icon-huawei:before {
content: "\e610";
}
File diff suppressed because one or more lines are too long
@@ -6,11 +6,67 @@
"description": "",
"glyphs": [
{
"icon_id": "35327761",
"name": "WAF-长亭-雷池",
"font_class": "WAF-changting-leichi",
"unicode": "e61d",
"unicode_decimal": 58909
"icon_id": "27272666",
"name": "plesk_",
"font_class": "plesk",
"unicode": "ecc0",
"unicode_decimal": 60608
},
{
"icon_id": "23930871",
"name": "易支付-01",
"font_class": "yizhifu",
"unicode": "e741",
"unicode_decimal": 59201
},
{
"icon_id": "40476533",
"name": "1Panel",
"font_class": "onepanel",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "26435508",
"name": "西部数码",
"font_class": "xibushuma",
"unicode": "e73c",
"unicode_decimal": 59196
},
{
"icon_id": "27487624",
"name": "qnap",
"font_class": "qnap",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "27268231",
"name": "proxmox",
"font_class": "proxmox",
"unicode": "e9cc",
"unicode_decimal": 59852
},
{
"icon_id": "31636255",
"name": "aws",
"font_class": "aws",
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "34071209",
"name": "uni-app",
"font_class": "uniapp",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "3467975",
"name": "lucky",
"font_class": "lucky",
"unicode": "e752",
"unicode_decimal": 59218
},
{
"icon_id": "41854563",
@@ -19,6 +75,13 @@
"unicode": "e719",
"unicode_decimal": 59161
},
{
"icon_id": "43757703",
"name": "雷池",
"font_class": "safeline",
"unicode": "e748",
"unicode_decimal": 59208
},
{
"icon_id": "24164616",
"name": "华为",
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 39 KiB

+11
View File
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Bug Fixes
* 修复dns.la无法申请证书的bug ([90b045a](https://github.com/certd/certd/commit/90b045af6d1a4f46986e4b118885c1f050df067c))
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/ui-server
+13 -13
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/ui-server",
"version": "1.31.5",
"version": "1.31.6",
"description": "fast-server base midway",
"private": true,
"type": "module",
@@ -38,18 +38,18 @@
"@aws-sdk/client-acm": "^3.699.0",
"@aws-sdk/client-cloudfront": "^3.699.0",
"@aws-sdk/client-s3": "^3.705.0",
"@certd/acme-client": "^1.31.5",
"@certd/basic": "^1.31.5",
"@certd/commercial-core": "^1.31.5",
"@certd/lib-huawei": "^1.31.5",
"@certd/lib-k8s": "^1.31.5",
"@certd/lib-server": "^1.31.5",
"@certd/midway-flyway-js": "^1.31.5",
"@certd/pipeline": "^1.31.5",
"@certd/plugin-cert": "^1.31.5",
"@certd/plugin-lib": "^1.31.5",
"@certd/plugin-plus": "^1.31.5",
"@certd/plus-core": "^1.31.5",
"@certd/acme-client": "^1.31.6",
"@certd/basic": "^1.31.6",
"@certd/commercial-core": "^1.31.6",
"@certd/lib-huawei": "^1.31.6",
"@certd/lib-k8s": "^1.31.6",
"@certd/lib-server": "^1.31.6",
"@certd/midway-flyway-js": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@certd/plugin-cert": "^1.31.6",
"@certd/plugin-lib": "^1.31.6",
"@certd/plugin-plus": "^1.31.6",
"@certd/plus-core": "^1.31.6",
"@corsinvest/cv4pve-api-javascript": "^8.3.0",
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120",
"@huaweicloud/huaweicloud-sdk-core": "^3.1.120",
@@ -8,7 +8,7 @@ import { AliyunAccess, AliyunClient } from '@certd/plugin-lib';
title: '阿里云',
desc: '阿里云DNS解析提供商',
accessType: 'aliyun',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
})
export class AliyunDnsProvider extends AbstractDnsProvider {
client: any;
@@ -5,7 +5,7 @@ import { AliyunAccess, AliyunClient, AliyunSslClient, createCertDomainGetterInpu
@IsTaskPlugin({
name: 'AliyunDeployCertToALB',
title: '阿里云-部署至ALB(应用负载均衡)',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: 'ALB,更新监听器的默认证书',
needPlus: false,
@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'DeployCertToAliyunCDN',
title: '阿里云-部署证书至CDN',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '自动部署域名证书至阿里云CDN',
default: {
@@ -6,7 +6,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'DeployCertToAliyunDCDN',
title: '阿里云-部署证书至DCDN',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '依赖证书申请前置任务,自动部署域名证书至阿里云DCDN',
default: {
@@ -6,7 +6,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToFC',
title: '阿里云-部署至阿里云FC(3.0)',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '部署证书到阿里云函数计算(FC3.0),【注意】证书的加密算法必须选择【pkcs1旧版】',
needPlus: true,
@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToNLB',
title: '阿里云-部署至NLB(网络负载均衡)',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: 'NLB,网络负载均衡,更新监听器的默认证书',
needPlus: false,
@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'DeployCertToAliyunOSS',
title: '阿里云-部署证书至OSS',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '自动部署域名证书至阿里云OSS',
default: {
@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToSLB',
title: '阿里云-部署至SLB(传统负载均衡)',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '部署证书到阿里云SLB(传统负载均衡)',
needPlus: false,
@@ -6,7 +6,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToWaf',
title: '阿里云-部署至阿里云WAF',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '部署证书到阿里云WAF',
needPlus: true,
@@ -24,7 +24,7 @@ const regionDict = [
@IsTaskPlugin({
name: 'uploadCertToAliyun',
title: '阿里云-上传证书到阿里云',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '如果不想在阿里云上同一份证书上传多次,可以把此任务作为前置任务,其他阿里云任务证书那一项选择此任务的输出',
default: {
@@ -37,7 +37,7 @@ export const AwsRegions = [
name: 'aws',
title: '亚马逊云aws授权',
desc: '',
icon: 'ant-design:aws-outlined',
icon: 'svg:icon-aws',
})
export class AwsAccess extends BaseAccess {
@AccessInput({
@@ -10,7 +10,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
name: 'AwsDeployToCloudFront',
title: 'AWS-部署证书到CloudFront',
desc: '部署证书到 AWS CloudFront',
icon: 'clarity:plugin-line',
icon: 'svg:icon-aws',
group: pluginGroups.aws.key,
needPlus: true,
default: {
@@ -7,7 +7,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
name: 'AwsUploadToACM',
title: 'AWS-上传证书到ACM',
desc: '上传证书 AWS ACM',
icon: 'clarity:plugin-line',
icon: 'svg:icon-aws',
group: pluginGroups.aws.key,
default: {
strategy: {
@@ -179,6 +179,21 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
})
accessId!: string;
@TaskInput({
title: '上传方式',
helper: '选择上传方式,sftp或者scp',
value:"sftp",
component: {
name: 'a-select',
options: [
{ value: 'sftp', label: 'sftp' },
{ value: 'scp', label: 'scp' },
],
},
required: true,
})
uploadType: string = 'sftp';
@TaskInput({
title: '自动创建远程目录',
helper: '是否自动创建远程目录,如果关闭则你需要自己确保远程目录存在',
@@ -249,18 +264,7 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
async onInstance() {}
// copyFile(srcFile: string, destFile: string) {
// if (!srcFile || !destFile) {
// this.logger.warn(`srcFile:${srcFile} 或 destFile:${destFile} 为空,不复制`);
// return;
// }
// const dir = destFile.substring(0, destFile.lastIndexOf('/'));
// if (!fs.existsSync(dir)) {
// fs.mkdirSync(dir, { recursive: true });
// }
// fs.copyFileSync(srcFile, destFile);
// this.logger.info(`复制文件:${srcFile} => ${destFile}`);
// }
async execute(): Promise<void> {
const { cert, accessId } = this;
let { crtPath, keyPath, icPath, pfxPath, derPath, jksPath, onePath } = this;
@@ -268,16 +272,6 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
const handle = async (opts: CertReaderHandleContext) => {
const { tmpCrtPath, tmpKeyPath, tmpDerPath, tmpJksPath, tmpPfxPath, tmpIcPath, tmpOnePath } = opts;
// if (this.copyToThisHost) {
// this.logger.info('复制到目标路径');
// this.copyFile(tmpCrtPath, crtPath);
// this.copyFile(tmpKeyPath, keyPath);
// this.copyFile(tmpIcPath, this.icPath);
// this.copyFile(tmpPfxPath, this.pfxPath);
// this.copyFile(tmpDerPath, this.derPath);
// this.logger.warn('复制到当前主机功能已迁移到 “复制到本机”插件,请尽快换成复制到本机插件');
// return;
// }
if (accessId == null) {
this.logger.error('复制到当前主机功能已迁移到 “复制到本机”插件,请换成复制到本机插件');
@@ -355,7 +349,9 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
connectConf,
transports,
mkdirs: this.mkdirs,
uploadType: this.uploadType,
});
this.logger.info('上传文件到服务器成功');
//输出
this.hostCrtPath = crtPath;
@@ -8,7 +8,7 @@ import { IsAccess, AccessInput, BaseAccess } from '@certd/pipeline';
name: 'proxmox',
title: 'proxmox',
desc: '',
icon: 'svg:icon-dogecloud',
icon: 'svg:icon-proxmox',
})
export class ProxmoxAccess extends BaseAccess {
/**
@@ -8,7 +8,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
//命名规范,插件名称+功能(就是目录plugin-demo中的demo),大写字母开头,驼峰命名
name: 'ProxmoxUploadCert',
title: '上传证书到Proxmox',
icon: 'clarity:plugin-line',
icon: 'svg:icon-proxmox',
//插件分组
group: pluginGroups.other.key,
needPlus: true,
@@ -8,7 +8,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'QnapDeploy',
title: '威联通-部署证书到威联通',
icon: 'simple-icons:qnap',
icon: 'svg:icon-qnap',
group: pluginGroups.panel.key,
desc: '部署证书到qnap',
default: {
@@ -17,7 +17,7 @@ type westRecord = {
name: 'west',
title: '西部数码',
desc: 'west dns provider',
icon: 'tabler:map-west',
icon: 'svg:icon-xibushuma',
// 这里是对应的云平台的access类型名称
accessType: 'west',
})