@certd/plugin-cert 1.24.3 → 1.24.4

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 (45) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/access/eab-access.d.ts +4 -4
  3. package/dist/access/eab-access.js +48 -48
  4. package/dist/access/index.d.ts +1 -1
  5. package/dist/access/index.js +1 -1
  6. package/dist/bundle.js +1 -1
  7. package/dist/d/plugin/cert-plugin/acme.d.ts +2 -0
  8. package/dist/d/plugin/cert-plugin/index.d.ts +1 -0
  9. package/dist/dns-provider/api.d.ts +27 -27
  10. package/dist/dns-provider/api.js +1 -1
  11. package/dist/dns-provider/base.d.ts +8 -8
  12. package/dist/dns-provider/base.js +6 -6
  13. package/dist/dns-provider/decorator.d.ts +3 -3
  14. package/dist/dns-provider/decorator.js +25 -25
  15. package/dist/dns-provider/index.d.ts +4 -4
  16. package/dist/dns-provider/index.js +4 -4
  17. package/dist/dns-provider/registry.d.ts +2 -2
  18. package/dist/dns-provider/registry.js +2 -2
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +3 -3
  21. package/dist/plugin/cert-plugin/acme.d.ts +65 -65
  22. package/dist/plugin/cert-plugin/acme.js +270 -270
  23. package/dist/plugin/cert-plugin/base.d.ts +46 -46
  24. package/dist/plugin/cert-plugin/base.js +280 -284
  25. package/dist/plugin/cert-plugin/cert-reader.d.ts +31 -31
  26. package/dist/plugin/cert-plugin/cert-reader.js +92 -89
  27. package/dist/plugin/cert-plugin/convert.d.ts +21 -21
  28. package/dist/plugin/cert-plugin/convert.js +70 -70
  29. package/dist/plugin/cert-plugin/index.d.ts +18 -18
  30. package/dist/plugin/cert-plugin/index.js +206 -206
  31. package/dist/plugin/cert-plugin/lego/dns.d.ts +1 -1
  32. package/dist/plugin/cert-plugin/lego/dns.js +1 -1
  33. package/dist/plugin/cert-plugin/lego/index.d.ts +17 -17
  34. package/dist/plugin/cert-plugin/lego/index.js +171 -171
  35. package/dist/plugin/cert-plugin/lego.d.ts +16 -16
  36. package/dist/plugin/cert-plugin/lego.js +145 -153
  37. package/dist/plugin/index.d.ts +2 -2
  38. package/dist/plugin/index.js +2 -2
  39. package/package.json +4 -4
  40. package/tsconfig.tsbuildinfo +1 -1
  41. package/dist/plugin-cert.mjs +0 -11786
  42. package/dist/plugin-cert.umd.js +0 -28
  43. package/stats.html +0 -6177
  44. package/test/user.secret.js +0 -7
  45. package/test/user.secret.ts +0 -4
@@ -1,171 +1,171 @@
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 { IsTaskPlugin, pluginGroups, RunStrategy, sp, TaskInput } from "@certd/pipeline";
11
- import { CertReader } from "../cert-reader.js";
12
- import { CertApplyBasePlugin } from "../base.js";
13
- import fs from "fs";
14
- import path from "path";
15
- export { CertReader };
16
- let CertApplyLegoPlugin = class CertApplyLegoPlugin extends CertApplyBasePlugin {
17
- // @TaskInput({
18
- // title: "ACME服务端点",
19
- // default: "https://acme-v02.api.letsencrypt.org/directory",
20
- // component: {
21
- // name: "a-select",
22
- // vModel: "value",
23
- // options: [
24
- // { value: "https://acme-v02.api.letsencrypt.org/directory", label: "Let's Encrypt" },
25
- // { value: "https://letsencrypt.proxy.handsfree.work/directory", label: "Let's Encrypt代理,letsencrypt.org无法访问时使用" },
26
- // ],
27
- // },
28
- // required: true,
29
- // })
30
- acmeServer;
31
- dnsType;
32
- environment;
33
- legoEabAccessId;
34
- customArgs = "";
35
- eab;
36
- async onInstance() {
37
- this.accessService = this.ctx.accessService;
38
- this.logger = this.ctx.logger;
39
- this.userContext = this.ctx.userContext;
40
- this.http = this.ctx.http;
41
- this.lastStatus = this.ctx.lastStatus;
42
- if (this.legoEabAccessId) {
43
- this.eab = await this.accessService.getById(this.legoEabAccessId);
44
- }
45
- }
46
- async onInit() { }
47
- async doCertApply() {
48
- const env = {};
49
- const env_lines = this.environment.split("\n");
50
- for (const line of env_lines) {
51
- const [key, value] = line.trim().split("=");
52
- env[key] = value.trim();
53
- }
54
- let domainArgs = "";
55
- for (const domain of this.domains) {
56
- domainArgs += ` -d "${domain}"`;
57
- }
58
- this.logger.info(`环境变量:${JSON.stringify(env)}`);
59
- let eabArgs = "";
60
- if (this.eab) {
61
- eabArgs = ` --eab "${this.eab.kid}" --kid "${this.eab.kid}" --hmac "${this.eab.hmacKey}"`;
62
- }
63
- const keyType = "-k rsa2048";
64
- const saveDir = `./data/.lego/pipeline_${this.pipeline.id}/`;
65
- const savePathArgs = `--path "${saveDir}"`;
66
- const os_type = process.platform === "win32" ? "windows" : "linux";
67
- const legoPath = path.resolve("./tools", os_type, "lego");
68
- let serverArgs = "";
69
- if (this.acmeServer) {
70
- serverArgs = ` --server ${this.acmeServer}`;
71
- }
72
- const cmds = [
73
- `${legoPath} -a --email "${this.email}" --dns ${this.dnsType} ${keyType} ${domainArgs} ${serverArgs} ${eabArgs} ${savePathArgs} ${this.customArgs || ""} run`,
74
- ];
75
- await sp.spawn({
76
- cmd: cmds,
77
- logger: this.logger,
78
- env,
79
- });
80
- //读取证书文件
81
- // example.com.crt
82
- // example.com.issuer.crt
83
- // example.com.json
84
- // example.com.key
85
- let domain1 = this.domains[0];
86
- domain1 = domain1.replaceAll("*", "_");
87
- const crtPath = path.resolve(saveDir, "certificates", `${domain1}.crt`);
88
- if (fs.existsSync(crtPath) === false) {
89
- throw new Error(`证书文件不存在,证书申请失败:${crtPath}`);
90
- }
91
- const crt = fs.readFileSync(crtPath, "utf8");
92
- const keyPath = path.resolve(saveDir, "certificates", `${domain1}.key`);
93
- const key = fs.readFileSync(keyPath, "utf8");
94
- const csr = "";
95
- const cert = { crt, key, csr };
96
- const certInfo = this.formatCerts(cert);
97
- return new CertReader(certInfo);
98
- }
99
- };
100
- __decorate([
101
- TaskInput({
102
- title: "DNS类型",
103
- component: {
104
- name: "a-input",
105
- vModel: "value",
106
- placeholder: "alidns",
107
- },
108
- helper: "你的域名是通过哪家提供商进行解析的,具体应该配置什么请参考lego文档:https://go-acme.github.io/lego/dns/",
109
- required: true,
110
- }),
111
- __metadata("design:type", String)
112
- ], CertApplyLegoPlugin.prototype, "dnsType", void 0);
113
- __decorate([
114
- TaskInput({
115
- title: "环境变量",
116
- component: {
117
- name: "a-textarea",
118
- vModel: "value",
119
- rows: 4,
120
- placeholder: "ALICLOUD_ACCESS_KEY=abcdefghijklmnopqrstuvwx\nALICLOUD_SECRET_KEY=your-secret-key",
121
- },
122
- required: true,
123
- helper: "一行一条,例如 appKeyId=xxxxx,具体配置请参考lego文档:https://go-acme.github.io/lego/dns/",
124
- }),
125
- __metadata("design:type", String)
126
- ], CertApplyLegoPlugin.prototype, "environment", void 0);
127
- __decorate([
128
- TaskInput({
129
- title: "EAB授权",
130
- component: {
131
- name: "pi-access-selector",
132
- type: "eab",
133
- },
134
- maybeNeed: true,
135
- helper: "如果需要提供EAB授权",
136
- }),
137
- __metadata("design:type", Number)
138
- ], CertApplyLegoPlugin.prototype, "legoEabAccessId", void 0);
139
- __decorate([
140
- TaskInput({
141
- title: "自定义LEGO参数",
142
- component: {
143
- name: "a-input",
144
- vModel: "value",
145
- placeholder: "--dns-timeout 30",
146
- },
147
- helper: "额外的lego命令行参数,参考文档:https://go-acme.github.io/lego/usage/cli/options/",
148
- maybeNeed: true,
149
- }),
150
- __metadata("design:type", Object)
151
- ], CertApplyLegoPlugin.prototype, "customArgs", void 0);
152
- CertApplyLegoPlugin = __decorate([
153
- IsTaskPlugin({
154
- name: "CertApplyLego",
155
- title: "证书申请(Lego)",
156
- group: pluginGroups.cert.key,
157
- desc: "支持海量DNS解析提供商,推荐使用,一样的免费通配符域名证书申请,支持多个域名打到同一个证书上",
158
- default: {
159
- input: {
160
- renewDays: 20,
161
- forceUpdate: false,
162
- },
163
- strategy: {
164
- runStrategy: RunStrategy.AlwaysRun,
165
- },
166
- },
167
- })
168
- ], CertApplyLegoPlugin);
169
- export { CertApplyLegoPlugin };
170
- new CertApplyLegoPlugin();
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2luL2NlcnQtcGx1Z2luL2xlZ28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBUSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBa0J0QixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFvQixTQUFRLG1CQUFtQjtJQUMxRCxlQUFlO0lBQ2YsdUJBQXVCO0lBQ3ZCLCtEQUErRDtJQUMvRCxpQkFBaUI7SUFDakIsd0JBQXdCO0lBQ3hCLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsNkZBQTZGO0lBQzdGLDBIQUEwSDtJQUMxSCxTQUFTO0lBQ1QsT0FBTztJQUNQLG9CQUFvQjtJQUNwQixLQUFLO0lBQ0wsVUFBVSxDQUFVO0lBWXBCLE9BQU8sQ0FBVTtJQWFqQixXQUFXLENBQVU7SUFXckIsZUFBZSxDQUFVO0lBWXpCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFaEIsR0FBRyxDQUFhO0lBRWhCLEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENB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
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 { IsTaskPlugin, pluginGroups, RunStrategy, sp, TaskInput } from "@certd/pipeline";
11
+ import { CertReader } from "../cert-reader.js";
12
+ import { CertApplyBasePlugin } from "../base.js";
13
+ import fs from "fs";
14
+ import path from "path";
15
+ export { CertReader };
16
+ let CertApplyLegoPlugin = class CertApplyLegoPlugin extends CertApplyBasePlugin {
17
+ // @TaskInput({
18
+ // title: "ACME服务端点",
19
+ // default: "https://acme-v02.api.letsencrypt.org/directory",
20
+ // component: {
21
+ // name: "a-select",
22
+ // vModel: "value",
23
+ // options: [
24
+ // { value: "https://acme-v02.api.letsencrypt.org/directory", label: "Let's Encrypt" },
25
+ // { value: "https://letsencrypt.proxy.handsfree.work/directory", label: "Let's Encrypt代理,letsencrypt.org无法访问时使用" },
26
+ // ],
27
+ // },
28
+ // required: true,
29
+ // })
30
+ acmeServer;
31
+ dnsType;
32
+ environment;
33
+ legoEabAccessId;
34
+ customArgs = "";
35
+ eab;
36
+ async onInstance() {
37
+ this.accessService = this.ctx.accessService;
38
+ this.logger = this.ctx.logger;
39
+ this.userContext = this.ctx.userContext;
40
+ this.http = this.ctx.http;
41
+ this.lastStatus = this.ctx.lastStatus;
42
+ if (this.legoEabAccessId) {
43
+ this.eab = await this.accessService.getById(this.legoEabAccessId);
44
+ }
45
+ }
46
+ async onInit() { }
47
+ async doCertApply() {
48
+ const env = {};
49
+ const env_lines = this.environment.split("\n");
50
+ for (const line of env_lines) {
51
+ const [key, value] = line.trim().split("=");
52
+ env[key] = value.trim();
53
+ }
54
+ let domainArgs = "";
55
+ for (const domain of this.domains) {
56
+ domainArgs += ` -d "${domain}"`;
57
+ }
58
+ this.logger.info(`环境变量:${JSON.stringify(env)}`);
59
+ let eabArgs = "";
60
+ if (this.eab) {
61
+ eabArgs = ` --eab "${this.eab.kid}" --kid "${this.eab.kid}" --hmac "${this.eab.hmacKey}"`;
62
+ }
63
+ const keyType = "-k rsa2048";
64
+ const saveDir = `./data/.lego/pipeline_${this.pipeline.id}/`;
65
+ const savePathArgs = `--path "${saveDir}"`;
66
+ const os_type = process.platform === "win32" ? "windows" : "linux";
67
+ const legoPath = path.resolve("./tools", os_type, "lego");
68
+ let serverArgs = "";
69
+ if (this.acmeServer) {
70
+ serverArgs = ` --server ${this.acmeServer}`;
71
+ }
72
+ const cmds = [
73
+ `${legoPath} -a --email "${this.email}" --dns ${this.dnsType} ${keyType} ${domainArgs} ${serverArgs} ${eabArgs} ${savePathArgs} ${this.customArgs || ""} run`,
74
+ ];
75
+ await sp.spawn({
76
+ cmd: cmds,
77
+ logger: this.logger,
78
+ env,
79
+ });
80
+ //读取证书文件
81
+ // example.com.crt
82
+ // example.com.issuer.crt
83
+ // example.com.json
84
+ // example.com.key
85
+ let domain1 = this.domains[0];
86
+ domain1 = domain1.replaceAll("*", "_");
87
+ const crtPath = path.resolve(saveDir, "certificates", `${domain1}.crt`);
88
+ if (fs.existsSync(crtPath) === false) {
89
+ throw new Error(`证书文件不存在,证书申请失败:${crtPath}`);
90
+ }
91
+ const crt = fs.readFileSync(crtPath, "utf8");
92
+ const keyPath = path.resolve(saveDir, "certificates", `${domain1}.key`);
93
+ const key = fs.readFileSync(keyPath, "utf8");
94
+ const csr = "";
95
+ const cert = { crt, key, csr };
96
+ const certInfo = this.formatCerts(cert);
97
+ return new CertReader(certInfo);
98
+ }
99
+ };
100
+ __decorate([
101
+ TaskInput({
102
+ title: "DNS类型",
103
+ component: {
104
+ name: "a-input",
105
+ vModel: "value",
106
+ placeholder: "alidns",
107
+ },
108
+ helper: "你的域名是通过哪家提供商进行解析的,具体应该配置什么请参考lego文档:https://go-acme.github.io/lego/dns/",
109
+ required: true,
110
+ }),
111
+ __metadata("design:type", String)
112
+ ], CertApplyLegoPlugin.prototype, "dnsType", void 0);
113
+ __decorate([
114
+ TaskInput({
115
+ title: "环境变量",
116
+ component: {
117
+ name: "a-textarea",
118
+ vModel: "value",
119
+ rows: 4,
120
+ placeholder: "ALICLOUD_ACCESS_KEY=abcdefghijklmnopqrstuvwx\nALICLOUD_SECRET_KEY=your-secret-key",
121
+ },
122
+ required: true,
123
+ helper: "一行一条,例如 appKeyId=xxxxx,具体配置请参考lego文档:https://go-acme.github.io/lego/dns/",
124
+ }),
125
+ __metadata("design:type", String)
126
+ ], CertApplyLegoPlugin.prototype, "environment", void 0);
127
+ __decorate([
128
+ TaskInput({
129
+ title: "EAB授权",
130
+ component: {
131
+ name: "pi-access-selector",
132
+ type: "eab",
133
+ },
134
+ maybeNeed: true,
135
+ helper: "如果需要提供EAB授权",
136
+ }),
137
+ __metadata("design:type", Number)
138
+ ], CertApplyLegoPlugin.prototype, "legoEabAccessId", void 0);
139
+ __decorate([
140
+ TaskInput({
141
+ title: "自定义LEGO参数",
142
+ component: {
143
+ name: "a-input",
144
+ vModel: "value",
145
+ placeholder: "--dns-timeout 30",
146
+ },
147
+ helper: "额外的lego命令行参数,参考文档:https://go-acme.github.io/lego/usage/cli/options/",
148
+ maybeNeed: true,
149
+ }),
150
+ __metadata("design:type", Object)
151
+ ], CertApplyLegoPlugin.prototype, "customArgs", void 0);
152
+ CertApplyLegoPlugin = __decorate([
153
+ IsTaskPlugin({
154
+ name: "CertApplyLego",
155
+ title: "证书申请(Lego)",
156
+ group: pluginGroups.cert.key,
157
+ desc: "支持海量DNS解析提供商,推荐使用,一样的免费通配符域名证书申请,支持多个域名打到同一个证书上",
158
+ default: {
159
+ input: {
160
+ renewDays: 20,
161
+ forceUpdate: false,
162
+ },
163
+ strategy: {
164
+ runStrategy: RunStrategy.AlwaysRun,
165
+ },
166
+ },
167
+ })
168
+ ], CertApplyLegoPlugin);
169
+ export { CertApplyLegoPlugin };
170
+ new CertApplyLegoPlugin();
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2luL2NlcnQtcGx1Z2luL2xlZ28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBUSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBa0JmLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW9CLFNBQVEsbUJBQW1CO0lBQzFELGVBQWU7SUFDZix1QkFBdUI7SUFDdkIsK0RBQStEO0lBQy9ELGlCQUFpQjtJQUNqQix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQiw2RkFBNkY7SUFDN0YsMEhBQTBIO0lBQzFILFNBQVM7SUFDVCxPQUFPO0lBQ1Asb0JBQW9CO0lBQ3BCLEtBQUs7SUFDTCxVQUFVLENBQVU7SUFZcEIsT0FBTyxDQUFVO0lBYWpCLFdBQVcsQ0FBVTtJQVdyQixlQUFlLENBQVU7SUFZekIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVoQixHQUFHLENBQWE7SUFFaEIsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFrQixDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLEtBQW1CLENBQUM7SUFFaEMsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDNUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLFVBQVUsSUFBSSxRQUFRLE1BQU0sR0FBRyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxHQUFHLFdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQztTQUMzRjtRQUNELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztRQUU3QixNQUFNLE9BQU8sR0FBRyx5QkFBeUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUM3RCxNQUFNLFlBQVksR0FBRyxXQUFXLE9BQU8sR0FBRyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixVQUFVLEdBQUcsYUFBYSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDN0M7UUFDRCxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsUUFBUSxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssV0FBVyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxVQUFVLElBQUksVUFBVSxJQUFJLE9BQU8sSUFBSSxZQUFZLEtBQzVILElBQUksQ0FBQyxVQUFVLElBQUksRUFDckIsTUFBTTtTQUNQLENBQUM7UUFFRixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDYixHQUFHLEVBQUUsSUFBSTtZQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixHQUFHO1NBQ0osQ0FBQyxDQUFDO1FBRUgsUUFBUTtRQUNSLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUVsQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sTUFBTSxDQUFDLENBQUM7UUFDeEUsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YsQ0FBQTtBQXpIQztJQUFDLFNBQVMsQ0FBQztRQUNULEtBQUssRUFBRSxPQUFPO1FBQ2QsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLFdBQVcsRUFBRSxRQUFRO1NBQ3RCO1FBQ0QsTUFBTSxFQUFFLHlFQUF5RTtRQUNqRixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7O29EQUNlO0FBRWpCO0lBQUMsU0FBUyxDQUFDO1FBQ1QsS0FBSyxFQUFFLE1BQU07UUFDYixTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsWUFBWTtZQUNsQixNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxDQUFDO1lBQ1AsV0FBVyxFQUFFLG1GQUFtRjtTQUNqRztRQUNELFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFLDBFQUEwRTtLQUNuRixDQUFDOzt3REFDbUI7QUFFckI7SUFBQyxTQUFTLENBQUM7UUFDVCxLQUFLLEVBQUUsT0FBTztRQUNkLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLEtBQUs7U0FDWjtRQUNELFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxFQUFFLGFBQWE7S0FDdEIsQ0FBQzs7NERBQ3VCO0FBRXpCO0lBQUMsU0FBUyxDQUFDO1FBQ1QsS0FBSyxFQUFFLFdBQVc7UUFDbEIsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEM7UUFDRCxNQUFNLEVBQUUscUVBQXFFO1FBQzdFLFNBQVMsRUFBRSxJQUFJO0tBQ2hCLENBQUM7O3VEQUNjO0FBOURMLG1CQUFtQjtJQWYvQixZQUFZLENBQUM7UUFDWixJQUFJLEVBQUUsZUFBZTtRQUNyQixLQUFLLEVBQUUsWUFBWTtRQUNuQixLQUFLLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHO1FBQzVCLElBQUksRUFBRSxpREFBaUQ7UUFDdkQsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFO2dCQUNMLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFdBQVcsRUFBRSxLQUFLO2FBQ25CO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLFdBQVcsRUFBRSxXQUFXLENBQUMsU0FBUzthQUNuQztTQUNGO0tBQ0YsQ0FBQztHQUNXLG1CQUFtQixDQXlJL0I7U0F6SVksbUJBQW1CO0FBMkloQyxJQUFJLG1CQUFtQixFQUFFLENBQUMifQ==
@@ -1,16 +1,16 @@
1
- import type { CertInfo } from "./acme.js";
2
- import { CertReader } from "./cert-reader.js";
3
- import { CertApplyBasePlugin } from "./base.js";
4
- import { EabAccess } from "../../access";
5
- export { CertReader };
6
- export type { CertInfo };
7
- export declare class CertApplyLegoPlugin extends CertApplyBasePlugin {
8
- dnsType: string;
9
- environment: string;
10
- legoEabAccessId: number;
11
- customArgs: string;
12
- eab?: EabAccess;
13
- onInstance(): Promise<void>;
14
- onInit(): Promise<void>;
15
- doCertApply(): Promise<CertReader>;
16
- }
1
+ import type { CertInfo } from "./acme.js";
2
+ import { CertReader } from "./cert-reader.js";
3
+ import { CertApplyBasePlugin } from "./base.js";
4
+ import { EabAccess } from "../../access";
5
+ export { CertReader };
6
+ export type { CertInfo };
7
+ export declare class CertApplyLegoPlugin extends CertApplyBasePlugin {
8
+ dnsType: string;
9
+ environment: string;
10
+ eabAccessId: number;
11
+ customArgs: string;
12
+ eab?: EabAccess;
13
+ onInstance(): Promise<void>;
14
+ onInit(): Promise<void>;
15
+ doCertApply(): Promise<CertReader>;
16
+ }