@push.rocks/smartproxy 19.3.2 → 19.3.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/forwarding/factory/forwarding-factory.js +29 -1
- package/dist_ts/http/index.d.ts +1 -3
- package/dist_ts/http/index.js +4 -10
- package/dist_ts/http/models/http-types.d.ts +4 -91
- package/dist_ts/http/models/http-types.js +5 -60
- package/dist_ts/http/router/proxy-router.d.ts +1 -1
- package/dist_ts/http/router/route-router.d.ts +1 -1
- package/dist_ts/index.d.ts +9 -7
- package/dist_ts/index.js +10 -7
- package/dist_ts/proxies/{network-proxy → http-proxy}/certificate-manager.d.ts +2 -2
- package/dist_ts/proxies/{network-proxy → http-proxy}/certificate-manager.js +1 -1
- package/dist_ts/proxies/{network-proxy → http-proxy}/connection-pool.d.ts +2 -2
- package/dist_ts/proxies/http-proxy/connection-pool.js +210 -0
- package/dist_ts/proxies/http-proxy/context-creator.js +108 -0
- package/dist_ts/proxies/{network-proxy → http-proxy}/function-cache.js +1 -1
- package/dist_ts/proxies/http-proxy/handlers/index.d.ts +5 -0
- package/dist_ts/proxies/http-proxy/handlers/index.js +6 -0
- package/dist_ts/proxies/http-proxy/handlers/redirect-handler.d.ts +18 -0
- package/dist_ts/proxies/http-proxy/handlers/redirect-handler.js +78 -0
- package/dist_ts/proxies/http-proxy/handlers/static-handler.d.ts +19 -0
- package/dist_ts/proxies/http-proxy/handlers/static-handler.js +203 -0
- package/dist_ts/proxies/{network-proxy/network-proxy.d.ts → http-proxy/http-proxy.d.ts} +10 -9
- package/dist_ts/proxies/{network-proxy/network-proxy.js → http-proxy/http-proxy.js} +13 -12
- package/dist_ts/proxies/{network-proxy → http-proxy}/http-request-handler.js +1 -1
- package/dist_ts/proxies/http-proxy/http2-request-handler.js +201 -0
- package/dist_ts/proxies/{network-proxy → http-proxy}/index.d.ts +2 -2
- package/dist_ts/proxies/http-proxy/index.js +12 -0
- package/dist_ts/proxies/http-proxy/models/http-types.d.ts +119 -0
- package/dist_ts/proxies/http-proxy/models/http-types.js +112 -0
- package/dist_ts/proxies/http-proxy/models/index.d.ts +5 -0
- package/dist_ts/proxies/http-proxy/models/index.js +6 -0
- package/dist_ts/proxies/{network-proxy → http-proxy}/models/types.d.ts +2 -2
- package/dist_ts/proxies/http-proxy/models/types.js +276 -0
- package/dist_ts/proxies/{network-proxy → http-proxy}/request-handler.d.ts +3 -3
- package/dist_ts/proxies/{network-proxy → http-proxy}/request-handler.js +2 -2
- package/dist_ts/proxies/http-proxy/security-manager.js +255 -0
- package/dist_ts/proxies/{network-proxy → http-proxy}/websocket-handler.d.ts +3 -3
- package/dist_ts/proxies/{network-proxy → http-proxy}/websocket-handler.js +2 -2
- package/dist_ts/proxies/index.d.ts +5 -5
- package/dist_ts/proxies/index.js +5 -5
- package/dist_ts/proxies/smart-proxy/certificate-manager.d.ts +4 -4
- package/dist_ts/proxies/smart-proxy/certificate-manager.js +11 -11
- package/dist_ts/proxies/smart-proxy/http-proxy-bridge.d.ts +41 -0
- package/dist_ts/proxies/smart-proxy/http-proxy-bridge.js +121 -0
- package/dist_ts/proxies/smart-proxy/index.d.ts +2 -1
- package/dist_ts/proxies/smart-proxy/index.js +4 -2
- package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +2 -2
- package/dist_ts/proxies/smart-proxy/port-manager.js +3 -3
- package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +3 -3
- package/dist_ts/proxies/smart-proxy/route-connection-handler.js +24 -265
- package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +1 -1
- package/dist_ts/proxies/smart-proxy/smart-proxy.js +25 -25
- package/dist_ts/routing/index.d.ts +5 -0
- package/dist_ts/routing/index.js +8 -0
- package/dist_ts/routing/models/http-types.d.ts +6 -0
- package/dist_ts/routing/models/http-types.js +7 -0
- package/dist_ts/routing/router/index.d.ts +8 -0
- package/dist_ts/routing/router/index.js +7 -0
- package/dist_ts/{classes.router.d.ts → routing/router/proxy-router.d.ts} +14 -11
- package/dist_ts/{classes.router.js → routing/router/proxy-router.js} +2 -2
- package/dist_ts/routing/router/route-router.d.ts +108 -0
- package/dist_ts/routing/router/route-router.js +393 -0
- package/package.json +1 -1
- package/readme.md +12 -12
- package/readme.plan.md +152 -257
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/forwarding/factory/forwarding-factory.ts +28 -0
- package/ts/index.ts +13 -9
- package/ts/proxies/{network-proxy → http-proxy}/certificate-manager.ts +2 -2
- package/ts/proxies/{network-proxy → http-proxy}/connection-pool.ts +2 -2
- package/ts/proxies/http-proxy/handlers/index.ts +6 -0
- package/ts/proxies/http-proxy/handlers/redirect-handler.ts +105 -0
- package/ts/proxies/http-proxy/handlers/static-handler.ts +251 -0
- package/ts/proxies/{network-proxy/network-proxy.ts → http-proxy/http-proxy.ts} +15 -14
- package/ts/proxies/{network-proxy → http-proxy}/index.ts +3 -3
- package/ts/proxies/http-proxy/models/http-types.ts +165 -0
- package/ts/proxies/http-proxy/models/index.ts +5 -0
- package/ts/proxies/{network-proxy → http-proxy}/models/types.ts +2 -2
- package/ts/proxies/{network-proxy → http-proxy}/request-handler.ts +3 -3
- package/ts/proxies/{network-proxy → http-proxy}/websocket-handler.ts +3 -3
- package/ts/proxies/index.ts +7 -7
- package/ts/proxies/smart-proxy/certificate-manager.ts +10 -10
- package/ts/proxies/smart-proxy/{network-proxy-bridge.ts → http-proxy-bridge.ts} +44 -44
- package/ts/proxies/smart-proxy/index.ts +4 -1
- package/ts/proxies/smart-proxy/models/interfaces.ts +3 -3
- package/ts/proxies/smart-proxy/port-manager.ts +2 -2
- package/ts/proxies/smart-proxy/route-connection-handler.ts +23 -307
- package/ts/proxies/smart-proxy/smart-proxy.ts +25 -25
- package/ts/routing/index.ts +9 -0
- package/ts/routing/models/http-types.ts +6 -0
- package/ts/{http → routing}/router/proxy-router.ts +1 -1
- package/ts/{http → routing}/router/route-router.ts +1 -1
- package/dist_ts/certificate/acme/acme-factory.d.ts +0 -17
- package/dist_ts/certificate/acme/acme-factory.js +0 -40
- package/dist_ts/certificate/acme/challenge-handler.d.ts +0 -44
- package/dist_ts/certificate/acme/challenge-handler.js +0 -92
- package/dist_ts/certificate/acme/index.d.ts +0 -4
- package/dist_ts/certificate/acme/index.js +0 -5
- package/dist_ts/certificate/certificate-manager.d.ts +0 -150
- package/dist_ts/certificate/certificate-manager.js +0 -505
- package/dist_ts/certificate/events/certificate-events.d.ts +0 -33
- package/dist_ts/certificate/events/certificate-events.js +0 -38
- package/dist_ts/certificate/events/simplified-events.d.ts +0 -56
- package/dist_ts/certificate/events/simplified-events.js +0 -13
- package/dist_ts/certificate/index.d.ts +0 -30
- package/dist_ts/certificate/index.js +0 -37
- package/dist_ts/certificate/models/certificate-errors.d.ts +0 -69
- package/dist_ts/certificate/models/certificate-errors.js +0 -141
- package/dist_ts/certificate/models/certificate-strategy.d.ts +0 -60
- package/dist_ts/certificate/models/certificate-strategy.js +0 -73
- package/dist_ts/certificate/models/certificate-types.d.ts +0 -97
- package/dist_ts/certificate/models/certificate-types.js +0 -2
- package/dist_ts/certificate/providers/cert-provisioner.d.ts +0 -119
- package/dist_ts/certificate/providers/cert-provisioner.js +0 -422
- package/dist_ts/certificate/providers/index.d.ts +0 -4
- package/dist_ts/certificate/providers/index.js +0 -5
- package/dist_ts/certificate/simplified-certificate-manager.d.ts +0 -150
- package/dist_ts/certificate/simplified-certificate-manager.js +0 -501
- package/dist_ts/certificate/storage/file-storage.d.ts +0 -66
- package/dist_ts/certificate/storage/file-storage.js +0 -194
- package/dist_ts/certificate/storage/index.d.ts +0 -4
- package/dist_ts/certificate/storage/index.js +0 -5
- package/dist_ts/certificate/utils/certificate-helpers.d.ts +0 -17
- package/dist_ts/certificate/utils/certificate-helpers.js +0 -45
- package/dist_ts/classes.iptablesproxy.d.ts +0 -112
- package/dist_ts/classes.iptablesproxy.js +0 -765
- package/dist_ts/classes.networkproxy.d.ts +0 -243
- package/dist_ts/classes.networkproxy.js +0 -1424
- package/dist_ts/classes.nftablesproxy.d.ts +0 -219
- package/dist_ts/classes.nftablesproxy.js +0 -1542
- package/dist_ts/classes.port80handler.d.ts +0 -215
- package/dist_ts/classes.port80handler.js +0 -736
- package/dist_ts/classes.portproxy.d.ts +0 -171
- package/dist_ts/classes.portproxy.js +0 -1802
- package/dist_ts/classes.pp.acmemanager.d.ts +0 -34
- package/dist_ts/classes.pp.acmemanager.js +0 -123
- package/dist_ts/classes.pp.connectionhandler.d.ts +0 -39
- package/dist_ts/classes.pp.connectionhandler.js +0 -754
- package/dist_ts/classes.pp.connectionmanager.d.ts +0 -78
- package/dist_ts/classes.pp.connectionmanager.js +0 -378
- package/dist_ts/classes.pp.domainconfigmanager.d.ts +0 -55
- package/dist_ts/classes.pp.domainconfigmanager.js +0 -103
- package/dist_ts/classes.pp.interfaces.d.ts +0 -133
- package/dist_ts/classes.pp.interfaces.js +0 -2
- package/dist_ts/classes.pp.networkproxybridge.d.ts +0 -57
- package/dist_ts/classes.pp.networkproxybridge.js +0 -306
- package/dist_ts/classes.pp.portproxy.d.ts +0 -64
- package/dist_ts/classes.pp.portproxy.js +0 -567
- package/dist_ts/classes.pp.portrangemanager.d.ts +0 -56
- package/dist_ts/classes.pp.portrangemanager.js +0 -179
- package/dist_ts/classes.pp.securitymanager.d.ts +0 -47
- package/dist_ts/classes.pp.securitymanager.js +0 -126
- package/dist_ts/classes.pp.snihandler.d.ts +0 -153
- package/dist_ts/classes.pp.snihandler.js +0 -1053
- package/dist_ts/classes.pp.timeoutmanager.d.ts +0 -47
- package/dist_ts/classes.pp.timeoutmanager.js +0 -154
- package/dist_ts/classes.pp.tlsalert.d.ts +0 -149
- package/dist_ts/classes.pp.tlsalert.js +0 -225
- package/dist_ts/classes.pp.tlsmanager.d.ts +0 -57
- package/dist_ts/classes.pp.tlsmanager.js +0 -132
- package/dist_ts/classes.snihandler.d.ts +0 -198
- package/dist_ts/classes.snihandler.js +0 -1210
- package/dist_ts/classes.sslredirect.d.ts +0 -8
- package/dist_ts/classes.sslredirect.js +0 -28
- package/dist_ts/common/acmeFactory.d.ts +0 -9
- package/dist_ts/common/acmeFactory.js +0 -20
- package/dist_ts/common/port80-adapter.d.ts +0 -11
- package/dist_ts/common/port80-adapter.js +0 -87
- package/dist_ts/examples/forwarding-example.d.ts +0 -1
- package/dist_ts/examples/forwarding-example.js +0 -96
- package/dist_ts/forwarding/config/domain-config.d.ts +0 -12
- package/dist_ts/forwarding/config/domain-config.js +0 -12
- package/dist_ts/forwarding/config/domain-manager.d.ts +0 -86
- package/dist_ts/forwarding/config/domain-manager.js +0 -242
- package/dist_ts/helpers.certificates.d.ts +0 -5
- package/dist_ts/helpers.certificates.js +0 -23
- package/dist_ts/http/port80/acme-interfaces.d.ts +0 -108
- package/dist_ts/http/port80/acme-interfaces.js +0 -51
- package/dist_ts/http/port80/challenge-responder.d.ts +0 -53
- package/dist_ts/http/port80/challenge-responder.js +0 -203
- package/dist_ts/http/port80/index.d.ts +0 -6
- package/dist_ts/http/port80/index.js +0 -9
- package/dist_ts/http/port80/port80-handler.d.ts +0 -136
- package/dist_ts/http/port80/port80-handler.js +0 -592
- package/dist_ts/http/redirects/index.d.ts +0 -4
- package/dist_ts/http/redirects/index.js +0 -5
- package/dist_ts/networkproxy/classes.np.certificatemanager.d.ts +0 -77
- package/dist_ts/networkproxy/classes.np.certificatemanager.js +0 -372
- package/dist_ts/networkproxy/classes.np.connectionpool.d.ts +0 -47
- package/dist_ts/networkproxy/classes.np.connectionpool.js +0 -210
- package/dist_ts/networkproxy/classes.np.networkproxy.d.ts +0 -118
- package/dist_ts/networkproxy/classes.np.networkproxy.js +0 -387
- package/dist_ts/networkproxy/classes.np.requesthandler.d.ts +0 -56
- package/dist_ts/networkproxy/classes.np.requesthandler.js +0 -393
- package/dist_ts/networkproxy/classes.np.types.d.ts +0 -83
- package/dist_ts/networkproxy/classes.np.types.js +0 -35
- package/dist_ts/networkproxy/classes.np.websockethandler.d.ts +0 -38
- package/dist_ts/networkproxy/classes.np.websockethandler.js +0 -188
- package/dist_ts/networkproxy/index.d.ts +0 -1
- package/dist_ts/networkproxy/index.js +0 -4
- package/dist_ts/nfttablesproxy/classes.nftablesproxy.d.ts +0 -219
- package/dist_ts/nfttablesproxy/classes.nftablesproxy.js +0 -1542
- package/dist_ts/port80handler/classes.port80handler.d.ts +0 -10
- package/dist_ts/port80handler/classes.port80handler.js +0 -16
- package/dist_ts/proxies/network-proxy/connection-pool.js +0 -210
- package/dist_ts/proxies/network-proxy/context-creator.js +0 -108
- package/dist_ts/proxies/network-proxy/http2-request-handler.js +0 -201
- package/dist_ts/proxies/network-proxy/index.js +0 -12
- package/dist_ts/proxies/network-proxy/models/index.d.ts +0 -4
- package/dist_ts/proxies/network-proxy/models/index.js +0 -5
- package/dist_ts/proxies/network-proxy/models/types.js +0 -276
- package/dist_ts/proxies/network-proxy/security-manager.js +0 -255
- package/dist_ts/proxies/network-proxy/simplified-certificate-bridge.d.ts +0 -48
- package/dist_ts/proxies/network-proxy/simplified-certificate-bridge.js +0 -76
- package/dist_ts/proxies/smart-proxy/connection-handler.d.ts +0 -39
- package/dist_ts/proxies/smart-proxy/connection-handler.js +0 -894
- package/dist_ts/proxies/smart-proxy/domain-config-manager.d.ts +0 -110
- package/dist_ts/proxies/smart-proxy/domain-config-manager.js +0 -386
- package/dist_ts/proxies/smart-proxy/legacy-smart-proxy.d.ts +0 -168
- package/dist_ts/proxies/smart-proxy/legacy-smart-proxy.js +0 -642
- package/dist_ts/proxies/smart-proxy/models/simplified-smartproxy-config.d.ts +0 -65
- package/dist_ts/proxies/smart-proxy/models/simplified-smartproxy-config.js +0 -31
- package/dist_ts/proxies/smart-proxy/models/smartproxy-options.d.ts +0 -102
- package/dist_ts/proxies/smart-proxy/models/smartproxy-options.js +0 -73
- package/dist_ts/proxies/smart-proxy/network-proxy-bridge.d.ts +0 -41
- package/dist_ts/proxies/smart-proxy/network-proxy-bridge.js +0 -121
- package/dist_ts/proxies/smart-proxy/port-range-manager.d.ts +0 -56
- package/dist_ts/proxies/smart-proxy/port-range-manager.js +0 -176
- package/dist_ts/proxies/smart-proxy/route-helpers/index.d.ts +0 -9
- package/dist_ts/proxies/smart-proxy/route-helpers/index.js +0 -11
- package/dist_ts/proxies/smart-proxy/route-helpers.d.ts +0 -7
- package/dist_ts/proxies/smart-proxy/route-helpers.js +0 -9
- package/dist_ts/proxies/smart-proxy/simplified-smart-proxy.d.ts +0 -41
- package/dist_ts/proxies/smart-proxy/simplified-smart-proxy.js +0 -132
- package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.d.ts +0 -51
- package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.js +0 -124
- package/dist_ts/redirect/classes.redirect.d.ts +0 -96
- package/dist_ts/redirect/classes.redirect.js +0 -194
- package/dist_ts/smartproxy/classes.pp.certprovisioner.d.ts +0 -54
- package/dist_ts/smartproxy/classes.pp.certprovisioner.js +0 -179
- package/dist_ts/smartproxy/classes.pp.connectionhandler.d.ts +0 -39
- package/dist_ts/smartproxy/classes.pp.connectionhandler.js +0 -894
- package/dist_ts/smartproxy/classes.pp.connectionmanager.d.ts +0 -78
- package/dist_ts/smartproxy/classes.pp.connectionmanager.js +0 -378
- package/dist_ts/smartproxy/classes.pp.domainconfigmanager.d.ts +0 -94
- package/dist_ts/smartproxy/classes.pp.domainconfigmanager.js +0 -255
- package/dist_ts/smartproxy/classes.pp.interfaces.d.ts +0 -103
- package/dist_ts/smartproxy/classes.pp.interfaces.js +0 -2
- package/dist_ts/smartproxy/classes.pp.networkproxybridge.d.ts +0 -62
- package/dist_ts/smartproxy/classes.pp.networkproxybridge.js +0 -316
- package/dist_ts/smartproxy/classes.pp.portrangemanager.d.ts +0 -56
- package/dist_ts/smartproxy/classes.pp.portrangemanager.js +0 -176
- package/dist_ts/smartproxy/classes.pp.securitymanager.d.ts +0 -64
- package/dist_ts/smartproxy/classes.pp.securitymanager.js +0 -149
- package/dist_ts/smartproxy/classes.pp.snihandler.d.ts +0 -153
- package/dist_ts/smartproxy/classes.pp.snihandler.js +0 -1053
- package/dist_ts/smartproxy/classes.pp.timeoutmanager.d.ts +0 -47
- package/dist_ts/smartproxy/classes.pp.timeoutmanager.js +0 -154
- package/dist_ts/smartproxy/classes.pp.tlsalert.d.ts +0 -149
- package/dist_ts/smartproxy/classes.pp.tlsalert.js +0 -225
- package/dist_ts/smartproxy/classes.pp.tlsmanager.d.ts +0 -57
- package/dist_ts/smartproxy/classes.pp.tlsmanager.js +0 -132
- package/dist_ts/smartproxy/classes.smartproxy.d.ts +0 -63
- package/dist_ts/smartproxy/classes.smartproxy.js +0 -521
- package/dist_ts/smartproxy/forwarding/domain-config.d.ts +0 -12
- package/dist_ts/smartproxy/forwarding/domain-config.js +0 -12
- package/dist_ts/smartproxy/forwarding/domain-manager.d.ts +0 -86
- package/dist_ts/smartproxy/forwarding/domain-manager.js +0 -241
- package/dist_ts/smartproxy/forwarding/forwarding.factory.d.ts +0 -24
- package/dist_ts/smartproxy/forwarding/forwarding.factory.js +0 -137
- package/dist_ts/smartproxy/forwarding/forwarding.handler.d.ts +0 -55
- package/dist_ts/smartproxy/forwarding/forwarding.handler.js +0 -94
- package/dist_ts/smartproxy/forwarding/http.handler.d.ts +0 -25
- package/dist_ts/smartproxy/forwarding/http.handler.js +0 -123
- package/dist_ts/smartproxy/forwarding/https-passthrough.handler.d.ts +0 -24
- package/dist_ts/smartproxy/forwarding/https-passthrough.handler.js +0 -154
- package/dist_ts/smartproxy/forwarding/https-terminate-to-http.handler.d.ts +0 -36
- package/dist_ts/smartproxy/forwarding/https-terminate-to-http.handler.js +0 -229
- package/dist_ts/smartproxy/forwarding/https-terminate-to-https.handler.d.ts +0 -35
- package/dist_ts/smartproxy/forwarding/https-terminate-to-https.handler.js +0 -254
- package/dist_ts/smartproxy/forwarding/index.d.ts +0 -16
- package/dist_ts/smartproxy/forwarding/index.js +0 -23
- package/dist_ts/smartproxy/types/forwarding.types.d.ts +0 -104
- package/dist_ts/smartproxy/types/forwarding.types.js +0 -50
- package/dist_ts/smartproxy.classes.networkproxy.d.ts +0 -31
- package/dist_ts/smartproxy.classes.networkproxy.js +0 -305
- package/dist_ts/smartproxy.classes.router.d.ts +0 -13
- package/dist_ts/smartproxy.classes.router.js +0 -33
- package/dist_ts/smartproxy.classes.sslredirect.d.ts +0 -8
- package/dist_ts/smartproxy.classes.sslredirect.js +0 -28
- package/dist_ts/smartproxy.helpers.certificates.d.ts +0 -5
- package/dist_ts/smartproxy.helpers.certificates.js +0 -23
- package/dist_ts/smartproxy.plugins.d.ts +0 -18
- package/dist_ts/smartproxy.plugins.js +0 -23
- package/dist_ts/smartproxy.portproxy.d.ts +0 -26
- package/dist_ts/smartproxy.portproxy.js +0 -295
- package/ts/http/index.ts +0 -16
- package/ts/http/models/http-types.ts +0 -108
- package/ts/http/redirects/index.ts +0 -3
- package/ts/proxies/network-proxy/models/index.ts +0 -4
- package/ts/redirect/classes.redirect.ts +0 -295
- /package/dist_ts/proxies/{network-proxy → http-proxy}/context-creator.d.ts +0 -0
- /package/dist_ts/proxies/{network-proxy → http-proxy}/function-cache.d.ts +0 -0
- /package/dist_ts/proxies/{network-proxy → http-proxy}/http-request-handler.d.ts +0 -0
- /package/dist_ts/proxies/{network-proxy → http-proxy}/http2-request-handler.d.ts +0 -0
- /package/dist_ts/proxies/{network-proxy → http-proxy}/security-manager.d.ts +0 -0
- /package/ts/proxies/{network-proxy → http-proxy}/context-creator.ts +0 -0
- /package/ts/proxies/{network-proxy → http-proxy}/function-cache.ts +0 -0
- /package/ts/proxies/{network-proxy → http-proxy}/http-request-handler.ts +0 -0
- /package/ts/proxies/{network-proxy → http-proxy}/http2-request-handler.ts +0 -0
- /package/ts/proxies/{network-proxy → http-proxy}/security-manager.ts +0 -0
- /package/ts/{http → routing}/router/index.ts +0 -0
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simplified SmartProxy configuration
|
|
3
|
-
*/
|
|
4
|
-
import type { CertProvider } from '../../../certificate/models/certificate-strategy.js';
|
|
5
|
-
import type { IRouteConfig } from './route-types.js';
|
|
6
|
-
/**
|
|
7
|
-
* ACME configuration - all certificate options in one place
|
|
8
|
-
*/
|
|
9
|
-
export interface AcmeConfig {
|
|
10
|
-
/**
|
|
11
|
-
* Email address for ACME account (required)
|
|
12
|
-
*/
|
|
13
|
-
email: string;
|
|
14
|
-
/**
|
|
15
|
-
* ACME server environment
|
|
16
|
-
*/
|
|
17
|
-
server: 'production' | 'staging';
|
|
18
|
-
/**
|
|
19
|
-
* Certificate provider function (required)
|
|
20
|
-
*/
|
|
21
|
-
certProvider: CertProvider;
|
|
22
|
-
/**
|
|
23
|
-
* Certificate storage directory
|
|
24
|
-
* @default './certs'
|
|
25
|
-
*/
|
|
26
|
-
storageDir?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Days before expiry to renew certificates
|
|
29
|
-
* @default 30
|
|
30
|
-
*/
|
|
31
|
-
renewBeforeDays?: number;
|
|
32
|
-
/**
|
|
33
|
-
* Enable ACME certificate management
|
|
34
|
-
* @default true
|
|
35
|
-
*/
|
|
36
|
-
enabled?: boolean;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Simplified SmartProxy options
|
|
40
|
-
*/
|
|
41
|
-
export interface SimplifiedSmartProxyOptions {
|
|
42
|
-
/**
|
|
43
|
-
* Port to listen on
|
|
44
|
-
* @default 443
|
|
45
|
-
*/
|
|
46
|
-
port?: number;
|
|
47
|
-
/**
|
|
48
|
-
* ACME/Certificate configuration
|
|
49
|
-
* Required if you want automatic certificate management
|
|
50
|
-
*/
|
|
51
|
-
acme?: AcmeConfig;
|
|
52
|
-
/**
|
|
53
|
-
* Route configurations
|
|
54
|
-
*/
|
|
55
|
-
routes: IRouteConfig[];
|
|
56
|
-
/**
|
|
57
|
-
* Log level
|
|
58
|
-
* @default 'info'
|
|
59
|
-
*/
|
|
60
|
-
logLevel?: 'debug' | 'info' | 'warn' | 'error';
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Helper to validate SmartProxy configuration
|
|
64
|
-
*/
|
|
65
|
-
export declare function validateSmartProxyConfig(options: SimplifiedSmartProxyOptions): void;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simplified SmartProxy configuration
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Helper to validate SmartProxy configuration
|
|
6
|
-
*/
|
|
7
|
-
export function validateSmartProxyConfig(options) {
|
|
8
|
-
// If ACME is enabled, certProvider is required
|
|
9
|
-
if (options.acme?.enabled !== false) {
|
|
10
|
-
if (!options.acme?.certProvider) {
|
|
11
|
-
throw new Error('ACME is enabled but no certProvider configured. Please provide acme.certProvider or disable ACME with acme.enabled = false');
|
|
12
|
-
}
|
|
13
|
-
if (!options.acme?.email) {
|
|
14
|
-
throw new Error('ACME is enabled but no email configured. Please provide acme.email');
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
// Validate routes
|
|
18
|
-
if (!options.routes || options.routes.length === 0) {
|
|
19
|
-
throw new Error('At least one route must be configured');
|
|
20
|
-
}
|
|
21
|
-
// Validate routes have required fields
|
|
22
|
-
for (const route of options.routes) {
|
|
23
|
-
if (!route.match) {
|
|
24
|
-
throw new Error('Route must have match criteria');
|
|
25
|
-
}
|
|
26
|
-
if (!route.action) {
|
|
27
|
-
throw new Error('Route must have action configuration');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxpZmllZC1zbWFydHByb3h5LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzL3Byb3hpZXMvc21hcnQtcHJveHkvbW9kZWxzL3NpbXBsaWZpZWQtc21hcnRwcm94eS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUF1RUg7O0dBRUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBb0M7SUFDM0UsK0NBQStDO0lBQy9DLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0SEFBNEgsQ0FBQyxDQUFDO1FBQ2hKLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified SmartProxy configuration options
|
|
3
|
-
*/
|
|
4
|
-
import type { CertProvider } from '../../../certificate/models/certificate-strategy.js';
|
|
5
|
-
import type { IRouteConfig } from './route-types.js';
|
|
6
|
-
/**
|
|
7
|
-
* ACME configuration for automatic certificate management
|
|
8
|
-
*/
|
|
9
|
-
export interface IAcmeConfig {
|
|
10
|
-
/**
|
|
11
|
-
* Email address for ACME account (required if enabled)
|
|
12
|
-
*/
|
|
13
|
-
email: string;
|
|
14
|
-
/**
|
|
15
|
-
* ACME server environment
|
|
16
|
-
* @default 'production'
|
|
17
|
-
*/
|
|
18
|
-
server: 'production' | 'staging';
|
|
19
|
-
/**
|
|
20
|
-
* Certificate provider function (required if enabled)
|
|
21
|
-
* Returns strategy for each domain (acme-http, acme-dns, static, skip)
|
|
22
|
-
*/
|
|
23
|
-
certProvider: CertProvider;
|
|
24
|
-
/**
|
|
25
|
-
* Certificate storage directory
|
|
26
|
-
* @default './certs'
|
|
27
|
-
*/
|
|
28
|
-
storageDir?: string;
|
|
29
|
-
/**
|
|
30
|
-
* Days before expiry to renew certificates
|
|
31
|
-
* @default 30
|
|
32
|
-
*/
|
|
33
|
-
renewBeforeDays?: number;
|
|
34
|
-
/**
|
|
35
|
-
* Enable automatic certificate management
|
|
36
|
-
* @default true
|
|
37
|
-
*/
|
|
38
|
-
enabled?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Port for ACME HTTP-01 challenges
|
|
41
|
-
* @default 80
|
|
42
|
-
*/
|
|
43
|
-
port?: number;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Unified SmartProxy options
|
|
47
|
-
*/
|
|
48
|
-
export interface ISmartProxyOptions {
|
|
49
|
-
/**
|
|
50
|
-
* HTTPS port to listen on
|
|
51
|
-
* @default 443
|
|
52
|
-
*/
|
|
53
|
-
port?: number;
|
|
54
|
-
/**
|
|
55
|
-
* HTTP port to listen on (for redirects and ACME challenges)
|
|
56
|
-
* @default 80
|
|
57
|
-
*/
|
|
58
|
-
httpPort?: number;
|
|
59
|
-
/**
|
|
60
|
-
* Route configurations - the core of SmartProxy
|
|
61
|
-
* Each route defines matching criteria and actions
|
|
62
|
-
*/
|
|
63
|
-
routes: IRouteConfig[];
|
|
64
|
-
/**
|
|
65
|
-
* ACME/Certificate configuration
|
|
66
|
-
* Required for automatic certificate provisioning
|
|
67
|
-
* If not provided or disabled, only static certificates will work
|
|
68
|
-
*/
|
|
69
|
-
acme?: IAcmeConfig;
|
|
70
|
-
/**
|
|
71
|
-
* Certificate provider function for backward compatibility
|
|
72
|
-
* @deprecated Use acme.certProvider instead
|
|
73
|
-
*/
|
|
74
|
-
certProviderFunction?: CertProvider;
|
|
75
|
-
/**
|
|
76
|
-
* Log level for debugging
|
|
77
|
-
* @default 'info'
|
|
78
|
-
*/
|
|
79
|
-
logLevel?: 'debug' | 'info' | 'warn' | 'error';
|
|
80
|
-
/**
|
|
81
|
-
* Enable NFTables integration for advanced networking
|
|
82
|
-
* @default false
|
|
83
|
-
*/
|
|
84
|
-
enableNFTables?: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Preserve client source IP when forwarding
|
|
87
|
-
* @default false
|
|
88
|
-
*/
|
|
89
|
-
preserveSourceIP?: boolean;
|
|
90
|
-
/**
|
|
91
|
-
* Default forwarding target when not specified in routes
|
|
92
|
-
* @deprecated Define targets in individual routes
|
|
93
|
-
*/
|
|
94
|
-
defaultTarget?: {
|
|
95
|
-
host: string;
|
|
96
|
-
port: number;
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Validate SmartProxy configuration
|
|
101
|
-
*/
|
|
102
|
-
export declare function validateSmartProxyConfig(options: ISmartProxyOptions): void;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified SmartProxy configuration options
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Validate SmartProxy configuration
|
|
6
|
-
*/
|
|
7
|
-
export function validateSmartProxyConfig(options) {
|
|
8
|
-
// If ACME is enabled, certProvider is required
|
|
9
|
-
if (options.acme?.enabled !== false) {
|
|
10
|
-
if (!options.acme?.certProvider && !options.certProviderFunction) {
|
|
11
|
-
throw new Error('Certificate management is enabled but no certProvider configured. ' +
|
|
12
|
-
'Please provide acme.certProvider or disable ACME with acme.enabled = false');
|
|
13
|
-
}
|
|
14
|
-
if (!options.acme?.email) {
|
|
15
|
-
throw new Error('Certificate management is enabled but no email configured. ' +
|
|
16
|
-
'Please provide acme.email for ACME account registration');
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
// Validate routes
|
|
20
|
-
if (!options.routes || options.routes.length === 0) {
|
|
21
|
-
throw new Error('At least one route must be configured');
|
|
22
|
-
}
|
|
23
|
-
// Validate each route
|
|
24
|
-
for (const route of options.routes) {
|
|
25
|
-
if (!route.match) {
|
|
26
|
-
throw new Error(`Route '${route.name || 'unnamed'}' must have match criteria`);
|
|
27
|
-
}
|
|
28
|
-
if (!route.action) {
|
|
29
|
-
throw new Error(`Route '${route.name || 'unnamed'}' must have action configuration`);
|
|
30
|
-
}
|
|
31
|
-
// Validate ports if specified
|
|
32
|
-
if (route.match.ports) {
|
|
33
|
-
const validatePort = (port) => {
|
|
34
|
-
if (port < 1 || port > 65535) {
|
|
35
|
-
throw new Error(`Invalid port number ${port} in route '${route.name || 'unnamed'}'`);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
// Handle different port specification formats
|
|
39
|
-
const ports = route.match.ports;
|
|
40
|
-
if (typeof ports === 'number') {
|
|
41
|
-
validatePort(ports);
|
|
42
|
-
}
|
|
43
|
-
else if (Array.isArray(ports)) {
|
|
44
|
-
for (const port of ports) {
|
|
45
|
-
if (typeof port === 'number') {
|
|
46
|
-
validatePort(port);
|
|
47
|
-
}
|
|
48
|
-
else if (typeof port === 'object' && port.from && port.to) {
|
|
49
|
-
validatePort(port.from);
|
|
50
|
-
validatePort(port.to);
|
|
51
|
-
if (port.from > port.to) {
|
|
52
|
-
throw new Error(`Invalid port range ${port.from}-${port.to} in route '${route.name || 'unnamed'}'`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
throw new Error(`Invalid port specification in route '${route.name || 'unnamed'}'`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
throw new Error(`Invalid ports configuration in route '${route.name || 'unnamed'}'`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// Warn about deprecated options
|
|
66
|
-
if (options.certProviderFunction) {
|
|
67
|
-
console.warn('Warning: certProviderFunction is deprecated. Use acme.certProvider instead');
|
|
68
|
-
}
|
|
69
|
-
if (options.defaultTarget) {
|
|
70
|
-
console.warn('Warning: defaultTarget is deprecated. Define targets in individual routes instead');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvcHJveGllcy9zbWFydC1wcm94eS9tb2RlbHMvc21hcnRwcm94eS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBa0hIOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BQTJCO0lBQ2xFLCtDQUErQztJQUMvQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0VBQW9FO2dCQUNwRSw0RUFBNEUsQ0FDN0UsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RDtnQkFDN0QseURBQXlELENBQzFELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsNEJBQTRCLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBRUQs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
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import { NetworkProxy } from '../network-proxy/index.js';
|
|
3
|
-
import type { IConnectionRecord, ISmartProxyOptions } from './models/interfaces.js';
|
|
4
|
-
import type { IRouteConfig } from './models/route-types.js';
|
|
5
|
-
export declare class NetworkProxyBridge {
|
|
6
|
-
private settings;
|
|
7
|
-
private networkProxy;
|
|
8
|
-
constructor(settings: ISmartProxyOptions);
|
|
9
|
-
/**
|
|
10
|
-
* Get the NetworkProxy instance
|
|
11
|
-
*/
|
|
12
|
-
getNetworkProxy(): NetworkProxy | null;
|
|
13
|
-
/**
|
|
14
|
-
* Initialize NetworkProxy instance
|
|
15
|
-
*/
|
|
16
|
-
initialize(): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Sync routes to NetworkProxy
|
|
19
|
-
*/
|
|
20
|
-
syncRoutesToNetworkProxy(routes: IRouteConfig[]): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Convert route to NetworkProxy configuration
|
|
23
|
-
*/
|
|
24
|
-
private routeToNetworkProxyConfig;
|
|
25
|
-
/**
|
|
26
|
-
* Check if connection should use NetworkProxy
|
|
27
|
-
*/
|
|
28
|
-
shouldUseNetworkProxy(connection: IConnectionRecord, routeMatch: any): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Forward connection to NetworkProxy
|
|
31
|
-
*/
|
|
32
|
-
forwardToNetworkProxy(connectionId: string, socket: plugins.net.Socket, record: IConnectionRecord, initialChunk: Buffer, networkProxyPort: number, cleanupCallback: (reason: string) => void): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Start NetworkProxy
|
|
35
|
-
*/
|
|
36
|
-
start(): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Stop NetworkProxy
|
|
39
|
-
*/
|
|
40
|
-
stop(): Promise<void>;
|
|
41
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import { NetworkProxy } from '../network-proxy/index.js';
|
|
3
|
-
export class NetworkProxyBridge {
|
|
4
|
-
constructor(settings) {
|
|
5
|
-
this.settings = settings;
|
|
6
|
-
this.networkProxy = null;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Get the NetworkProxy instance
|
|
10
|
-
*/
|
|
11
|
-
getNetworkProxy() {
|
|
12
|
-
return this.networkProxy;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Initialize NetworkProxy instance
|
|
16
|
-
*/
|
|
17
|
-
async initialize() {
|
|
18
|
-
if (!this.networkProxy && this.settings.useNetworkProxy && this.settings.useNetworkProxy.length > 0) {
|
|
19
|
-
const networkProxyOptions = {
|
|
20
|
-
port: this.settings.networkProxyPort,
|
|
21
|
-
portProxyIntegration: true,
|
|
22
|
-
logLevel: this.settings.enableDetailedLogging ? 'debug' : 'info'
|
|
23
|
-
};
|
|
24
|
-
this.networkProxy = new NetworkProxy(networkProxyOptions);
|
|
25
|
-
console.log(`Initialized NetworkProxy on port ${this.settings.networkProxyPort}`);
|
|
26
|
-
// Apply route configurations to NetworkProxy
|
|
27
|
-
await this.syncRoutesToNetworkProxy(this.settings.routes || []);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Sync routes to NetworkProxy
|
|
32
|
-
*/
|
|
33
|
-
async syncRoutesToNetworkProxy(routes) {
|
|
34
|
-
if (!this.networkProxy)
|
|
35
|
-
return;
|
|
36
|
-
// Convert routes to NetworkProxy format
|
|
37
|
-
const networkProxyConfigs = routes
|
|
38
|
-
.filter(route => {
|
|
39
|
-
// Check if this route matches any of the specified network proxy ports
|
|
40
|
-
const routePorts = Array.isArray(route.match.ports)
|
|
41
|
-
? route.match.ports
|
|
42
|
-
: [route.match.ports];
|
|
43
|
-
return routePorts.some(port => this.settings.useNetworkProxy?.includes(port));
|
|
44
|
-
})
|
|
45
|
-
.map(route => this.routeToNetworkProxyConfig(route));
|
|
46
|
-
// Apply configurations to NetworkProxy
|
|
47
|
-
await this.networkProxy.updateRouteConfigs(networkProxyConfigs);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Convert route to NetworkProxy configuration
|
|
51
|
-
*/
|
|
52
|
-
routeToNetworkProxyConfig(route) {
|
|
53
|
-
// Convert route to NetworkProxy domain config format
|
|
54
|
-
return {
|
|
55
|
-
domain: route.match.domains?.[0] || '*',
|
|
56
|
-
target: route.action.target,
|
|
57
|
-
tls: route.action.tls,
|
|
58
|
-
security: route.action.security
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Check if connection should use NetworkProxy
|
|
63
|
-
*/
|
|
64
|
-
shouldUseNetworkProxy(connection, routeMatch) {
|
|
65
|
-
// Only use NetworkProxy for TLS termination
|
|
66
|
-
return (routeMatch.route.action.tls?.mode === 'terminate' ||
|
|
67
|
-
routeMatch.route.action.tls?.mode === 'terminate-and-reencrypt') && this.networkProxy !== null;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Forward connection to NetworkProxy
|
|
71
|
-
*/
|
|
72
|
-
async forwardToNetworkProxy(connectionId, socket, record, initialChunk, networkProxyPort, cleanupCallback) {
|
|
73
|
-
if (!this.networkProxy) {
|
|
74
|
-
throw new Error('NetworkProxy not initialized');
|
|
75
|
-
}
|
|
76
|
-
const proxySocket = new plugins.net.Socket();
|
|
77
|
-
await new Promise((resolve, reject) => {
|
|
78
|
-
proxySocket.connect(networkProxyPort, 'localhost', () => {
|
|
79
|
-
console.log(`[${connectionId}] Connected to NetworkProxy for termination`);
|
|
80
|
-
resolve();
|
|
81
|
-
});
|
|
82
|
-
proxySocket.on('error', reject);
|
|
83
|
-
});
|
|
84
|
-
// Send initial chunk if present
|
|
85
|
-
if (initialChunk) {
|
|
86
|
-
proxySocket.write(initialChunk);
|
|
87
|
-
}
|
|
88
|
-
// Pipe the sockets together
|
|
89
|
-
socket.pipe(proxySocket);
|
|
90
|
-
proxySocket.pipe(socket);
|
|
91
|
-
// Handle cleanup
|
|
92
|
-
const cleanup = (reason) => {
|
|
93
|
-
socket.unpipe(proxySocket);
|
|
94
|
-
proxySocket.unpipe(socket);
|
|
95
|
-
proxySocket.destroy();
|
|
96
|
-
cleanupCallback(reason);
|
|
97
|
-
};
|
|
98
|
-
socket.on('end', () => cleanup('socket_end'));
|
|
99
|
-
socket.on('error', () => cleanup('socket_error'));
|
|
100
|
-
proxySocket.on('end', () => cleanup('proxy_end'));
|
|
101
|
-
proxySocket.on('error', () => cleanup('proxy_error'));
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Start NetworkProxy
|
|
105
|
-
*/
|
|
106
|
-
async start() {
|
|
107
|
-
if (this.networkProxy) {
|
|
108
|
-
await this.networkProxy.start();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Stop NetworkProxy
|
|
113
|
-
*/
|
|
114
|
-
async stop() {
|
|
115
|
-
if (this.networkProxy) {
|
|
116
|
-
await this.networkProxy.stop();
|
|
117
|
-
this.networkProxy = null;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1wcm94eS1icmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9wcm94aWVzL3NtYXJ0LXByb3h5L25ldHdvcmstcHJveHktYnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBb0IsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFGeEMsaUJBQVksR0FBd0IsSUFBSSxDQUFDO0lBRUUsQ0FBQztJQUVwRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRyxNQUFNLG1CQUFtQixHQUFRO2dCQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBaUI7Z0JBQ3JDLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU07YUFDakUsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUVsRiw2Q0FBNkM7WUFDN0MsTUFBTSxJ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
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { ISmartProxyOptions } from './models/interfaces.js';
|
|
2
|
-
/**
|
|
3
|
-
* Manages port ranges and port-based configuration
|
|
4
|
-
*/
|
|
5
|
-
export declare class PortRangeManager {
|
|
6
|
-
private settings;
|
|
7
|
-
constructor(settings: ISmartProxyOptions);
|
|
8
|
-
/**
|
|
9
|
-
* Get all ports that should be listened on
|
|
10
|
-
*/
|
|
11
|
-
getListeningPorts(): Set<number>;
|
|
12
|
-
/**
|
|
13
|
-
* Check if a port should use NetworkProxy for forwarding
|
|
14
|
-
*/
|
|
15
|
-
shouldUseNetworkProxy(port: number): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Check if port should use global forwarding
|
|
18
|
-
*/
|
|
19
|
-
shouldUseGlobalForwarding(port: number): boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Check if a port is in global ranges
|
|
22
|
-
*/
|
|
23
|
-
isPortInGlobalRanges(port: number): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Check if a port falls within the specified ranges
|
|
26
|
-
*/
|
|
27
|
-
isPortInRanges(port: number, ranges: Array<{
|
|
28
|
-
from: number;
|
|
29
|
-
to: number;
|
|
30
|
-
}>): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Get forwarding port for a specific listening port
|
|
33
|
-
* This determines what port to connect to on the target
|
|
34
|
-
*/
|
|
35
|
-
getForwardingPort(listeningPort: number): number;
|
|
36
|
-
/**
|
|
37
|
-
* Find domain-specific port ranges that include a given port
|
|
38
|
-
*/
|
|
39
|
-
findDomainPortRange(port: number): {
|
|
40
|
-
domainIndex: number;
|
|
41
|
-
range: {
|
|
42
|
-
from: number;
|
|
43
|
-
to: number;
|
|
44
|
-
};
|
|
45
|
-
} | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Get a list of all configured ports
|
|
48
|
-
* This includes the fromPort, NetworkProxy ports, and ports from all ranges
|
|
49
|
-
*/
|
|
50
|
-
getAllConfiguredPorts(): number[];
|
|
51
|
-
/**
|
|
52
|
-
* Validate port configuration
|
|
53
|
-
* Returns array of warning messages
|
|
54
|
-
*/
|
|
55
|
-
validateConfiguration(): string[];
|
|
56
|
-
}
|