@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,243 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
import { ProxyRouter } from './classes.router.js';
|
|
3
|
-
export interface INetworkProxyOptions {
|
|
4
|
-
port: number;
|
|
5
|
-
maxConnections?: number;
|
|
6
|
-
keepAliveTimeout?: number;
|
|
7
|
-
headersTimeout?: number;
|
|
8
|
-
logLevel?: 'error' | 'warn' | 'info' | 'debug';
|
|
9
|
-
cors?: {
|
|
10
|
-
allowOrigin?: string;
|
|
11
|
-
allowMethods?: string;
|
|
12
|
-
allowHeaders?: string;
|
|
13
|
-
maxAge?: number;
|
|
14
|
-
};
|
|
15
|
-
connectionPoolSize?: number;
|
|
16
|
-
portProxyIntegration?: boolean;
|
|
17
|
-
acme?: {
|
|
18
|
-
enabled?: boolean;
|
|
19
|
-
port?: number;
|
|
20
|
-
contactEmail?: string;
|
|
21
|
-
useProduction?: boolean;
|
|
22
|
-
renewThresholdDays?: number;
|
|
23
|
-
autoRenew?: boolean;
|
|
24
|
-
certificateStore?: string;
|
|
25
|
-
skipConfiguredCerts?: boolean;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
export declare class NetworkProxy {
|
|
29
|
-
options: INetworkProxyOptions;
|
|
30
|
-
proxyConfigs: plugins.tsclass.network.IReverseProxyConfig[];
|
|
31
|
-
defaultHeaders: {
|
|
32
|
-
[key: string]: string;
|
|
33
|
-
};
|
|
34
|
-
httpsServer: plugins.https.Server;
|
|
35
|
-
wsServer: plugins.ws.WebSocketServer;
|
|
36
|
-
router: ProxyRouter;
|
|
37
|
-
socketMap: plugins.lik.ObjectMap<plugins.net.Socket>;
|
|
38
|
-
activeContexts: Set<string>;
|
|
39
|
-
connectedClients: number;
|
|
40
|
-
startTime: number;
|
|
41
|
-
requestsServed: number;
|
|
42
|
-
failedRequests: number;
|
|
43
|
-
private portProxyConnections;
|
|
44
|
-
private tlsTerminatedConnections;
|
|
45
|
-
private heartbeatInterval;
|
|
46
|
-
private metricsInterval;
|
|
47
|
-
private connectionPoolCleanupInterval;
|
|
48
|
-
private defaultCertificates;
|
|
49
|
-
private certificateCache;
|
|
50
|
-
private port80Handler;
|
|
51
|
-
private certificateStoreDir;
|
|
52
|
-
private connectionPool;
|
|
53
|
-
private roundRobinPositions;
|
|
54
|
-
/**
|
|
55
|
-
* Creates a new NetworkProxy instance
|
|
56
|
-
*/
|
|
57
|
-
constructor(optionsArg: INetworkProxyOptions);
|
|
58
|
-
/**
|
|
59
|
-
* Loads default certificates from the filesystem
|
|
60
|
-
*/
|
|
61
|
-
private loadDefaultCertificates;
|
|
62
|
-
/**
|
|
63
|
-
* Returns the port number this NetworkProxy is listening on
|
|
64
|
-
* Useful for PortProxy to determine where to forward connections
|
|
65
|
-
*/
|
|
66
|
-
getListeningPort(): number;
|
|
67
|
-
/**
|
|
68
|
-
* Updates the server capacity settings
|
|
69
|
-
* @param maxConnections Maximum number of simultaneous connections
|
|
70
|
-
* @param keepAliveTimeout Keep-alive timeout in milliseconds
|
|
71
|
-
* @param connectionPoolSize Size of the connection pool per backend
|
|
72
|
-
*/
|
|
73
|
-
updateCapacity(maxConnections?: number, keepAliveTimeout?: number, connectionPoolSize?: number): void;
|
|
74
|
-
/**
|
|
75
|
-
* Returns current server metrics
|
|
76
|
-
* Useful for PortProxy to determine which NetworkProxy to use for load balancing
|
|
77
|
-
*/
|
|
78
|
-
getMetrics(): any;
|
|
79
|
-
/**
|
|
80
|
-
* Cleanup the connection pool by removing idle connections
|
|
81
|
-
* or reducing pool size if it exceeds the configured maximum
|
|
82
|
-
*/
|
|
83
|
-
private cleanupConnectionPool;
|
|
84
|
-
/**
|
|
85
|
-
* Get a connection from the pool or create a new one
|
|
86
|
-
*/
|
|
87
|
-
private getConnectionFromPool;
|
|
88
|
-
/**
|
|
89
|
-
* Return a connection to the pool for reuse
|
|
90
|
-
*/
|
|
91
|
-
private returnConnectionToPool;
|
|
92
|
-
/**
|
|
93
|
-
* Initializes the Port80Handler for ACME certificate management
|
|
94
|
-
* @private
|
|
95
|
-
*/
|
|
96
|
-
private initializePort80Handler;
|
|
97
|
-
/**
|
|
98
|
-
* Registers domains from proxy configs with the Port80Handler
|
|
99
|
-
* @private
|
|
100
|
-
*/
|
|
101
|
-
private registerDomainsWithPort80Handler;
|
|
102
|
-
/**
|
|
103
|
-
* Handles newly issued or renewed certificates from Port80Handler
|
|
104
|
-
* @private
|
|
105
|
-
*/
|
|
106
|
-
private handleCertificateIssued;
|
|
107
|
-
/**
|
|
108
|
-
* Handles certificate issuance failures
|
|
109
|
-
* @private
|
|
110
|
-
*/
|
|
111
|
-
private handleCertificateFailed;
|
|
112
|
-
/**
|
|
113
|
-
* Saves certificate and private key to the filesystem
|
|
114
|
-
* @private
|
|
115
|
-
*/
|
|
116
|
-
private saveCertificateToStore;
|
|
117
|
-
/**
|
|
118
|
-
* Handles SNI (Server Name Indication) for TLS connections
|
|
119
|
-
* Used by the HTTPS server to select the correct certificate for each domain
|
|
120
|
-
* @private
|
|
121
|
-
*/
|
|
122
|
-
private handleSNI;
|
|
123
|
-
/**
|
|
124
|
-
* Starts the proxy server
|
|
125
|
-
*/
|
|
126
|
-
start(): Promise<void>;
|
|
127
|
-
/**
|
|
128
|
-
* Sets up tracking of TCP connections
|
|
129
|
-
*/
|
|
130
|
-
private setupConnectionTracking;
|
|
131
|
-
/**
|
|
132
|
-
* Sets up WebSocket support
|
|
133
|
-
*/
|
|
134
|
-
private setupWebsocketSupport;
|
|
135
|
-
/**
|
|
136
|
-
* Sets up metrics collection
|
|
137
|
-
*/
|
|
138
|
-
private setupMetricsCollection;
|
|
139
|
-
/**
|
|
140
|
-
* Sets up connection pool cleanup
|
|
141
|
-
*/
|
|
142
|
-
private setupConnectionPoolCleanup;
|
|
143
|
-
/**
|
|
144
|
-
* Handles an incoming WebSocket connection
|
|
145
|
-
*/
|
|
146
|
-
private handleWebSocketConnection;
|
|
147
|
-
/**
|
|
148
|
-
* Handles an HTTP/HTTPS request
|
|
149
|
-
*/
|
|
150
|
-
private handleRequest;
|
|
151
|
-
/**
|
|
152
|
-
* Handles a CORS preflight request
|
|
153
|
-
*/
|
|
154
|
-
private handleCorsRequest;
|
|
155
|
-
/**
|
|
156
|
-
* Authenticates a request against the destination config
|
|
157
|
-
*/
|
|
158
|
-
private authenticateRequest;
|
|
159
|
-
/**
|
|
160
|
-
* Forwards a request to the destination using connection pool
|
|
161
|
-
* for optimized connection reuse from PortProxy
|
|
162
|
-
*/
|
|
163
|
-
private forwardRequestUsingConnectionPool;
|
|
164
|
-
/**
|
|
165
|
-
* Forwards a request to the destination (standard method)
|
|
166
|
-
*/
|
|
167
|
-
private forwardRequest;
|
|
168
|
-
/**
|
|
169
|
-
* Prepares headers to forward to the backend
|
|
170
|
-
*/
|
|
171
|
-
private prepareForwardHeaders;
|
|
172
|
-
/**
|
|
173
|
-
* Sets up request streaming for the proxy
|
|
174
|
-
*/
|
|
175
|
-
private setupRequestStreaming;
|
|
176
|
-
/**
|
|
177
|
-
* Processes a proxy response
|
|
178
|
-
*/
|
|
179
|
-
private processProxyResponse;
|
|
180
|
-
/**
|
|
181
|
-
* Sends an error response to the client
|
|
182
|
-
*/
|
|
183
|
-
private sendErrorResponse;
|
|
184
|
-
/**
|
|
185
|
-
* Selects a destination IP from the array using round-robin
|
|
186
|
-
* @param config The proxy configuration
|
|
187
|
-
* @returns A destination IP address
|
|
188
|
-
*/
|
|
189
|
-
private selectDestinationIp;
|
|
190
|
-
/**
|
|
191
|
-
* Selects a destination port from the array using round-robin
|
|
192
|
-
* @param config The proxy configuration
|
|
193
|
-
* @returns A destination port number
|
|
194
|
-
*/
|
|
195
|
-
private selectDestinationPort;
|
|
196
|
-
/**
|
|
197
|
-
* Updates proxy configurations
|
|
198
|
-
*/
|
|
199
|
-
updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]): Promise<void>;
|
|
200
|
-
/**
|
|
201
|
-
* Converts PortProxy domain configurations to NetworkProxy configs
|
|
202
|
-
* @param domainConfigs PortProxy domain configs
|
|
203
|
-
* @param sslKeyPair Default SSL key pair to use if not specified
|
|
204
|
-
* @returns Array of NetworkProxy configs
|
|
205
|
-
*/
|
|
206
|
-
convertPortProxyConfigs(domainConfigs: Array<{
|
|
207
|
-
domains: string[];
|
|
208
|
-
targetIPs?: string[];
|
|
209
|
-
allowedIPs?: string[];
|
|
210
|
-
}>, sslKeyPair?: {
|
|
211
|
-
key: string;
|
|
212
|
-
cert: string;
|
|
213
|
-
}): plugins.tsclass.network.IReverseProxyConfig[];
|
|
214
|
-
/**
|
|
215
|
-
* Adds default headers to be included in all responses
|
|
216
|
-
*/
|
|
217
|
-
addDefaultHeaders(headersArg: {
|
|
218
|
-
[key: string]: string;
|
|
219
|
-
}): Promise<void>;
|
|
220
|
-
/**
|
|
221
|
-
* Stops the proxy server
|
|
222
|
-
*/
|
|
223
|
-
stop(): Promise<void>;
|
|
224
|
-
/**
|
|
225
|
-
* Requests a new certificate for a domain
|
|
226
|
-
* This can be used to manually trigger certificate issuance
|
|
227
|
-
* @param domain The domain to request a certificate for
|
|
228
|
-
* @returns A promise that resolves when the request is submitted (not when the certificate is issued)
|
|
229
|
-
*/
|
|
230
|
-
requestCertificate(domain: string): Promise<boolean>;
|
|
231
|
-
/**
|
|
232
|
-
* Updates the certificate cache for a domain
|
|
233
|
-
* @param domain The domain name
|
|
234
|
-
* @param certificate The certificate (PEM format)
|
|
235
|
-
* @param privateKey The private key (PEM format)
|
|
236
|
-
* @param expiryDate Optional expiry date
|
|
237
|
-
*/
|
|
238
|
-
private updateCertificateCache;
|
|
239
|
-
/**
|
|
240
|
-
* Logs a message according to the configured log level
|
|
241
|
-
*/
|
|
242
|
-
private log;
|
|
243
|
-
}
|