@push.rocks/smartproxy 10.0.1 → 10.0.3
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/common/types.d.ts +3 -0
- package/dist_ts/common/types.js +2 -4
- package/dist_ts/index.d.ts +2 -0
- package/dist_ts/index.js +3 -1
- package/dist_ts/smartproxy/classes.pp.tlsalert.d.ts +7 -7
- package/dist_ts/smartproxy/classes.pp.tlsalert.js +2 -2
- package/package.json +4 -4
- package/readme.plan.md +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/common/types.ts +5 -1
- package/ts/index.ts +3 -0
- package/ts/smartproxy/classes.pp.tlsalert.ts +7 -7
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartproxy',
|
|
6
|
-
version: '10.0.
|
|
6
|
+
version: '10.0.3',
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLG1PQUFtTztDQUNqUCxDQUFBIn0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
1
2
|
/**
|
|
2
3
|
* Shared types for certificate management and domain options
|
|
3
4
|
*/
|
|
@@ -80,3 +81,5 @@ export interface IAcmeOptions {
|
|
|
80
81
|
skipConfiguredCerts?: boolean;
|
|
81
82
|
domainForwards?: IDomainForwardConfig[];
|
|
82
83
|
}
|
|
84
|
+
export interface IReverseProxyConfig extends plugins.tsclass.network.IReverseProxyConfig {
|
|
85
|
+
}
|
package/dist_ts/common/types.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Shared types for certificate management and domain options
|
|
3
|
-
*/
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
4
2
|
/**
|
|
5
3
|
* Events emitted by the Port80Handler
|
|
6
4
|
*/
|
|
@@ -14,4 +12,4 @@ export var Port80HandlerEvents;
|
|
|
14
12
|
Port80HandlerEvents["MANAGER_STOPPED"] = "manager-stopped";
|
|
15
13
|
Port80HandlerEvents["REQUEST_FORWARDED"] = "request-forwarded";
|
|
16
14
|
})(Port80HandlerEvents || (Port80HandlerEvents = {}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jb21tb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFtQ3pDOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksbUJBUVg7QUFSRCxXQUFZLG1CQUFtQjtJQUM3QixnRUFBeUMsQ0FBQTtJQUN6QyxrRUFBMkMsQ0FBQTtJQUMzQyxnRUFBeUMsQ0FBQTtJQUN6QyxvRUFBNkMsQ0FBQTtJQUM3QywwREFBbUMsQ0FBQTtJQUNuQywwREFBbUMsQ0FBQTtJQUNuQyw4REFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBUlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQVE5QiJ9
|
package/dist_ts/index.d.ts
CHANGED
|
@@ -5,3 +5,5 @@ export * from './redirect/classes.redirect.js';
|
|
|
5
5
|
export * from './smartproxy/classes.smartproxy.js';
|
|
6
6
|
export * from './smartproxy/classes.pp.snihandler.js';
|
|
7
7
|
export * from './smartproxy/classes.pp.interfaces.js';
|
|
8
|
+
import * as types from './common/types.js';
|
|
9
|
+
export { types };
|
package/dist_ts/index.js
CHANGED
|
@@ -5,4 +5,6 @@ export * from './redirect/classes.redirect.js';
|
|
|
5
5
|
export * from './smartproxy/classes.smartproxy.js';
|
|
6
6
|
export * from './smartproxy/classes.pp.snihandler.js';
|
|
7
7
|
export * from './smartproxy/classes.pp.interfaces.js';
|
|
8
|
-
|
|
8
|
+
import * as types from './common/types.js';
|
|
9
|
+
export { types };
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
2
|
/**
|
|
3
3
|
* TlsAlert class for managing TLS alert messages
|
|
4
4
|
*/
|
|
@@ -72,7 +72,7 @@ export declare class TlsAlert {
|
|
|
72
72
|
* @param closeDelay Milliseconds to wait before closing the connection (default: 200ms)
|
|
73
73
|
* @returns Promise that resolves when the alert has been sent
|
|
74
74
|
*/
|
|
75
|
-
static send(socket: net.Socket, level: number, description: number, closeAfterSend?: boolean, closeDelay?: number): Promise<void>;
|
|
75
|
+
static send(socket: plugins.net.Socket, level: number, description: number, closeAfterSend?: boolean, closeDelay?: number): Promise<void>;
|
|
76
76
|
/**
|
|
77
77
|
* Pre-defined TLS alert messages
|
|
78
78
|
*/
|
|
@@ -110,7 +110,7 @@ export declare class TlsAlert {
|
|
|
110
110
|
* @param socket The socket to send the alert to
|
|
111
111
|
* @returns Promise that resolves when the alert has been sent
|
|
112
112
|
*/
|
|
113
|
-
static sendSniRequired(socket: net.Socket): Promise<void>;
|
|
113
|
+
static sendSniRequired(socket: plugins.net.Socket): Promise<void>;
|
|
114
114
|
/**
|
|
115
115
|
* Utility method to send a close_notify alert and close the connection
|
|
116
116
|
*
|
|
@@ -118,7 +118,7 @@ export declare class TlsAlert {
|
|
|
118
118
|
* @param closeDelay Milliseconds to wait before closing the connection (default: 200ms)
|
|
119
119
|
* @returns Promise that resolves when the alert has been sent and the connection closed
|
|
120
120
|
*/
|
|
121
|
-
static sendCloseNotify(socket: net.Socket, closeDelay?: number): Promise<void>;
|
|
121
|
+
static sendCloseNotify(socket: plugins.net.Socket, closeDelay?: number): Promise<void>;
|
|
122
122
|
/**
|
|
123
123
|
* Utility method to send a certificate_expired alert to force new TLS session
|
|
124
124
|
*
|
|
@@ -128,7 +128,7 @@ export declare class TlsAlert {
|
|
|
128
128
|
* @param closeDelay Milliseconds to wait before closing the connection (default: 200ms)
|
|
129
129
|
* @returns Promise that resolves when the alert has been sent
|
|
130
130
|
*/
|
|
131
|
-
static sendCertificateExpired(socket: net.Socket, fatal?: boolean, closeAfterSend?: boolean, closeDelay?: number): Promise<void>;
|
|
131
|
+
static sendCertificateExpired(socket: plugins.net.Socket, fatal?: boolean, closeAfterSend?: boolean, closeDelay?: number): Promise<void>;
|
|
132
132
|
/**
|
|
133
133
|
* Send a sequence of alerts to force SNI from clients
|
|
134
134
|
* This combines multiple alerts to ensure maximum browser compatibility
|
|
@@ -136,7 +136,7 @@ export declare class TlsAlert {
|
|
|
136
136
|
* @param socket The socket to send the alerts to
|
|
137
137
|
* @returns Promise that resolves when all alerts have been sent
|
|
138
138
|
*/
|
|
139
|
-
static sendForceSniSequence(socket: net.Socket): Promise<void>;
|
|
139
|
+
static sendForceSniSequence(socket: plugins.net.Socket): Promise<void>;
|
|
140
140
|
/**
|
|
141
141
|
* Send a fatal level alert that immediately terminates the connection
|
|
142
142
|
*
|
|
@@ -145,5 +145,5 @@ export declare class TlsAlert {
|
|
|
145
145
|
* @param closeDelay Milliseconds to wait before closing the connection (default: 100ms)
|
|
146
146
|
* @returns Promise that resolves when the alert has been sent and the connection closed
|
|
147
147
|
*/
|
|
148
|
-
static sendFatalAndClose(socket: net.Socket, description: number, closeDelay?: number): Promise<void>;
|
|
148
|
+
static sendFatalAndClose(socket: plugins.net.Socket, description: number, closeDelay?: number): Promise<void>;
|
|
149
149
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
2
|
/**
|
|
3
3
|
* TlsAlert class for managing TLS alert messages
|
|
4
4
|
*/
|
|
@@ -222,4 +222,4 @@ export class TlsAlert {
|
|
|
222
222
|
return this.send(socket, this.LEVEL_FATAL, description, true, closeDelay);
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wcC50bHNhbGVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3NtYXJ0cHJveHkvY2xhc3Nlcy5wcC50bHNhbGVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBQ25CLG1CQUFtQjthQUNILGtCQUFhLEdBQUcsSUFBSSxDQUFDO2FBQ3JCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO0lBRW5DLHdFQUF3RTthQUN4RCxpQkFBWSxHQUFHLElBQUksQ0FBQzthQUNwQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7YUFDMUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7YUFDdEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUMsZUFBZTthQUN6QyxvQkFBZSxHQUFHLElBQUksQ0FBQzthQUN2QiwwQkFBcUIsR0FBRyxJQUFJLENBQUMsR0FBQyxvQkFBb0I7YUFDbEQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO2FBQ3pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUMsYUFBYTthQUNwQyxvQkFBZSxHQUFHLElBQUksQ0FBQzthQUN2Qiw0QkFBdUIsR0FBRyxJQUFJLENBQUM7YUFDL0Isd0JBQW1CLEdBQUcsSUFBSSxDQUFDO2FBQzNCLHdCQUFtQixHQUFHLElBQUksQ0FBQzthQUMzQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7YUFDM0Isc0JBQWlCLEdBQUcsSUFBSSxDQUFDO2FBQ3pCLGVBQVUsR0FBRyxJQUFJLENBQUM7YUFDbEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7YUFDckIsaUJBQVksR0FBRyxJQUFJLENBQUM7YUFDcEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7YUFDckIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUMsZUFBZTthQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7YUFDeEIsMEJBQXFCLEdBQUcsSUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartproxy",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"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.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@push.rocks/lik": "^6.2.2",
|
|
21
|
-
"@push.rocks/smartacme": "^7.2.
|
|
21
|
+
"@push.rocks/smartacme": "^7.2.4",
|
|
22
22
|
"@push.rocks/smartdelay": "^3.0.5",
|
|
23
|
-
"@push.rocks/smartnetwork": "^4.0.
|
|
23
|
+
"@push.rocks/smartnetwork": "^4.0.1",
|
|
24
24
|
"@push.rocks/smartpromise": "^4.2.3",
|
|
25
25
|
"@push.rocks/smartrequest": "^2.1.0",
|
|
26
26
|
"@push.rocks/smartstring": "^4.0.15",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@types/ws": "^8.18.1",
|
|
31
31
|
"minimatch": "^10.0.1",
|
|
32
32
|
"pretty-ms": "^9.2.0",
|
|
33
|
-
"ws": "^8.18.
|
|
33
|
+
"ws": "^8.18.2"
|
|
34
34
|
},
|
|
35
35
|
"files": [
|
|
36
36
|
"ts/**/*",
|
package/readme.plan.md
CHANGED
|
@@ -18,7 +18,7 @@ This document outlines a roadmap to simplify and refactor the SmartProxy & Netwo
|
|
|
18
18
|
- [x] Unify configuration options:
|
|
19
19
|
- [x] Merge `INetworkProxyOptions.acme`, `IPort80HandlerOptions`, and `port80HandlerConfig` into one schema
|
|
20
20
|
- [x] Deprecate old option names and provide clear upgrade path
|
|
21
|
-
- [
|
|
21
|
+
- [x] Centralize plugin imports in `ts/plugins.ts` and update all modules to use it
|
|
22
22
|
- [x] Remove legacy or unused code paths (e.g., old HTTP/2 fallback logic if obsolete)
|
|
23
23
|
- [ ] Enhance and expand test coverage:
|
|
24
24
|
- Add unit tests for certificate issuance, renewal, and error handling
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartproxy',
|
|
6
|
-
version: '10.0.
|
|
6
|
+
version: '10.0.3',
|
|
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
|
}
|
package/ts/common/types.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Shared types for certificate management and domain options
|
|
3
5
|
*/
|
|
@@ -86,4 +88,6 @@ export interface IAcmeOptions {
|
|
|
86
88
|
certificateStore?: string; // Directory to store certificates
|
|
87
89
|
skipConfiguredCerts?: boolean; // Skip domains with existing certificates
|
|
88
90
|
domainForwards?: IDomainForwardConfig[]; // Domain-specific forwarding configs
|
|
89
|
-
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface IReverseProxyConfig extends plugins.tsclass.network.IReverseProxyConfig {}
|
package/ts/index.ts
CHANGED
|
@@ -5,3 +5,6 @@ export * from './redirect/classes.redirect.js';
|
|
|
5
5
|
export * from './smartproxy/classes.smartproxy.js';
|
|
6
6
|
export * from './smartproxy/classes.pp.snihandler.js';
|
|
7
7
|
export * from './smartproxy/classes.pp.interfaces.js';
|
|
8
|
+
|
|
9
|
+
import * as types from './common/types.js';
|
|
10
|
+
export { types };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* TlsAlert class for managing TLS alert messages
|
|
@@ -99,7 +99,7 @@ export class TlsAlert {
|
|
|
99
99
|
* @returns Promise that resolves when the alert has been sent
|
|
100
100
|
*/
|
|
101
101
|
static async send(
|
|
102
|
-
socket: net.Socket,
|
|
102
|
+
socket: plugins.net.Socket,
|
|
103
103
|
level: number,
|
|
104
104
|
description: number,
|
|
105
105
|
closeAfterSend: boolean = false,
|
|
@@ -183,7 +183,7 @@ export class TlsAlert {
|
|
|
183
183
|
* @param socket The socket to send the alert to
|
|
184
184
|
* @returns Promise that resolves when the alert has been sent
|
|
185
185
|
*/
|
|
186
|
-
static async sendSniRequired(socket: net.Socket): Promise<void> {
|
|
186
|
+
static async sendSniRequired(socket: plugins.net.Socket): Promise<void> {
|
|
187
187
|
return this.send(socket, this.LEVEL_WARNING, this.UNRECOGNIZED_NAME);
|
|
188
188
|
}
|
|
189
189
|
|
|
@@ -194,7 +194,7 @@ export class TlsAlert {
|
|
|
194
194
|
* @param closeDelay Milliseconds to wait before closing the connection (default: 200ms)
|
|
195
195
|
* @returns Promise that resolves when the alert has been sent and the connection closed
|
|
196
196
|
*/
|
|
197
|
-
static async sendCloseNotify(socket: net.Socket, closeDelay: number = 200): Promise<void> {
|
|
197
|
+
static async sendCloseNotify(socket: plugins.net.Socket, closeDelay: number = 200): Promise<void> {
|
|
198
198
|
return this.send(socket, this.LEVEL_WARNING, this.CLOSE_NOTIFY, true, closeDelay);
|
|
199
199
|
}
|
|
200
200
|
|
|
@@ -208,7 +208,7 @@ export class TlsAlert {
|
|
|
208
208
|
* @returns Promise that resolves when the alert has been sent
|
|
209
209
|
*/
|
|
210
210
|
static async sendCertificateExpired(
|
|
211
|
-
socket: net.Socket,
|
|
211
|
+
socket: plugins.net.Socket,
|
|
212
212
|
fatal: boolean = false,
|
|
213
213
|
closeAfterSend: boolean = true,
|
|
214
214
|
closeDelay: number = 200
|
|
@@ -224,7 +224,7 @@ export class TlsAlert {
|
|
|
224
224
|
* @param socket The socket to send the alerts to
|
|
225
225
|
* @returns Promise that resolves when all alerts have been sent
|
|
226
226
|
*/
|
|
227
|
-
static async sendForceSniSequence(socket: net.Socket): Promise<void> {
|
|
227
|
+
static async sendForceSniSequence(socket: plugins.net.Socket): Promise<void> {
|
|
228
228
|
try {
|
|
229
229
|
// Send unrecognized_name (warning)
|
|
230
230
|
socket.cork();
|
|
@@ -249,7 +249,7 @@ export class TlsAlert {
|
|
|
249
249
|
* @returns Promise that resolves when the alert has been sent and the connection closed
|
|
250
250
|
*/
|
|
251
251
|
static async sendFatalAndClose(
|
|
252
|
-
socket: net.Socket,
|
|
252
|
+
socket: plugins.net.Socket,
|
|
253
253
|
description: number,
|
|
254
254
|
closeDelay: number = 100
|
|
255
255
|
): Promise<void> {
|