@push.rocks/smartproxy 5.1.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.pp.interfaces.d.ts +23 -0
- package/dist_ts/classes.pp.networkproxybridge.d.ts +15 -1
- package/dist_ts/classes.pp.networkproxybridge.js +116 -21
- package/dist_ts/classes.pp.portproxy.d.ts +20 -4
- package/dist_ts/classes.pp.portproxy.js +321 -22
- package/dist_ts/index.d.ts +6 -6
- package/dist_ts/index.js +7 -7
- package/dist_ts/networkproxy/classes.np.certificatemanager.d.ts +77 -0
- package/dist_ts/networkproxy/classes.np.certificatemanager.js +354 -0
- package/dist_ts/networkproxy/classes.np.connectionpool.d.ts +47 -0
- package/dist_ts/networkproxy/classes.np.connectionpool.js +210 -0
- package/dist_ts/networkproxy/classes.np.networkproxy.d.ts +117 -0
- package/dist_ts/networkproxy/classes.np.networkproxy.js +375 -0
- package/dist_ts/networkproxy/classes.np.requesthandler.d.ts +51 -0
- package/dist_ts/networkproxy/classes.np.requesthandler.js +210 -0
- package/dist_ts/networkproxy/classes.np.types.d.ts +82 -0
- package/dist_ts/networkproxy/classes.np.types.js +35 -0
- package/dist_ts/networkproxy/classes.np.websockethandler.d.ts +38 -0
- package/dist_ts/networkproxy/classes.np.websockethandler.js +188 -0
- package/dist_ts/networkproxy/index.d.ts +6 -0
- package/dist_ts/networkproxy/index.js +8 -0
- package/dist_ts/nfttablesproxy/classes.nftablesproxy.d.ts +219 -0
- package/dist_ts/nfttablesproxy/classes.nftablesproxy.js +1542 -0
- package/dist_ts/port80handler/classes.port80handler.d.ts +260 -0
- package/dist_ts/port80handler/classes.port80handler.js +928 -0
- package/dist_ts/smartproxy/classes.pp.connectionhandler.d.ts +39 -0
- package/dist_ts/smartproxy/classes.pp.connectionhandler.js +754 -0
- package/dist_ts/smartproxy/classes.pp.connectionmanager.d.ts +78 -0
- package/dist_ts/smartproxy/classes.pp.connectionmanager.js +378 -0
- package/dist_ts/smartproxy/classes.pp.domainconfigmanager.d.ts +55 -0
- package/dist_ts/smartproxy/classes.pp.domainconfigmanager.js +103 -0
- package/dist_ts/smartproxy/classes.pp.interfaces.d.ts +133 -0
- package/dist_ts/smartproxy/classes.pp.interfaces.js +2 -0
- package/dist_ts/smartproxy/classes.pp.networkproxybridge.d.ts +57 -0
- package/dist_ts/smartproxy/classes.pp.networkproxybridge.js +306 -0
- package/dist_ts/smartproxy/classes.pp.portrangemanager.d.ts +56 -0
- package/dist_ts/smartproxy/classes.pp.portrangemanager.js +179 -0
- package/dist_ts/smartproxy/classes.pp.securitymanager.d.ts +47 -0
- package/dist_ts/smartproxy/classes.pp.securitymanager.js +126 -0
- package/dist_ts/smartproxy/classes.pp.snihandler.d.ts +153 -0
- package/dist_ts/smartproxy/classes.pp.snihandler.js +1053 -0
- package/dist_ts/smartproxy/classes.pp.timeoutmanager.d.ts +47 -0
- package/dist_ts/smartproxy/classes.pp.timeoutmanager.js +154 -0
- package/dist_ts/smartproxy/classes.pp.tlsalert.d.ts +149 -0
- package/dist_ts/smartproxy/classes.pp.tlsalert.js +225 -0
- package/dist_ts/smartproxy/classes.pp.tlsmanager.d.ts +57 -0
- package/dist_ts/smartproxy/classes.pp.tlsmanager.js +132 -0
- package/dist_ts/smartproxy/classes.smartproxy.d.ts +64 -0
- package/dist_ts/smartproxy/classes.smartproxy.js +567 -0
- package/package.json +1 -1
- package/readme.md +64 -68
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +6 -6
- package/ts/networkproxy/classes.np.certificatemanager.ts +398 -0
- package/ts/networkproxy/classes.np.connectionpool.ts +241 -0
- package/ts/networkproxy/classes.np.networkproxy.ts +469 -0
- package/ts/networkproxy/classes.np.requesthandler.ts +278 -0
- package/ts/networkproxy/classes.np.types.ts +123 -0
- package/ts/networkproxy/classes.np.websockethandler.ts +226 -0
- package/ts/networkproxy/index.ts +7 -0
- package/ts/{classes.port80handler.ts → port80handler/classes.port80handler.ts} +249 -1
- package/ts/{classes.pp.connectionhandler.ts → smartproxy/classes.pp.connectionhandler.ts} +1 -1
- package/ts/{classes.pp.connectionmanager.ts → smartproxy/classes.pp.connectionmanager.ts} +1 -1
- package/ts/{classes.pp.domainconfigmanager.ts → smartproxy/classes.pp.domainconfigmanager.ts} +1 -1
- package/ts/{classes.pp.interfaces.ts → smartproxy/classes.pp.interfaces.ts} +31 -5
- package/ts/{classes.pp.networkproxybridge.ts → smartproxy/classes.pp.networkproxybridge.ts} +129 -28
- package/ts/{classes.pp.securitymanager.ts → smartproxy/classes.pp.securitymanager.ts} +1 -1
- package/ts/{classes.pp.tlsmanager.ts → smartproxy/classes.pp.tlsmanager.ts} +1 -1
- package/ts/smartproxy/classes.smartproxy.ts +679 -0
- package/ts/classes.networkproxy.ts +0 -1730
- package/ts/classes.pp.acmemanager.ts +0 -149
- package/ts/classes.pp.portproxy.ts +0 -344
- /package/ts/{classes.nftablesproxy.ts → nfttablesproxy/classes.nftablesproxy.ts} +0 -0
- /package/ts/{classes.pp.portrangemanager.ts → smartproxy/classes.pp.portrangemanager.ts} +0 -0
- /package/ts/{classes.pp.snihandler.ts → smartproxy/classes.pp.snihandler.ts} +0 -0
- /package/ts/{classes.pp.timeoutmanager.ts → smartproxy/classes.pp.timeoutmanager.ts} +0 -0
- /package/ts/{classes.pp.tlsalert.ts → smartproxy/classes.pp.tlsalert.ts} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartproxy',
|
|
6
|
-
version: '
|
|
6
|
+
version: '6.0.1',
|
|
7
7
|
description: 'A powerful proxy package that effectively handles high traffic, with features such as SSL/TLS support, port proxying, WebSocket handling, dynamic routing with authentication options, and automatic ACME certificate management.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLG1PQUFtTztDQUNqUCxDQUFBIn0=
|
|
@@ -63,6 +63,29 @@ export interface IPortProxySettings {
|
|
|
63
63
|
extendedKeepAliveLifetime?: number;
|
|
64
64
|
useNetworkProxy?: number[];
|
|
65
65
|
networkProxyPort?: number;
|
|
66
|
+
port80HandlerConfig?: {
|
|
67
|
+
enabled?: boolean;
|
|
68
|
+
port?: number;
|
|
69
|
+
contactEmail?: string;
|
|
70
|
+
useProduction?: boolean;
|
|
71
|
+
renewThresholdDays?: number;
|
|
72
|
+
autoRenew?: boolean;
|
|
73
|
+
certificateStore?: string;
|
|
74
|
+
skipConfiguredCerts?: boolean;
|
|
75
|
+
httpsRedirectPort?: number;
|
|
76
|
+
renewCheckIntervalHours?: number;
|
|
77
|
+
domainForwards?: Array<{
|
|
78
|
+
domain: string;
|
|
79
|
+
forwardConfig?: {
|
|
80
|
+
ip: string;
|
|
81
|
+
port: number;
|
|
82
|
+
};
|
|
83
|
+
acmeForwardConfig?: {
|
|
84
|
+
ip: string;
|
|
85
|
+
port: number;
|
|
86
|
+
};
|
|
87
|
+
}>;
|
|
88
|
+
};
|
|
66
89
|
acme?: {
|
|
67
90
|
enabled?: boolean;
|
|
68
91
|
port?: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
-
import { NetworkProxy } from './classes.networkproxy.js';
|
|
2
|
+
import { NetworkProxy } from './networkproxy/classes.np.networkproxy.js';
|
|
3
|
+
import { Port80Handler } from './port80handler/classes.port80handler.js';
|
|
3
4
|
import type { IConnectionRecord, IPortProxySettings } from './classes.pp.interfaces.js';
|
|
4
5
|
/**
|
|
5
6
|
* Manages NetworkProxy integration for TLS termination
|
|
@@ -7,11 +8,20 @@ import type { IConnectionRecord, IPortProxySettings } from './classes.pp.interfa
|
|
|
7
8
|
export declare class NetworkProxyBridge {
|
|
8
9
|
private settings;
|
|
9
10
|
private networkProxy;
|
|
11
|
+
private port80Handler;
|
|
10
12
|
constructor(settings: IPortProxySettings);
|
|
13
|
+
/**
|
|
14
|
+
* Set the Port80Handler to use for certificate management
|
|
15
|
+
*/
|
|
16
|
+
setPort80Handler(handler: Port80Handler): void;
|
|
11
17
|
/**
|
|
12
18
|
* Initialize NetworkProxy instance
|
|
13
19
|
*/
|
|
14
20
|
initialize(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Handle certificate issuance or renewal events
|
|
23
|
+
*/
|
|
24
|
+
private handleCertificateEvent;
|
|
15
25
|
/**
|
|
16
26
|
* Get the NetworkProxy instance
|
|
17
27
|
*/
|
|
@@ -28,6 +38,10 @@ export declare class NetworkProxyBridge {
|
|
|
28
38
|
* Stop NetworkProxy
|
|
29
39
|
*/
|
|
30
40
|
stop(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Register domains with Port80Handler
|
|
43
|
+
*/
|
|
44
|
+
registerDomainsWithPort80Handler(domains: string[]): void;
|
|
31
45
|
/**
|
|
32
46
|
* Forwards a TLS connection to a NetworkProxy for handling
|
|
33
47
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
-
import { NetworkProxy } from './classes.networkproxy.js';
|
|
2
|
+
import { NetworkProxy } from './networkproxy/classes.np.networkproxy.js';
|
|
3
|
+
import { Port80Handler, Port80HandlerEvents } from './port80handler/classes.port80handler.js';
|
|
3
4
|
/**
|
|
4
5
|
* Manages NetworkProxy integration for TLS termination
|
|
5
6
|
*/
|
|
@@ -7,6 +8,21 @@ export class NetworkProxyBridge {
|
|
|
7
8
|
constructor(settings) {
|
|
8
9
|
this.settings = settings;
|
|
9
10
|
this.networkProxy = null;
|
|
11
|
+
this.port80Handler = null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Set the Port80Handler to use for certificate management
|
|
15
|
+
*/
|
|
16
|
+
setPort80Handler(handler) {
|
|
17
|
+
this.port80Handler = handler;
|
|
18
|
+
// Register for certificate events
|
|
19
|
+
handler.on(Port80HandlerEvents.CERTIFICATE_ISSUED, this.handleCertificateEvent.bind(this));
|
|
20
|
+
handler.on(Port80HandlerEvents.CERTIFICATE_RENEWED, this.handleCertificateEvent.bind(this));
|
|
21
|
+
// If NetworkProxy is already initialized, connect it with Port80Handler
|
|
22
|
+
if (this.networkProxy) {
|
|
23
|
+
this.networkProxy.setExternalPort80Handler(handler);
|
|
24
|
+
}
|
|
25
|
+
console.log('Port80Handler connected to NetworkProxyBridge');
|
|
10
26
|
}
|
|
11
27
|
/**
|
|
12
28
|
* Initialize NetworkProxy instance
|
|
@@ -18,17 +34,53 @@ export class NetworkProxyBridge {
|
|
|
18
34
|
port: this.settings.networkProxyPort,
|
|
19
35
|
portProxyIntegration: true,
|
|
20
36
|
logLevel: this.settings.enableDetailedLogging ? 'debug' : 'info',
|
|
37
|
+
useExternalPort80Handler: !!this.port80Handler // Use Port80Handler if available
|
|
21
38
|
};
|
|
22
|
-
//
|
|
23
|
-
if (this.settings.acme) {
|
|
39
|
+
// Copy ACME settings for backward compatibility (if port80HandlerConfig not set)
|
|
40
|
+
if (!this.settings.port80HandlerConfig && this.settings.acme) {
|
|
24
41
|
networkProxyOptions.acme = { ...this.settings.acme };
|
|
25
42
|
}
|
|
26
43
|
this.networkProxy = new NetworkProxy(networkProxyOptions);
|
|
27
44
|
console.log(`Initialized NetworkProxy on port ${this.settings.networkProxyPort}`);
|
|
45
|
+
// Connect Port80Handler if available
|
|
46
|
+
if (this.port80Handler) {
|
|
47
|
+
this.networkProxy.setExternalPort80Handler(this.port80Handler);
|
|
48
|
+
}
|
|
28
49
|
// Convert and apply domain configurations to NetworkProxy
|
|
29
50
|
await this.syncDomainConfigsToNetworkProxy();
|
|
30
51
|
}
|
|
31
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Handle certificate issuance or renewal events
|
|
55
|
+
*/
|
|
56
|
+
handleCertificateEvent(data) {
|
|
57
|
+
if (!this.networkProxy)
|
|
58
|
+
return;
|
|
59
|
+
console.log(`Received certificate for ${data.domain} from Port80Handler, updating NetworkProxy`);
|
|
60
|
+
try {
|
|
61
|
+
// Find existing config for this domain
|
|
62
|
+
const existingConfigs = this.networkProxy.getProxyConfigs()
|
|
63
|
+
.filter(config => config.hostName === data.domain);
|
|
64
|
+
if (existingConfigs.length > 0) {
|
|
65
|
+
// Update existing configs with new certificate
|
|
66
|
+
for (const config of existingConfigs) {
|
|
67
|
+
config.privateKey = data.privateKey;
|
|
68
|
+
config.publicKey = data.certificate;
|
|
69
|
+
}
|
|
70
|
+
// Apply updated configs
|
|
71
|
+
this.networkProxy.updateProxyConfigs(existingConfigs)
|
|
72
|
+
.then(() => console.log(`Updated certificate for ${data.domain} in NetworkProxy`))
|
|
73
|
+
.catch(err => console.log(`Error updating certificate in NetworkProxy: ${err}`));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Create a new config for this domain
|
|
77
|
+
console.log(`No existing config found for ${data.domain}, creating new config in NetworkProxy`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
console.log(`Error handling certificate event: ${err}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
32
84
|
/**
|
|
33
85
|
* Get the NetworkProxy instance
|
|
34
86
|
*/
|
|
@@ -48,16 +100,6 @@ export class NetworkProxyBridge {
|
|
|
48
100
|
if (this.networkProxy) {
|
|
49
101
|
await this.networkProxy.start();
|
|
50
102
|
console.log(`NetworkProxy started on port ${this.settings.networkProxyPort}`);
|
|
51
|
-
// Log ACME status
|
|
52
|
-
if (this.settings.acme?.enabled) {
|
|
53
|
-
console.log(`ACME certificate management is enabled (${this.settings.acme.useProduction ? 'Production' : 'Staging'} mode)`);
|
|
54
|
-
console.log(`ACME HTTP challenge server on port ${this.settings.acme.port}`);
|
|
55
|
-
// Register domains for ACME certificates if enabled
|
|
56
|
-
if (this.networkProxy.options.acme?.enabled) {
|
|
57
|
-
console.log('Registering domains with ACME certificate manager...');
|
|
58
|
-
// The NetworkProxy will handle this internally via registerDomainsWithAcmeManager()
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
103
|
}
|
|
62
104
|
}
|
|
63
105
|
/**
|
|
@@ -69,16 +111,40 @@ export class NetworkProxyBridge {
|
|
|
69
111
|
console.log('Stopping NetworkProxy...');
|
|
70
112
|
await this.networkProxy.stop();
|
|
71
113
|
console.log('NetworkProxy stopped successfully');
|
|
72
|
-
// Log ACME shutdown if it was enabled
|
|
73
|
-
if (this.settings.acme?.enabled) {
|
|
74
|
-
console.log('ACME certificate manager stopped');
|
|
75
|
-
}
|
|
76
114
|
}
|
|
77
115
|
catch (err) {
|
|
78
116
|
console.log(`Error stopping NetworkProxy: ${err}`);
|
|
79
117
|
}
|
|
80
118
|
}
|
|
81
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Register domains with Port80Handler
|
|
122
|
+
*/
|
|
123
|
+
registerDomainsWithPort80Handler(domains) {
|
|
124
|
+
if (!this.port80Handler) {
|
|
125
|
+
console.log('Cannot register domains - Port80Handler not initialized');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
for (const domain of domains) {
|
|
129
|
+
// Skip wildcards
|
|
130
|
+
if (domain.includes('*')) {
|
|
131
|
+
console.log(`Skipping wildcard domain for ACME: ${domain}`);
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
// Register the domain
|
|
135
|
+
try {
|
|
136
|
+
this.port80Handler.addDomain({
|
|
137
|
+
domainName: domain,
|
|
138
|
+
sslRedirect: true,
|
|
139
|
+
acmeMaintenance: true
|
|
140
|
+
});
|
|
141
|
+
console.log(`Registered domain with Port80Handler: ${domain}`);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
console.log(`Error registering domain ${domain} with Port80Handler: ${err}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
82
148
|
/**
|
|
83
149
|
* Forwards a TLS connection to a NetworkProxy for handling
|
|
84
150
|
*/
|
|
@@ -160,13 +226,18 @@ export class NetworkProxyBridge {
|
|
|
160
226
|
}
|
|
161
227
|
// Convert domain configs to NetworkProxy configs
|
|
162
228
|
const proxyConfigs = this.networkProxy.convertPortProxyConfigs(this.settings.domainConfigs, certPair);
|
|
163
|
-
// Log ACME-eligible domains
|
|
164
|
-
|
|
229
|
+
// Log ACME-eligible domains
|
|
230
|
+
const acmeEnabled = this.settings.port80HandlerConfig?.enabled || this.settings.acme?.enabled;
|
|
231
|
+
if (acmeEnabled) {
|
|
165
232
|
const acmeEligibleDomains = proxyConfigs
|
|
166
233
|
.filter((config) => !config.hostName.includes('*')) // Exclude wildcards
|
|
167
234
|
.map((config) => config.hostName);
|
|
168
235
|
if (acmeEligibleDomains.length > 0) {
|
|
169
236
|
console.log(`Domains eligible for ACME certificates: ${acmeEligibleDomains.join(', ')}`);
|
|
237
|
+
// Register these domains with Port80Handler if available
|
|
238
|
+
if (this.port80Handler) {
|
|
239
|
+
this.registerDomainsWithPort80Handler(acmeEligibleDomains);
|
|
240
|
+
}
|
|
170
241
|
}
|
|
171
242
|
else {
|
|
172
243
|
console.log('No domains eligible for ACME certificates found in configuration');
|
|
@@ -184,11 +255,35 @@ export class NetworkProxyBridge {
|
|
|
184
255
|
* Request a certificate for a specific domain
|
|
185
256
|
*/
|
|
186
257
|
async requestCertificate(domain) {
|
|
258
|
+
// Delegate to Port80Handler if available
|
|
259
|
+
if (this.port80Handler) {
|
|
260
|
+
try {
|
|
261
|
+
// Check if the domain is already registered
|
|
262
|
+
const cert = this.port80Handler.getCertificate(domain);
|
|
263
|
+
if (cert) {
|
|
264
|
+
console.log(`Certificate already exists for ${domain}`);
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
// Register the domain for certificate issuance
|
|
268
|
+
this.port80Handler.addDomain({
|
|
269
|
+
domainName: domain,
|
|
270
|
+
sslRedirect: true,
|
|
271
|
+
acmeMaintenance: true
|
|
272
|
+
});
|
|
273
|
+
console.log(`Domain ${domain} registered for certificate issuance`);
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
console.log(`Error requesting certificate: ${err}`);
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Fall back to NetworkProxy if Port80Handler is not available
|
|
187
282
|
if (!this.networkProxy) {
|
|
188
283
|
console.log('Cannot request certificate - NetworkProxy not initialized');
|
|
189
284
|
return false;
|
|
190
285
|
}
|
|
191
|
-
if (!this.settings.acme?.enabled) {
|
|
286
|
+
if (!this.settings.port80HandlerConfig?.enabled && !this.settings.acme?.enabled) {
|
|
192
287
|
console.log('Cannot request certificate - ACME is not enabled');
|
|
193
288
|
return false;
|
|
194
289
|
}
|
|
@@ -208,4 +303,4 @@ export class NetworkProxyBridge {
|
|
|
208
303
|
}
|
|
209
304
|
}
|
|
210
305
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wcC5uZXR3b3JrcHJveHlicmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnBwLm5ldHdvcmtwcm94eWJyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQW9CLFFBQTRCO1FBQTVCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBRnhDLGlCQUFZLEdBQXdCLElBQUksQ0FBQztJQUVFLENBQUM7SUFFcEQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEcsNkRBQTZEO1lBQzdELE1BQU0sbUJBQW1CLEdBQVE7Z0JBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFpQjtnQkFDckMsb0JBQW9CLEVBQUUsSUFBSTtnQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTTthQUNqRSxDQUFDO1lBRUYsa0NBQWtDO1lBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkIsbUJBQW1CLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZELENBQUM7WUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFMUQs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
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wcC5uZXR3b3JrcHJveHlicmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnBwLm5ldHdvcmtwcm94eWJyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSwwQ0FBMEMsQ0FBQztBQUdySDs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFBb0IsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFIeEMsaUJBQVksR0FBd0IsSUFBSSxDQUFDO1FBQ3pDLGtCQUFhLEdBQXlCLElBQUksQ0FBQztJQUVBLENBQUM7SUFFcEQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUU3QixrQ0FBa0M7UUFDbEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0YsT0FBTyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFNUYsd0VBQXdFO1FBQ3hFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFL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
|
|
@@ -13,14 +13,18 @@ export declare class PortProxy {
|
|
|
13
13
|
private tlsManager;
|
|
14
14
|
private networkProxyBridge;
|
|
15
15
|
private timeoutManager;
|
|
16
|
-
private acmeManager;
|
|
17
16
|
private portRangeManager;
|
|
18
17
|
private connectionHandler;
|
|
18
|
+
private port80Handler;
|
|
19
19
|
constructor(settingsArg: IPortProxySettings);
|
|
20
20
|
/**
|
|
21
21
|
* The settings for the port proxy
|
|
22
22
|
*/
|
|
23
23
|
settings: IPortProxySettings;
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the Port80Handler for ACME certificate management
|
|
26
|
+
*/
|
|
27
|
+
private initializePort80Handler;
|
|
24
28
|
/**
|
|
25
29
|
* Start the proxy server
|
|
26
30
|
*/
|
|
@@ -34,15 +38,27 @@ export declare class PortProxy {
|
|
|
34
38
|
*/
|
|
35
39
|
updateDomainConfigs(newDomainConfigs: IDomainConfig[]): Promise<void>;
|
|
36
40
|
/**
|
|
37
|
-
* Updates the
|
|
41
|
+
* Updates the Port80Handler configuration
|
|
38
42
|
*/
|
|
39
|
-
|
|
43
|
+
updatePort80HandlerConfig(config: IPortProxySettings['port80HandlerConfig']): Promise<void>;
|
|
40
44
|
/**
|
|
41
|
-
*
|
|
45
|
+
* Request a certificate for a specific domain
|
|
42
46
|
*/
|
|
43
47
|
requestCertificate(domain: string): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Validates if a domain name is valid for certificate issuance
|
|
50
|
+
*/
|
|
51
|
+
private isValidDomain;
|
|
44
52
|
/**
|
|
45
53
|
* Get statistics about current connections
|
|
46
54
|
*/
|
|
47
55
|
getStatistics(): any;
|
|
56
|
+
/**
|
|
57
|
+
* Get a list of eligible domains for ACME certificates
|
|
58
|
+
*/
|
|
59
|
+
getEligibleDomainsForCertificates(): string[];
|
|
60
|
+
/**
|
|
61
|
+
* Get status of certificates managed by Port80Handler
|
|
62
|
+
*/
|
|
63
|
+
getCertificateStatus(): any;
|
|
48
64
|
}
|