@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,96 +0,0 @@
|
|
|
1
|
-
export interface RedirectRule {
|
|
2
|
-
/**
|
|
3
|
-
* Optional protocol to match (http or https). If not specified, matches both.
|
|
4
|
-
*/
|
|
5
|
-
fromProtocol?: 'http' | 'https';
|
|
6
|
-
/**
|
|
7
|
-
* Optional hostname pattern to match. Can use * as wildcard.
|
|
8
|
-
* If not specified, matches all hosts.
|
|
9
|
-
*/
|
|
10
|
-
fromHost?: string;
|
|
11
|
-
/**
|
|
12
|
-
* Optional path prefix to match. If not specified, matches all paths.
|
|
13
|
-
*/
|
|
14
|
-
fromPath?: string;
|
|
15
|
-
/**
|
|
16
|
-
* Target protocol for the redirect (http or https)
|
|
17
|
-
*/
|
|
18
|
-
toProtocol: 'http' | 'https';
|
|
19
|
-
/**
|
|
20
|
-
* Target hostname for the redirect. Can use $1, $2, etc. to reference
|
|
21
|
-
* captured groups from wildcard matches in fromHost.
|
|
22
|
-
*/
|
|
23
|
-
toHost: string;
|
|
24
|
-
/**
|
|
25
|
-
* Optional target path prefix. If not specified, keeps original path.
|
|
26
|
-
* Can use $path to reference the original path.
|
|
27
|
-
*/
|
|
28
|
-
toPath?: string;
|
|
29
|
-
/**
|
|
30
|
-
* HTTP status code for the redirect (301 for permanent, 302 for temporary)
|
|
31
|
-
*/
|
|
32
|
-
statusCode?: 301 | 302 | 307 | 308;
|
|
33
|
-
}
|
|
34
|
-
export declare class Redirect {
|
|
35
|
-
private httpServer?;
|
|
36
|
-
private httpsServer?;
|
|
37
|
-
private rules;
|
|
38
|
-
private httpPort;
|
|
39
|
-
private httpsPort;
|
|
40
|
-
private sslOptions?;
|
|
41
|
-
/**
|
|
42
|
-
* Create a new Redirect instance
|
|
43
|
-
* @param options Configuration options
|
|
44
|
-
*/
|
|
45
|
-
constructor(options?: {
|
|
46
|
-
httpPort?: number;
|
|
47
|
-
httpsPort?: number;
|
|
48
|
-
sslOptions?: {
|
|
49
|
-
key: Buffer;
|
|
50
|
-
cert: Buffer;
|
|
51
|
-
};
|
|
52
|
-
rules?: RedirectRule[];
|
|
53
|
-
});
|
|
54
|
-
/**
|
|
55
|
-
* Add a redirect rule
|
|
56
|
-
*/
|
|
57
|
-
addRule(rule: RedirectRule): void;
|
|
58
|
-
/**
|
|
59
|
-
* Remove all redirect rules
|
|
60
|
-
*/
|
|
61
|
-
clearRules(): void;
|
|
62
|
-
/**
|
|
63
|
-
* Set SSL options for HTTPS redirects
|
|
64
|
-
*/
|
|
65
|
-
setSslOptions(options: {
|
|
66
|
-
key: Buffer;
|
|
67
|
-
cert: Buffer;
|
|
68
|
-
}): void;
|
|
69
|
-
/**
|
|
70
|
-
* Process a request according to the configured rules
|
|
71
|
-
*/
|
|
72
|
-
private handleRequest;
|
|
73
|
-
/**
|
|
74
|
-
* Find a matching redirect rule for the given request
|
|
75
|
-
*/
|
|
76
|
-
private findMatchingRule;
|
|
77
|
-
/**
|
|
78
|
-
* Build the target URL for a redirect
|
|
79
|
-
*/
|
|
80
|
-
private buildTargetUrl;
|
|
81
|
-
/**
|
|
82
|
-
* Start the redirect server(s)
|
|
83
|
-
*/
|
|
84
|
-
start(): Promise<void>;
|
|
85
|
-
/**
|
|
86
|
-
* Stop the redirect server(s)
|
|
87
|
-
*/
|
|
88
|
-
stop(): Promise<void>;
|
|
89
|
-
}
|
|
90
|
-
export declare class SslRedirect {
|
|
91
|
-
private redirect;
|
|
92
|
-
port: number;
|
|
93
|
-
constructor(portArg: number);
|
|
94
|
-
start(): Promise<void>;
|
|
95
|
-
stop(): Promise<void>;
|
|
96
|
-
}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
export class Redirect {
|
|
3
|
-
/**
|
|
4
|
-
* Create a new Redirect instance
|
|
5
|
-
* @param options Configuration options
|
|
6
|
-
*/
|
|
7
|
-
constructor(options = {}) {
|
|
8
|
-
this.rules = [];
|
|
9
|
-
this.httpPort = 80;
|
|
10
|
-
this.httpsPort = 443;
|
|
11
|
-
if (options.httpPort)
|
|
12
|
-
this.httpPort = options.httpPort;
|
|
13
|
-
if (options.httpsPort)
|
|
14
|
-
this.httpsPort = options.httpsPort;
|
|
15
|
-
if (options.sslOptions)
|
|
16
|
-
this.sslOptions = options.sslOptions;
|
|
17
|
-
if (options.rules)
|
|
18
|
-
this.rules = options.rules;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Add a redirect rule
|
|
22
|
-
*/
|
|
23
|
-
addRule(rule) {
|
|
24
|
-
this.rules.push(rule);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Remove all redirect rules
|
|
28
|
-
*/
|
|
29
|
-
clearRules() {
|
|
30
|
-
this.rules = [];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Set SSL options for HTTPS redirects
|
|
34
|
-
*/
|
|
35
|
-
setSslOptions(options) {
|
|
36
|
-
this.sslOptions = options;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Process a request according to the configured rules
|
|
40
|
-
*/
|
|
41
|
-
handleRequest(request, response, protocol) {
|
|
42
|
-
const requestUrl = new URL(request.url || '/', `${protocol}://${request.headers.host || 'localhost'}`);
|
|
43
|
-
const host = requestUrl.hostname;
|
|
44
|
-
const path = requestUrl.pathname + requestUrl.search;
|
|
45
|
-
// Find matching rule
|
|
46
|
-
const matchedRule = this.findMatchingRule(protocol, host, path);
|
|
47
|
-
if (matchedRule) {
|
|
48
|
-
const targetUrl = this.buildTargetUrl(matchedRule, host, path);
|
|
49
|
-
console.log(`Redirecting ${protocol}://${host}${path} to ${targetUrl}`);
|
|
50
|
-
response.writeHead(matchedRule.statusCode || 302, {
|
|
51
|
-
Location: targetUrl,
|
|
52
|
-
});
|
|
53
|
-
response.end();
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// No matching rule, send 404
|
|
57
|
-
response.writeHead(404, { 'Content-Type': 'text/plain' });
|
|
58
|
-
response.end('Not Found');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Find a matching redirect rule for the given request
|
|
63
|
-
*/
|
|
64
|
-
findMatchingRule(protocol, host, path) {
|
|
65
|
-
return this.rules.find((rule) => {
|
|
66
|
-
// Check protocol match
|
|
67
|
-
if (rule.fromProtocol && rule.fromProtocol !== protocol) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
// Check host match
|
|
71
|
-
if (rule.fromHost) {
|
|
72
|
-
const pattern = rule.fromHost.replace(/\*/g, '(.*)');
|
|
73
|
-
const regex = new RegExp(`^${pattern}$`);
|
|
74
|
-
if (!regex.test(host)) {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// Check path match
|
|
79
|
-
if (rule.fromPath && !path.startsWith(rule.fromPath)) {
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
return true;
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Build the target URL for a redirect
|
|
87
|
-
*/
|
|
88
|
-
buildTargetUrl(rule, originalHost, originalPath) {
|
|
89
|
-
let targetHost = rule.toHost;
|
|
90
|
-
// Replace wildcards in host
|
|
91
|
-
if (rule.fromHost && rule.fromHost.includes('*')) {
|
|
92
|
-
const pattern = rule.fromHost.replace(/\*/g, '(.*)');
|
|
93
|
-
const regex = new RegExp(`^${pattern}$`);
|
|
94
|
-
const matches = originalHost.match(regex);
|
|
95
|
-
if (matches) {
|
|
96
|
-
for (let i = 1; i < matches.length; i++) {
|
|
97
|
-
targetHost = targetHost.replace(`$${i}`, matches[i]);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// Build target path
|
|
102
|
-
let targetPath = originalPath;
|
|
103
|
-
if (rule.toPath) {
|
|
104
|
-
if (rule.toPath.includes('$path')) {
|
|
105
|
-
// Replace $path with original path, optionally removing the fromPath prefix
|
|
106
|
-
const pathSuffix = rule.fromPath ?
|
|
107
|
-
originalPath.substring(rule.fromPath.length) :
|
|
108
|
-
originalPath;
|
|
109
|
-
targetPath = rule.toPath.replace('$path', pathSuffix);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
targetPath = rule.toPath;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return `${rule.toProtocol}://${targetHost}${targetPath}`;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Start the redirect server(s)
|
|
119
|
-
*/
|
|
120
|
-
async start() {
|
|
121
|
-
const tasks = [];
|
|
122
|
-
// Create and start HTTP server if we have a port
|
|
123
|
-
if (this.httpPort) {
|
|
124
|
-
this.httpServer = plugins.http.createServer((req, res) => this.handleRequest(req, res, 'http'));
|
|
125
|
-
const httpStartPromise = new Promise((resolve) => {
|
|
126
|
-
this.httpServer?.listen(this.httpPort, () => {
|
|
127
|
-
console.log(`HTTP redirect server started on port ${this.httpPort}`);
|
|
128
|
-
resolve();
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
tasks.push(httpStartPromise);
|
|
132
|
-
}
|
|
133
|
-
// Create and start HTTPS server if we have SSL options and a port
|
|
134
|
-
if (this.httpsPort && this.sslOptions) {
|
|
135
|
-
this.httpsServer = plugins.https.createServer(this.sslOptions, (req, res) => this.handleRequest(req, res, 'https'));
|
|
136
|
-
const httpsStartPromise = new Promise((resolve) => {
|
|
137
|
-
this.httpsServer?.listen(this.httpsPort, () => {
|
|
138
|
-
console.log(`HTTPS redirect server started on port ${this.httpsPort}`);
|
|
139
|
-
resolve();
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
tasks.push(httpsStartPromise);
|
|
143
|
-
}
|
|
144
|
-
// Wait for all servers to start
|
|
145
|
-
await Promise.all(tasks);
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Stop the redirect server(s)
|
|
149
|
-
*/
|
|
150
|
-
async stop() {
|
|
151
|
-
const tasks = [];
|
|
152
|
-
if (this.httpServer) {
|
|
153
|
-
const httpStopPromise = new Promise((resolve) => {
|
|
154
|
-
this.httpServer?.close(() => {
|
|
155
|
-
console.log('HTTP redirect server stopped');
|
|
156
|
-
resolve();
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
tasks.push(httpStopPromise);
|
|
160
|
-
}
|
|
161
|
-
if (this.httpsServer) {
|
|
162
|
-
const httpsStopPromise = new Promise((resolve) => {
|
|
163
|
-
this.httpsServer?.close(() => {
|
|
164
|
-
console.log('HTTPS redirect server stopped');
|
|
165
|
-
resolve();
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
tasks.push(httpsStopPromise);
|
|
169
|
-
}
|
|
170
|
-
await Promise.all(tasks);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
// For backward compatibility
|
|
174
|
-
export class SslRedirect {
|
|
175
|
-
constructor(portArg) {
|
|
176
|
-
this.port = portArg;
|
|
177
|
-
this.redirect = new Redirect({
|
|
178
|
-
httpPort: portArg,
|
|
179
|
-
rules: [{
|
|
180
|
-
fromProtocol: 'http',
|
|
181
|
-
toProtocol: 'https',
|
|
182
|
-
toHost: '$1',
|
|
183
|
-
statusCode: 302
|
|
184
|
-
}]
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
async start() {
|
|
188
|
-
await this.redirect.start();
|
|
189
|
-
}
|
|
190
|
-
async stop() {
|
|
191
|
-
await this.redirect.stop();
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5yZWRpcmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3JlZGlyZWN0L2NsYXNzZXMucmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUEwQ3pDLE1BQU0sT0FBTyxRQUFRO0lBV25COzs7T0FHRztJQUNILFlBQVksVUFRUixFQUFFO1FBcEJFLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQzNCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsY0FBUyxHQUFXLEdBQUcsQ0FBQztRQW1COUIsSUFBSSxPQUFPLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN2RCxJQUFJLE9BQU8sQ0FBQyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQzFELElBQUksT0FBTyxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDN0QsSUFBSSxPQUFPLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUMsSUFBa0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWEsQ0FBQyxPQUFzQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQ25CLE9BQXFDLEVBQ3JDLFFBQXFDLEVBQ3JDLFFBQTBCO1FBRTFC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
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
import type { IDomainConfig, ISmartProxyCertProvisionObject } from './classes.pp.interfaces.js';
|
|
3
|
-
import { Port80Handler } from '../port80handler/classes.port80handler.js';
|
|
4
|
-
import type { NetworkProxyBridge } from './classes.pp.networkproxybridge.js';
|
|
5
|
-
/**
|
|
6
|
-
* CertProvisioner manages certificate provisioning and renewal workflows,
|
|
7
|
-
* unifying static certificates and HTTP-01 challenges via Port80Handler.
|
|
8
|
-
*/
|
|
9
|
-
export declare class CertProvisioner extends plugins.EventEmitter {
|
|
10
|
-
private domainConfigs;
|
|
11
|
-
private port80Handler;
|
|
12
|
-
private networkProxyBridge;
|
|
13
|
-
private certProvisionFunction?;
|
|
14
|
-
private forwardConfigs;
|
|
15
|
-
private renewThresholdDays;
|
|
16
|
-
private renewCheckIntervalHours;
|
|
17
|
-
private autoRenew;
|
|
18
|
-
private renewManager?;
|
|
19
|
-
private provisionMap;
|
|
20
|
-
/**
|
|
21
|
-
* @param domainConfigs Array of domain configuration objects
|
|
22
|
-
* @param port80Handler HTTP-01 challenge handler instance
|
|
23
|
-
* @param networkProxyBridge Bridge for applying external certificates
|
|
24
|
-
* @param certProvider Optional callback returning a static cert or 'http01'
|
|
25
|
-
* @param renewThresholdDays Days before expiry to trigger renewals
|
|
26
|
-
* @param renewCheckIntervalHours Interval in hours to check for renewals
|
|
27
|
-
* @param autoRenew Whether to automatically schedule renewals
|
|
28
|
-
*/
|
|
29
|
-
constructor(domainConfigs: IDomainConfig[], port80Handler: Port80Handler, networkProxyBridge: NetworkProxyBridge, certProvider?: (domain: string) => Promise<ISmartProxyCertProvisionObject>, renewThresholdDays?: number, renewCheckIntervalHours?: number, autoRenew?: boolean, forwardConfigs?: Array<{
|
|
30
|
-
domain: string;
|
|
31
|
-
forwardConfig?: {
|
|
32
|
-
ip: string;
|
|
33
|
-
port: number;
|
|
34
|
-
};
|
|
35
|
-
acmeForwardConfig?: {
|
|
36
|
-
ip: string;
|
|
37
|
-
port: number;
|
|
38
|
-
};
|
|
39
|
-
sslRedirect: boolean;
|
|
40
|
-
}>);
|
|
41
|
-
/**
|
|
42
|
-
* Start initial provisioning and schedule renewals.
|
|
43
|
-
*/
|
|
44
|
-
start(): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Stop all scheduled renewal tasks.
|
|
47
|
-
*/
|
|
48
|
-
stop(): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Request a certificate on-demand for the given domain.
|
|
51
|
-
* @param domain Domain name to provision
|
|
52
|
-
*/
|
|
53
|
-
requestCertificate(domain: string): Promise<void>;
|
|
54
|
-
}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
import { Port80Handler } from '../port80handler/classes.port80handler.js';
|
|
3
|
-
import { Port80HandlerEvents } from '../common/types.js';
|
|
4
|
-
import { subscribeToPort80Handler } from '../common/eventUtils.js';
|
|
5
|
-
/**
|
|
6
|
-
* CertProvisioner manages certificate provisioning and renewal workflows,
|
|
7
|
-
* unifying static certificates and HTTP-01 challenges via Port80Handler.
|
|
8
|
-
*/
|
|
9
|
-
export class CertProvisioner extends plugins.EventEmitter {
|
|
10
|
-
/**
|
|
11
|
-
* @param domainConfigs Array of domain configuration objects
|
|
12
|
-
* @param port80Handler HTTP-01 challenge handler instance
|
|
13
|
-
* @param networkProxyBridge Bridge for applying external certificates
|
|
14
|
-
* @param certProvider Optional callback returning a static cert or 'http01'
|
|
15
|
-
* @param renewThresholdDays Days before expiry to trigger renewals
|
|
16
|
-
* @param renewCheckIntervalHours Interval in hours to check for renewals
|
|
17
|
-
* @param autoRenew Whether to automatically schedule renewals
|
|
18
|
-
*/
|
|
19
|
-
constructor(domainConfigs, port80Handler, networkProxyBridge, certProvider, renewThresholdDays = 30, renewCheckIntervalHours = 24, autoRenew = true, forwardConfigs = []) {
|
|
20
|
-
super();
|
|
21
|
-
this.domainConfigs = domainConfigs;
|
|
22
|
-
this.port80Handler = port80Handler;
|
|
23
|
-
this.networkProxyBridge = networkProxyBridge;
|
|
24
|
-
this.certProvisionFunction = certProvider;
|
|
25
|
-
this.renewThresholdDays = renewThresholdDays;
|
|
26
|
-
this.renewCheckIntervalHours = renewCheckIntervalHours;
|
|
27
|
-
this.autoRenew = autoRenew;
|
|
28
|
-
this.provisionMap = new Map();
|
|
29
|
-
this.forwardConfigs = forwardConfigs;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Start initial provisioning and schedule renewals.
|
|
33
|
-
*/
|
|
34
|
-
async start() {
|
|
35
|
-
// Subscribe to Port80Handler certificate events
|
|
36
|
-
subscribeToPort80Handler(this.port80Handler, {
|
|
37
|
-
onCertificateIssued: (data) => {
|
|
38
|
-
this.emit('certificate', { ...data, source: 'http01', isRenewal: false });
|
|
39
|
-
},
|
|
40
|
-
onCertificateRenewed: (data) => {
|
|
41
|
-
this.emit('certificate', { ...data, source: 'http01', isRenewal: true });
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
// Apply external forwarding for ACME challenges (e.g. Synology)
|
|
45
|
-
for (const f of this.forwardConfigs) {
|
|
46
|
-
this.port80Handler.addDomain({
|
|
47
|
-
domainName: f.domain,
|
|
48
|
-
sslRedirect: f.sslRedirect,
|
|
49
|
-
acmeMaintenance: false,
|
|
50
|
-
forward: f.forwardConfig,
|
|
51
|
-
acmeForward: f.acmeForwardConfig
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
// Initial provisioning for all domains
|
|
55
|
-
const domains = this.domainConfigs.flatMap(cfg => cfg.domains);
|
|
56
|
-
for (const domain of domains) {
|
|
57
|
-
const isWildcard = domain.includes('*');
|
|
58
|
-
let provision = 'http01';
|
|
59
|
-
if (this.certProvisionFunction) {
|
|
60
|
-
try {
|
|
61
|
-
provision = await this.certProvisionFunction(domain);
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
console.error(`certProvider error for ${domain}:`, err);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else if (isWildcard) {
|
|
68
|
-
// No certProvider: cannot handle wildcard without DNS-01 support
|
|
69
|
-
console.warn(`Skipping wildcard domain without certProvisionFunction: ${domain}`);
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
if (provision === 'http01') {
|
|
73
|
-
if (isWildcard) {
|
|
74
|
-
console.warn(`Skipping HTTP-01 for wildcard domain: ${domain}`);
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
this.provisionMap.set(domain, 'http01');
|
|
78
|
-
this.port80Handler.addDomain({ domainName: domain, sslRedirect: true, acmeMaintenance: true });
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// Static certificate (e.g., DNS-01 provisioned or user-provided) supports wildcard domains
|
|
82
|
-
this.provisionMap.set(domain, 'static');
|
|
83
|
-
const certObj = provision;
|
|
84
|
-
const certData = {
|
|
85
|
-
domain: certObj.domainName,
|
|
86
|
-
certificate: certObj.publicKey,
|
|
87
|
-
privateKey: certObj.privateKey,
|
|
88
|
-
expiryDate: new Date(certObj.validUntil)
|
|
89
|
-
};
|
|
90
|
-
this.networkProxyBridge.applyExternalCertificate(certData);
|
|
91
|
-
this.emit('certificate', { ...certData, source: 'static', isRenewal: false });
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// Schedule renewals if enabled
|
|
95
|
-
if (this.autoRenew) {
|
|
96
|
-
this.renewManager = new plugins.taskbuffer.TaskManager();
|
|
97
|
-
const renewTask = new plugins.taskbuffer.Task({
|
|
98
|
-
name: 'CertificateRenewals',
|
|
99
|
-
taskFunction: async () => {
|
|
100
|
-
for (const [domain, type] of this.provisionMap.entries()) {
|
|
101
|
-
// Skip wildcard domains
|
|
102
|
-
if (domain.includes('*'))
|
|
103
|
-
continue;
|
|
104
|
-
try {
|
|
105
|
-
if (type === 'http01') {
|
|
106
|
-
await this.port80Handler.renewCertificate(domain);
|
|
107
|
-
}
|
|
108
|
-
else if (type === 'static' && this.certProvisionFunction) {
|
|
109
|
-
const provision2 = await this.certProvisionFunction(domain);
|
|
110
|
-
if (provision2 !== 'http01') {
|
|
111
|
-
const certObj = provision2;
|
|
112
|
-
const certData = {
|
|
113
|
-
domain: certObj.domainName,
|
|
114
|
-
certificate: certObj.publicKey,
|
|
115
|
-
privateKey: certObj.privateKey,
|
|
116
|
-
expiryDate: new Date(certObj.validUntil)
|
|
117
|
-
};
|
|
118
|
-
this.networkProxyBridge.applyExternalCertificate(certData);
|
|
119
|
-
this.emit('certificate', { ...certData, source: 'static', isRenewal: true });
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
catch (err) {
|
|
124
|
-
console.error(`Renewal error for ${domain}:`, err);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
const hours = this.renewCheckIntervalHours;
|
|
130
|
-
const cronExpr = `0 0 */${hours} * * *`;
|
|
131
|
-
this.renewManager.addAndScheduleTask(renewTask, cronExpr);
|
|
132
|
-
this.renewManager.start();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Stop all scheduled renewal tasks.
|
|
137
|
-
*/
|
|
138
|
-
async stop() {
|
|
139
|
-
// Stop scheduled renewals
|
|
140
|
-
if (this.renewManager) {
|
|
141
|
-
this.renewManager.stop();
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Request a certificate on-demand for the given domain.
|
|
146
|
-
* @param domain Domain name to provision
|
|
147
|
-
*/
|
|
148
|
-
async requestCertificate(domain) {
|
|
149
|
-
const isWildcard = domain.includes('*');
|
|
150
|
-
// Determine provisioning method
|
|
151
|
-
let provision = 'http01';
|
|
152
|
-
if (this.certProvisionFunction) {
|
|
153
|
-
provision = await this.certProvisionFunction(domain);
|
|
154
|
-
}
|
|
155
|
-
else if (isWildcard) {
|
|
156
|
-
// Cannot perform HTTP-01 on wildcard without certProvider
|
|
157
|
-
throw new Error(`Cannot request certificate for wildcard domain without certProvisionFunction: ${domain}`);
|
|
158
|
-
}
|
|
159
|
-
if (provision === 'http01') {
|
|
160
|
-
if (isWildcard) {
|
|
161
|
-
throw new Error(`Cannot request HTTP-01 certificate for wildcard domain: ${domain}`);
|
|
162
|
-
}
|
|
163
|
-
await this.port80Handler.renewCertificate(domain);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
// Static certificate (e.g., DNS-01 provisioned) supports wildcards
|
|
167
|
-
const certObj = provision;
|
|
168
|
-
const certData = {
|
|
169
|
-
domain: certObj.domainName,
|
|
170
|
-
certificate: certObj.publicKey,
|
|
171
|
-
privateKey: certObj.privateKey,
|
|
172
|
-
expiryDate: new Date(certObj.validUntil)
|
|
173
|
-
};
|
|
174
|
-
this.networkProxyBridge.applyExternalCertificate(certData);
|
|
175
|
-
this.emit('certificate', { ...certData, source: 'static', isRenewal: false });
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wcC5jZXJ0cHJvdmlzaW9uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9zbWFydHByb3h5L2NsYXNzZXMucHAuY2VydHByb3Zpc2lvbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUluRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxPQUFPLENBQUMsWUFBWTtJQWF2RDs7Ozs7Ozs7T0FRRztJQUNILFlBQ0UsYUFBOEIsRUFDOUIsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLFlBQTBFLEVBQzFFLHFCQUE2QixFQUFFLEVBQy9CLDBCQUFrQyxFQUFFLEVBQ3BDLFlBQXFCLElBQUksRUFDekIsaUJBQWtLLEVBQUU7UUFFcEssS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lB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
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
import type { ISmartProxyOptions } from './classes.pp.interfaces.js';
|
|
3
|
-
import { ConnectionManager } from './classes.pp.connectionmanager.js';
|
|
4
|
-
import { SecurityManager } from './classes.pp.securitymanager.js';
|
|
5
|
-
import { DomainConfigManager } from './classes.pp.domainconfigmanager.js';
|
|
6
|
-
import { TlsManager } from './classes.pp.tlsmanager.js';
|
|
7
|
-
import { NetworkProxyBridge } from './classes.pp.networkproxybridge.js';
|
|
8
|
-
import { TimeoutManager } from './classes.pp.timeoutmanager.js';
|
|
9
|
-
import { PortRangeManager } from './classes.pp.portrangemanager.js';
|
|
10
|
-
/**
|
|
11
|
-
* Handles new connection processing and setup logic
|
|
12
|
-
*/
|
|
13
|
-
export declare class ConnectionHandler {
|
|
14
|
-
private settings;
|
|
15
|
-
private connectionManager;
|
|
16
|
-
private securityManager;
|
|
17
|
-
private domainConfigManager;
|
|
18
|
-
private tlsManager;
|
|
19
|
-
private networkProxyBridge;
|
|
20
|
-
private timeoutManager;
|
|
21
|
-
private portRangeManager;
|
|
22
|
-
constructor(settings: ISmartProxyOptions, connectionManager: ConnectionManager, securityManager: SecurityManager, domainConfigManager: DomainConfigManager, tlsManager: TlsManager, networkProxyBridge: NetworkProxyBridge, timeoutManager: TimeoutManager, portRangeManager: PortRangeManager);
|
|
23
|
-
/**
|
|
24
|
-
* Handle a new incoming connection
|
|
25
|
-
*/
|
|
26
|
-
handleConnection(socket: plugins.net.Socket): void;
|
|
27
|
-
/**
|
|
28
|
-
* Handle a connection that should be forwarded to NetworkProxy
|
|
29
|
-
*/
|
|
30
|
-
private handleNetworkProxyConnection;
|
|
31
|
-
/**
|
|
32
|
-
* Handle a standard (non-NetworkProxy) connection
|
|
33
|
-
*/
|
|
34
|
-
private handleStandardConnection;
|
|
35
|
-
/**
|
|
36
|
-
* Sets up a direct connection to the target
|
|
37
|
-
*/
|
|
38
|
-
private setupDirectConnection;
|
|
39
|
-
}
|