@push.rocks/smartproxy 10.2.0 → 12.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.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/common/port80-adapter.d.ts +11 -0
- package/dist_ts/common/port80-adapter.js +61 -0
- package/dist_ts/examples/forwarding-example.d.ts +1 -0
- package/dist_ts/examples/forwarding-example.js +96 -0
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +3 -1
- package/dist_ts/smartproxy/classes.pp.connectionhandler.js +179 -30
- package/dist_ts/smartproxy/classes.pp.domainconfigmanager.d.ts +39 -0
- package/dist_ts/smartproxy/classes.pp.domainconfigmanager.js +172 -20
- package/dist_ts/smartproxy/classes.pp.interfaces.d.ts +3 -11
- package/dist_ts/smartproxy/classes.pp.portrangemanager.js +17 -10
- package/dist_ts/smartproxy/classes.pp.securitymanager.d.ts +19 -2
- package/dist_ts/smartproxy/classes.pp.securitymanager.js +27 -4
- package/dist_ts/smartproxy/classes.pp.timeoutmanager.js +3 -3
- package/dist_ts/smartproxy/classes.smartproxy.js +45 -13
- package/dist_ts/smartproxy/forwarding/domain-config.d.ts +12 -0
- package/dist_ts/smartproxy/forwarding/domain-config.js +12 -0
- package/dist_ts/smartproxy/forwarding/domain-manager.d.ts +86 -0
- package/dist_ts/smartproxy/forwarding/domain-manager.js +241 -0
- package/dist_ts/smartproxy/forwarding/forwarding.factory.d.ts +24 -0
- package/dist_ts/smartproxy/forwarding/forwarding.factory.js +137 -0
- package/dist_ts/smartproxy/forwarding/forwarding.handler.d.ts +55 -0
- package/dist_ts/smartproxy/forwarding/forwarding.handler.js +94 -0
- package/dist_ts/smartproxy/forwarding/http.handler.d.ts +25 -0
- package/dist_ts/smartproxy/forwarding/http.handler.js +123 -0
- package/dist_ts/smartproxy/forwarding/https-passthrough.handler.d.ts +24 -0
- package/dist_ts/smartproxy/forwarding/https-passthrough.handler.js +154 -0
- package/dist_ts/smartproxy/forwarding/https-terminate-to-http.handler.d.ts +36 -0
- package/dist_ts/smartproxy/forwarding/https-terminate-to-http.handler.js +229 -0
- package/dist_ts/smartproxy/forwarding/https-terminate-to-https.handler.d.ts +35 -0
- package/dist_ts/smartproxy/forwarding/https-terminate-to-https.handler.js +254 -0
- package/dist_ts/smartproxy/forwarding/index.d.ts +16 -0
- package/dist_ts/smartproxy/forwarding/index.js +23 -0
- package/dist_ts/smartproxy/types/forwarding.types.d.ts +104 -0
- package/dist_ts/smartproxy/types/forwarding.types.js +50 -0
- package/package.json +2 -2
- package/readme.md +158 -8
- package/readme.plan.md +471 -42
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/common/port80-adapter.ts +87 -0
- package/ts/index.ts +3 -0
- package/ts/smartproxy/classes.pp.connectionhandler.ts +231 -44
- package/ts/smartproxy/classes.pp.domainconfigmanager.ts +198 -24
- package/ts/smartproxy/classes.pp.interfaces.ts +3 -11
- package/ts/smartproxy/classes.pp.portrangemanager.ts +17 -10
- package/ts/smartproxy/classes.pp.securitymanager.ts +29 -5
- package/ts/smartproxy/classes.pp.timeoutmanager.ts +3 -3
- package/ts/smartproxy/classes.smartproxy.ts +68 -15
- package/ts/smartproxy/forwarding/domain-config.ts +28 -0
- package/ts/smartproxy/forwarding/domain-manager.ts +283 -0
- package/ts/smartproxy/forwarding/forwarding.factory.ts +155 -0
- package/ts/smartproxy/forwarding/forwarding.handler.ts +127 -0
- package/ts/smartproxy/forwarding/http.handler.ts +140 -0
- package/ts/smartproxy/forwarding/https-passthrough.handler.ts +182 -0
- package/ts/smartproxy/forwarding/https-terminate-to-http.handler.ts +264 -0
- package/ts/smartproxy/forwarding/https-terminate-to-https.handler.ts +292 -0
- package/ts/smartproxy/forwarding/index.ts +52 -0
- package/ts/smartproxy/types/forwarding.types.ts +162 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartproxy',
|
|
6
|
-
version: '
|
|
6
|
+
version: '12.0.0',
|
|
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=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IForwardConfig as ILegacyForwardConfig, IDomainOptions } from './types.js';
|
|
2
|
+
import type { IForwardConfig } from '../smartproxy/types/forwarding.types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a forwarding configuration target to the legacy format
|
|
5
|
+
* for Port80Handler
|
|
6
|
+
*/
|
|
7
|
+
export declare function convertToLegacyForwardConfig(forwardConfig: IForwardConfig): ILegacyForwardConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Creates Port80Handler domain options from a domain name and forwarding config
|
|
10
|
+
*/
|
|
11
|
+
export declare function createPort80HandlerOptions(domain: string, forwardConfig: IForwardConfig): IDomainOptions;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a forwarding configuration target to the legacy format
|
|
4
|
+
* for Port80Handler
|
|
5
|
+
*/
|
|
6
|
+
export function convertToLegacyForwardConfig(forwardConfig) {
|
|
7
|
+
// Determine host from the target configuration
|
|
8
|
+
const host = Array.isArray(forwardConfig.target.host)
|
|
9
|
+
? forwardConfig.target.host[0] // Use the first host in the array
|
|
10
|
+
: forwardConfig.target.host;
|
|
11
|
+
return {
|
|
12
|
+
ip: host,
|
|
13
|
+
port: forwardConfig.target.port
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates Port80Handler domain options from a domain name and forwarding config
|
|
18
|
+
*/
|
|
19
|
+
export function createPort80HandlerOptions(domain, forwardConfig) {
|
|
20
|
+
// Determine if we should redirect HTTP to HTTPS
|
|
21
|
+
let sslRedirect = false;
|
|
22
|
+
if (forwardConfig.http?.redirectToHttps) {
|
|
23
|
+
sslRedirect = true;
|
|
24
|
+
}
|
|
25
|
+
// Determine if ACME maintenance should be enabled
|
|
26
|
+
// Enable by default for termination types, unless explicitly disabled
|
|
27
|
+
const requiresTls = forwardConfig.type === 'https-terminate-to-http' ||
|
|
28
|
+
forwardConfig.type === 'https-terminate-to-https';
|
|
29
|
+
const acmeMaintenance = requiresTls &&
|
|
30
|
+
forwardConfig.acme?.enabled !== false;
|
|
31
|
+
// Set up forwarding configuration
|
|
32
|
+
const options = {
|
|
33
|
+
domainName: domain,
|
|
34
|
+
sslRedirect,
|
|
35
|
+
acmeMaintenance
|
|
36
|
+
};
|
|
37
|
+
// Add ACME challenge forwarding if configured
|
|
38
|
+
if (forwardConfig.acme?.forwardChallenges) {
|
|
39
|
+
options.acmeForward = {
|
|
40
|
+
ip: Array.isArray(forwardConfig.acme.forwardChallenges.host)
|
|
41
|
+
? forwardConfig.acme.forwardChallenges.host[0]
|
|
42
|
+
: forwardConfig.acme.forwardChallenges.host,
|
|
43
|
+
port: forwardConfig.acme.forwardChallenges.port
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Add HTTP forwarding if this is an HTTP-only config or if HTTP is enabled
|
|
47
|
+
const supportsHttp = forwardConfig.type === 'http-only' ||
|
|
48
|
+
(forwardConfig.http?.enabled !== false &&
|
|
49
|
+
(forwardConfig.type === 'https-terminate-to-http' ||
|
|
50
|
+
forwardConfig.type === 'https-terminate-to-https'));
|
|
51
|
+
if (supportsHttp) {
|
|
52
|
+
options.forward = {
|
|
53
|
+
ip: Array.isArray(forwardConfig.target.host)
|
|
54
|
+
? forwardConfig.target.host[0]
|
|
55
|
+
: forwardConfig.target.host,
|
|
56
|
+
port: forwardConfig.target.port
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return options;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydDgwLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jb21tb24vcG9ydDgwLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFXekM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUMxQyxhQUE2QjtJQUU3QiwrQ0FBK0M7SUFDL0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNuRCxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUUsa0NBQWtDO1FBQ2xFLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUU5QixPQUFPO1FBQ0wsRUFBRSxFQUFFLElBQUk7UUFDUixJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLE1BQWMsRUFDZCxhQUE2QjtJQUU3QixnREFBZ0Q7SUFDaEQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUN4QyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsc0VBQXNFO0lBQ3RFLE1BQU0sV0FBVyxHQUNmLGFBQWEsQ0FBQyxJQUFJLEtBQUsseUJBQXlCO1FBQ2hELGFBQWEsQ0FBQyxJQUFJLEtBQUssMEJBQTBCLENBQUM7SUFFcEQsTUFBTSxlQUFlLEdBQ25CLFdBQVc7UUFDWCxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSyxLQUFLLENBQUM7SUFFeEMsa0NBQWtDO0lBQ2xDLE1BQU0sT0FBTyxHQUFtQjtRQUM5QixVQUFVLEVBQUUsTUFBTTtRQUNsQixXQUFXO1FBQ1gsZUFBZTtLQUNoQixDQUFDO0lBRUYsOENBQThDO0lBQzlDLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxXQUFXLEdBQUc7WUFDcEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzFELENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUk7WUFDN0MsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSTtTQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxNQUFNLFlBQVksR0FDaEIsYUFBYSxDQUFDLElBQUksS0FBSyxXQUFXO1FBQ2xDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEtBQUssS0FBSztZQUNyQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUsseUJBQXlCO2dCQUNoRCxhQUFhLENBQUMsSUFBSSxLQUFLLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUV4RCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxPQUFPLEdBQUc7WUFDaEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDN0IsSUFBSSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
import { createServer } from 'http';
|
|
3
|
+
import { Socket } from 'net';
|
|
4
|
+
import { DomainManager, DomainManagerEvents, createDomainConfig, helpers } from '../smartproxy/forwarding/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Example showing how to use the unified forwarding system
|
|
7
|
+
*/
|
|
8
|
+
async function main() {
|
|
9
|
+
console.log('Initializing forwarding example...');
|
|
10
|
+
// Create the domain manager
|
|
11
|
+
const domainManager = new DomainManager();
|
|
12
|
+
// Set up event listeners
|
|
13
|
+
domainManager.on(DomainManagerEvents.DOMAIN_ADDED, (data) => {
|
|
14
|
+
console.log(`Domain added: ${data.domains.join(', ')} (${data.forwardingType})`);
|
|
15
|
+
});
|
|
16
|
+
domainManager.on(DomainManagerEvents.DOMAIN_MATCHED, (data) => {
|
|
17
|
+
console.log(`Domain matched: ${data.domain} (${data.handlerType})`);
|
|
18
|
+
});
|
|
19
|
+
domainManager.on(DomainManagerEvents.DOMAIN_MATCH_FAILED, (data) => {
|
|
20
|
+
console.log(`Domain match failed: ${data.domain}`);
|
|
21
|
+
});
|
|
22
|
+
domainManager.on(DomainManagerEvents.ERROR, (data) => {
|
|
23
|
+
console.error(`Error:`, data);
|
|
24
|
+
});
|
|
25
|
+
// Add example domains with different forwarding types
|
|
26
|
+
// Example 1: HTTP-only forwarding
|
|
27
|
+
await domainManager.addDomainConfig(createDomainConfig('example.com', helpers.httpOnly({
|
|
28
|
+
target: { host: 'localhost', port: 3000 }
|
|
29
|
+
})));
|
|
30
|
+
// Example 2: HTTPS termination with HTTP backend
|
|
31
|
+
await domainManager.addDomainConfig(createDomainConfig('secure.example.com', helpers.tlsTerminateToHttp({
|
|
32
|
+
target: { host: 'localhost', port: 3000 }
|
|
33
|
+
})));
|
|
34
|
+
// Example 3: HTTPS termination with HTTPS backend
|
|
35
|
+
await domainManager.addDomainConfig(createDomainConfig('api.example.com', helpers.tlsTerminateToHttps({
|
|
36
|
+
target: { host: 'localhost', port: 8443 }
|
|
37
|
+
})));
|
|
38
|
+
// Example 4: SNI passthrough
|
|
39
|
+
await domainManager.addDomainConfig(createDomainConfig('passthrough.example.com', helpers.sniPassthrough({
|
|
40
|
+
target: { host: '10.0.0.5', port: 443 }
|
|
41
|
+
})));
|
|
42
|
+
// Example 5: Custom configuration for a more complex setup
|
|
43
|
+
await domainManager.addDomainConfig(createDomainConfig(['*.example.com', '*.example.org'], {
|
|
44
|
+
type: 'https-terminate-to-http',
|
|
45
|
+
target: {
|
|
46
|
+
host: ['10.0.0.10', '10.0.0.11'], // Round-robin load balancing
|
|
47
|
+
port: 8080
|
|
48
|
+
},
|
|
49
|
+
http: {
|
|
50
|
+
enabled: true,
|
|
51
|
+
redirectToHttps: false // Allow both HTTP and HTTPS
|
|
52
|
+
},
|
|
53
|
+
acme: {
|
|
54
|
+
enabled: true,
|
|
55
|
+
maintenance: true,
|
|
56
|
+
production: false, // Use staging for testing
|
|
57
|
+
forwardChallenges: {
|
|
58
|
+
host: '192.168.1.100',
|
|
59
|
+
port: 8080
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
security: {
|
|
63
|
+
allowedIps: ['10.0.0.*', '192.168.1.*'],
|
|
64
|
+
maxConnections: 100
|
|
65
|
+
},
|
|
66
|
+
advanced: {
|
|
67
|
+
headers: {
|
|
68
|
+
'X-Forwarded-For': '{clientIp}',
|
|
69
|
+
'X-Forwarded-Host': '{sni}'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
// Create a simple HTTP server to demonstrate HTTP handler
|
|
74
|
+
const httpServer = createServer((req, res) => {
|
|
75
|
+
// Extract the domain from the Host header
|
|
76
|
+
const domain = req.headers.host?.split(':')[0] || 'unknown';
|
|
77
|
+
// Forward the request to the appropriate handler
|
|
78
|
+
if (!domainManager.handleHttpRequest(domain, req, res)) {
|
|
79
|
+
// No handler found, send a default response
|
|
80
|
+
res.statusCode = 404;
|
|
81
|
+
res.end(`No handler found for domain: ${domain}`);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
// Listen on HTTP port
|
|
85
|
+
httpServer.listen(80, () => {
|
|
86
|
+
console.log('HTTP server listening on port 80');
|
|
87
|
+
});
|
|
88
|
+
// For HTTPS and SNI, we would need to set up a TLS server
|
|
89
|
+
// This is a simplified example that just shows how the domain manager works
|
|
90
|
+
console.log('Forwarding example initialized successfully');
|
|
91
|
+
}
|
|
92
|
+
// Run the example
|
|
93
|
+
main().catch(error => {
|
|
94
|
+
console.error('Error running example:', error);
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZy1leGFtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZXhhbXBsZXMvZm9yd2FyZGluZy1leGFtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUM3QixPQUFPLEVBQ0wsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsT0FBTyxFQUNSLE1BQU0sbUNBQW1DLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxLQUFLLFVBQVUsSUFBSTtJQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFFbEQsNEJBQTRCO0lBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFFMUMseUJBQXlCO0lBQ3pCLGFBQWEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkYsQ0FBQyxDQUFDLENBQUM7SUFFSCxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7SUFFSCxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsc0RBQXNEO0lBRXRELGtDQUFrQztJQUNsQyxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQ2pDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtLQUMxQyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBRUYsaURBQWlEO0lBQ2pELE1BQU0sYUFBYSxDQUFDLGVBQWUsQ0FDakMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBQ2xFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtLQUMxQyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBRUYsa0RBQWtEO0lBQ2xELE1BQU0sYUFBYSxDQUFDLGVBQWUsQ0FDakMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ2hFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtLQUMxQyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBRUYsNkJBQTZCO0lBQzdCLE1BQU0sYUFBYSxDQUFDLGVBQWUsQ0FDakMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNuRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7S0FDeEMsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUVGLDJEQUEyRDtJQUMzRCxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQ2pDLGtCQUFrQixDQUFDLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFO1FBQ3JELElBQUksRUFBRSx5QkFBeUI7UUFDL0IsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLDZCQUE2QjtZQUMvRCxJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0QsSUFBSSxFQUFFO1lBQ0osT0FBTyxFQUFFLElBQUk7WUFDYixlQUFlLEVBQUUsS0FBSyxDQUFDLDRCQUE0QjtTQUNwRDtRQUNELElBQUksRUFBRTtZQUNKLE9BQU8sRUFBRSxJQUFJO1lBQ2IsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRywwQkFBMEI7WUFDOUMsaUJBQWlCLEVBQUU7Z0JBQ2pCLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsSUFBSTthQUNYO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO1lBQ3ZDLGNBQWMsRUFBRSxHQUFHO1NBQ3BCO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLGlCQUFpQixFQUFFLFlBQVk7Z0JBQy9CLGtCQUFrQixFQUFFLE9BQU87YUFDNUI7U0FDRjtLQUNGLENBQUMsQ0FDSCxDQUFDO0lBRUYsMERBQTBEO0lBQzFELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMzQywwQ0FBMEM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUU1RCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkQsNENBQTRDO1lBQzVDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsc0JBQXNCO0lBQ3RCLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCwwREFBMEQ7SUFDMUQsNEVBQTRFO0lBRTVFLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsa0JBQWtCO0FBQ2xCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDIn0=
|
package/dist_ts/index.d.ts
CHANGED
package/dist_ts/index.js
CHANGED
|
@@ -6,4 +6,6 @@ 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
|
export * from './common/types.js';
|
|
9
|
-
|
|
9
|
+
// Export forwarding system
|
|
10
|
+
export * as forwarding from './smartproxy/forwarding/index.js';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsMkJBQTJCO0FBQzNCLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0NBQWtDLENBQUMifQ==
|