@certd/plugin-lib 1.27.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +23 -0
- package/.mocharc.json +5 -0
- package/.prettierrc +3 -0
- package/CHANGELOG.md +479 -0
- package/LICENSE +661 -0
- package/README.md +16 -0
- package/dist/aliyun/access/aliyun-access.d.ts +5 -0
- package/dist/aliyun/access/aliyun-access.js +48 -0
- package/dist/aliyun/access/index.d.ts +1 -0
- package/dist/aliyun/access/index.js +2 -0
- package/dist/aliyun/index.d.ts +2 -0
- package/dist/aliyun/index.js +3 -0
- package/dist/aliyun/lib/base-client.d.ts +16 -0
- package/dist/aliyun/lib/base-client.js +67 -0
- package/dist/aliyun/lib/index.d.ts +2 -0
- package/dist/aliyun/lib/index.js +3 -0
- package/dist/aliyun/lib/ssl-client.d.ts +34 -0
- package/dist/aliyun/lib/ssl-client.js +89 -0
- package/dist/common/index.d.ts +19 -0
- package/dist/common/index.js +57 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/ssh/index.d.ts +2 -0
- package/dist/ssh/index.js +3 -0
- package/dist/ssh/ssh-access.d.ts +13 -0
- package/dist/ssh/ssh-access.js +139 -0
- package/dist/ssh/ssh.d.ts +70 -0
- package/dist/ssh/ssh.js +383 -0
- package/package.json +48 -0
- package/tsconfig.json +41 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline";
|
|
11
|
+
let AliyunAccess = class AliyunAccess extends BaseAccess {
|
|
12
|
+
accessKeyId = "";
|
|
13
|
+
accessKeySecret = "";
|
|
14
|
+
};
|
|
15
|
+
__decorate([
|
|
16
|
+
AccessInput({
|
|
17
|
+
title: "accessKeyId",
|
|
18
|
+
component: {
|
|
19
|
+
placeholder: "accessKeyId",
|
|
20
|
+
},
|
|
21
|
+
helper: "登录阿里云控制台->AccessKey管理页面获取。",
|
|
22
|
+
required: true,
|
|
23
|
+
}),
|
|
24
|
+
__metadata("design:type", Object)
|
|
25
|
+
], AliyunAccess.prototype, "accessKeyId", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
AccessInput({
|
|
28
|
+
title: "accessKeySecret",
|
|
29
|
+
component: {
|
|
30
|
+
placeholder: "accessKeySecret",
|
|
31
|
+
},
|
|
32
|
+
required: true,
|
|
33
|
+
encrypt: true,
|
|
34
|
+
helper: "注意:证书申请需要dns解析权限;其他阿里云插件,需要对应的权限,比如证书上传需要证书管理权限;嫌麻烦就用主账号的全量权限的accessKey",
|
|
35
|
+
}),
|
|
36
|
+
__metadata("design:type", Object)
|
|
37
|
+
], AliyunAccess.prototype, "accessKeySecret", void 0);
|
|
38
|
+
AliyunAccess = __decorate([
|
|
39
|
+
IsAccess({
|
|
40
|
+
name: "aliyun",
|
|
41
|
+
title: "阿里云授权",
|
|
42
|
+
desc: "",
|
|
43
|
+
icon: "ant-design:aliyun-outlined",
|
|
44
|
+
})
|
|
45
|
+
], AliyunAccess);
|
|
46
|
+
export { AliyunAccess };
|
|
47
|
+
new AliyunAccess();
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpeXVuLWFjY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hbGl5dW4vYWNjZXNzL2FsaXl1bi1hY2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFRN0QsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFVBQVU7SUFTMUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQVVqQixlQUFlLEdBQUcsRUFBRSxDQUFDO0NBQ3RCLENBQUE7QUFYQztJQVJDLFdBQVcsQ0FBQztRQUNYLEtBQUssRUFBRSxhQUFhO1FBQ3BCLFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRSxhQUFhO1NBQzNCO1FBQ0QsTUFBTSxFQUFFLDRCQUE0QjtRQUNwQyxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7O2lEQUNlO0FBVWpCO0lBVEMsV0FBVyxDQUFDO1FBQ1gsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsaUJBQWlCO1NBQy9CO1FBQ0QsUUFBUSxFQUFFLElBQUk7UUFDZCxPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSx5RUFBeUU7S0FDbEYsQ0FBQzs7cURBQ21CO0FBbkJWLFlBQVk7SUFOeEIsUUFBUSxDQUFDO1FBQ1IsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsT0FBTztRQUNkLElBQUksRUFBRSxFQUFFO1FBQ1IsSUFBSSxFQUFFLDRCQUE0QjtLQUNuQyxDQUFDO0dBQ1csWUFBWSxDQW9CeEI7O0FBRUQsSUFBSSxZQUFZLEVBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './aliyun-access.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './aliyun-access.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWxpeXVuL2FjY2Vzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./lib/index.js";
|
|
2
|
+
export * from "./access/index.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxpeXVuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxtQkFBbUIsQ0FBQyJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ILogger } from "@certd/basic";
|
|
2
|
+
export declare class AliyunClient {
|
|
3
|
+
client: any;
|
|
4
|
+
logger: ILogger;
|
|
5
|
+
agent: any;
|
|
6
|
+
useROAClient: boolean;
|
|
7
|
+
constructor(opts: {
|
|
8
|
+
logger: ILogger;
|
|
9
|
+
useROAClient?: boolean;
|
|
10
|
+
});
|
|
11
|
+
getSdk(): Promise<any>;
|
|
12
|
+
getROAClient(): Promise<any>;
|
|
13
|
+
init(opts: any): Promise<any>;
|
|
14
|
+
checkRet(ret: any): void;
|
|
15
|
+
request(name: string, params: any, requestOption?: any): Promise<any>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { getGlobalAgents } from "@certd/basic";
|
|
2
|
+
export class AliyunClient {
|
|
3
|
+
client;
|
|
4
|
+
logger;
|
|
5
|
+
agent;
|
|
6
|
+
useROAClient;
|
|
7
|
+
constructor(opts) {
|
|
8
|
+
this.logger = opts.logger;
|
|
9
|
+
this.useROAClient = opts.useROAClient || false;
|
|
10
|
+
const agents = getGlobalAgents();
|
|
11
|
+
this.agent = agents.httpsAgent;
|
|
12
|
+
}
|
|
13
|
+
async getSdk() {
|
|
14
|
+
if (this.useROAClient) {
|
|
15
|
+
return await this.getROAClient();
|
|
16
|
+
}
|
|
17
|
+
const Core = await import("@alicloud/pop-core");
|
|
18
|
+
return Core.default;
|
|
19
|
+
}
|
|
20
|
+
async getROAClient() {
|
|
21
|
+
const Core = await import("@alicloud/pop-core");
|
|
22
|
+
console.log("aliyun sdk", Core);
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
return Core.ROAClient;
|
|
25
|
+
}
|
|
26
|
+
async init(opts) {
|
|
27
|
+
const Core = await this.getSdk();
|
|
28
|
+
this.client = new Core(opts);
|
|
29
|
+
return this.client;
|
|
30
|
+
}
|
|
31
|
+
checkRet(ret) {
|
|
32
|
+
if (ret.code != null) {
|
|
33
|
+
throw new Error("执行失败:" + ret.Message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async request(name, params, requestOption = {
|
|
37
|
+
method: "POST",
|
|
38
|
+
formatParams: false,
|
|
39
|
+
}) {
|
|
40
|
+
if (!this.useROAClient) {
|
|
41
|
+
requestOption.agent = this.agent;
|
|
42
|
+
}
|
|
43
|
+
const getNumberFromEnv = (key, defValue) => {
|
|
44
|
+
const value = process.env[key];
|
|
45
|
+
if (value) {
|
|
46
|
+
try {
|
|
47
|
+
return parseInt(value);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
this.logger.error(`环境变量${key}设置错误,应该是一个数字,当前值为${value},将使用默认值:${defValue}`);
|
|
51
|
+
return defValue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return defValue;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
// 连接超时设置,仅对当前请求有效。
|
|
59
|
+
requestOption.connectTimeout = getNumberFromEnv("ALIYUN_CLIENT_CONNECT_TIMEOUT", 8000);
|
|
60
|
+
// 读超时设置,仅对当前请求有效。
|
|
61
|
+
requestOption.readTimeout = getNumberFromEnv("ALIYUN_CLIENT_READ_TIMEOUT", 8000);
|
|
62
|
+
const res = await this.client.request(name, params, requestOption);
|
|
63
|
+
this.checkRet(res);
|
|
64
|
+
return res;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWxpeXVuL2xpYi9iYXNlLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXhELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBTTtJQUNaLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQU07SUFDWCxZQUFZLENBQVU7SUFFdEIsWUFBWSxJQUFpRDtRQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBUTtRQUNmLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUNYLElBQVksRUFDWixNQUFXLEVBQ1gsZ0JBQXFCO1FBQ25CLE1BQU0sRUFBRSxNQUFNO1FBQ2QsWUFBWSxFQUFFLEtBQUs7S0FDcEI7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDekQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQztvQkFDSCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsQ0FBQztnQkFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO29CQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsb0JBQW9CLEtBQUssV0FBVyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUM1RSxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLGFBQWEsQ0FBQyxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkYsa0JBQWtCO1FBQ2xCLGFBQWEsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakYsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./base-client.js";
|
|
2
|
+
export * from "./ssl-client.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWxpeXVuL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUMifQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ILogger } from "@certd/basic";
|
|
2
|
+
import { AliyunAccess } from "../access/index.js";
|
|
3
|
+
import { AliyunClient } from "./index.js";
|
|
4
|
+
import { CertInfo } from "@certd/plugin-cert";
|
|
5
|
+
export type AliyunSslClientOpts = {
|
|
6
|
+
access: AliyunAccess;
|
|
7
|
+
logger: ILogger;
|
|
8
|
+
endpoint: string;
|
|
9
|
+
};
|
|
10
|
+
export type AliyunSslGetResourceListReq = {
|
|
11
|
+
cloudProduct: string;
|
|
12
|
+
};
|
|
13
|
+
export type AliyunSslCreateDeploymentJobReq = {
|
|
14
|
+
name: string;
|
|
15
|
+
jobType: string;
|
|
16
|
+
contactIds: string[];
|
|
17
|
+
resourceIds: string[];
|
|
18
|
+
certIds: string[];
|
|
19
|
+
};
|
|
20
|
+
export type AliyunSslUploadCertReq = {
|
|
21
|
+
name: string;
|
|
22
|
+
cert: CertInfo;
|
|
23
|
+
};
|
|
24
|
+
export declare class AliyunSslClient {
|
|
25
|
+
opts: AliyunSslClientOpts;
|
|
26
|
+
constructor(opts: AliyunSslClientOpts);
|
|
27
|
+
checkRet(ret: any): void;
|
|
28
|
+
getClient(): Promise<AliyunClient>;
|
|
29
|
+
uploadCert(req: AliyunSslUploadCertReq): Promise<any>;
|
|
30
|
+
getResourceList(req: AliyunSslGetResourceListReq): Promise<any>;
|
|
31
|
+
createDeploymentJob(req: AliyunSslCreateDeploymentJobReq): Promise<any>;
|
|
32
|
+
getContactList(): Promise<any>;
|
|
33
|
+
doRequest(action: string, params: any, requestOption: any): Promise<any>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { AliyunClient } from "./index.js";
|
|
2
|
+
export class AliyunSslClient {
|
|
3
|
+
opts;
|
|
4
|
+
constructor(opts) {
|
|
5
|
+
this.opts = opts;
|
|
6
|
+
}
|
|
7
|
+
checkRet(ret) {
|
|
8
|
+
if (ret.code != null) {
|
|
9
|
+
throw new Error("执行失败:" + ret.Message);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async getClient() {
|
|
13
|
+
const access = this.opts.access;
|
|
14
|
+
const client = new AliyunClient({ logger: this.opts.logger });
|
|
15
|
+
await client.init({
|
|
16
|
+
accessKeyId: access.accessKeyId,
|
|
17
|
+
accessKeySecret: access.accessKeySecret,
|
|
18
|
+
endpoint: `https://${this.opts.endpoint || "cas.aliyuncs.com"}`,
|
|
19
|
+
apiVersion: "2020-04-07",
|
|
20
|
+
});
|
|
21
|
+
return client;
|
|
22
|
+
}
|
|
23
|
+
async uploadCert(req) {
|
|
24
|
+
const client = await this.getClient();
|
|
25
|
+
const params = {
|
|
26
|
+
Name: req.name,
|
|
27
|
+
Cert: req.cert.crt,
|
|
28
|
+
Key: req.cert.key,
|
|
29
|
+
};
|
|
30
|
+
const requestOption = {
|
|
31
|
+
method: "POST",
|
|
32
|
+
};
|
|
33
|
+
this.opts.logger.info("开始上传证书");
|
|
34
|
+
const ret = await client.request("UploadUserCertificate", params, requestOption);
|
|
35
|
+
this.checkRet(ret);
|
|
36
|
+
this.opts.logger.info("证书上传成功:aliyunCertId=", ret.CertId);
|
|
37
|
+
//output
|
|
38
|
+
return ret.CertId;
|
|
39
|
+
}
|
|
40
|
+
async getResourceList(req) {
|
|
41
|
+
const client = await this.getClient();
|
|
42
|
+
const params = {
|
|
43
|
+
CloudName: "aliyun",
|
|
44
|
+
CloudProduct: req.cloudProduct,
|
|
45
|
+
};
|
|
46
|
+
const requestOption = {
|
|
47
|
+
method: "POST",
|
|
48
|
+
formatParams: false,
|
|
49
|
+
};
|
|
50
|
+
const res = await client.request("ListCloudResources", params, requestOption);
|
|
51
|
+
this.checkRet(res);
|
|
52
|
+
return res;
|
|
53
|
+
}
|
|
54
|
+
async createDeploymentJob(req) {
|
|
55
|
+
const client = await this.getClient();
|
|
56
|
+
const params = {
|
|
57
|
+
Name: req.name,
|
|
58
|
+
JobType: req.jobType,
|
|
59
|
+
ContactIds: req.contactIds.join(","),
|
|
60
|
+
ResourceIds: req.resourceIds.join(","),
|
|
61
|
+
CertIds: req.certIds.join(","),
|
|
62
|
+
};
|
|
63
|
+
const requestOption = {
|
|
64
|
+
method: "POST",
|
|
65
|
+
formatParams: false,
|
|
66
|
+
};
|
|
67
|
+
const res = await client.request("CreateDeploymentJob", params, requestOption);
|
|
68
|
+
this.checkRet(res);
|
|
69
|
+
return res;
|
|
70
|
+
}
|
|
71
|
+
async getContactList() {
|
|
72
|
+
const params = {};
|
|
73
|
+
const requestOption = {
|
|
74
|
+
method: "POST",
|
|
75
|
+
formatParams: false,
|
|
76
|
+
};
|
|
77
|
+
const client = await this.getClient();
|
|
78
|
+
const res = await client.request("ListContact", params, requestOption);
|
|
79
|
+
this.checkRet(res);
|
|
80
|
+
return res;
|
|
81
|
+
}
|
|
82
|
+
async doRequest(action, params, requestOption) {
|
|
83
|
+
const client = await this.getClient();
|
|
84
|
+
const res = await client.request(action, params, requestOption);
|
|
85
|
+
this.checkRet(res);
|
|
86
|
+
return res;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NsLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hbGl5dW4vbGliL3NzbC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQTBCMUMsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFBSSxDQUFzQjtJQUMxQixZQUFZLElBQXlCO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBUTtRQUNmLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5RCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDaEIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtZQUN2QyxRQUFRLEVBQUUsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxrQkFBa0IsRUFBRTtZQUMvRCxVQUFVLEVBQUUsWUFBWTtTQUN6QixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUEyQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QyxNQUFNLE1BQU0s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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function createCertDomainGetterInputDefine(opts?: {
|
|
2
|
+
certInputKey?: string;
|
|
3
|
+
props?: any;
|
|
4
|
+
}): any;
|
|
5
|
+
export declare function createRemoteSelectInputDefine(opts?: {
|
|
6
|
+
title: string;
|
|
7
|
+
certDomainsInputKey?: string;
|
|
8
|
+
accessIdInputKey?: string;
|
|
9
|
+
typeName?: string;
|
|
10
|
+
action: string;
|
|
11
|
+
type?: string;
|
|
12
|
+
watches?: string[];
|
|
13
|
+
helper?: string;
|
|
14
|
+
formItem?: any;
|
|
15
|
+
mode?: string;
|
|
16
|
+
multi?: boolean;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
rules?: any;
|
|
19
|
+
}): any;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { merge } from "lodash-es";
|
|
2
|
+
export function createCertDomainGetterInputDefine(opts) {
|
|
3
|
+
const certInputKey = opts?.certInputKey || "cert";
|
|
4
|
+
return merge({
|
|
5
|
+
title: "当前证书域名",
|
|
6
|
+
component: {
|
|
7
|
+
name: "cert-domains-getter",
|
|
8
|
+
},
|
|
9
|
+
mergeScript: `
|
|
10
|
+
return {
|
|
11
|
+
component:{
|
|
12
|
+
inputKey: ctx.compute(({form})=>{
|
|
13
|
+
return form.${certInputKey}
|
|
14
|
+
}),
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
`,
|
|
18
|
+
required: true,
|
|
19
|
+
}, opts?.props);
|
|
20
|
+
}
|
|
21
|
+
export function createRemoteSelectInputDefine(opts) {
|
|
22
|
+
const title = opts?.title || "请选择";
|
|
23
|
+
const certDomainsInputKey = opts?.certDomainsInputKey || "certDomains";
|
|
24
|
+
const accessIdInputKey = opts?.accessIdInputKey || "accessId";
|
|
25
|
+
const typeName = opts?.typeName;
|
|
26
|
+
const action = opts?.action;
|
|
27
|
+
const type = opts?.type || "plugin";
|
|
28
|
+
const watches = opts?.watches || [];
|
|
29
|
+
const helper = opts?.helper || "请选择";
|
|
30
|
+
const mode = opts?.mode || "tags";
|
|
31
|
+
const item = {
|
|
32
|
+
title,
|
|
33
|
+
component: {
|
|
34
|
+
name: "remote-select",
|
|
35
|
+
vModel: "value",
|
|
36
|
+
mode,
|
|
37
|
+
type,
|
|
38
|
+
typeName,
|
|
39
|
+
action,
|
|
40
|
+
watches: [certDomainsInputKey, accessIdInputKey, ...watches],
|
|
41
|
+
},
|
|
42
|
+
rules: opts?.rules,
|
|
43
|
+
required: true,
|
|
44
|
+
mergeScript: `
|
|
45
|
+
return {
|
|
46
|
+
component:{
|
|
47
|
+
form: ctx.compute(({form})=>{
|
|
48
|
+
return form
|
|
49
|
+
})
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
`,
|
|
53
|
+
helper,
|
|
54
|
+
};
|
|
55
|
+
return merge(item, opts?.formItem);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEMsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLElBQTZDO0lBQzdGLE1BQU0sWUFBWSxHQUFHLElBQUksRUFBRSxZQUFZLElBQUksTUFBTSxDQUFDO0lBQ2xELE9BQU8sS0FBSyxDQUNWO1FBQ0UsS0FBSyxFQUFFLFFBQVE7UUFDZixTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUscUJBQXFCO1NBQzVCO1FBQ0QsV0FBVyxFQUFFOzs7OzhCQUlXLFlBQVk7Ozs7U0FJakM7UUFDSCxRQUFRLEVBQUUsSUFBSTtLQUNmLEVBQ0QsSUFBSSxFQUFFLEtBQUssQ0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxJQWM3QztJQUNDLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDO0lBQ25DLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxFQUFFLG1CQUFtQixJQUFJLGFBQWEsQ0FBQztJQUN2RSxNQUFNLGdCQUFnQixHQUFHLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxVQUFVLENBQUM7SUFDOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksUUFBUSxDQUFDO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHO1FBQ1gsS0FBSztRQUNMLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxlQUFlO1lBQ3JCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSTtZQUNKLElBQUk7WUFDSixRQUFRO1lBQ1IsTUFBTTtZQUNOLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsT0FBTyxDQUFDO1NBQzdEO1FBQ0QsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ2xCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFOzs7Ozs7OztTQVFSO1FBQ0wsTUFBTTtLQUNQLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3JDLENBQUMifQ==
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./ssh/index.js";
|
|
2
|
+
export * from "./aliyun/index.js";
|
|
3
|
+
export * from "./common/index.js";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUMifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./ssh.js";
|
|
2
|
+
export * from "./ssh-access.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3NoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsaUJBQWlCLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseAccess } from "@certd/pipeline";
|
|
2
|
+
import { ConnectConfig } from "ssh2";
|
|
3
|
+
export declare class SshAccess extends BaseAccess implements ConnectConfig {
|
|
4
|
+
host: string;
|
|
5
|
+
port: number;
|
|
6
|
+
username: string;
|
|
7
|
+
password: string;
|
|
8
|
+
privateKey: string;
|
|
9
|
+
passphrase: string;
|
|
10
|
+
socksProxy: string;
|
|
11
|
+
windows: boolean;
|
|
12
|
+
encoding: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { AccessInput, BaseAccess, IsAccess } from "@certd/pipeline";
|
|
11
|
+
let SshAccess = class SshAccess extends BaseAccess {
|
|
12
|
+
host;
|
|
13
|
+
port;
|
|
14
|
+
username;
|
|
15
|
+
password;
|
|
16
|
+
privateKey;
|
|
17
|
+
passphrase;
|
|
18
|
+
socksProxy;
|
|
19
|
+
windows = false;
|
|
20
|
+
encoding;
|
|
21
|
+
};
|
|
22
|
+
__decorate([
|
|
23
|
+
AccessInput({
|
|
24
|
+
title: "主机地址",
|
|
25
|
+
component: {
|
|
26
|
+
placeholder: "主机域名或IP地址",
|
|
27
|
+
},
|
|
28
|
+
required: true,
|
|
29
|
+
}),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], SshAccess.prototype, "host", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
AccessInput({
|
|
34
|
+
title: "端口",
|
|
35
|
+
value: 22,
|
|
36
|
+
component: {
|
|
37
|
+
name: "a-input-number",
|
|
38
|
+
placeholder: "22",
|
|
39
|
+
},
|
|
40
|
+
rules: [{ required: true, message: "此项必填" }],
|
|
41
|
+
}),
|
|
42
|
+
__metadata("design:type", Number)
|
|
43
|
+
], SshAccess.prototype, "port", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
AccessInput({
|
|
46
|
+
title: "用户名",
|
|
47
|
+
value: "root",
|
|
48
|
+
rules: [{ required: true, message: "此项必填" }],
|
|
49
|
+
}),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], SshAccess.prototype, "username", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
AccessInput({
|
|
54
|
+
title: "密码",
|
|
55
|
+
component: {
|
|
56
|
+
name: "a-input-password",
|
|
57
|
+
vModel: "value",
|
|
58
|
+
},
|
|
59
|
+
encrypt: true,
|
|
60
|
+
helper: "登录密码或密钥必填一项",
|
|
61
|
+
}),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], SshAccess.prototype, "password", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
AccessInput({
|
|
66
|
+
title: "私钥登录",
|
|
67
|
+
helper: "私钥或密码必填一项",
|
|
68
|
+
component: {
|
|
69
|
+
name: "a-textarea",
|
|
70
|
+
vModel: "value",
|
|
71
|
+
},
|
|
72
|
+
encrypt: true,
|
|
73
|
+
}),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], SshAccess.prototype, "privateKey", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
AccessInput({
|
|
78
|
+
title: "私钥密码",
|
|
79
|
+
helper: "如果你的私钥有密码的话",
|
|
80
|
+
component: {
|
|
81
|
+
name: "a-input-password",
|
|
82
|
+
vModel: "value",
|
|
83
|
+
},
|
|
84
|
+
encrypt: true,
|
|
85
|
+
}),
|
|
86
|
+
__metadata("design:type", String)
|
|
87
|
+
], SshAccess.prototype, "passphrase", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
AccessInput({
|
|
90
|
+
title: "socks代理",
|
|
91
|
+
helper: "socks代理配置,格式:socks5://user:password@host:port",
|
|
92
|
+
component: {
|
|
93
|
+
name: "a-input",
|
|
94
|
+
vModel: "value",
|
|
95
|
+
placeholder: "socks5://user:password@host:port",
|
|
96
|
+
},
|
|
97
|
+
encrypt: false,
|
|
98
|
+
}),
|
|
99
|
+
__metadata("design:type", String)
|
|
100
|
+
], SshAccess.prototype, "socksProxy", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
AccessInput({
|
|
103
|
+
title: "是否Windows",
|
|
104
|
+
helper: "如果是Windows主机,请勾选此项\n并且需要windows[安装OpenSSH](https://certd.docmirror.cn/guide/use/host/windows.html)",
|
|
105
|
+
component: {
|
|
106
|
+
name: "a-switch",
|
|
107
|
+
vModel: "checked",
|
|
108
|
+
},
|
|
109
|
+
}),
|
|
110
|
+
__metadata("design:type", Object)
|
|
111
|
+
], SshAccess.prototype, "windows", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
AccessInput({
|
|
114
|
+
title: "命令编码",
|
|
115
|
+
helper: "如果是Windows主机,且出现乱码了,请尝试设置为GBK",
|
|
116
|
+
component: {
|
|
117
|
+
name: "a-select",
|
|
118
|
+
vModel: "value",
|
|
119
|
+
options: [
|
|
120
|
+
{ value: "", label: "默认" },
|
|
121
|
+
{ value: "GBK", label: "GBK" },
|
|
122
|
+
{ value: "UTF8", label: "UTF-8" },
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
}),
|
|
126
|
+
__metadata("design:type", String)
|
|
127
|
+
], SshAccess.prototype, "encoding", void 0);
|
|
128
|
+
SshAccess = __decorate([
|
|
129
|
+
IsAccess({
|
|
130
|
+
name: "ssh",
|
|
131
|
+
title: "主机登录授权",
|
|
132
|
+
desc: "",
|
|
133
|
+
icon: "clarity:host-line",
|
|
134
|
+
input: {},
|
|
135
|
+
})
|
|
136
|
+
], SshAccess);
|
|
137
|
+
export { SshAccess };
|
|
138
|
+
new SshAccess();
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NoLWFjY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zc2gvc3NoLWFjY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVU3RCxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVUsU0FBUSxVQUFVO0lBUXZDLElBQUksQ0FBVTtJQVVkLElBQUksQ0FBVTtJQU1kLFFBQVEsQ0FBVTtJQVVsQixRQUFRLENBQVU7SUFVbEIsVUFBVSxDQUFVO0lBV3BCLFVBQVUsQ0FBVTtJQVlwQixVQUFVLENBQVU7SUFVcEIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQWVoQixRQUFRLENBQVM7Q0FDbEIsQ0FBQTtBQXJGQztJQVBDLFdBQVcsQ0FBQztRQUNYLEtBQUssRUFBRSxNQUFNO1FBQ2IsU0FBUyxFQUFFO1lBQ1QsV0FBVyxFQUFFLFdBQVc7U0FDekI7UUFDRCxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7O3VDQUNZO0FBVWQ7SUFUQyxXQUFXLENBQUM7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLEtBQUssRUFBRSxFQUFFO1FBQ1QsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixXQUFXLEVBQUUsSUFBSTtTQUNsQjtRQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7S0FDN0MsQ0FBQzs7dUNBQ1k7QUFNZDtJQUxDLFdBQVcsQ0FBQztRQUNYLEtBQUssRUFBRSxLQUFLO1FBQ1osS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQzdDLENBQUM7OzJDQUNnQjtBQVVsQjtJQVRDLFdBQVcsQ0FBQztRQUNYLEtBQUssRUFBRSxJQUFJO1FBQ1gsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixNQUFNLEVBQUUsT0FBTztTQUNoQjtRQUNELE9BQU8sRUFBRSxJQUFJO1FBQ2IsTUFBTSxFQUFFLGFBQWE7S0FDdEIsQ0FBQzs7MkNBQ2dCO0FBVWxCO0lBVEMsV0FBVyxDQUFDO1FBQ1gsS0FBSyxFQUFFLE1BQU07UUFDYixNQUFNLEVBQUUsV0FBVztRQUNuQixTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsWUFBWTtZQUNsQixNQUFNLEVBQUUsT0FBTztTQUNoQjtRQUNELE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQzs7NkNBQ2tCO0FBV3BCO0lBVEMsV0FBVyxDQUFDO1FBQ1gsS0FBSyxFQUFFLE1BQU07UUFDYixNQUFNLEVBQUUsYUFBYTtRQUNyQixTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE1BQU0sRUFBRSxPQUFPO1NBQ2hCO1FBQ0QsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDOzs2Q0FDa0I7QUFZcEI7SUFWQyxXQUFXLENBQUM7UUFDWCxLQUFLLEVBQUUsU0FBUztRQUNoQixNQUFNLEVBQUUsK0NBQStDO1FBQ3ZELFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixXQUFXLEVBQUUsa0NBQWtDO1NBQ2hEO1FBQ0QsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDOzs2Q0FDa0I7QUFVcEI7SUFSQyxXQUFXLENBQUM7UUFDWCxLQUFLLEVBQUUsV0FBVztRQUNsQixNQUFNLEVBQUUsb0dBQW9HO1FBQzVHLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ2xCO0tBQ0YsQ0FBQzs7MENBQ2M7QUFlaEI7SUFiQyxXQUFXLENBQUM7UUFDWCxLQUFLLEVBQUUsTUFBTTtRQUNiLE1BQU0sRUFBRSwrQkFBK0I7UUFDdkMsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7Z0JBQzFCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM5QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUNsQztTQUNGO0tBQ0YsQ0FBQzs7MkNBQ2U7QUE1Rk4sU0FBUztJQVByQixRQUFRLENBQUM7UUFDUixJQUFJLEVBQUUsS0FBSztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsSUFBSSxFQUFFLEVBQUU7UUFDUixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQztHQUNXLFNBQVMsQ0E2RnJCOztBQUVELElBQUksU0FBUyxFQUFFLENBQUMifQ==
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import ssh2 from "ssh2";
|
|
2
|
+
import { ILogger } from "@certd/basic";
|
|
3
|
+
import { SshAccess } from "./ssh-access.js";
|
|
4
|
+
export declare class AsyncSsh2Client {
|
|
5
|
+
conn: ssh2.Client;
|
|
6
|
+
logger: ILogger;
|
|
7
|
+
connConf: SshAccess & ssh2.ConnectConfig;
|
|
8
|
+
windows: boolean;
|
|
9
|
+
encoding: string;
|
|
10
|
+
constructor(connConf: SshAccess, logger: ILogger);
|
|
11
|
+
convert(iconv: any, buffer: Buffer): any;
|
|
12
|
+
connect(): Promise<unknown>;
|
|
13
|
+
getSftp(): Promise<unknown>;
|
|
14
|
+
fastPut(options: {
|
|
15
|
+
sftp: any;
|
|
16
|
+
localPath: string;
|
|
17
|
+
remotePath: string;
|
|
18
|
+
}): Promise<unknown>;
|
|
19
|
+
exec(script: string, opts?: {
|
|
20
|
+
throwOnStdErr?: boolean;
|
|
21
|
+
}): Promise<string>;
|
|
22
|
+
shell(script: string | string[]): Promise<string>;
|
|
23
|
+
end(): void;
|
|
24
|
+
private parseSocksProxyFromUri;
|
|
25
|
+
}
|
|
26
|
+
export declare class SshClient {
|
|
27
|
+
logger: ILogger;
|
|
28
|
+
constructor(logger: ILogger);
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* @param connectConf
|
|
32
|
+
{
|
|
33
|
+
host: '192.168.100.100',
|
|
34
|
+
port: 22,
|
|
35
|
+
username: 'frylock',
|
|
36
|
+
password: 'nodejsrules'
|
|
37
|
+
}
|
|
38
|
+
* @param options
|
|
39
|
+
*/
|
|
40
|
+
uploadFiles(options: {
|
|
41
|
+
connectConf: SshAccess;
|
|
42
|
+
transports: any;
|
|
43
|
+
mkdirs: boolean;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
isCmd(conn: AsyncSsh2Client): Promise<boolean>;
|
|
46
|
+
getIsCmd(options: {
|
|
47
|
+
connectConf: SshAccess;
|
|
48
|
+
}): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* Set-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
|
|
52
|
+
* Start-Service sshd
|
|
53
|
+
*
|
|
54
|
+
* Set-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\cmd.exe"
|
|
55
|
+
* @param options
|
|
56
|
+
*/
|
|
57
|
+
exec(options: {
|
|
58
|
+
connectConf: SshAccess;
|
|
59
|
+
script: string | Array<string>;
|
|
60
|
+
env?: any;
|
|
61
|
+
}): Promise<string>;
|
|
62
|
+
shell(options: {
|
|
63
|
+
connectConf: SshAccess;
|
|
64
|
+
script: string | Array<string>;
|
|
65
|
+
}): Promise<string>;
|
|
66
|
+
_call<T = any>(options: {
|
|
67
|
+
connectConf: SshAccess;
|
|
68
|
+
callable: (conn: AsyncSsh2Client) => Promise<T>;
|
|
69
|
+
}): Promise<T>;
|
|
70
|
+
}
|