@push.rocks/smartproxy 18.0.2 → 18.2.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.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/certificate/certificate-manager.d.ts +150 -0
- package/dist_ts/certificate/certificate-manager.js +505 -0
- package/dist_ts/certificate/events/simplified-events.d.ts +56 -0
- package/dist_ts/certificate/events/simplified-events.js +13 -0
- package/dist_ts/certificate/models/certificate-errors.d.ts +69 -0
- package/dist_ts/certificate/models/certificate-errors.js +141 -0
- package/dist_ts/certificate/models/certificate-strategy.d.ts +60 -0
- package/dist_ts/certificate/models/certificate-strategy.js +73 -0
- package/dist_ts/certificate/simplified-certificate-manager.d.ts +150 -0
- package/dist_ts/certificate/simplified-certificate-manager.js +501 -0
- package/dist_ts/http/index.d.ts +1 -9
- package/dist_ts/http/index.js +5 -11
- package/dist_ts/plugins.d.ts +3 -1
- package/dist_ts/plugins.js +4 -2
- package/dist_ts/proxies/network-proxy/network-proxy.js +3 -1
- package/dist_ts/proxies/network-proxy/simplified-certificate-bridge.d.ts +48 -0
- package/dist_ts/proxies/network-proxy/simplified-certificate-bridge.js +76 -0
- package/dist_ts/proxies/network-proxy/websocket-handler.js +41 -4
- package/dist_ts/proxies/smart-proxy/cert-store.d.ts +10 -0
- package/dist_ts/proxies/smart-proxy/cert-store.js +70 -0
- package/dist_ts/proxies/smart-proxy/certificate-manager.d.ts +116 -0
- package/dist_ts/proxies/smart-proxy/certificate-manager.js +401 -0
- package/dist_ts/proxies/smart-proxy/legacy-smart-proxy.d.ts +168 -0
- package/dist_ts/proxies/smart-proxy/legacy-smart-proxy.js +642 -0
- package/dist_ts/proxies/smart-proxy/models/route-types.d.ts +26 -0
- package/dist_ts/proxies/smart-proxy/models/route-types.js +1 -1
- package/dist_ts/proxies/smart-proxy/models/simplified-smartproxy-config.d.ts +65 -0
- package/dist_ts/proxies/smart-proxy/models/simplified-smartproxy-config.js +31 -0
- package/dist_ts/proxies/smart-proxy/models/smartproxy-options.d.ts +102 -0
- package/dist_ts/proxies/smart-proxy/models/smartproxy-options.js +73 -0
- package/dist_ts/proxies/smart-proxy/network-proxy-bridge.d.ts +10 -44
- package/dist_ts/proxies/smart-proxy/network-proxy-bridge.js +66 -202
- package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +4 -0
- package/dist_ts/proxies/smart-proxy/route-connection-handler.js +62 -2
- package/dist_ts/proxies/smart-proxy/simplified-smart-proxy.d.ts +41 -0
- package/dist_ts/proxies/smart-proxy/simplified-smart-proxy.js +132 -0
- package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +18 -13
- package/dist_ts/proxies/smart-proxy/smart-proxy.js +79 -196
- package/package.json +7 -5
- package/readme.md +224 -10
- package/readme.plan.md +1405 -617
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/http/index.ts +5 -12
- package/ts/plugins.ts +4 -1
- package/ts/proxies/network-proxy/network-proxy.ts +3 -0
- package/ts/proxies/network-proxy/websocket-handler.ts +38 -3
- package/ts/proxies/smart-proxy/cert-store.ts +86 -0
- package/ts/proxies/smart-proxy/certificate-manager.ts +506 -0
- package/ts/proxies/smart-proxy/models/route-types.ts +33 -3
- package/ts/proxies/smart-proxy/network-proxy-bridge.ts +86 -239
- package/ts/proxies/smart-proxy/route-connection-handler.ts +74 -1
- package/ts/proxies/smart-proxy/smart-proxy.ts +105 -222
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified SmartProxy with mandatory certificate provider
|
|
3
|
+
*/
|
|
4
|
+
import * as plugins from '../../plugins.js';
|
|
5
|
+
import type { SimplifiedSmartProxyOptions } from './models/simplified-smartproxy-config.js';
|
|
6
|
+
import type { IRouteConfig } from './models/route-types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Simplified SmartProxy implementation
|
|
9
|
+
*/
|
|
10
|
+
export declare class SimplifiedSmartProxy extends plugins.EventEmitter {
|
|
11
|
+
private options;
|
|
12
|
+
private networkProxy;
|
|
13
|
+
private certificateManager?;
|
|
14
|
+
private port80Handler?;
|
|
15
|
+
private logger;
|
|
16
|
+
constructor(options: SimplifiedSmartProxyOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Start the proxy
|
|
19
|
+
*/
|
|
20
|
+
start(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Stop the proxy
|
|
23
|
+
*/
|
|
24
|
+
stop(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize certificate management
|
|
27
|
+
*/
|
|
28
|
+
private initializeCertificateManagement;
|
|
29
|
+
/**
|
|
30
|
+
* Update route configurations dynamically
|
|
31
|
+
*/
|
|
32
|
+
updateRoutes(routes: IRouteConfig[]): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get listening port
|
|
35
|
+
*/
|
|
36
|
+
getPort(): number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Factory function for creating SimplifiedSmartProxy
|
|
40
|
+
*/
|
|
41
|
+
export declare function createSimplifiedSmartProxy(options: SimplifiedSmartProxyOptions): SimplifiedSmartProxy;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified SmartProxy with mandatory certificate provider
|
|
3
|
+
*/
|
|
4
|
+
import * as plugins from '../../plugins.js';
|
|
5
|
+
import { NetworkProxy } from '../network-proxy/network-proxy.js';
|
|
6
|
+
import { SimplifiedCertificateManager } from '../../certificate/simplified-certificate-manager.js';
|
|
7
|
+
import { validateSmartProxyConfig } from './models/simplified-smartproxy-config.js';
|
|
8
|
+
import { Port80Handler } from '../../http/port80/port80-handler.js';
|
|
9
|
+
import { CertificateEvent } from '../../certificate/events/simplified-events.js';
|
|
10
|
+
/**
|
|
11
|
+
* Simplified SmartProxy implementation
|
|
12
|
+
*/
|
|
13
|
+
export class SimplifiedSmartProxy extends plugins.EventEmitter {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super();
|
|
16
|
+
// Validate configuration
|
|
17
|
+
validateSmartProxyConfig(options);
|
|
18
|
+
this.options = options;
|
|
19
|
+
// Simple console logger
|
|
20
|
+
this.logger = {
|
|
21
|
+
info: (...args) => console.log('[INFO]', ...args),
|
|
22
|
+
warn: (...args) => console.warn('[WARN]', ...args),
|
|
23
|
+
error: (...args) => console.error('[ERROR]', ...args)
|
|
24
|
+
};
|
|
25
|
+
// Create NetworkProxy
|
|
26
|
+
this.networkProxy = new NetworkProxy({
|
|
27
|
+
port: options.port || 443,
|
|
28
|
+
logLevel: options.logLevel
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Start the proxy
|
|
33
|
+
*/
|
|
34
|
+
async start() {
|
|
35
|
+
this.logger.info('Starting SimplifiedSmartProxy...');
|
|
36
|
+
// Initialize certificate management if ACME is enabled
|
|
37
|
+
if (this.options.acme?.enabled !== false) {
|
|
38
|
+
await this.initializeCertificateManagement();
|
|
39
|
+
}
|
|
40
|
+
// Configure routes
|
|
41
|
+
await this.networkProxy.updateRouteConfigs(this.options.routes);
|
|
42
|
+
// Start NetworkProxy
|
|
43
|
+
await this.networkProxy.start();
|
|
44
|
+
this.logger.info(`SimplifiedSmartProxy started on port ${this.options.port || 443}`);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Stop the proxy
|
|
48
|
+
*/
|
|
49
|
+
async stop() {
|
|
50
|
+
this.logger.info('Stopping SimplifiedSmartProxy...');
|
|
51
|
+
// Stop certificate manager
|
|
52
|
+
if (this.certificateManager) {
|
|
53
|
+
await this.certificateManager.stop();
|
|
54
|
+
}
|
|
55
|
+
// Stop Port80Handler
|
|
56
|
+
if (this.port80Handler) {
|
|
57
|
+
await this.port80Handler.stop();
|
|
58
|
+
}
|
|
59
|
+
// Stop NetworkProxy
|
|
60
|
+
await this.networkProxy.stop();
|
|
61
|
+
this.logger.info('SimplifiedSmartProxy stopped');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Initialize certificate management
|
|
65
|
+
*/
|
|
66
|
+
async initializeCertificateManagement() {
|
|
67
|
+
const acmeConfig = this.options.acme;
|
|
68
|
+
// Create certificate manager
|
|
69
|
+
this.certificateManager = new SimplifiedCertificateManager({
|
|
70
|
+
certProvider: acmeConfig.certProvider,
|
|
71
|
+
acmeEmail: acmeConfig.email,
|
|
72
|
+
acmeServer: acmeConfig.server,
|
|
73
|
+
storageDir: acmeConfig.storageDir,
|
|
74
|
+
renewBeforeDays: acmeConfig.renewBeforeDays
|
|
75
|
+
});
|
|
76
|
+
// Set up event forwarding
|
|
77
|
+
this.certificateManager.on(CertificateEvent.OBTAINED, (event) => {
|
|
78
|
+
this.logger.info(`Certificate ${event.type} for ${event.domain}`);
|
|
79
|
+
this.emit('certificate:obtained', event);
|
|
80
|
+
});
|
|
81
|
+
this.certificateManager.on(CertificateEvent.FAILED, (event) => {
|
|
82
|
+
this.logger.error(`Certificate failed for ${event.domain}: ${event.error.message}`);
|
|
83
|
+
this.emit('certificate:failed', event);
|
|
84
|
+
});
|
|
85
|
+
this.certificateManager.on(CertificateEvent.EXPIRING, (event) => {
|
|
86
|
+
this.logger.warn(`Certificate expiring in ${event.daysRemaining} days for ${event.domain}`);
|
|
87
|
+
this.emit('certificate:expiring', event);
|
|
88
|
+
});
|
|
89
|
+
// Create Port80Handler for HTTP-01 challenges
|
|
90
|
+
this.port80Handler = new Port80Handler({
|
|
91
|
+
port: 80,
|
|
92
|
+
enabled: true,
|
|
93
|
+
accountEmail: acmeConfig.email,
|
|
94
|
+
useProduction: acmeConfig.server === 'production',
|
|
95
|
+
certificateStore: acmeConfig.storageDir
|
|
96
|
+
});
|
|
97
|
+
// Connect certificate manager to Port80Handler
|
|
98
|
+
this.certificateManager.port80Handler = this.port80Handler;
|
|
99
|
+
// Start certificate manager
|
|
100
|
+
await this.certificateManager.start();
|
|
101
|
+
// Start Port80Handler
|
|
102
|
+
await this.port80Handler.start();
|
|
103
|
+
// Connect NetworkProxy to certificate manager
|
|
104
|
+
this.networkProxy.setExternalCertificateManager(this.certificateManager);
|
|
105
|
+
this.logger.info('Certificate management initialized');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Update route configurations dynamically
|
|
109
|
+
*/
|
|
110
|
+
async updateRoutes(routes) {
|
|
111
|
+
this.options.routes = routes;
|
|
112
|
+
await this.networkProxy.updateRouteConfigs(routes);
|
|
113
|
+
// Update certificate manager if active
|
|
114
|
+
if (this.certificateManager) {
|
|
115
|
+
// Certificate manager will handle route-based certificates
|
|
116
|
+
await this.certificateManager.updateRoutes?.(routes);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get listening port
|
|
121
|
+
*/
|
|
122
|
+
getPort() {
|
|
123
|
+
return this.networkProxy.getListeningPort();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Factory function for creating SimplifiedSmartProxy
|
|
128
|
+
*/
|
|
129
|
+
export function createSimplifiedSmartProxy(options) {
|
|
130
|
+
return new SimplifiedSmartProxy(options);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxpZmllZC1zbWFydC1wcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL3Byb3hpZXMvc21hcnQtcHJveHkvc2ltcGxpZmllZC1zbWFydC1wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVqRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxPQUFPLENBQUMsWUFBWTtJQU81RCxZQUFZLE9BQW9DO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRVIseUJBQXlCO1FBQ3pCLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3hELElBQUksRUFBRSxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztZQUN6RCxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FB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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as plugins from '../../plugins.js';
|
|
2
2
|
import { RouteManager } from './route-manager.js';
|
|
3
|
+
import { type ICertStatus } from './certificate-manager.js';
|
|
3
4
|
import type { ISmartProxyOptions } from './models/interfaces.js';
|
|
4
5
|
import type { IRouteConfig } from './models/route-types.js';
|
|
5
6
|
/**
|
|
@@ -27,8 +28,7 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
27
28
|
routeManager: RouteManager;
|
|
28
29
|
private routeConnectionHandler;
|
|
29
30
|
private nftablesManager;
|
|
30
|
-
private
|
|
31
|
-
private certProvisioner?;
|
|
31
|
+
private certManager;
|
|
32
32
|
/**
|
|
33
33
|
* Constructor for SmartProxy
|
|
34
34
|
*
|
|
@@ -66,9 +66,13 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
66
66
|
*/
|
|
67
67
|
settings: ISmartProxyOptions;
|
|
68
68
|
/**
|
|
69
|
-
* Initialize
|
|
69
|
+
* Initialize certificate manager
|
|
70
70
|
*/
|
|
71
|
-
private
|
|
71
|
+
private initializeCertificateManager;
|
|
72
|
+
/**
|
|
73
|
+
* Check if we have routes with static certificates
|
|
74
|
+
*/
|
|
75
|
+
private hasStaticCertRoutes;
|
|
72
76
|
/**
|
|
73
77
|
* Start the proxy server with support for both configuration types
|
|
74
78
|
*/
|
|
@@ -113,12 +117,17 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
113
117
|
*/
|
|
114
118
|
updateRoutes(newRoutes: IRouteConfig[]): Promise<void>;
|
|
115
119
|
/**
|
|
116
|
-
*
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
* Manually provision a certificate for a route
|
|
121
|
+
*/
|
|
122
|
+
provisionCertificate(routeName: string): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Force renewal of a certificate
|
|
120
125
|
*/
|
|
121
|
-
|
|
126
|
+
renewCertificate(routeName: string): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Get certificate status for a route
|
|
129
|
+
*/
|
|
130
|
+
getCertificateStatus(routeName: string): ICertStatus | undefined;
|
|
122
131
|
/**
|
|
123
132
|
* Validates if a domain name is valid for certificate issuance
|
|
124
133
|
*/
|
|
@@ -161,8 +170,4 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
161
170
|
* Get NFTables status
|
|
162
171
|
*/
|
|
163
172
|
getNfTablesStatus(): Promise<Record<string, any>>;
|
|
164
|
-
/**
|
|
165
|
-
* Get status of certificates managed by Port80Handler
|
|
166
|
-
*/
|
|
167
|
-
getCertificateStatus(): any;
|
|
168
173
|
}
|