@push.rocks/smartproxy 15.0.2 → 16.0.2

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 (80) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/certificate/index.d.ts +10 -4
  3. package/dist_ts/certificate/index.js +5 -7
  4. package/dist_ts/certificate/models/certificate-types.d.ts +35 -15
  5. package/dist_ts/certificate/providers/cert-provisioner.d.ts +41 -15
  6. package/dist_ts/certificate/providers/cert-provisioner.js +201 -41
  7. package/dist_ts/forwarding/config/forwarding-types.d.ts +40 -76
  8. package/dist_ts/forwarding/config/forwarding-types.js +19 -18
  9. package/dist_ts/forwarding/config/index.d.ts +4 -2
  10. package/dist_ts/forwarding/config/index.js +5 -3
  11. package/dist_ts/forwarding/handlers/base-handler.js +3 -1
  12. package/dist_ts/forwarding/index.d.ts +5 -6
  13. package/dist_ts/forwarding/index.js +3 -3
  14. package/dist_ts/http/models/http-types.js +1 -1
  15. package/dist_ts/http/port80/acme-interfaces.d.ts +30 -0
  16. package/dist_ts/http/port80/acme-interfaces.js +46 -1
  17. package/dist_ts/http/port80/port80-handler.d.ts +17 -2
  18. package/dist_ts/http/port80/port80-handler.js +49 -11
  19. package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +2 -61
  20. package/dist_ts/proxies/smart-proxy/models/interfaces.js +5 -4
  21. package/dist_ts/proxies/smart-proxy/models/route-types.d.ts +118 -4
  22. package/dist_ts/proxies/smart-proxy/network-proxy-bridge.d.ts +70 -4
  23. package/dist_ts/proxies/smart-proxy/network-proxy-bridge.js +193 -43
  24. package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +2 -5
  25. package/dist_ts/proxies/smart-proxy/route-connection-handler.js +25 -146
  26. package/dist_ts/proxies/smart-proxy/route-helpers/index.d.ts +7 -0
  27. package/dist_ts/proxies/smart-proxy/route-helpers/index.js +9 -0
  28. package/dist_ts/proxies/smart-proxy/route-helpers.d.ts +54 -1
  29. package/dist_ts/proxies/smart-proxy/route-helpers.js +102 -1
  30. package/dist_ts/proxies/smart-proxy/route-manager.d.ts +3 -9
  31. package/dist_ts/proxies/smart-proxy/route-manager.js +3 -115
  32. package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +72 -10
  33. package/dist_ts/proxies/smart-proxy/smart-proxy.js +135 -268
  34. package/dist_ts/proxies/smart-proxy/timeout-manager.js +3 -3
  35. package/dist_ts/proxies/smart-proxy/utils/index.d.ts +12 -0
  36. package/dist_ts/proxies/smart-proxy/utils/index.js +19 -0
  37. package/dist_ts/proxies/smart-proxy/utils/route-helpers.d.ts +174 -0
  38. package/dist_ts/proxies/smart-proxy/utils/route-helpers.js +332 -0
  39. package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.d.ts +51 -0
  40. package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.js +124 -0
  41. package/dist_ts/proxies/smart-proxy/utils/route-patterns.d.ts +131 -0
  42. package/dist_ts/proxies/smart-proxy/utils/route-patterns.js +217 -0
  43. package/dist_ts/proxies/smart-proxy/utils/route-utils.d.ts +79 -0
  44. package/dist_ts/proxies/smart-proxy/utils/route-utils.js +266 -0
  45. package/dist_ts/proxies/smart-proxy/utils/route-validators.d.ts +73 -0
  46. package/dist_ts/proxies/smart-proxy/utils/route-validators.js +242 -0
  47. package/package.json +1 -1
  48. package/readme.md +139 -111
  49. package/readme.plan.md +164 -312
  50. package/ts/00_commitinfo_data.ts +1 -1
  51. package/ts/certificate/index.ts +17 -9
  52. package/ts/certificate/models/certificate-types.ts +37 -16
  53. package/ts/certificate/providers/cert-provisioner.ts +247 -54
  54. package/ts/forwarding/config/forwarding-types.ts +79 -107
  55. package/ts/forwarding/config/index.ts +4 -2
  56. package/ts/forwarding/handlers/base-handler.ts +4 -2
  57. package/ts/forwarding/index.ts +3 -2
  58. package/ts/http/models/http-types.ts +0 -1
  59. package/ts/http/port80/acme-interfaces.ts +84 -0
  60. package/ts/http/port80/port80-handler.ts +61 -15
  61. package/ts/proxies/smart-proxy/models/interfaces.ts +7 -64
  62. package/ts/proxies/smart-proxy/models/route-types.ts +152 -22
  63. package/ts/proxies/smart-proxy/network-proxy-bridge.ts +226 -55
  64. package/ts/proxies/smart-proxy/route-connection-handler.ts +36 -205
  65. package/ts/proxies/smart-proxy/route-helpers/index.ts +9 -0
  66. package/ts/proxies/smart-proxy/route-helpers.ts +165 -11
  67. package/ts/proxies/smart-proxy/route-manager.ts +3 -130
  68. package/ts/proxies/smart-proxy/smart-proxy.ts +157 -329
  69. package/ts/proxies/smart-proxy/timeout-manager.ts +2 -2
  70. package/ts/proxies/smart-proxy/utils/index.ts +40 -0
  71. package/ts/proxies/smart-proxy/utils/route-helpers.ts +455 -0
  72. package/ts/proxies/smart-proxy/utils/route-migration-utils.ts +165 -0
  73. package/ts/proxies/smart-proxy/utils/route-patterns.ts +309 -0
  74. package/ts/proxies/smart-proxy/utils/route-utils.ts +330 -0
  75. package/ts/proxies/smart-proxy/utils/route-validators.ts +269 -0
  76. package/ts/forwarding/config/domain-config.ts +0 -28
  77. package/ts/forwarding/config/domain-manager.ts +0 -283
  78. package/ts/proxies/smart-proxy/connection-handler.ts +0 -1240
  79. package/ts/proxies/smart-proxy/port-range-manager.ts +0 -211
  80. /package/ts/proxies/smart-proxy/{domain-config-manager.ts → domain-config-manager.ts.bak} +0 -0
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartproxy',
6
- version: '15.0.0',
6
+ version: '16.0.2',
7
7
  description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHFQQUFxUDtDQUNuUSxDQUFBIn0=
@@ -10,15 +10,21 @@ export * from './acme/challenge-handler.js';
10
10
  export * from './utils/certificate-helpers.js';
11
11
  export * from './storage/file-storage.js';
12
12
  import { CertProvisioner } from './providers/cert-provisioner.js';
13
+ import type { TCertProvisionObject } from './providers/cert-provisioner.js';
13
14
  import type { IAcmeOptions } from './models/certificate-types.js';
14
- import type { IDomainConfig } from '../forwarding/config/domain-config.js';
15
+ import type { IRouteConfig } from '../proxies/smart-proxy/models/route-types.js';
16
+ /**
17
+ * Interface for NetworkProxyBridge used by CertProvisioner
18
+ */
19
+ interface ICertNetworkProxyBridge {
20
+ applyExternalCertificate(certData: any): void;
21
+ }
15
22
  /**
16
23
  * Creates a complete certificate provisioning system with default settings
17
- * @param domainConfigs Domain configurations
24
+ * @param routeConfigs Route configurations that may need certificates
18
25
  * @param acmeOptions ACME options for certificate provisioning
19
26
  * @param networkProxyBridge Bridge to apply certificates to network proxy
20
27
  * @param certProvider Optional custom certificate provider
21
28
  * @returns Configured CertProvisioner
22
29
  */
23
- export declare function createCertificateProvisioner(domainConfigs: IDomainConfig[], acmeOptions: IAcmeOptions, networkProxyBridge: any, // Placeholder until NetworkProxyBridge is migrated
24
- certProvider?: any): CertProvisioner;
30
+ export declare function createCertificateProvisioner(routeConfigs: IRouteConfig[], acmeOptions: IAcmeOptions, networkProxyBridge: ICertNetworkProxyBridge, certProvider?: (domain: string) => Promise<TCertProvisionObject>): CertProvisioner;
@@ -20,20 +20,18 @@ import { CertProvisioner } from './providers/cert-provisioner.js';
20
20
  import { buildPort80Handler } from './acme/acme-factory.js';
21
21
  /**
22
22
  * Creates a complete certificate provisioning system with default settings
23
- * @param domainConfigs Domain configurations
23
+ * @param routeConfigs Route configurations that may need certificates
24
24
  * @param acmeOptions ACME options for certificate provisioning
25
25
  * @param networkProxyBridge Bridge to apply certificates to network proxy
26
26
  * @param certProvider Optional custom certificate provider
27
27
  * @returns Configured CertProvisioner
28
28
  */
29
- export function createCertificateProvisioner(domainConfigs, acmeOptions, networkProxyBridge, // Placeholder until NetworkProxyBridge is migrated
30
- certProvider // Placeholder until cert provider type is properly defined
31
- ) {
29
+ export function createCertificateProvisioner(routeConfigs, acmeOptions, networkProxyBridge, certProvider) {
32
30
  // Build the Port80Handler for ACME challenges
33
31
  const port80Handler = buildPort80Handler(acmeOptions);
34
32
  // Extract ACME-specific configuration
35
- const { renewThresholdDays = 30, renewCheckIntervalHours = 24, autoRenew = true, domainForwards = [] } = acmeOptions;
33
+ const { renewThresholdDays = 30, renewCheckIntervalHours = 24, autoRenew = true, routeForwards = [] } = acmeOptions;
36
34
  // Create and return the certificate provisioner
37
- return new CertProvisioner(domainConfigs, port80Handler, networkProxyBridge, certProvider, renewThresholdDays, renewCheckIntervalHours, autoRenew, domainForwards);
35
+ return new CertProvisioner(routeConfigs, port80Handler, networkProxyBridge, certProvider, renewThresholdDays, renewCheckIntervalHours, autoRenew, routeForwards);
38
36
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jZXJ0aWZpY2F0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCwrQkFBK0I7QUFDL0IsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxxQkFBcUI7QUFDckIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyx3QkFBd0I7QUFDeEIsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCx1QkFBdUI7QUFDdkIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLHdCQUF3QjtBQUN4QixjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLHNCQUFzQjtBQUN0QixjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGdGQUFnRjtBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJNUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FDMUMsYUFBOEIsRUFDOUIsV0FBeUIsRUFDekIsa0JBQXVCLEVBQUUsbURBQW1EO0FBQzVFLFlBQWtCLENBQUMsMkRBQTJEOztJQUU5RSw4Q0FBOEM7SUFDOUMsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdEQsc0NBQXNDO0lBQ3RDLE1BQU0sRUFDSixrQkFBa0IsR0FBRyxFQUFFLEVBQ3ZCLHVCQUF1QixHQUFHLEVBQUUsRUFDNUIsU0FBUyxHQUFHLElBQUksRUFDaEIsY0FBYyxHQUFHLEVBQUUsRUFDcEIsR0FBRyxXQUFXLENBQUM7SUFFaEIsZ0RBQWdEO0lBQ2hELE9BQU8sSUFBSSxlQUFlLENBQ3hCLGFBQWEsRUFDYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxjQUFjLENBQ2YsQ0FBQztBQUNKLENBQUMifQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jZXJ0aWZpY2F0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCwrQkFBK0I7QUFDL0IsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxxQkFBcUI7QUFDckIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyx3QkFBd0I7QUFDeEIsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCx1QkFBdUI7QUFDdkIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLHdCQUF3QjtBQUN4QixjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLHNCQUFzQjtBQUN0QixjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGdGQUFnRjtBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFXNUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FDMUMsWUFBNEIsRUFDNUIsV0FBeUIsRUFDekIsa0JBQTJDLEVBQzNDLFlBQWdFO0lBRWhFLDhDQUE4QztJQUM5QyxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV0RCxzQ0FBc0M7SUFDdEMsTUFBTSxFQUNKLGtCQUFrQixHQUFHLEVBQUUsRUFDdkIsdUJBQXVCLEdBQUcsRUFBRSxFQUM1QixTQUFTLEdBQUcsSUFBSSxFQUNoQixhQUFhLEdBQUcsRUFBRSxFQUNuQixHQUFHLFdBQVcsQ0FBQztJQUVoQixnREFBZ0Q7SUFDaEQsT0FBTyxJQUFJLGVBQWUsQ0FDeEIsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGFBQWEsQ0FDZCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -9,6 +9,10 @@ export interface ICertificateData {
9
9
  expiryDate: Date;
10
10
  source?: 'static' | 'http01' | 'dns01';
11
11
  isRenewal?: boolean;
12
+ routeReference?: {
13
+ routeId?: string;
14
+ routeName?: string;
15
+ };
12
16
  }
13
17
  /**
14
18
  * Certificates pair (private and public keys)
@@ -24,6 +28,10 @@ export interface ICertificateFailure {
24
28
  domain: string;
25
29
  error: string;
26
30
  isRenewal: boolean;
31
+ routeReference?: {
32
+ routeId?: string;
33
+ routeName?: string;
34
+ };
27
35
  }
28
36
  /**
29
37
  * Certificate expiry payload type
@@ -32,32 +40,44 @@ export interface ICertificateExpiring {
32
40
  domain: string;
33
41
  expiryDate: Date;
34
42
  daysRemaining: number;
43
+ routeReference?: {
44
+ routeId?: string;
45
+ routeName?: string;
46
+ };
35
47
  }
36
48
  /**
37
- * Domain forwarding configuration
49
+ * Route-specific forwarding configuration for ACME challenges
38
50
  */
39
- export interface IForwardConfig {
40
- ip: string;
41
- port: number;
42
- }
43
- /**
44
- * Domain-specific forwarding configuration for ACME challenges
45
- */
46
- export interface IDomainForwardConfig {
51
+ export interface IRouteForwardConfig {
47
52
  domain: string;
48
- forwardConfig?: IForwardConfig;
49
- acmeForwardConfig?: IForwardConfig;
53
+ target: {
54
+ host: string;
55
+ port: number;
56
+ };
50
57
  sslRedirect?: boolean;
51
58
  }
52
59
  /**
53
- * Domain configuration options
60
+ * Domain configuration options for Port80Handler
61
+ *
62
+ * This is used internally by the Port80Handler to manage domains
63
+ * but will eventually be replaced with route-based options.
54
64
  */
55
65
  export interface IDomainOptions {
56
66
  domainName: string;
57
67
  sslRedirect: boolean;
58
68
  acmeMaintenance: boolean;
59
- forward?: IForwardConfig;
60
- acmeForward?: IForwardConfig;
69
+ forward?: {
70
+ ip: string;
71
+ port: number;
72
+ };
73
+ acmeForward?: {
74
+ ip: string;
75
+ port: number;
76
+ };
77
+ routeReference?: {
78
+ routeId?: string;
79
+ routeName?: string;
80
+ };
61
81
  }
62
82
  /**
63
83
  * Unified ACME configuration options used across proxies and handlers
@@ -73,5 +93,5 @@ export interface IAcmeOptions {
73
93
  autoRenew?: boolean;
74
94
  certificateStore?: string;
75
95
  skipConfiguredCerts?: boolean;
76
- domainForwards?: IDomainForwardConfig[];
96
+ routeForwards?: IRouteForwardConfig[];
77
97
  }
@@ -1,11 +1,10 @@
1
1
  import * as plugins from '../../plugins.js';
2
- import type { IDomainConfig } from '../../forwarding/config/domain-config.js';
3
- import type { ICertificateData, IDomainForwardConfig } from '../models/certificate-types.js';
2
+ import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
3
+ import type { ICertificateData, IRouteForwardConfig } from '../models/certificate-types.js';
4
4
  import { Port80Handler } from '../../http/port80/port80-handler.js';
5
5
  interface INetworkProxyBridge {
6
6
  applyExternalCertificate(certData: ICertificateData): void;
7
7
  }
8
- export type TSmartProxyCertProvisionObject = plugins.tsclass.network.ICert | 'http01';
9
8
  /**
10
9
  * Type for static certificate provisioning
11
10
  */
@@ -13,29 +12,39 @@ export type TCertProvisionObject = plugins.tsclass.network.ICert | 'http01' | 'd
13
12
  /**
14
13
  * CertProvisioner manages certificate provisioning and renewal workflows,
15
14
  * unifying static certificates and HTTP-01 challenges via Port80Handler.
15
+ *
16
+ * This class directly works with route configurations instead of converting to domain configs.
16
17
  */
17
18
  export declare class CertProvisioner extends plugins.EventEmitter {
18
- private domainConfigs;
19
+ private routeConfigs;
20
+ private certRoutes;
19
21
  private port80Handler;
20
22
  private networkProxyBridge;
21
23
  private certProvisionFunction?;
22
- private forwardConfigs;
24
+ private routeForwards;
23
25
  private renewThresholdDays;
24
26
  private renewCheckIntervalHours;
25
27
  private autoRenew;
26
28
  private renewManager?;
27
29
  private provisionMap;
28
30
  /**
29
- * @param domainConfigs Array of domain configuration objects
31
+ * Extract routes that need certificates
32
+ * @param routes Route configurations
33
+ */
34
+ private extractCertificateRoutesFromRoutes;
35
+ /**
36
+ * Constructor for CertProvisioner
37
+ *
38
+ * @param routeConfigs Array of route configurations
30
39
  * @param port80Handler HTTP-01 challenge handler instance
31
40
  * @param networkProxyBridge Bridge for applying external certificates
32
41
  * @param certProvider Optional callback returning a static cert or 'http01'
33
42
  * @param renewThresholdDays Days before expiry to trigger renewals
34
43
  * @param renewCheckIntervalHours Interval in hours to check for renewals
35
44
  * @param autoRenew Whether to automatically schedule renewals
36
- * @param forwardConfigs Domain forwarding configurations for ACME challenges
45
+ * @param routeForwards Route-specific forwarding configs for ACME challenges
37
46
  */
38
- constructor(domainConfigs: IDomainConfig[], port80Handler: Port80Handler, networkProxyBridge: INetworkProxyBridge, certProvider?: (domain: string) => Promise<TCertProvisionObject>, renewThresholdDays?: number, renewCheckIntervalHours?: number, autoRenew?: boolean, forwardConfigs?: IDomainForwardConfig[]);
47
+ constructor(routeConfigs: IRouteConfig[], port80Handler: Port80Handler, networkProxyBridge: INetworkProxyBridge, certProvider?: (domain: string) => Promise<TCertProvisionObject>, renewThresholdDays?: number, renewCheckIntervalHours?: number, autoRenew?: boolean, routeForwards?: IRouteForwardConfig[]);
39
48
  /**
40
49
  * Start initial provisioning and schedule renewals.
41
50
  */
@@ -44,19 +53,22 @@ export declare class CertProvisioner extends plugins.EventEmitter {
44
53
  * Set up event subscriptions for certificate events
45
54
  */
46
55
  private setupEventSubscriptions;
56
+ /**
57
+ * Find a route for a given domain
58
+ */
59
+ private findRouteForDomain;
47
60
  /**
48
61
  * Set up forwarding configurations for the Port80Handler
49
62
  */
50
63
  private setupForwardingConfigs;
51
64
  /**
52
- * Provision certificates for all configured domains
65
+ * Provision certificates for all routes that need them
53
66
  */
54
- private provisionAllDomains;
67
+ private provisionAllCertificates;
55
68
  /**
56
- * Provision a certificate for a single domain
57
- * @param domain Domain to provision
69
+ * Provision a certificate for a route
58
70
  */
59
- private provisionDomain;
71
+ private provisionCertificateForRoute;
60
72
  /**
61
73
  * Schedule certificate renewals using a task manager
62
74
  */
@@ -69,25 +81,39 @@ export declare class CertProvisioner extends plugins.EventEmitter {
69
81
  * Renew a certificate for a specific domain
70
82
  * @param domain Domain to renew
71
83
  * @param provisionType Type of provisioning for this domain
84
+ * @param certRoute The route reference for this domain
72
85
  */
73
- private renewDomain;
86
+ private renewCertificateForDomain;
74
87
  /**
75
88
  * Stop all scheduled renewal tasks.
76
89
  */
77
90
  stop(): Promise<void>;
78
91
  /**
79
92
  * Request a certificate on-demand for the given domain.
93
+ * This will look for a matching route configuration and provision accordingly.
94
+ *
80
95
  * @param domain Domain name to provision
81
96
  */
82
97
  requestCertificate(domain: string): Promise<void>;
83
98
  /**
84
99
  * Add a new domain for certificate provisioning
100
+ *
85
101
  * @param domain Domain to add
86
102
  * @param options Domain configuration options
87
103
  */
88
104
  addDomain(domain: string, options?: {
89
105
  sslRedirect?: boolean;
90
106
  acmeMaintenance?: boolean;
107
+ routeId?: string;
108
+ routeName?: string;
91
109
  }): Promise<void>;
110
+ /**
111
+ * Update routes with new configurations
112
+ * This replaces all existing routes with new ones and re-provisions certificates as needed
113
+ *
114
+ * @param newRoutes New route configurations to use
115
+ */
116
+ updateRoutes(newRoutes: IRouteConfig[]): Promise<void>;
92
117
  }
93
- export { CertProvisioner as CertificateProvisioner };
118
+ export type TSmartProxyCertProvisionObject = TCertProvisionObject;
119
+ export {};