@push.rocks/smartacme 4.0.8 → 6.0.0

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 (38) hide show
  1. package/LICENSE +1 -1
  2. package/dist_ts/00_commitinfo_data.d.ts +1 -1
  3. package/dist_ts/00_commitinfo_data.js +4 -4
  4. package/dist_ts/handlers/Dns01Handler.d.ts +13 -0
  5. package/dist_ts/handlers/Dns01Handler.js +24 -0
  6. package/dist_ts/handlers/Http01Handler.d.ts +34 -0
  7. package/dist_ts/handlers/Http01Handler.js +32 -0
  8. package/dist_ts/handlers/IChallengeHandler.d.ts +22 -0
  9. package/dist_ts/handlers/IChallengeHandler.js +2 -0
  10. package/dist_ts/handlers/index.d.ts +3 -0
  11. package/dist_ts/handlers/index.js +4 -0
  12. package/dist_ts/index.d.ts +1 -1
  13. package/dist_ts/index.js +2 -2
  14. package/dist_ts/smartacme.classes.cert.d.ts +1 -1
  15. package/dist_ts/smartacme.classes.cert.js +14 -14
  16. package/dist_ts/smartacme.classes.certmanager.d.ts +4 -4
  17. package/dist_ts/smartacme.classes.certmanager.js +7 -7
  18. package/dist_ts/smartacme.classes.certmatcher.d.ts +1 -1
  19. package/dist_ts/smartacme.classes.certmatcher.js +2 -2
  20. package/dist_ts/smartacme.classes.smartacme.d.ts +39 -10
  21. package/dist_ts/smartacme.classes.smartacme.js +150 -48
  22. package/dist_ts/smartacme.plugins.d.ts +4 -2
  23. package/dist_ts/smartacme.plugins.js +6 -3
  24. package/npmextra.json +23 -3
  25. package/package.json +39 -27
  26. package/readme.hints.md +2 -0
  27. package/readme.md +235 -39
  28. package/ts/00_commitinfo_data.ts +3 -3
  29. package/ts/handlers/Dns01Handler.ts +40 -0
  30. package/ts/handlers/Http01Handler.ts +54 -0
  31. package/ts/handlers/IChallengeHandler.ts +22 -0
  32. package/ts/handlers/index.ts +4 -0
  33. package/ts/index.ts +1 -1
  34. package/ts/smartacme.classes.cert.ts +4 -4
  35. package/ts/smartacme.classes.certmanager.ts +9 -9
  36. package/ts/smartacme.classes.certmatcher.ts +1 -1
  37. package/ts/smartacme.classes.smartacme.ts +185 -64
  38. package/ts/smartacme.plugins.ts +5 -2
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (C) 2016, Lossless GmbH
1
+ Copyright (C) 2016, Task Venture Capital GmbH
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of
4
4
  this software and associated documentation files (the "Software"), to deal in
@@ -1,5 +1,5 @@
1
1
  /**
2
- * autocreated commitinfo by @pushrocks/commitinfo
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
3
  */
4
4
  export declare const commitinfo: {
5
5
  name: string;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * autocreated commitinfo by @pushrocks/commitinfo
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartacme',
6
- version: '4.0.8',
7
- description: 'acme with an easy yet powerful interface in TypeScript'
6
+ version: '6.0.0',
7
+ description: 'A TypeScript-based ACME client for LetsEncrypt certificate management with a focus on simplicity and power.'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHdEQUF3RDtDQUN0RSxDQUFBIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDZHQUE2RztDQUMzSCxDQUFBIn0=
@@ -0,0 +1,13 @@
1
+ import * as plugins from '../smartacme.plugins.js';
2
+ import type { IChallengeHandler } from './IChallengeHandler.js';
3
+ /**
4
+ * DNS-01 challenge handler using CloudflareAccount and Smartdns.
5
+ */
6
+ export declare class Dns01Handler implements IChallengeHandler<plugins.tsclass.network.IDnsChallenge> {
7
+ private cf;
8
+ private smartdns;
9
+ constructor(cloudflareAccount: any, smartdnsInstance?: plugins.smartdnsClient.Smartdns);
10
+ getSupportedTypes(): string[];
11
+ prepare(ch: plugins.tsclass.network.IDnsChallenge): Promise<void>;
12
+ cleanup(ch: plugins.tsclass.network.IDnsChallenge): Promise<void>;
13
+ }
@@ -0,0 +1,24 @@
1
+ import * as plugins from '../smartacme.plugins.js';
2
+ /**
3
+ * DNS-01 challenge handler using CloudflareAccount and Smartdns.
4
+ */
5
+ export class Dns01Handler {
6
+ constructor(cloudflareAccount, smartdnsInstance) {
7
+ this.cf = cloudflareAccount;
8
+ this.smartdns = smartdnsInstance ?? new plugins.smartdnsClient.Smartdns({});
9
+ }
10
+ getSupportedTypes() {
11
+ return ['dns-01'];
12
+ }
13
+ async prepare(ch) {
14
+ // set DNS TXT record
15
+ await this.cf.convenience.acmeSetDnsChallenge(ch);
16
+ // wait for DNS propagation
17
+ await this.smartdns.checkUntilAvailable(ch.hostName, 'TXT', ch.challenge, 100, 5000);
18
+ }
19
+ async cleanup(ch) {
20
+ // remove DNS TXT record
21
+ await this.cf.convenience.acmeRemoveDnsChallenge(ch);
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG5zMDFIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvaGFuZGxlcnMvRG5zMDFIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0seUJBQXlCLENBQUM7QUFHbkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUNFLGlCQUFzQixFQUN0QixnQkFBa0Q7UUFFbEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixJQUFJLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBeUM7UUFDNUQscUJBQXFCO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsMkJBQTJCO1FBQzNCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FDckMsRUFBRSxDQUFDLFFBQVEsRUFDWCxLQUFLLEVBQ0wsRUFBRSxDQUFDLFNBQVMsRUFDWixHQUFHLEVBQ0gsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUF5QztRQUM1RCx3QkFBd0I7UUFDeEIsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,34 @@
1
+ import type { IChallengeHandler } from './IChallengeHandler.js';
2
+ /**
3
+ * HTTP-01 ACME challenge handler using file-system webroot.
4
+ * Writes and removes the challenge file under <webroot>/.well-known/acme-challenge/.
5
+ */
6
+ export interface Http01HandlerOptions {
7
+ /**
8
+ * Directory that serves HTTP requests for /.well-known/acme-challenge
9
+ */
10
+ webroot: string;
11
+ }
12
+ export declare class Http01Handler implements IChallengeHandler<{
13
+ type: string;
14
+ token: string;
15
+ keyAuthorization: string;
16
+ webPath: string;
17
+ }> {
18
+ private webroot;
19
+ constructor(options: Http01HandlerOptions);
20
+ getSupportedTypes(): string[];
21
+ prepare(ch: {
22
+ token: string;
23
+ keyAuthorization: string;
24
+ webPath: string;
25
+ }): Promise<void>;
26
+ verify(ch: {
27
+ webPath: string;
28
+ keyAuthorization: string;
29
+ }): Promise<void>;
30
+ cleanup(ch: {
31
+ token: string;
32
+ webPath: string;
33
+ }): Promise<void>;
34
+ }
@@ -0,0 +1,32 @@
1
+ import { promises as fs } from 'fs';
2
+ import * as path from 'path';
3
+ export class Http01Handler {
4
+ constructor(options) {
5
+ this.webroot = options.webroot;
6
+ }
7
+ getSupportedTypes() {
8
+ return ['http-01'];
9
+ }
10
+ async prepare(ch) {
11
+ const relWebPath = ch.webPath.replace(/^\/+/, '');
12
+ const filePath = path.join(this.webroot, relWebPath);
13
+ const dir = path.dirname(filePath);
14
+ await fs.mkdir(dir, { recursive: true });
15
+ await fs.writeFile(filePath, ch.keyAuthorization, 'utf8');
16
+ }
17
+ async verify(ch) {
18
+ // Optional: implement HTTP polling if desired
19
+ return;
20
+ }
21
+ async cleanup(ch) {
22
+ const relWebPath = ch.webPath.replace(/^\/+/, '');
23
+ const filePath = path.join(this.webroot, relWebPath);
24
+ try {
25
+ await fs.unlink(filePath);
26
+ }
27
+ catch {
28
+ // ignore missing file
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cDAxSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2hhbmRsZXJzL0h0dHAwMUhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFjN0IsTUFBTSxPQUFPLGFBQWE7SUFReEIsWUFBWSxPQUE2QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBZ0U7UUFDbkYsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFpRDtRQUNuRSw4Q0FBOEM7UUFDOUMsT0FBTztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQXNDO1FBQ3pELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxzQkFBc0I7UUFDeEIsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Pluggable interface for ACME challenge handlers.
3
+ * Supports DNS-01, HTTP-01, TLS-ALPN-01, or custom challenge types.
4
+ */
5
+ export interface IChallengeHandler<T> {
6
+ /**
7
+ * ACME challenge types this handler supports (e.g. ['dns-01']).
8
+ */
9
+ getSupportedTypes(): string[];
10
+ /**
11
+ * Prepare the challenge: set DNS record, start HTTP/TLS server, etc.
12
+ */
13
+ prepare(ch: T): Promise<void>;
14
+ /**
15
+ * Optional extra verify step (HTTP GET, ALPN handshake).
16
+ */
17
+ verify?(ch: T): Promise<void>;
18
+ /**
19
+ * Clean up resources: remove DNS record, stop server.
20
+ */
21
+ cleanup(ch: T): Promise<void>;
22
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNoYWxsZW5nZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9oYW5kbGVycy9JQ2hhbGxlbmdlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,3 @@
1
+ export type { IChallengeHandler } from './IChallengeHandler.js';
2
+ export { Dns01Handler } from './Dns01Handler.js';
3
+ export { Http01Handler } from './Http01Handler.js';
@@ -0,0 +1,4 @@
1
+ // Removed legacy handler adapter
2
+ export { Dns01Handler } from './Dns01Handler.js';
3
+ export { Http01Handler } from './Http01Handler.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9oYW5kbGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyJ9
@@ -1,2 +1,2 @@
1
1
  export * from './smartacme.classes.smartacme.js';
2
- export { Cert } from './smartacme.classes.cert.js';
2
+ export { SmartacmeCert as Cert } from './smartacme.classes.cert.js';
package/dist_ts/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from './smartacme.classes.smartacme.js';
2
- export { Cert } from './smartacme.classes.cert.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyJ9
2
+ export { SmartacmeCert as Cert } from './smartacme.classes.cert.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLElBQUksSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import * as plugins from './smartacme.plugins.js';
2
- export declare class Cert extends plugins.smartdata.SmartDataDbDoc<Cert, plugins.tsclass.network.ICert> implements plugins.tsclass.network.ICert {
2
+ export declare class SmartacmeCert extends plugins.smartdata.SmartDataDbDoc<SmartacmeCert, plugins.tsclass.network.ICert> implements plugins.tsclass.network.ICert {
3
3
  id: string;
4
4
  domainName: string;
5
5
  created: number;
@@ -9,9 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import * as plugins from './smartacme.plugins.js';
11
11
  import * as interfaces from './interfaces/index.js';
12
- import { CertManager } from './smartacme.classes.certmanager.js';
12
+ import { SmartacmeCertManager } from './smartacme.classes.certmanager.js';
13
13
  import { Collection, svDb, unI } from '@push.rocks/smartdata';
14
- let Cert = class Cert extends plugins.smartdata.SmartDataDbDoc {
14
+ let SmartacmeCert = class SmartacmeCert extends plugins.smartdata.SmartDataDbDoc {
15
15
  isStillValid() {
16
16
  return this.validUntil >= Date.now();
17
17
  }
@@ -39,36 +39,36 @@ let Cert = class Cert extends plugins.smartdata.SmartDataDbDoc {
39
39
  __decorate([
40
40
  unI(),
41
41
  __metadata("design:type", String)
42
- ], Cert.prototype, "id", void 0);
42
+ ], SmartacmeCert.prototype, "id", void 0);
43
43
  __decorate([
44
44
  svDb(),
45
45
  __metadata("design:type", String)
46
- ], Cert.prototype, "domainName", void 0);
46
+ ], SmartacmeCert.prototype, "domainName", void 0);
47
47
  __decorate([
48
48
  svDb(),
49
49
  __metadata("design:type", Number)
50
- ], Cert.prototype, "created", void 0);
50
+ ], SmartacmeCert.prototype, "created", void 0);
51
51
  __decorate([
52
52
  svDb(),
53
53
  __metadata("design:type", String)
54
- ], Cert.prototype, "privateKey", void 0);
54
+ ], SmartacmeCert.prototype, "privateKey", void 0);
55
55
  __decorate([
56
56
  svDb(),
57
57
  __metadata("design:type", String)
58
- ], Cert.prototype, "publicKey", void 0);
58
+ ], SmartacmeCert.prototype, "publicKey", void 0);
59
59
  __decorate([
60
60
  svDb(),
61
61
  __metadata("design:type", String)
62
- ], Cert.prototype, "csr", void 0);
62
+ ], SmartacmeCert.prototype, "csr", void 0);
63
63
  __decorate([
64
64
  svDb(),
65
65
  __metadata("design:type", Number)
66
- ], Cert.prototype, "validUntil", void 0);
67
- Cert = __decorate([
66
+ ], SmartacmeCert.prototype, "validUntil", void 0);
67
+ SmartacmeCert = __decorate([
68
68
  plugins.smartdata.Collection(() => {
69
- return CertManager.activeDB;
69
+ return SmartacmeCertManager.activeDB;
70
70
  }),
71
71
  __metadata("design:paramtypes", [Object])
72
- ], Cert);
73
- export { Cert };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuY2VydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWNtZS5jbGFzc2VzLmNlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUt2RCxJQUFNLElBQUksR0FBVixNQUFNLElBQ1gsU0FBUSxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQW1EO0lBd0J0RSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSx5QkFBeUIsR0FDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNWLE9BQU8sQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3pDLElBQUksRUFBRSxFQUFFO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsV0FBMEM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksVUFBeUM7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQS9DUTtJQUROLEdBQUcsRUFBRTs7Z0NBQ1k7QUFHWDtJQUROLElBQUksRUFBRTs7d0NBQ21CO0FBR25CO0lBRE4sSUFBSSxFQUFFOztxQ0FDZ0I7QUFHaEI7SUFETixJQUFJLEVBQUU7O3dDQUNtQjtBQUduQjtJQUROLElBQUksRUFBRTs7dUNBQ2tCO0FBR2xCO0lBRE4sSUFBSSxFQUFFOztpQ0FDWTtBQUdaO0lBRE4sSUFBSSxFQUFFOzt3Q0FDbUI7QUF2QmYsSUFBSTtJQUhoQixPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDakMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUMsQ0FBQzs7R0FDVyxJQUFJLENBb0RoQiJ9
72
+ ], SmartacmeCert);
73
+ export { SmartacmeCert };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuY2VydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWNtZS5jbGFzc2VzLmNlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBS3ZELElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQ1gsU0FBUSxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQTREO0lBd0IvRSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSx5QkFBeUIsR0FDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNWLE9BQU8sQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3pDLElBQUksRUFBRSxFQUFFO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsV0FBMEM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksVUFBeUM7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQS9DUTtJQUROLEdBQUcsRUFBRTs7eUNBQ1k7QUFHWDtJQUROLElBQUksRUFBRTs7aURBQ21CO0FBR25CO0lBRE4sSUFBSSxFQUFFOzs4Q0FDZ0I7QUFHaEI7SUFETixJQUFJLEVBQUU7O2lEQUNtQjtBQUduQjtJQUROLElBQUksRUFBRTs7Z0RBQ2tCO0FBR2xCO0lBRE4sSUFBSSxFQUFFOzswQ0FDWTtBQUdaO0lBRE4sSUFBSSxFQUFFOztpREFDbUI7QUF2QmYsYUFBYTtJQUh6QixPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDakMsT0FBTyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7SUFDdkMsQ0FBQyxDQUFDOztHQUNXLGFBQWEsQ0FvRHpCIn0=
@@ -1,11 +1,11 @@
1
1
  import * as plugins from './smartacme.plugins.js';
2
- import { Cert } from './smartacme.classes.cert.js';
2
+ import { SmartacmeCert } from './smartacme.classes.cert.js';
3
3
  import { SmartAcme } from './smartacme.classes.smartacme.js';
4
- export declare class CertManager {
4
+ export declare class SmartacmeCertManager {
5
5
  static activeDB: plugins.smartdata.SmartdataDb;
6
6
  private mongoDescriptor;
7
7
  smartdataDb: plugins.smartdata.SmartdataDb;
8
- interestMap: plugins.lik.InterestMap<string, Cert>;
8
+ interestMap: plugins.lik.InterestMap<string, SmartacmeCert>;
9
9
  constructor(smartAcmeArg: SmartAcme, optionsArg: {
10
10
  mongoDescriptor: plugins.smartdata.IMongoDescriptor;
11
11
  });
@@ -15,7 +15,7 @@ export declare class CertManager {
15
15
  * @returns the Cert class or null
16
16
  * @param certDomainNameArg the domain Name to retrieve the vcertificate for
17
17
  */
18
- retrieveCertificate(certDomainNameArg: string): Promise<Cert>;
18
+ retrieveCertificate(certDomainNameArg: string): Promise<SmartacmeCert>;
19
19
  /**
20
20
  * stores the certificate
21
21
  * @param optionsArg
@@ -1,8 +1,8 @@
1
1
  import * as plugins from './smartacme.plugins.js';
2
- import { Cert } from './smartacme.classes.cert.js';
2
+ import { SmartacmeCert } from './smartacme.classes.cert.js';
3
3
  import { SmartAcme } from './smartacme.classes.smartacme.js';
4
4
  import * as interfaces from './interfaces/index.js';
5
- export class CertManager {
5
+ export class SmartacmeCertManager {
6
6
  constructor(smartAcmeArg, optionsArg) {
7
7
  this.mongoDescriptor = optionsArg.mongoDescriptor;
8
8
  }
@@ -10,7 +10,7 @@ export class CertManager {
10
10
  // Smartdata DB
11
11
  this.smartdataDb = new plugins.smartdata.SmartdataDb(this.mongoDescriptor);
12
12
  await this.smartdataDb.init();
13
- CertManager.activeDB = this.smartdataDb;
13
+ SmartacmeCertManager.activeDB = this.smartdataDb;
14
14
  // Pending Map
15
15
  this.interestMap = new plugins.lik.InterestMap((certName) => certName);
16
16
  }
@@ -20,7 +20,7 @@ export class CertManager {
20
20
  * @param certDomainNameArg the domain Name to retrieve the vcertificate for
21
21
  */
22
22
  async retrieveCertificate(certDomainNameArg) {
23
- const existingCertificate = await Cert.getInstance({
23
+ const existingCertificate = await SmartacmeCert.getInstance({
24
24
  domainName: certDomainNameArg,
25
25
  });
26
26
  if (existingCertificate) {
@@ -35,7 +35,7 @@ export class CertManager {
35
35
  * @param optionsArg
36
36
  */
37
37
  async storeCertificate(optionsArg) {
38
- const cert = new Cert(optionsArg);
38
+ const cert = new SmartacmeCert(optionsArg);
39
39
  await cert.save();
40
40
  const interest = this.interestMap.findInterest(cert.domainName);
41
41
  if (interest) {
@@ -44,10 +44,10 @@ export class CertManager {
44
44
  }
45
45
  }
46
46
  async deleteCertificate(certDomainNameArg) {
47
- const cert = await Cert.getInstance({
47
+ const cert = await SmartacmeCert.getInstance({
48
48
  domainName: certDomainNameArg,
49
49
  });
50
50
  await cert.delete();
51
51
  }
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuY2VydG1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUuY2xhc3Nlcy5jZXJ0bWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0QsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8sV0FBVztJQWN0QixZQUNFLFlBQXVCLEVBQ3ZCLFVBRUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7SUFDcEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsZUFBZTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0UsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUV4QyxjQUFjO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBeUI7UUFDeEQsTUFBTSxtQkFBbUIsR0FBUyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQU87WUFDN0QsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBeUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLGlCQUF5QjtRQUN0RCxNQUFNLElBQUksR0FBUyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQU87WUFDOUMsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuY2VydG1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUuY2xhc3Nlcy5jZXJ0bWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0QsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8sb0JBQW9CO0lBYy9CLFlBQ0UsWUFBdUIsRUFDdkIsVUFFQztRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztJQUNwRCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixlQUFlO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFakQsY0FBYztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsaUJBQXlCO1FBQ3hELE1BQU0sbUJBQW1CLEdBQWtCLE1BQU0sYUFBYSxDQUFDLFdBQVcsQ0FBZ0I7WUFDeEYsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBeUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLGlCQUF5QjtRQUN0RCxNQUFNLElBQUksR0FBa0IsTUFBTSxhQUFhLENBQUMsV0FBVyxDQUFnQjtZQUN6RSxVQUFVLEVBQUUsaUJBQWlCO1NBQzlCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiJ9
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * certmatcher is responsible for matching certificates
3
3
  */
4
- export declare class CertMatcher {
4
+ export declare class SmartacmeCertMatcher {
5
5
  /**
6
6
  * creates a domainName for the certificate that will include the broadest scope
7
7
  * for wild card certificates
@@ -3,7 +3,7 @@ import * as interfaces from './interfaces/index.js';
3
3
  /**
4
4
  * certmatcher is responsible for matching certificates
5
5
  */
6
- export class CertMatcher {
6
+ export class SmartacmeCertMatcher {
7
7
  /**
8
8
  * creates a domainName for the certificate that will include the broadest scope
9
9
  * for wild card certificates
@@ -16,4 +16,4 @@ export class CertMatcher {
16
16
  }
17
17
  }
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuY2VydG1hdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUuY2xhc3Nlcy5jZXJ0bWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7OztPQUlHO0lBQ0ksb0NBQW9DLENBQUMsYUFBcUI7UUFDL0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuY2VydG1hdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUuY2xhc3Nlcy5jZXJ0bWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9COzs7O09BSUc7SUFDSSxvQ0FBb0MsQ0FBQyxhQUFxQjtRQUMvRCxNQUFNLGNBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsT0FBTyxHQUFHLGNBQWMsQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,5 +1,5 @@
1
1
  import * as plugins from './smartacme.plugins.js';
2
- import { Cert } from './smartacme.classes.cert.js';
2
+ import { SmartacmeCert } from './smartacme.classes.cert.js';
3
3
  /**
4
4
  * the options for the class @see SmartAcme
5
5
  */
@@ -7,9 +7,29 @@ export interface ISmartAcmeOptions {
7
7
  accountPrivateKey?: string;
8
8
  accountEmail: string;
9
9
  mongoDescriptor: plugins.smartdata.IMongoDescriptor;
10
- setChallenge: (dnsChallengeArg: plugins.tsclass.network.IDnsChallenge) => Promise<any>;
11
- removeChallenge: (dnsChallengeArg: plugins.tsclass.network.IDnsChallenge) => Promise<any>;
12
10
  environment: 'production' | 'integration';
11
+ /**
12
+ * Optional retry/backoff configuration for transient failures
13
+ */
14
+ retryOptions?: {
15
+ /** number of retry attempts */
16
+ retries?: number;
17
+ /** backoff multiplier */
18
+ factor?: number;
19
+ /** initial delay in milliseconds */
20
+ minTimeoutMs?: number;
21
+ /** maximum delay cap in milliseconds */
22
+ maxTimeoutMs?: number;
23
+ };
24
+ /**
25
+ * Pluggable ACME challenge handlers (DNS-01, HTTP-01, TLS-ALPN-01, etc.)
26
+ */
27
+ challengeHandlers?: plugins.handlers.IChallengeHandler<any>[];
28
+ /**
29
+ * Order of challenge types to try (e.g. ['http-01','dns-01']).
30
+ * Defaults to ['dns-01'] or first supported type from handlers.
31
+ */
32
+ challengePriority?: string[];
13
33
  }
14
34
  /**
15
35
  * class SmartAcme
@@ -25,21 +45,29 @@ export declare class SmartAcme {
25
45
  private options;
26
46
  private client;
27
47
  private smartdns;
28
- logger: plugins.smartlog.ConsoleLog;
48
+ logger: plugins.smartlog.Smartlog;
29
49
  private privateKey;
30
- private setChallenge;
31
- private removeChallenge;
32
50
  private certmanager;
33
51
  private certmatcher;
52
+ private retryOptions;
53
+ private pendingChallenges;
54
+ private challengeHandlers;
55
+ private challengePriority;
34
56
  constructor(optionsArg: ISmartAcmeOptions);
35
57
  /**
36
- * inits the instance
58
+ * starts the instance
37
59
  * ```ts
38
- * await myCloudlyInstance.init() // does not support options
60
+ * await myCloudlyInstance.start() // does not support options
39
61
  * ```
40
62
  */
41
- init(): Promise<void>;
63
+ start(): Promise<void>;
42
64
  stop(): Promise<void>;
65
+ /** Retry helper with exponential backoff */
66
+ private retry;
67
+ /** Clean up pending challenges and shut down */
68
+ private handleShutdown;
69
+ /** Handle process signals for graceful shutdown */
70
+ private handleSignal;
43
71
  /**
44
72
  * gets a certificate
45
73
  * it runs through the following steps
@@ -54,5 +82,6 @@ export declare class SmartAcme {
54
82
  *
55
83
  * @param domainArg
56
84
  */
57
- getCertificateForDomain(domainArg: string): Promise<Cert>;
85
+ getCertificateForDomain(domainArg: string): Promise<SmartacmeCert>;
86
+ getAllCertificates(): Promise<SmartacmeCert[]>;
58
87
  }