@push.rocks/smartproxy 19.3.2 → 19.3.4
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 +18 -35
- package/readme.plan.md +173 -271
- 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,254 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import { ForwardingHandler } from './forwarding.handler.js';
|
|
3
|
-
import { ForwardingHandlerEvents } from '../types/forwarding.types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Handler for HTTPS termination with HTTPS backend
|
|
6
|
-
*/
|
|
7
|
-
export class HttpsTerminateToHttpsHandler extends ForwardingHandler {
|
|
8
|
-
/**
|
|
9
|
-
* Create a new HTTPS termination with HTTPS backend handler
|
|
10
|
-
* @param config The forwarding configuration
|
|
11
|
-
*/
|
|
12
|
-
constructor(config) {
|
|
13
|
-
super(config);
|
|
14
|
-
this.secureContext = null;
|
|
15
|
-
// Validate that this is an HTTPS terminate to HTTPS configuration
|
|
16
|
-
if (config.type !== 'https-terminate-to-https') {
|
|
17
|
-
throw new Error(`Invalid configuration type for HttpsTerminateToHttpsHandler: ${config.type}`);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Initialize the handler, setting up TLS context
|
|
22
|
-
*/
|
|
23
|
-
async initialize() {
|
|
24
|
-
// We need to load or create TLS certificates for termination
|
|
25
|
-
if (this.config.https?.customCert) {
|
|
26
|
-
// Use custom certificate from configuration
|
|
27
|
-
this.secureContext = plugins.tls.createSecureContext({
|
|
28
|
-
key: this.config.https.customCert.key,
|
|
29
|
-
cert: this.config.https.customCert.cert
|
|
30
|
-
});
|
|
31
|
-
this.emit(ForwardingHandlerEvents.CERTIFICATE_LOADED, {
|
|
32
|
-
source: 'config',
|
|
33
|
-
domain: this.config.target.host
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
else if (this.config.acme?.enabled) {
|
|
37
|
-
// Request certificate through ACME if needed
|
|
38
|
-
this.emit(ForwardingHandlerEvents.CERTIFICATE_NEEDED, {
|
|
39
|
-
domain: Array.isArray(this.config.target.host)
|
|
40
|
-
? this.config.target.host[0]
|
|
41
|
-
: this.config.target.host,
|
|
42
|
-
useProduction: this.config.acme.production || false
|
|
43
|
-
});
|
|
44
|
-
// In a real implementation, we would wait for the certificate to be issued
|
|
45
|
-
// For now, we'll use a dummy context
|
|
46
|
-
this.secureContext = plugins.tls.createSecureContext({
|
|
47
|
-
key: '-----BEGIN PRIVATE KEY-----\nDummy key\n-----END PRIVATE KEY-----',
|
|
48
|
-
cert: '-----BEGIN CERTIFICATE-----\nDummy cert\n-----END CERTIFICATE-----'
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
throw new Error('HTTPS termination requires either a custom certificate or ACME enabled');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Set the secure context for TLS termination
|
|
57
|
-
* Called when a certificate is available
|
|
58
|
-
* @param context The secure context
|
|
59
|
-
*/
|
|
60
|
-
setSecureContext(context) {
|
|
61
|
-
this.secureContext = context;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Handle a TLS/SSL socket connection by terminating TLS and creating a new TLS connection to backend
|
|
65
|
-
* @param clientSocket The incoming socket from the client
|
|
66
|
-
*/
|
|
67
|
-
handleConnection(clientSocket) {
|
|
68
|
-
// Make sure we have a secure context
|
|
69
|
-
if (!this.secureContext) {
|
|
70
|
-
clientSocket.destroy(new Error('TLS secure context not initialized'));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const remoteAddress = clientSocket.remoteAddress || 'unknown';
|
|
74
|
-
const remotePort = clientSocket.remotePort || 0;
|
|
75
|
-
// Create a TLS socket using our secure context
|
|
76
|
-
const tlsSocket = new plugins.tls.TLSSocket(clientSocket, {
|
|
77
|
-
secureContext: this.secureContext,
|
|
78
|
-
isServer: true
|
|
79
|
-
});
|
|
80
|
-
this.emit(ForwardingHandlerEvents.CONNECTED, {
|
|
81
|
-
remoteAddress,
|
|
82
|
-
remotePort,
|
|
83
|
-
tls: true
|
|
84
|
-
});
|
|
85
|
-
// Handle TLS errors
|
|
86
|
-
tlsSocket.on('error', (error) => {
|
|
87
|
-
this.emit(ForwardingHandlerEvents.ERROR, {
|
|
88
|
-
remoteAddress,
|
|
89
|
-
error: `TLS error: ${error.message}`
|
|
90
|
-
});
|
|
91
|
-
if (!tlsSocket.destroyed) {
|
|
92
|
-
tlsSocket.destroy();
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
// The TLS socket will now emit HTTP traffic that can be processed
|
|
96
|
-
// In a real implementation, we would create an HTTP parser and handle
|
|
97
|
-
// the requests here, but for simplicity, we'll just forward the data
|
|
98
|
-
// Get the target from configuration
|
|
99
|
-
const target = this.getTargetFromConfig();
|
|
100
|
-
// Set up the connection to the HTTPS backend
|
|
101
|
-
const connectToBackend = () => {
|
|
102
|
-
const backendSocket = plugins.tls.connect({
|
|
103
|
-
host: target.host,
|
|
104
|
-
port: target.port,
|
|
105
|
-
// In a real implementation, we would configure TLS options
|
|
106
|
-
rejectUnauthorized: false // For testing only, never use in production
|
|
107
|
-
}, () => {
|
|
108
|
-
this.emit(ForwardingHandlerEvents.DATA_FORWARDED, {
|
|
109
|
-
direction: 'outbound',
|
|
110
|
-
target: `${target.host}:${target.port}`,
|
|
111
|
-
tls: true
|
|
112
|
-
});
|
|
113
|
-
// Set up bidirectional data flow
|
|
114
|
-
tlsSocket.pipe(backendSocket);
|
|
115
|
-
backendSocket.pipe(tlsSocket);
|
|
116
|
-
});
|
|
117
|
-
backendSocket.on('error', (error) => {
|
|
118
|
-
this.emit(ForwardingHandlerEvents.ERROR, {
|
|
119
|
-
remoteAddress,
|
|
120
|
-
error: `Backend connection error: ${error.message}`
|
|
121
|
-
});
|
|
122
|
-
if (!tlsSocket.destroyed) {
|
|
123
|
-
tlsSocket.destroy();
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
// Handle close
|
|
127
|
-
backendSocket.on('close', () => {
|
|
128
|
-
if (!tlsSocket.destroyed) {
|
|
129
|
-
tlsSocket.destroy();
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
// Set timeout
|
|
133
|
-
const timeout = this.getTimeout();
|
|
134
|
-
backendSocket.setTimeout(timeout);
|
|
135
|
-
backendSocket.on('timeout', () => {
|
|
136
|
-
this.emit(ForwardingHandlerEvents.ERROR, {
|
|
137
|
-
remoteAddress,
|
|
138
|
-
error: 'Backend connection timeout'
|
|
139
|
-
});
|
|
140
|
-
if (!backendSocket.destroyed) {
|
|
141
|
-
backendSocket.destroy();
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
};
|
|
145
|
-
// Wait for the TLS handshake to complete before connecting to backend
|
|
146
|
-
tlsSocket.on('secure', () => {
|
|
147
|
-
connectToBackend();
|
|
148
|
-
});
|
|
149
|
-
// Handle close
|
|
150
|
-
tlsSocket.on('close', () => {
|
|
151
|
-
this.emit(ForwardingHandlerEvents.DISCONNECTED, {
|
|
152
|
-
remoteAddress
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
// Set timeout
|
|
156
|
-
const timeout = this.getTimeout();
|
|
157
|
-
tlsSocket.setTimeout(timeout);
|
|
158
|
-
tlsSocket.on('timeout', () => {
|
|
159
|
-
this.emit(ForwardingHandlerEvents.ERROR, {
|
|
160
|
-
remoteAddress,
|
|
161
|
-
error: 'TLS connection timeout'
|
|
162
|
-
});
|
|
163
|
-
if (!tlsSocket.destroyed) {
|
|
164
|
-
tlsSocket.destroy();
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Handle an HTTP request by forwarding to the HTTPS backend
|
|
170
|
-
* @param req The HTTP request
|
|
171
|
-
* @param res The HTTP response
|
|
172
|
-
*/
|
|
173
|
-
handleHttpRequest(req, res) {
|
|
174
|
-
// Check if we should redirect to HTTPS
|
|
175
|
-
if (this.config.http?.redirectToHttps) {
|
|
176
|
-
this.redirectToHttps(req, res);
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
// Get the target from configuration
|
|
180
|
-
const target = this.getTargetFromConfig();
|
|
181
|
-
// Create custom headers with variable substitution
|
|
182
|
-
const variables = {
|
|
183
|
-
clientIp: req.socket.remoteAddress || 'unknown'
|
|
184
|
-
};
|
|
185
|
-
// Prepare headers, merging with any custom headers from config
|
|
186
|
-
const headers = this.applyCustomHeaders(req.headers, variables);
|
|
187
|
-
// Create the proxy request options
|
|
188
|
-
const options = {
|
|
189
|
-
hostname: target.host,
|
|
190
|
-
port: target.port,
|
|
191
|
-
path: req.url,
|
|
192
|
-
method: req.method,
|
|
193
|
-
headers,
|
|
194
|
-
// In a real implementation, we would configure TLS options
|
|
195
|
-
rejectUnauthorized: false // For testing only, never use in production
|
|
196
|
-
};
|
|
197
|
-
// Create the proxy request using HTTPS
|
|
198
|
-
const proxyReq = plugins.https.request(options, (proxyRes) => {
|
|
199
|
-
// Copy status code and headers from the proxied response
|
|
200
|
-
res.writeHead(proxyRes.statusCode || 500, proxyRes.headers);
|
|
201
|
-
// Pipe the proxy response to the client response
|
|
202
|
-
proxyRes.pipe(res);
|
|
203
|
-
// Track response size for logging
|
|
204
|
-
let responseSize = 0;
|
|
205
|
-
proxyRes.on('data', (chunk) => {
|
|
206
|
-
responseSize += chunk.length;
|
|
207
|
-
});
|
|
208
|
-
proxyRes.on('end', () => {
|
|
209
|
-
this.emit(ForwardingHandlerEvents.HTTP_RESPONSE, {
|
|
210
|
-
statusCode: proxyRes.statusCode,
|
|
211
|
-
headers: proxyRes.headers,
|
|
212
|
-
size: responseSize
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
// Handle errors in the proxy request
|
|
217
|
-
proxyReq.on('error', (error) => {
|
|
218
|
-
this.emit(ForwardingHandlerEvents.ERROR, {
|
|
219
|
-
remoteAddress: req.socket.remoteAddress,
|
|
220
|
-
error: `Proxy request error: ${error.message}`
|
|
221
|
-
});
|
|
222
|
-
// Send an error response if headers haven't been sent yet
|
|
223
|
-
if (!res.headersSent) {
|
|
224
|
-
res.writeHead(502, { 'Content-Type': 'text/plain' });
|
|
225
|
-
res.end(`Error forwarding request: ${error.message}`);
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
// Just end the response if headers have already been sent
|
|
229
|
-
res.end();
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
// Track request details for logging
|
|
233
|
-
let requestSize = 0;
|
|
234
|
-
req.on('data', (chunk) => {
|
|
235
|
-
requestSize += chunk.length;
|
|
236
|
-
});
|
|
237
|
-
// Log the request
|
|
238
|
-
this.emit(ForwardingHandlerEvents.HTTP_REQUEST, {
|
|
239
|
-
method: req.method,
|
|
240
|
-
url: req.url,
|
|
241
|
-
headers: req.headers,
|
|
242
|
-
remoteAddress: req.socket.remoteAddress,
|
|
243
|
-
target: `${target.host}:${target.port}`
|
|
244
|
-
});
|
|
245
|
-
// Pipe the client request to the proxy request
|
|
246
|
-
if (req.readable) {
|
|
247
|
-
req.pipe(proxyReq);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
proxyReq.end();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cHMtdGVybWluYXRlLXRvLWh0dHBzLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zbWFydHByb3h5L2ZvcndhcmRpbmcvaHR0cHMtdGVybWluYXRlLXRvLWh0dHBzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxpQkFBaUI7SUFHakU7OztPQUdHO0lBQ0gsWUFBWSxNQUFzQjtRQUNoQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFQUixrQkFBYSxHQUFxQyxJQUFJLENBQUM7UUFTN0Qsa0VBQWtFO1FBQ2xFLElBQUksTUFBTSxDQUFDLElBQUksS0FBSywwQkFBMEIsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQiw2REFBNkQ7UUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNsQyw0Q0FBNEM7WUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO2dCQUNuRCxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSTthQUN4QyxDQUFDLENBQUM7WUFF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
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export type { ForwardingType, IForwardConfig, IForwardingHandler, ITargetConfig, IHttpOptions, IHttpsOptions, IAcmeForwardingOptions, ISecurityOptions, IAdvancedOptions } from '../types/forwarding.types.js';
|
|
2
|
-
export { ForwardingHandlerEvents, httpOnly, tlsTerminateToHttp, tlsTerminateToHttps, httpsPassthrough } from '../types/forwarding.types.js';
|
|
3
|
-
export * from './domain-config.js';
|
|
4
|
-
export { ForwardingHandler } from './forwarding.handler.js';
|
|
5
|
-
export { HttpForwardingHandler } from './http.handler.js';
|
|
6
|
-
export { HttpsPassthroughHandler } from './https-passthrough.handler.js';
|
|
7
|
-
export { HttpsTerminateToHttpHandler } from './https-terminate-to-http.handler.js';
|
|
8
|
-
export { HttpsTerminateToHttpsHandler } from './https-terminate-to-https.handler.js';
|
|
9
|
-
export { ForwardingHandlerFactory } from './forwarding.factory.js';
|
|
10
|
-
export { DomainManager, DomainManagerEvents } from './domain-manager.js';
|
|
11
|
-
export declare const helpers: {
|
|
12
|
-
httpOnly: (partialConfig: Partial<import("../types/forwarding.types.js").IForwardConfig> & Pick<import("../types/forwarding.types.js").IForwardConfig, "target">) => import("../types/forwarding.types.js").IForwardConfig;
|
|
13
|
-
tlsTerminateToHttp: (partialConfig: Partial<import("../types/forwarding.types.js").IForwardConfig> & Pick<import("../types/forwarding.types.js").IForwardConfig, "target">) => import("../types/forwarding.types.js").IForwardConfig;
|
|
14
|
-
tlsTerminateToHttps: (partialConfig: Partial<import("../types/forwarding.types.js").IForwardConfig> & Pick<import("../types/forwarding.types.js").IForwardConfig, "target">) => import("../types/forwarding.types.js").IForwardConfig;
|
|
15
|
-
httpsPassthrough: (partialConfig: Partial<import("../types/forwarding.types.js").IForwardConfig> & Pick<import("../types/forwarding.types.js").IForwardConfig, "target">) => import("../types/forwarding.types.js").IForwardConfig;
|
|
16
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// Export values
|
|
2
|
-
export { ForwardingHandlerEvents, httpOnly, tlsTerminateToHttp, tlsTerminateToHttps, httpsPassthrough } from '../types/forwarding.types.js';
|
|
3
|
-
// Export domain configuration
|
|
4
|
-
export * from './domain-config.js';
|
|
5
|
-
// Export handlers
|
|
6
|
-
export { ForwardingHandler } from './forwarding.handler.js';
|
|
7
|
-
export { HttpForwardingHandler } from './http.handler.js';
|
|
8
|
-
export { HttpsPassthroughHandler } from './https-passthrough.handler.js';
|
|
9
|
-
export { HttpsTerminateToHttpHandler } from './https-terminate-to-http.handler.js';
|
|
10
|
-
export { HttpsTerminateToHttpsHandler } from './https-terminate-to-https.handler.js';
|
|
11
|
-
// Export factory
|
|
12
|
-
export { ForwardingHandlerFactory } from './forwarding.factory.js';
|
|
13
|
-
// Export manager
|
|
14
|
-
export { DomainManager, DomainManagerEvents } from './domain-manager.js';
|
|
15
|
-
// Helper functions as a convenience object
|
|
16
|
-
import { httpOnly, tlsTerminateToHttp, tlsTerminateToHttps, httpsPassthrough } from '../types/forwarding.types.js';
|
|
17
|
-
export const helpers = {
|
|
18
|
-
httpOnly,
|
|
19
|
-
tlsTerminateToHttp,
|
|
20
|
-
tlsTerminateToHttps,
|
|
21
|
-
httpsPassthrough
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zbWFydHByb3h5L2ZvcndhcmRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsOEJBQThCO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsa0JBQWtCO0FBQ2xCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXJGLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpFLDJDQUEyQztBQUMzQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtDQUNqQixDQUFDIn0=
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import type * as plugins from '../../plugins.js';
|
|
2
|
-
/**
|
|
3
|
-
* The primary forwarding types supported by SmartProxy
|
|
4
|
-
*/
|
|
5
|
-
export type ForwardingType = 'http-only' | 'https-passthrough' | 'https-terminate-to-http' | 'https-terminate-to-https';
|
|
6
|
-
/**
|
|
7
|
-
* Target configuration for forwarding
|
|
8
|
-
*/
|
|
9
|
-
export interface ITargetConfig {
|
|
10
|
-
host: string | string[];
|
|
11
|
-
port: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* HTTP-specific options for forwarding
|
|
15
|
-
*/
|
|
16
|
-
export interface IHttpOptions {
|
|
17
|
-
enabled?: boolean;
|
|
18
|
-
redirectToHttps?: boolean;
|
|
19
|
-
headers?: Record<string, string>;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* HTTPS-specific options for forwarding
|
|
23
|
-
*/
|
|
24
|
-
export interface IHttpsOptions {
|
|
25
|
-
customCert?: {
|
|
26
|
-
key: string;
|
|
27
|
-
cert: string;
|
|
28
|
-
};
|
|
29
|
-
forwardSni?: boolean;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* ACME certificate handling options
|
|
33
|
-
*/
|
|
34
|
-
export interface IAcmeForwardingOptions {
|
|
35
|
-
enabled?: boolean;
|
|
36
|
-
maintenance?: boolean;
|
|
37
|
-
production?: boolean;
|
|
38
|
-
forwardChallenges?: {
|
|
39
|
-
host: string;
|
|
40
|
-
port: number;
|
|
41
|
-
useTls?: boolean;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Security options for forwarding
|
|
46
|
-
*/
|
|
47
|
-
export interface ISecurityOptions {
|
|
48
|
-
allowedIps?: string[];
|
|
49
|
-
blockedIps?: string[];
|
|
50
|
-
maxConnections?: number;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Advanced options for forwarding
|
|
54
|
-
*/
|
|
55
|
-
export interface IAdvancedOptions {
|
|
56
|
-
portRanges?: Array<{
|
|
57
|
-
from: number;
|
|
58
|
-
to: number;
|
|
59
|
-
}>;
|
|
60
|
-
networkProxyPort?: number;
|
|
61
|
-
keepAlive?: boolean;
|
|
62
|
-
timeout?: number;
|
|
63
|
-
headers?: Record<string, string>;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Unified forwarding configuration interface
|
|
67
|
-
*/
|
|
68
|
-
export interface IForwardConfig {
|
|
69
|
-
type: ForwardingType;
|
|
70
|
-
target: ITargetConfig;
|
|
71
|
-
http?: IHttpOptions;
|
|
72
|
-
https?: IHttpsOptions;
|
|
73
|
-
acme?: IAcmeForwardingOptions;
|
|
74
|
-
security?: ISecurityOptions;
|
|
75
|
-
advanced?: IAdvancedOptions;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Event types emitted by forwarding handlers
|
|
79
|
-
*/
|
|
80
|
-
export declare enum ForwardingHandlerEvents {
|
|
81
|
-
CONNECTED = "connected",
|
|
82
|
-
DISCONNECTED = "disconnected",
|
|
83
|
-
ERROR = "error",
|
|
84
|
-
DATA_FORWARDED = "data-forwarded",
|
|
85
|
-
HTTP_REQUEST = "http-request",
|
|
86
|
-
HTTP_RESPONSE = "http-response",
|
|
87
|
-
CERTIFICATE_NEEDED = "certificate-needed",
|
|
88
|
-
CERTIFICATE_LOADED = "certificate-loaded"
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Base interface for forwarding handlers
|
|
92
|
-
*/
|
|
93
|
-
export interface IForwardingHandler extends plugins.EventEmitter {
|
|
94
|
-
initialize(): Promise<void>;
|
|
95
|
-
handleConnection(socket: plugins.net.Socket): void;
|
|
96
|
-
handleHttpRequest(req: plugins.http.IncomingMessage, res: plugins.http.ServerResponse): void;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Helper function types for common forwarding patterns
|
|
100
|
-
*/
|
|
101
|
-
export declare const httpOnly: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
102
|
-
export declare const tlsTerminateToHttp: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
103
|
-
export declare const tlsTerminateToHttps: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
104
|
-
export declare const httpsPassthrough: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event types emitted by forwarding handlers
|
|
3
|
-
*/
|
|
4
|
-
export var ForwardingHandlerEvents;
|
|
5
|
-
(function (ForwardingHandlerEvents) {
|
|
6
|
-
ForwardingHandlerEvents["CONNECTED"] = "connected";
|
|
7
|
-
ForwardingHandlerEvents["DISCONNECTED"] = "disconnected";
|
|
8
|
-
ForwardingHandlerEvents["ERROR"] = "error";
|
|
9
|
-
ForwardingHandlerEvents["DATA_FORWARDED"] = "data-forwarded";
|
|
10
|
-
ForwardingHandlerEvents["HTTP_REQUEST"] = "http-request";
|
|
11
|
-
ForwardingHandlerEvents["HTTP_RESPONSE"] = "http-response";
|
|
12
|
-
ForwardingHandlerEvents["CERTIFICATE_NEEDED"] = "certificate-needed";
|
|
13
|
-
ForwardingHandlerEvents["CERTIFICATE_LOADED"] = "certificate-loaded";
|
|
14
|
-
})(ForwardingHandlerEvents || (ForwardingHandlerEvents = {}));
|
|
15
|
-
/**
|
|
16
|
-
* Helper function types for common forwarding patterns
|
|
17
|
-
*/
|
|
18
|
-
export const httpOnly = (partialConfig) => ({
|
|
19
|
-
type: 'http-only',
|
|
20
|
-
target: partialConfig.target,
|
|
21
|
-
http: { enabled: true, ...(partialConfig.http || {}) },
|
|
22
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
23
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
24
|
-
});
|
|
25
|
-
export const tlsTerminateToHttp = (partialConfig) => ({
|
|
26
|
-
type: 'https-terminate-to-http',
|
|
27
|
-
target: partialConfig.target,
|
|
28
|
-
https: { ...(partialConfig.https || {}) },
|
|
29
|
-
acme: { enabled: true, maintenance: true, ...(partialConfig.acme || {}) },
|
|
30
|
-
http: { enabled: true, redirectToHttps: true, ...(partialConfig.http || {}) },
|
|
31
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
32
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
33
|
-
});
|
|
34
|
-
export const tlsTerminateToHttps = (partialConfig) => ({
|
|
35
|
-
type: 'https-terminate-to-https',
|
|
36
|
-
target: partialConfig.target,
|
|
37
|
-
https: { ...(partialConfig.https || {}) },
|
|
38
|
-
acme: { enabled: true, maintenance: true, ...(partialConfig.acme || {}) },
|
|
39
|
-
http: { enabled: true, redirectToHttps: true, ...(partialConfig.http || {}) },
|
|
40
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
41
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
42
|
-
});
|
|
43
|
-
export const httpsPassthrough = (partialConfig) => ({
|
|
44
|
-
type: 'https-passthrough',
|
|
45
|
-
target: partialConfig.target,
|
|
46
|
-
https: { forwardSni: true, ...(partialConfig.https || {}) },
|
|
47
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
48
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL3NtYXJ0cHJveHkvdHlwZXMvZm9yd2FyZGluZy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RkE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSx1QkFTWDtBQVRELFdBQVksdUJBQXVCO0lBQ2pDLGtEQUF1QixDQUFBO0lBQ3ZCLHdEQUE2QixDQUFBO0lBQzdCLDBDQUFlLENBQUE7SUFDZiw0REFBaUMsQ0FBQTtJQUNqQyx3REFBNkIsQ0FBQTtJQUM3QiwwREFBK0IsQ0FBQTtJQUMvQixvRUFBeUMsQ0FBQTtJQUN6QyxvRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBVFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVNsQztBQVdEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQ3RCLGFBQXVFLEVBQ3ZELEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLElBQUksRUFBRSxXQUFXO0lBQ2pCLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTTtJQUM1QixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0lBQ3RELEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RSxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDeEUsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsYUFBdUUsRUFDdkQsRUFBRSxDQUFDLENBQUM7SUFDcEIsSUFBSSxF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
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
import { ProxyRouter } from './smartproxy.classes.router.js';
|
|
3
|
-
export interface INetworkProxyOptions {
|
|
4
|
-
port: number;
|
|
5
|
-
}
|
|
6
|
-
export declare class NetworkProxy {
|
|
7
|
-
options: INetworkProxyOptions;
|
|
8
|
-
proxyConfigs: plugins.tsclass.network.IReverseProxyConfig[];
|
|
9
|
-
httpsServer: plugins.https.Server;
|
|
10
|
-
router: ProxyRouter;
|
|
11
|
-
socketMap: plugins.lik.ObjectMap<plugins.net.Socket>;
|
|
12
|
-
defaultHeaders: {
|
|
13
|
-
[key: string]: string;
|
|
14
|
-
};
|
|
15
|
-
heartbeatInterval: NodeJS.Timeout;
|
|
16
|
-
private defaultCertificates;
|
|
17
|
-
alreadyAddedReverseConfigs: {
|
|
18
|
-
[hostName: string]: plugins.tsclass.network.IReverseProxyConfig;
|
|
19
|
-
};
|
|
20
|
-
constructor(optionsArg: INetworkProxyOptions);
|
|
21
|
-
start(): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Internal async handler for processing HTTP/HTTPS requests.
|
|
24
|
-
*/
|
|
25
|
-
private handleRequest;
|
|
26
|
-
updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]): Promise<void>;
|
|
27
|
-
addDefaultHeaders(headersArg: {
|
|
28
|
-
[key: string]: string;
|
|
29
|
-
}): Promise<void>;
|
|
30
|
-
stop(): Promise<void>;
|
|
31
|
-
}
|