@certd/plugin-lib 1.33.6 → 1.33.8

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/aliyun/lib/oss-client.d.ts +4 -2
  3. package/dist/aliyun/lib/oss-client.js +17 -1
  4. package/dist/ftp/client.d.ts +3 -1
  5. package/dist/ftp/client.js +16 -2
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +3 -1
  8. package/dist/oss/api.d.ts +46 -0
  9. package/dist/oss/api.js +48 -0
  10. package/dist/oss/factory.d.ts +10 -0
  11. package/dist/oss/factory.js +46 -0
  12. package/dist/oss/impls/alioss.d.ts +13 -0
  13. package/dist/oss/impls/alioss.js +55 -0
  14. package/dist/oss/impls/ftp.d.ts +12 -0
  15. package/dist/oss/impls/ftp.js +75 -0
  16. package/dist/oss/impls/qiniuoss.d.ts +13 -0
  17. package/dist/oss/impls/qiniuoss.js +47 -0
  18. package/dist/oss/impls/s3.d.ts +13 -0
  19. package/dist/oss/impls/s3.js +89 -0
  20. package/dist/oss/impls/sftp.d.ts +10 -0
  21. package/dist/oss/impls/sftp.js +79 -0
  22. package/dist/oss/impls/ssh.d.ts +11 -0
  23. package/dist/oss/impls/ssh.js +55 -0
  24. package/dist/oss/impls/tencentcos.d.ts +13 -0
  25. package/dist/oss/impls/tencentcos.js +51 -0
  26. package/dist/oss/index.d.ts +2 -0
  27. package/dist/oss/index.js +3 -0
  28. package/dist/qiniu/lib/sdk.d.ts +4 -1
  29. package/dist/qiniu/lib/sdk.js +45 -9
  30. package/dist/s3/access.d.ts +23 -0
  31. package/dist/s3/access.js +108 -0
  32. package/dist/s3/index.d.ts +1 -0
  33. package/dist/s3/index.js +2 -0
  34. package/dist/ssh/ssh-access.d.ts +1 -0
  35. package/dist/ssh/ssh-access.js +13 -1
  36. package/dist/ssh/ssh.d.ts +18 -0
  37. package/dist/ssh/ssh.js +88 -25
  38. package/dist/tencent/lib/cos-client.d.ts +3 -1
  39. package/dist/tencent/lib/cos-client.js +42 -2
  40. package/package.json +6 -5
@@ -0,0 +1,89 @@
1
+ import { BaseOssClient } from "../api.js";
2
+ import path from "node:path";
3
+ import fs from "fs";
4
+ import dayjs from "dayjs";
5
+ export default class S3OssClientImpl extends BaseOssClient {
6
+ client;
7
+ join(...strs) {
8
+ const str = super.join(...strs);
9
+ if (str.startsWith("/")) {
10
+ return str.substring(1);
11
+ }
12
+ return str;
13
+ }
14
+ async init() {
15
+ // import { S3Client } from "@aws-sdk/client-s3";
16
+ //@ts-ignore
17
+ const { S3Client } = await import("@aws-sdk/client-s3");
18
+ this.client = new S3Client({
19
+ forcePathStyle: true,
20
+ //@ts-ignore
21
+ s3ForcePathStyle: true,
22
+ credentials: {
23
+ accessKeyId: this.access.accessKeyId, // 默认 MinIO 访问密钥
24
+ secretAccessKey: this.access.secretAccessKey, // 默认 MinIO 秘密密钥
25
+ },
26
+ region: "us-east-1",
27
+ endpoint: this.access.endpoint,
28
+ });
29
+ }
30
+ async download(filePath, savePath) {
31
+ // @ts-ignore
32
+ const { GetObjectCommand } = await import("@aws-sdk/client-s3");
33
+ const key = path.join(this.rootDir, filePath);
34
+ const params = {
35
+ Bucket: this.access.bucket, // The name of the bucket. For example, 'sample_bucket_101'.
36
+ Key: key, // The name of the object. For example, 'sample_upload.txt'.
37
+ };
38
+ const res = await this.client.send(new GetObjectCommand({ ...params }));
39
+ const fileContent = fs.createWriteStream(savePath);
40
+ res.Body.pipe(fileContent);
41
+ this.logger.info(`文件下载成功: ${savePath}`);
42
+ }
43
+ async listDir(dir) {
44
+ // @ts-ignore
45
+ const { ListObjectsCommand } = await import("@aws-sdk/client-s3");
46
+ const dirKey = this.join(this.rootDir, dir);
47
+ const params = {
48
+ Bucket: this.access.bucket, // The name of the bucket. For example, 'sample_bucket_101'.
49
+ Prefix: dirKey, // The name of the object. For example, 'sample_upload.txt'.
50
+ };
51
+ const res = await this.client.send(new ListObjectsCommand({ ...params }));
52
+ return res.Contents.map(item => {
53
+ return {
54
+ path: item.Key,
55
+ size: item.Size,
56
+ lastModified: dayjs(item.LastModified).valueOf(),
57
+ };
58
+ });
59
+ }
60
+ async upload(filePath, fileContent) {
61
+ // @ts-ignore
62
+ const { PutObjectCommand } = await import("@aws-sdk/client-s3");
63
+ const key = path.join(this.rootDir, filePath);
64
+ this.logger.info(`开始上传文件: ${key}`);
65
+ const params = {
66
+ Bucket: this.access.bucket, // The name of the bucket. For example, 'sample_bucket_101'.
67
+ Key: key, // The name of the object. For example, 'sample_upload.txt'.
68
+ };
69
+ if (typeof fileContent === "string") {
70
+ fileContent = fs.createReadStream(fileContent);
71
+ }
72
+ await this.client.send(new PutObjectCommand({ Body: fileContent, ...params }));
73
+ this.logger.info(`文件上传成功: ${filePath}`);
74
+ }
75
+ async remove(filePath, opts) {
76
+ if (opts?.joinRootDir !== false) {
77
+ filePath = this.join(this.rootDir, filePath);
78
+ }
79
+ const key = filePath;
80
+ // @ts-ignore
81
+ const { DeleteObjectCommand } = await import("@aws-sdk/client-s3");
82
+ await this.client.send(new DeleteObjectCommand({
83
+ Bucket: this.access.bucket,
84
+ Key: key,
85
+ }));
86
+ this.logger.info(`文件删除成功: ${key}`);
87
+ }
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3NzL2ltcGxzL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSxXQUFXLENBQUM7QUFDdkQsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFnQixTQUFRLGFBQXVCO0lBQ2xFLE1BQU0sQ0FBTTtJQUNaLElBQUksQ0FBQyxHQUFHLElBQWM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixpREFBaUQ7UUFDakQsWUFBWTtRQUNaLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDekIsY0FBYyxFQUFFLElBQUk7WUFDcEIsWUFBWTtZQUNaLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsV0FBVyxFQUFFO2dCQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0I7Z0JBQ3RELGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxnQkFBZ0I7YUFDL0Q7WUFDRCxNQUFNLEVBQUUsV0FBVztZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFD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
@@ -0,0 +1,10 @@
1
+ import { BaseOssClient, OssFileItem } from "../api.js";
2
+ import { SftpAccess } from "../../ssh/index.js";
3
+ export default class SftpOssClientImpl extends BaseOssClient<SftpAccess> {
4
+ download(fileName: string, savePath: string): Promise<void>;
5
+ listDir(dir: string): Promise<OssFileItem[]>;
6
+ upload(filePath: string, fileContent: Buffer | string): Promise<void>;
7
+ remove(filePath: string, opts?: {
8
+ joinRootDir?: boolean;
9
+ }): Promise<void>;
10
+ }
@@ -0,0 +1,79 @@
1
+ import { BaseOssClient } from "../api.js";
2
+ import path from "path";
3
+ import os from "os";
4
+ import fs from "fs";
5
+ import { SshClient } from "../../ssh/index.js";
6
+ export default class SftpOssClientImpl extends BaseOssClient {
7
+ async download(fileName, savePath) {
8
+ const path = this.join(this.rootDir, fileName);
9
+ const client = new SshClient(this.logger);
10
+ const access = await this.ctx.accessService.getById(this.access.sshAccess);
11
+ await client.download({
12
+ connectConf: access,
13
+ filePath: path,
14
+ savePath,
15
+ });
16
+ }
17
+ async listDir(dir) {
18
+ const path = this.join(this.rootDir, dir);
19
+ const client = new SshClient(this.logger);
20
+ const access = await this.ctx.accessService.getById(this.access.sshAccess);
21
+ const res = await client.listDir({
22
+ connectConf: access,
23
+ dir: path,
24
+ });
25
+ return res.map(item => {
26
+ return {
27
+ path: this.join(path, item.filename),
28
+ size: item.size,
29
+ lastModified: item.attrs.atime * 1000,
30
+ };
31
+ });
32
+ }
33
+ async upload(filePath, fileContent) {
34
+ let tmpFilePath = fileContent;
35
+ if (typeof fileContent !== "string") {
36
+ tmpFilePath = path.join(os.tmpdir(), "cert", "oss", filePath);
37
+ const dir = path.dirname(tmpFilePath);
38
+ if (!fs.existsSync(dir)) {
39
+ fs.mkdirSync(dir, { recursive: true });
40
+ }
41
+ fs.writeFileSync(tmpFilePath, fileContent);
42
+ }
43
+ const access = await this.ctx.accessService.getById(this.access.sshAccess);
44
+ const key = this.join(this.rootDir, filePath);
45
+ try {
46
+ const client = new SshClient(this.logger);
47
+ await client.uploadFiles({
48
+ connectConf: access,
49
+ mkdirs: true,
50
+ transports: [
51
+ {
52
+ localPath: tmpFilePath,
53
+ remotePath: key,
54
+ },
55
+ ],
56
+ uploadType: "sftp",
57
+ opts: {
58
+ mode: this.access?.fileMode ?? undefined,
59
+ },
60
+ });
61
+ }
62
+ finally {
63
+ // Remove temp file
64
+ fs.unlinkSync(tmpFilePath);
65
+ }
66
+ }
67
+ async remove(filePath, opts) {
68
+ const access = await this.ctx.accessService.getById(this.access.sshAccess);
69
+ const client = new SshClient(this.logger);
70
+ if (opts?.joinRootDir !== false) {
71
+ filePath = this.join(this.rootDir, filePath);
72
+ }
73
+ await client.removeFiles({
74
+ connectConf: access,
75
+ files: [filePath],
76
+ });
77
+ }
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Z0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vc3MvaW1wbHMvc2Z0cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sV0FBVyxDQUFDO0FBQ3ZELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBeUIsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEUsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxhQUF5QjtJQUN0RSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNwQixXQUFXLEVBQUUsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFXO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsTUFB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
@@ -0,0 +1,11 @@
1
+ import { BaseOssClient, OssClientRemoveByOpts, OssFileItem } from "../api.js";
2
+ import { SshAccess } from "../../ssh/index.js";
3
+ export default class SshOssClientImpl extends BaseOssClient<SshAccess> {
4
+ download(fileName: string, savePath: string): Promise<void>;
5
+ removeBy(removeByOpts: OssClientRemoveByOpts): Promise<void>;
6
+ listDir(dir: string): Promise<OssFileItem[]>;
7
+ upload(filePath: string, fileContent: Buffer): Promise<void>;
8
+ remove(filePath: string, opts?: {
9
+ joinRootDir?: boolean;
10
+ }): Promise<void>;
11
+ }
@@ -0,0 +1,55 @@
1
+ import { BaseOssClient } from "../api.js";
2
+ import path from "path";
3
+ import os from "os";
4
+ import fs from "fs";
5
+ import { SshClient } from "../../ssh/index.js";
6
+ //废弃
7
+ export default class SshOssClientImpl extends BaseOssClient {
8
+ download(fileName, savePath) {
9
+ throw new Error("Method not implemented.");
10
+ }
11
+ removeBy(removeByOpts) {
12
+ throw new Error("Method not implemented.");
13
+ }
14
+ listDir(dir) {
15
+ throw new Error("Method not implemented.");
16
+ }
17
+ async upload(filePath, fileContent) {
18
+ const tmpFilePath = path.join(os.tmpdir(), "cert", "http", filePath);
19
+ // Write file to temp path
20
+ const dir = path.dirname(tmpFilePath);
21
+ if (!fs.existsSync(dir)) {
22
+ fs.mkdirSync(dir, { recursive: true });
23
+ }
24
+ fs.writeFileSync(tmpFilePath, fileContent);
25
+ const key = this.rootDir + filePath;
26
+ try {
27
+ const client = new SshClient(this.logger);
28
+ await client.uploadFiles({
29
+ connectConf: this.access,
30
+ mkdirs: true,
31
+ transports: [
32
+ {
33
+ localPath: tmpFilePath,
34
+ remotePath: key,
35
+ },
36
+ ],
37
+ });
38
+ }
39
+ finally {
40
+ // Remove temp file
41
+ fs.unlinkSync(tmpFilePath);
42
+ }
43
+ }
44
+ async remove(filePath, opts) {
45
+ if (opts?.joinRootDir !== false) {
46
+ filePath = this.join(this.rootDir, filePath);
47
+ }
48
+ const client = new SshClient(this.logger);
49
+ await client.removeFiles({
50
+ connectConf: this.access,
51
+ files: [filePath],
52
+ });
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29zcy9pbXBscy9zc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBc0MsTUFBTSxXQUFXLENBQUM7QUFDOUUsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFELElBQUk7QUFDSixNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFpQixTQUFRLGFBQXdCO0lBQ3BFLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsUUFBUSxDQUFDLFlBQW1DO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQVc7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsV0FBbUI7UUFDaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVyRSwwQkFBMEI7UUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDeEIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osVUFBVSxFQUFFO29CQUNWO3dCQUNFLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixVQUFVLEVBQUUsR0FBRztxQkFDaEI7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO2dCQUFTLENBQUM7WUFDVCxtQkFBbUI7WUFDbkIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBZ0IsRUFBRSxJQUFnQztRQUM3RCxJQUFJLElBQUksRUFBRSxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDeEIsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
@@ -0,0 +1,13 @@
1
+ import { TencentCosAccess, TencentCosClient } from "../../tencent/index.js";
2
+ import { BaseOssClient, OssFileItem } from "../api.js";
3
+ export default class TencentOssClientImpl extends BaseOssClient<TencentCosAccess> {
4
+ client: TencentCosClient;
5
+ join(...strs: string[]): string;
6
+ init(): Promise<void>;
7
+ download(filePath: string, savePath: string): Promise<void>;
8
+ listDir(dir: string): Promise<OssFileItem[]>;
9
+ upload(filePath: string, fileContent: Buffer | string): Promise<void>;
10
+ remove(filePath: string, opts?: {
11
+ joinRootDir?: boolean;
12
+ }): Promise<void>;
13
+ }
@@ -0,0 +1,51 @@
1
+ import dayjs from "dayjs";
2
+ import { TencentCosClient } from "../../tencent/index.js";
3
+ import { BaseOssClient } from "../api.js";
4
+ export default class TencentOssClientImpl extends BaseOssClient {
5
+ client;
6
+ join(...strs) {
7
+ const str = super.join(...strs);
8
+ if (str.startsWith("/")) {
9
+ return str.substring(1);
10
+ }
11
+ return str;
12
+ }
13
+ async init() {
14
+ const access = await this.ctx.accessService.getById(this.access.accessId);
15
+ this.client = new TencentCosClient({
16
+ access: access,
17
+ logger: this.logger,
18
+ region: this.access.region,
19
+ bucket: this.access.bucket,
20
+ });
21
+ }
22
+ async download(filePath, savePath) {
23
+ const key = this.join(this.rootDir, filePath);
24
+ await this.client.downloadFile(key, savePath);
25
+ }
26
+ async listDir(dir) {
27
+ const dirKey = this.join(this.rootDir, dir) + "/";
28
+ // @ts-ignore
29
+ const res = await this.client.listDir(dirKey);
30
+ return res.map(item => {
31
+ return {
32
+ path: item.Key,
33
+ size: item.Size,
34
+ lastModified: dayjs(item.LastModified).valueOf(),
35
+ };
36
+ });
37
+ }
38
+ async upload(filePath, fileContent) {
39
+ const key = this.join(this.rootDir, filePath);
40
+ await this.client.uploadFile(key, fileContent);
41
+ this.logger.info(`文件上传成功: ${filePath}`);
42
+ }
43
+ async remove(filePath, opts) {
44
+ if (opts?.joinRootDir !== false) {
45
+ filePath = this.join(this.rootDir, filePath);
46
+ }
47
+ await this.client.removeFile(filePath);
48
+ this.logger.info(`文件删除成功: ${filePath}`);
49
+ }
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuY2VudGNvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vc3MvaW1wbHMvdGVuY2VudGNvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFtQyxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSxXQUFXLENBQUM7QUFFdkQsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQkFBcUIsU0FBUSxhQUErQjtJQUMvRSxNQUFNLENBQW1CO0lBRXpCLElBQUksQ0FBQyxHQUFHLElBQWM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBZ0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDakMsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQVc7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNsRCxhQUFhO1FBQ2IsTUFBTSxHQUFHLEdBQVUsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRTthQUNqRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFnQixFQUFFLFdBQTRCO1FBQ3pELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBZ0IsRUFBRSxJQUFnQztRQUM3RCxJQUFJLElBQUksRUFBRSxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIn0=
@@ -0,0 +1,2 @@
1
+ export * from "./factory.js";
2
+ export * from "./api.js";
@@ -0,0 +1,3 @@
1
+ export * from "./factory.js";
2
+ export * from "./api.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3NzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDIn0=
@@ -26,6 +26,9 @@ export declare class QiniuClient {
26
26
  body?: any;
27
27
  contentType: string;
28
28
  }): Promise<unknown>;
29
- uploadFile(bucket: string, key: string, content: Buffer): Promise<any>;
29
+ uploadFile(bucket: string, key: string, content: Buffer | string): Promise<any>;
30
30
  removeFile(bucket: string, key: string): Promise<void>;
31
+ downloadFile(bucket: string, path: string, savePath: string): Promise<void>;
32
+ private getBucketManager;
33
+ listDir(bucket: string, path: string): Promise<import("qiniu/StorageResponseInterface.js").GetObjectsResult & import("qiniu").httpc.ResponseError>;
31
34
  }
@@ -1,3 +1,5 @@
1
+ import { utils } from "@certd/basic";
2
+ import fs from "fs";
1
3
  export class QiniuClient {
2
4
  http;
3
5
  access;
@@ -95,8 +97,16 @@ export class QiniuClient {
95
97
  const config = new qiniu.conf.Config();
96
98
  const formUploader = new qiniu.form_up.FormUploader(config);
97
99
  const putExtra = new qiniu.form_up.PutExtra();
98
- // 文件上传
99
- const { data, resp } = await formUploader.put(uploadToken, key, content, putExtra);
100
+ let res = {};
101
+ if (typeof content === "string") {
102
+ const readableStream = fs.createReadStream(content);
103
+ res = await formUploader.putStream(uploadToken, key, readableStream, putExtra);
104
+ }
105
+ else {
106
+ // 文件上传
107
+ res = await formUploader.put(uploadToken, key, content, putExtra);
108
+ }
109
+ const { data, resp } = res;
100
110
  if (resp.statusCode === 200) {
101
111
  this.logger.info("文件上传成功:" + key);
102
112
  return data;
@@ -107,12 +117,7 @@ export class QiniuClient {
107
117
  }
108
118
  }
109
119
  async removeFile(bucket, key) {
110
- const sdk = await import("qiniu");
111
- const qiniu = sdk.default;
112
- const mac = new qiniu.auth.digest.Mac(this.access.accessKey, this.access.secretKey);
113
- const config = new qiniu.conf.Config();
114
- config.useHttpsDomain = true;
115
- const bucketManager = new qiniu.rs.BucketManager(mac, config);
120
+ const bucketManager = await this.getBucketManager();
116
121
  const { resp } = await bucketManager.delete(bucket, key);
117
122
  if (resp.statusCode === 200) {
118
123
  this.logger.info("文件删除成功:" + key);
@@ -122,5 +127,36 @@ export class QiniuClient {
122
127
  throw new Error("删除失败:" + JSON.stringify(resp));
123
128
  }
124
129
  }
130
+ async downloadFile(bucket, path, savePath) {
131
+ const bucketManager = await this.getBucketManager();
132
+ const privateBucketDomain = `http://${bucket}.qiniudn.com`;
133
+ const deadline = Math.floor(Date.now() / 1000) + 3600; // 1小时过期
134
+ const privateDownloadUrl = bucketManager.privateDownloadUrl(privateBucketDomain, path, deadline);
135
+ await utils.request.download({
136
+ http: this.http,
137
+ logger: this.logger,
138
+ config: {
139
+ url: privateDownloadUrl,
140
+ method: "get",
141
+ },
142
+ savePath,
143
+ });
144
+ }
145
+ async getBucketManager() {
146
+ const sdk = await import("qiniu");
147
+ const qiniu = sdk.default;
148
+ const mac = new qiniu.auth.digest.Mac(this.access.accessKey, this.access.secretKey);
149
+ const config = new qiniu.conf.Config();
150
+ config.useHttpsDomain = true;
151
+ return new qiniu.rs.BucketManager(mac, config);
152
+ }
153
+ async listDir(bucket, path) {
154
+ const bucketManager = await this.getBucketManager();
155
+ const res = await bucketManager.listPrefix(bucket, {
156
+ prefix: path,
157
+ limit: 1000,
158
+ });
159
+ return res.data;
160
+ }
125
161
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Fpbml1L2xpYi9zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLFdBQVc7SUFDdEIsSUFBSSxDQUFhO0lBQ2pCLE1BQU0sQ0FBYztJQUNwQixNQUFNLENBQVU7SUFDaEIsWUFBWSxJQUFnRTtRQUMxRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFtQixFQUFFLFFBQWlCO1FBQ3JELE1BQU0sR0FBRyxHQUFHLCtCQUErQixDQUFDO1FBRTVDLE1BQU0sSUFBSSxHQUFHO1lBQ1gsSUFBSSxFQUFFLFFBQVE7WUFDZCxXQUFXLEVBQUUsT0FBTztZQUNwQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDYixDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXdDO1FBQ3JELE1BQU0sR0FBRyxHQUFHLGlDQUFpQyxDQUFDO1FBQzlDLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ25CLE1BQU0sR0FBRyxHQUFHLHFDQUFxQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0s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
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Fpbml1L2xpYi9zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBTXBCLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLElBQUksQ0FBYTtJQUNqQixNQUFNLENBQWM7SUFDcEIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksSUFBZ0U7UUFDMUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBbUIsRUFBRSxRQUFpQjtRQUNyRCxNQUFNLEdBQUcsR0FBRywrQkFBK0IsQ0FBQztRQUU1QyxNQUFNLElBQUksR0FBRztZQUNYLElBQUksRUFBRSxRQUFRO1lBQ2QsV0FBVyxFQUFFLE9BQU87WUFDcEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2IsQ0FBQztRQUVGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUF3QztRQUNyRCxNQUFNLEdBQUcsR0FBRyxpQ0FBaUMsQ0FBQztRQUM5QyxPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxL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
@@ -0,0 +1,23 @@
1
+ import { BaseAccess } from "@certd/pipeline";
2
+ /**
3
+ * 这个注解将注册一个授权配置
4
+ * 在certd的后台管理系统中,用户可以选择添加此类型的授权
5
+ */
6
+ export declare class S3Access extends BaseAccess {
7
+ endpoint: string;
8
+ /**
9
+ * const minioClient = new S3Client({
10
+ * endpoint: "http://localhost:9000",
11
+ * forcePathStyle: true,
12
+ * credentials: {
13
+ * accessKeyId: "minioadmin", // 默认 MinIO 访问密钥
14
+ * secretAccessKey: "minioadmin", // 默认 MinIO 秘密密钥
15
+ * },
16
+ * region: "us-east-1",
17
+ * });
18
+ */
19
+ accessKeyId: string;
20
+ secretAccessKey: string;
21
+ region: string;
22
+ bucket: string;
23
+ }
@@ -0,0 +1,108 @@
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
+ /**
12
+ * 这个注解将注册一个授权配置
13
+ * 在certd的后台管理系统中,用户可以选择添加此类型的授权
14
+ */
15
+ let S3Access = class S3Access extends BaseAccess {
16
+ endpoint;
17
+ /**
18
+ * const minioClient = new S3Client({
19
+ * endpoint: "http://localhost:9000",
20
+ * forcePathStyle: true,
21
+ * credentials: {
22
+ * accessKeyId: "minioadmin", // 默认 MinIO 访问密钥
23
+ * secretAccessKey: "minioadmin", // 默认 MinIO 秘密密钥
24
+ * },
25
+ * region: "us-east-1",
26
+ * });
27
+ */
28
+ accessKeyId;
29
+ secretAccessKey;
30
+ region;
31
+ bucket;
32
+ };
33
+ __decorate([
34
+ AccessInput({
35
+ title: "endpoint",
36
+ component: {
37
+ placeholder: "http://xxxxxx:9000",
38
+ name: "a-input",
39
+ vModel: "value",
40
+ },
41
+ helper: "Minio的地址,如果是aws s3 则无需填写",
42
+ required: false,
43
+ }),
44
+ __metadata("design:type", String)
45
+ ], S3Access.prototype, "endpoint", void 0);
46
+ __decorate([
47
+ AccessInput({
48
+ title: "accessKeyId",
49
+ component: {
50
+ placeholder: "accessKeyId",
51
+ },
52
+ helper: "accessKeyId",
53
+ required: true,
54
+ }),
55
+ __metadata("design:type", String)
56
+ ], S3Access.prototype, "accessKeyId", void 0);
57
+ __decorate([
58
+ AccessInput({
59
+ title: "secretAccessKey",
60
+ component: {
61
+ placeholder: "secretAccessKey",
62
+ component: {
63
+ name: "a-input",
64
+ vModel: "value",
65
+ },
66
+ },
67
+ helper: "secretAccessKey",
68
+ encrypt: true,
69
+ required: true,
70
+ }),
71
+ __metadata("design:type", String)
72
+ ], S3Access.prototype, "secretAccessKey", void 0);
73
+ __decorate([
74
+ AccessInput({
75
+ title: "地区",
76
+ value: "us-east-1",
77
+ component: {
78
+ name: "a-input",
79
+ vModel: "value",
80
+ },
81
+ helper: "region",
82
+ required: true,
83
+ }),
84
+ __metadata("design:type", String)
85
+ ], S3Access.prototype, "region", void 0);
86
+ __decorate([
87
+ AccessInput({
88
+ title: "存储桶",
89
+ component: {
90
+ name: "a-input",
91
+ vModel: "value",
92
+ },
93
+ helper: "bucket 名称",
94
+ required: true,
95
+ }),
96
+ __metadata("design:type", String)
97
+ ], S3Access.prototype, "bucket", void 0);
98
+ S3Access = __decorate([
99
+ IsAccess({
100
+ name: "s3",
101
+ title: "s3/minio授权",
102
+ desc: "S3/minio oss授权",
103
+ icon: "mdi:folder-upload-outline",
104
+ })
105
+ ], S3Access);
106
+ export { S3Access };
107
+ new S3Access();
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3MzL2FjY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRTs7O0dBR0c7QUFPSSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVMsU0FBUSxVQUFVO0lBV3RDLFFBQVEsQ0FBVTtJQUVsQjs7Ozs7Ozs7OztPQVVHO0lBVUgsV0FBVyxDQUFVO0lBZXJCLGVBQWUsQ0FBVTtJQVl6QixNQUFNLENBQVU7SUFXaEIsTUFBTSxDQUFVO0NBQ2pCLENBQUE7QUE3REM7SUFWQyxXQUFXLENBQUM7UUFDWCxLQUFLLEVBQUUsVUFBVTtRQUNqQixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLE9BQU87U0FDaEI7UUFDRCxNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLFFBQVEsRUFBRSxLQUFLO0tBQ2hCLENBQUM7OzBDQUNnQjtBQXNCbEI7SUFSQyxXQUFXLENBQUM7UUFDWCxLQUFLLEVBQUUsYUFBYTtRQUNwQixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsYUFBYTtTQUMzQjtRQUNELE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQzs7NkNBQ21CO0FBZXJCO0lBYkMsV0FBVyxDQUFDO1FBQ1gsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsU0FBUztnQkFDZixNQUFNLEVBQUUsT0FBTzthQUNoQjtTQUNGO1FBQ0QsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixPQUFPLEVBQUUsSUFBSTtRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQzs7aURBQ3VCO0FBWXpCO0lBVkMsV0FBVyxDQUFDO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsV0FBVztRQUNsQixTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxPQUFPO1NBQ2hCO1FBQ0QsTUFBTSxFQUFFLFFBQVE7UUFDaEIsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDOzt3Q0FDYztBQVdoQjtJQVRDLFdBQVcsQ0FBQztRQUNYLEtBQUssRUFBRSxLQUFLO1FBQ1osU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsT0FBTztTQUNoQjtRQUNELE1BQU0sRUFBRSxXQUFXO1FBQ25CLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQzs7d0NBQ2M7QUF2RUwsUUFBUTtJQU5wQixRQUFRLENBQUM7UUFDUixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxZQUFZO1FBQ25CLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsSUFBSSxFQUFFLDJCQUEyQjtLQUNsQyxDQUFDO0dBQ1csUUFBUSxDQXdFcEI7O0FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ export * from "./access.js";
@@ -0,0 +1,2 @@
1
+ export * from "./access.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvczMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMifQ==
@@ -6,6 +6,7 @@ export declare class SshAccess extends BaseAccess {
6
6
  password: string;
7
7
  privateKey: string;
8
8
  passphrase: string;
9
+ pty: boolean;
9
10
  socksProxy: string;
10
11
  windows: boolean;
11
12
  encoding: string;