@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,8 +1,8 @@
|
|
|
1
1
|
import * as plugins from '../../plugins.js';
|
|
2
2
|
import '../../core/models/socket-augmentation.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type IHttpProxyOptions, type IWebSocketWithHeartbeat, type ILogger, createLogger, type IReverseProxyConfig } from './models/types.js';
|
|
4
4
|
import { ConnectionPool } from './connection-pool.js';
|
|
5
|
-
import { ProxyRouter, RouteRouter } from '../../
|
|
5
|
+
import { ProxyRouter, RouteRouter } from '../../routing/router/index.js';
|
|
6
6
|
import type { IRouteConfig } from '../smart-proxy/models/route-types.js';
|
|
7
7
|
import type { IRouteContext } from '../../core/models/route-context.js';
|
|
8
8
|
import { toBaseContext } from '../../core/models/route-context.js';
|
|
@@ -23,7 +23,7 @@ export class WebSocketHandler {
|
|
|
23
23
|
private securityManager: SecurityManager;
|
|
24
24
|
|
|
25
25
|
constructor(
|
|
26
|
-
private options:
|
|
26
|
+
private options: IHttpProxyOptions,
|
|
27
27
|
private connectionPool: ConnectionPool,
|
|
28
28
|
private legacyRouter: ProxyRouter, // Legacy router for backward compatibility
|
|
29
29
|
private routes: IRouteConfig[] = [] // Routes for modern router
|
package/ts/proxies/index.ts
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Proxy implementations module
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
// Export
|
|
6
|
-
export {
|
|
7
|
-
export type { IMetricsTracker, MetricsTracker } from './
|
|
8
|
-
// Export
|
|
9
|
-
export type {
|
|
10
|
-
export { RouteManager as
|
|
5
|
+
// Export HttpProxy with selective imports to avoid conflicts
|
|
6
|
+
export { HttpProxy, CertificateManager, ConnectionPool, RequestHandler, WebSocketHandler } from './http-proxy/index.js';
|
|
7
|
+
export type { IMetricsTracker, MetricsTracker } from './http-proxy/index.js';
|
|
8
|
+
// Export http-proxy models except IAcmeOptions
|
|
9
|
+
export type { IHttpProxyOptions, ICertificateEntry, ILogger } from './http-proxy/models/types.js';
|
|
10
|
+
export { RouteManager as HttpProxyRouteManager } from './http-proxy/models/types.js';
|
|
11
11
|
|
|
12
12
|
// Export SmartProxy with selective imports to avoid conflicts
|
|
13
|
-
export { SmartProxy, ConnectionManager, SecurityManager, TimeoutManager, TlsManager,
|
|
13
|
+
export { SmartProxy, ConnectionManager, SecurityManager, TimeoutManager, TlsManager, HttpProxyBridge, RouteConnectionHandler } from './smart-proxy/index.js';
|
|
14
14
|
export { RouteManager as SmartProxyRouteManager } from './smart-proxy/route-manager.js';
|
|
15
15
|
export * from './smart-proxy/utils/index.js';
|
|
16
16
|
// Export smart-proxy models except IAcmeOptions
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from '../../plugins.js';
|
|
2
|
-
import {
|
|
2
|
+
import { HttpProxy } from '../http-proxy/index.js';
|
|
3
3
|
import type { IRouteConfig, IRouteTls } from './models/route-types.js';
|
|
4
4
|
import type { IAcmeOptions } from './models/interfaces.js';
|
|
5
5
|
import { CertStore } from './cert-store.js';
|
|
@@ -25,7 +25,7 @@ export interface ICertificateData {
|
|
|
25
25
|
export class SmartCertManager {
|
|
26
26
|
private certStore: CertStore;
|
|
27
27
|
private smartAcme: plugins.smartacme.SmartAcme | null = null;
|
|
28
|
-
private
|
|
28
|
+
private httpProxy: HttpProxy | null = null;
|
|
29
29
|
private renewalTimer: NodeJS.Timeout | null = null;
|
|
30
30
|
private pendingChallenges: Map<string, string> = new Map();
|
|
31
31
|
private challengeRoute: IRouteConfig | null = null;
|
|
@@ -68,8 +68,8 @@ export class SmartCertManager {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
public
|
|
72
|
-
this.
|
|
71
|
+
public setHttpProxy(httpProxy: HttpProxy): void {
|
|
72
|
+
this.httpProxy = httpProxy;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
|
|
@@ -336,23 +336,23 @@ export class SmartCertManager {
|
|
|
336
336
|
}
|
|
337
337
|
|
|
338
338
|
/**
|
|
339
|
-
* Apply certificate to
|
|
339
|
+
* Apply certificate to HttpProxy
|
|
340
340
|
*/
|
|
341
341
|
private async applyCertificate(domain: string, certData: ICertificateData): Promise<void> {
|
|
342
|
-
if (!this.
|
|
343
|
-
console.warn('
|
|
342
|
+
if (!this.httpProxy) {
|
|
343
|
+
console.warn('HttpProxy not set, cannot apply certificate');
|
|
344
344
|
return;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
// Apply certificate to
|
|
348
|
-
this.
|
|
347
|
+
// Apply certificate to HttpProxy
|
|
348
|
+
this.httpProxy.updateCertificate(domain, certData.cert, certData.key);
|
|
349
349
|
|
|
350
350
|
// Also apply for wildcard if it's a subdomain
|
|
351
351
|
if (domain.includes('.') && !domain.startsWith('*.')) {
|
|
352
352
|
const parts = domain.split('.');
|
|
353
353
|
if (parts.length >= 2) {
|
|
354
354
|
const wildcardDomain = `*.${parts.slice(-2).join('.')}`;
|
|
355
|
-
this.
|
|
355
|
+
this.httpProxy.updateCertificate(wildcardDomain, certData.cert, certData.key);
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
358
|
}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
import * as plugins from '../../plugins.js';
|
|
2
|
-
import {
|
|
2
|
+
import { HttpProxy } from '../http-proxy/index.js';
|
|
3
3
|
import type { IConnectionRecord, ISmartProxyOptions } from './models/interfaces.js';
|
|
4
4
|
import type { IRouteConfig } from './models/route-types.js';
|
|
5
5
|
|
|
6
|
-
export class
|
|
7
|
-
private
|
|
6
|
+
export class HttpProxyBridge {
|
|
7
|
+
private httpProxy: HttpProxy | null = null;
|
|
8
8
|
|
|
9
9
|
constructor(private settings: ISmartProxyOptions) {}
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Get the
|
|
12
|
+
* Get the HttpProxy instance
|
|
13
13
|
*/
|
|
14
|
-
public
|
|
15
|
-
return this.
|
|
14
|
+
public getHttpProxy(): HttpProxy | null {
|
|
15
|
+
return this.httpProxy;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Initialize
|
|
19
|
+
* Initialize HttpProxy instance
|
|
20
20
|
*/
|
|
21
21
|
public async initialize(): Promise<void> {
|
|
22
|
-
if (!this.
|
|
23
|
-
const
|
|
24
|
-
port: this.settings.
|
|
22
|
+
if (!this.httpProxy && this.settings.useHttpProxy && this.settings.useHttpProxy.length > 0) {
|
|
23
|
+
const httpProxyOptions: any = {
|
|
24
|
+
port: this.settings.httpProxyPort!,
|
|
25
25
|
portProxyIntegration: true,
|
|
26
26
|
logLevel: this.settings.enableDetailedLogging ? 'debug' : 'info'
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
this.
|
|
30
|
-
console.log(`Initialized
|
|
29
|
+
this.httpProxy = new HttpProxy(httpProxyOptions);
|
|
30
|
+
console.log(`Initialized HttpProxy on port ${this.settings.httpProxyPort}`);
|
|
31
31
|
|
|
32
|
-
// Apply route configurations to
|
|
33
|
-
await this.
|
|
32
|
+
// Apply route configurations to HttpProxy
|
|
33
|
+
await this.syncRoutesToHttpProxy(this.settings.routes || []);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* Sync routes to
|
|
38
|
+
* Sync routes to HttpProxy
|
|
39
39
|
*/
|
|
40
|
-
public async
|
|
41
|
-
if (!this.
|
|
40
|
+
public async syncRoutesToHttpProxy(routes: IRouteConfig[]): Promise<void> {
|
|
41
|
+
if (!this.httpProxy) return;
|
|
42
42
|
|
|
43
|
-
// Convert routes to
|
|
44
|
-
const
|
|
43
|
+
// Convert routes to HttpProxy format
|
|
44
|
+
const httpProxyConfigs = routes
|
|
45
45
|
.filter(route => {
|
|
46
46
|
// Check if this route matches any of the specified network proxy ports
|
|
47
47
|
const routePorts = Array.isArray(route.match.ports)
|
|
@@ -49,20 +49,20 @@ export class NetworkProxyBridge {
|
|
|
49
49
|
: [route.match.ports];
|
|
50
50
|
|
|
51
51
|
return routePorts.some(port =>
|
|
52
|
-
this.settings.
|
|
52
|
+
this.settings.useHttpProxy?.includes(port)
|
|
53
53
|
);
|
|
54
54
|
})
|
|
55
|
-
.map(route => this.
|
|
55
|
+
.map(route => this.routeToHttpProxyConfig(route));
|
|
56
56
|
|
|
57
|
-
// Apply configurations to
|
|
58
|
-
await this.
|
|
57
|
+
// Apply configurations to HttpProxy
|
|
58
|
+
await this.httpProxy.updateRouteConfigs(httpProxyConfigs);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
|
-
* Convert route to
|
|
62
|
+
* Convert route to HttpProxy configuration
|
|
63
63
|
*/
|
|
64
|
-
private
|
|
65
|
-
// Convert route to
|
|
64
|
+
private routeToHttpProxyConfig(route: IRouteConfig): any {
|
|
65
|
+
// Convert route to HttpProxy domain config format
|
|
66
66
|
return {
|
|
67
67
|
domain: route.match.domains?.[0] || '*',
|
|
68
68
|
target: route.action.target,
|
|
@@ -72,36 +72,36 @@ export class NetworkProxyBridge {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
|
-
* Check if connection should use
|
|
75
|
+
* Check if connection should use HttpProxy
|
|
76
76
|
*/
|
|
77
|
-
public
|
|
78
|
-
// Only use
|
|
77
|
+
public shouldUseHttpProxy(connection: IConnectionRecord, routeMatch: any): boolean {
|
|
78
|
+
// Only use HttpProxy for TLS termination
|
|
79
79
|
return (
|
|
80
80
|
routeMatch.route.action.tls?.mode === 'terminate' ||
|
|
81
81
|
routeMatch.route.action.tls?.mode === 'terminate-and-reencrypt'
|
|
82
|
-
) && this.
|
|
82
|
+
) && this.httpProxy !== null;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
|
-
* Forward connection to
|
|
86
|
+
* Forward connection to HttpProxy
|
|
87
87
|
*/
|
|
88
|
-
public async
|
|
88
|
+
public async forwardToHttpProxy(
|
|
89
89
|
connectionId: string,
|
|
90
90
|
socket: plugins.net.Socket,
|
|
91
91
|
record: IConnectionRecord,
|
|
92
92
|
initialChunk: Buffer,
|
|
93
|
-
|
|
93
|
+
httpProxyPort: number,
|
|
94
94
|
cleanupCallback: (reason: string) => void
|
|
95
95
|
): Promise<void> {
|
|
96
|
-
if (!this.
|
|
97
|
-
throw new Error('
|
|
96
|
+
if (!this.httpProxy) {
|
|
97
|
+
throw new Error('HttpProxy not initialized');
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
const proxySocket = new plugins.net.Socket();
|
|
101
101
|
|
|
102
102
|
await new Promise<void>((resolve, reject) => {
|
|
103
|
-
proxySocket.connect(
|
|
104
|
-
console.log(`[${connectionId}] Connected to
|
|
103
|
+
proxySocket.connect(httpProxyPort, 'localhost', () => {
|
|
104
|
+
console.log(`[${connectionId}] Connected to HttpProxy for termination`);
|
|
105
105
|
resolve();
|
|
106
106
|
});
|
|
107
107
|
|
|
@@ -132,21 +132,21 @@ export class NetworkProxyBridge {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
/**
|
|
135
|
-
* Start
|
|
135
|
+
* Start HttpProxy
|
|
136
136
|
*/
|
|
137
137
|
public async start(): Promise<void> {
|
|
138
|
-
if (this.
|
|
139
|
-
await this.
|
|
138
|
+
if (this.httpProxy) {
|
|
139
|
+
await this.httpProxy.start();
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
/**
|
|
144
|
-
* Stop
|
|
144
|
+
* Stop HttpProxy
|
|
145
145
|
*/
|
|
146
146
|
public async stop(): Promise<void> {
|
|
147
|
-
if (this.
|
|
148
|
-
await this.
|
|
149
|
-
this.
|
|
147
|
+
if (this.httpProxy) {
|
|
148
|
+
await this.httpProxy.stop();
|
|
149
|
+
this.httpProxy = null;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
}
|
|
@@ -14,12 +14,15 @@ export { ConnectionManager } from './connection-manager.js';
|
|
|
14
14
|
export { SecurityManager } from './security-manager.js';
|
|
15
15
|
export { TimeoutManager } from './timeout-manager.js';
|
|
16
16
|
export { TlsManager } from './tls-manager.js';
|
|
17
|
-
export {
|
|
17
|
+
export { HttpProxyBridge } from './http-proxy-bridge.js';
|
|
18
18
|
|
|
19
19
|
// Export route-based components
|
|
20
20
|
export { RouteManager } from './route-manager.js';
|
|
21
21
|
export { RouteConnectionHandler } from './route-connection-handler.js';
|
|
22
22
|
export { NFTablesManager } from './nftables-manager.js';
|
|
23
23
|
|
|
24
|
+
// Export certificate management
|
|
25
|
+
export { SmartCertManager } from './certificate-manager.js';
|
|
26
|
+
|
|
24
27
|
// Export all helper functions from the utils directory
|
|
25
28
|
export * from './utils/index.js';
|
|
@@ -94,9 +94,9 @@ export interface ISmartProxyOptions {
|
|
|
94
94
|
keepAliveInactivityMultiplier?: number; // Multiplier for inactivity timeout for keep-alive connections
|
|
95
95
|
extendedKeepAliveLifetime?: number; // Extended lifetime for keep-alive connections (ms)
|
|
96
96
|
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
// HttpProxy integration
|
|
98
|
+
useHttpProxy?: number[]; // Array of ports to forward to HttpProxy
|
|
99
|
+
httpProxyPort?: number; // Port where HttpProxy is listening (default: 8443)
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
* Global ACME configuration options for SmartProxy
|
|
@@ -60,10 +60,10 @@ export class PortManager {
|
|
|
60
60
|
// Start listening on the port
|
|
61
61
|
return new Promise<void>((resolve, reject) => {
|
|
62
62
|
server.listen(port, () => {
|
|
63
|
-
const
|
|
63
|
+
const isHttpProxyPort = this.settings.useHttpProxy?.includes(port);
|
|
64
64
|
console.log(
|
|
65
65
|
`SmartProxy -> OK: Now listening on port ${port}${
|
|
66
|
-
|
|
66
|
+
isHttpProxyPort ? ' (HttpProxy forwarding enabled)' : ''
|
|
67
67
|
}`
|
|
68
68
|
);
|
|
69
69
|
|