@push.rocks/smartproxy 15.0.2 → 16.0.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/certificate/index.d.ts +10 -4
- package/dist_ts/certificate/index.js +5 -7
- package/dist_ts/certificate/models/certificate-types.d.ts +35 -15
- package/dist_ts/certificate/providers/cert-provisioner.d.ts +41 -15
- package/dist_ts/certificate/providers/cert-provisioner.js +201 -41
- package/dist_ts/core/models/index.d.ts +2 -0
- package/dist_ts/core/models/index.js +3 -1
- package/dist_ts/core/models/route-context.d.ts +62 -0
- package/dist_ts/core/models/route-context.js +43 -0
- package/dist_ts/core/models/socket-augmentation.d.ts +12 -0
- package/dist_ts/core/models/socket-augmentation.js +18 -0
- package/dist_ts/core/utils/event-system.d.ts +200 -0
- package/dist_ts/core/utils/event-system.js +224 -0
- package/dist_ts/core/utils/index.d.ts +7 -0
- package/dist_ts/core/utils/index.js +8 -1
- package/dist_ts/core/utils/route-manager.d.ts +118 -0
- package/dist_ts/core/utils/route-manager.js +383 -0
- package/dist_ts/core/utils/route-utils.d.ts +94 -0
- package/dist_ts/core/utils/route-utils.js +264 -0
- package/dist_ts/core/utils/security-utils.d.ts +111 -0
- package/dist_ts/core/utils/security-utils.js +212 -0
- package/dist_ts/core/utils/shared-security-manager.d.ts +110 -0
- package/dist_ts/core/utils/shared-security-manager.js +252 -0
- package/dist_ts/core/utils/template-utils.d.ts +37 -0
- package/dist_ts/core/utils/template-utils.js +104 -0
- package/dist_ts/core/utils/websocket-utils.d.ts +23 -0
- package/dist_ts/core/utils/websocket-utils.js +86 -0
- package/dist_ts/forwarding/config/forwarding-types.d.ts +40 -76
- package/dist_ts/forwarding/config/forwarding-types.js +19 -18
- package/dist_ts/forwarding/config/index.d.ts +4 -2
- package/dist_ts/forwarding/config/index.js +5 -3
- package/dist_ts/forwarding/handlers/base-handler.js +3 -1
- package/dist_ts/forwarding/index.d.ts +5 -6
- package/dist_ts/forwarding/index.js +3 -3
- package/dist_ts/http/models/http-types.js +1 -1
- package/dist_ts/http/port80/acme-interfaces.d.ts +30 -0
- package/dist_ts/http/port80/acme-interfaces.js +46 -1
- package/dist_ts/http/port80/port80-handler.d.ts +17 -2
- package/dist_ts/http/port80/port80-handler.js +49 -11
- package/dist_ts/http/router/index.d.ts +5 -1
- package/dist_ts/http/router/index.js +4 -2
- package/dist_ts/http/router/route-router.d.ts +108 -0
- package/dist_ts/http/router/route-router.js +393 -0
- package/dist_ts/index.d.ts +8 -2
- package/dist_ts/index.js +10 -3
- package/dist_ts/proxies/index.d.ts +7 -2
- package/dist_ts/proxies/index.js +10 -4
- package/dist_ts/proxies/network-proxy/certificate-manager.d.ts +21 -0
- package/dist_ts/proxies/network-proxy/certificate-manager.js +92 -1
- package/dist_ts/proxies/network-proxy/context-creator.d.ts +34 -0
- package/dist_ts/proxies/network-proxy/context-creator.js +108 -0
- package/dist_ts/proxies/network-proxy/function-cache.d.ts +90 -0
- package/dist_ts/proxies/network-proxy/function-cache.js +198 -0
- package/dist_ts/proxies/network-proxy/http-request-handler.d.ts +40 -0
- package/dist_ts/proxies/network-proxy/http-request-handler.js +256 -0
- package/dist_ts/proxies/network-proxy/http2-request-handler.d.ts +24 -0
- package/dist_ts/proxies/network-proxy/http2-request-handler.js +201 -0
- package/dist_ts/proxies/network-proxy/models/types.d.ts +73 -1
- package/dist_ts/proxies/network-proxy/models/types.js +242 -1
- package/dist_ts/proxies/network-proxy/network-proxy.d.ts +23 -20
- package/dist_ts/proxies/network-proxy/network-proxy.js +147 -60
- package/dist_ts/proxies/network-proxy/request-handler.d.ts +38 -5
- package/dist_ts/proxies/network-proxy/request-handler.js +584 -198
- package/dist_ts/proxies/network-proxy/security-manager.d.ts +65 -0
- package/dist_ts/proxies/network-proxy/security-manager.js +255 -0
- package/dist_ts/proxies/network-proxy/websocket-handler.d.ts +13 -2
- package/dist_ts/proxies/network-proxy/websocket-handler.js +238 -20
- package/dist_ts/proxies/smart-proxy/index.d.ts +1 -1
- package/dist_ts/proxies/smart-proxy/index.js +3 -3
- package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +5 -66
- package/dist_ts/proxies/smart-proxy/models/interfaces.js +5 -4
- package/dist_ts/proxies/smart-proxy/models/route-types.d.ts +173 -6
- package/dist_ts/proxies/smart-proxy/network-proxy-bridge.d.ts +20 -7
- package/dist_ts/proxies/smart-proxy/network-proxy-bridge.js +49 -108
- package/dist_ts/proxies/smart-proxy/port-manager.d.ts +81 -0
- package/dist_ts/proxies/smart-proxy/port-manager.js +166 -0
- package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +7 -5
- package/dist_ts/proxies/smart-proxy/route-connection-handler.js +155 -160
- package/dist_ts/proxies/smart-proxy/route-helpers/index.d.ts +9 -0
- package/dist_ts/proxies/smart-proxy/route-helpers/index.js +11 -0
- package/dist_ts/proxies/smart-proxy/route-helpers.d.ts +5 -125
- package/dist_ts/proxies/smart-proxy/route-helpers.js +8 -195
- package/dist_ts/proxies/smart-proxy/route-manager.d.ts +14 -11
- package/dist_ts/proxies/smart-proxy/route-manager.js +81 -124
- package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +101 -12
- package/dist_ts/proxies/smart-proxy/smart-proxy.js +178 -306
- package/dist_ts/proxies/smart-proxy/timeout-manager.js +3 -3
- package/dist_ts/proxies/smart-proxy/utils/index.d.ts +12 -0
- package/dist_ts/proxies/smart-proxy/utils/index.js +19 -0
- package/dist_ts/proxies/smart-proxy/utils/route-helpers.d.ts +240 -0
- package/dist_ts/proxies/smart-proxy/utils/route-helpers.js +451 -0
- package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.d.ts +51 -0
- package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.js +124 -0
- package/dist_ts/proxies/smart-proxy/utils/route-patterns.d.ts +131 -0
- package/dist_ts/proxies/smart-proxy/utils/route-patterns.js +217 -0
- package/dist_ts/proxies/smart-proxy/utils/route-utils.d.ts +79 -0
- package/dist_ts/proxies/smart-proxy/utils/route-utils.js +266 -0
- package/dist_ts/proxies/smart-proxy/utils/route-validators.d.ts +73 -0
- package/dist_ts/proxies/smart-proxy/utils/route-validators.js +264 -0
- package/package.json +1 -1
- package/readme.md +241 -125
- package/readme.plan.md +73 -286
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/certificate/index.ts +17 -9
- package/ts/certificate/models/certificate-types.ts +37 -16
- package/ts/certificate/providers/cert-provisioner.ts +247 -54
- package/ts/core/models/index.ts +2 -0
- package/ts/core/models/route-context.ts +113 -0
- package/ts/core/models/socket-augmentation.ts +33 -0
- package/ts/core/utils/event-system.ts +376 -0
- package/ts/core/utils/index.ts +7 -0
- package/ts/core/utils/route-manager.ts +489 -0
- package/ts/core/utils/route-utils.ts +312 -0
- package/ts/core/utils/security-utils.ts +309 -0
- package/ts/core/utils/shared-security-manager.ts +333 -0
- package/ts/core/utils/template-utils.ts +124 -0
- package/ts/core/utils/websocket-utils.ts +81 -0
- package/ts/forwarding/config/forwarding-types.ts +79 -107
- package/ts/forwarding/config/index.ts +4 -2
- package/ts/forwarding/handlers/base-handler.ts +4 -2
- package/ts/forwarding/index.ts +3 -2
- package/ts/http/models/http-types.ts +0 -1
- package/ts/http/port80/acme-interfaces.ts +84 -0
- package/ts/http/port80/port80-handler.ts +61 -15
- package/ts/http/router/index.ts +8 -1
- package/ts/http/router/route-router.ts +482 -0
- package/ts/index.ts +14 -2
- package/ts/proxies/index.ts +12 -3
- package/ts/proxies/network-proxy/certificate-manager.ts +114 -10
- package/ts/proxies/network-proxy/context-creator.ts +145 -0
- package/ts/proxies/network-proxy/function-cache.ts +259 -0
- package/ts/proxies/network-proxy/http-request-handler.ts +330 -0
- package/ts/proxies/network-proxy/http2-request-handler.ts +255 -0
- package/ts/proxies/network-proxy/models/types.ts +312 -1
- package/ts/proxies/network-proxy/network-proxy.ts +195 -86
- package/ts/proxies/network-proxy/request-handler.ts +698 -246
- package/ts/proxies/network-proxy/security-manager.ts +298 -0
- package/ts/proxies/network-proxy/websocket-handler.ts +276 -33
- package/ts/proxies/smart-proxy/index.ts +2 -12
- package/ts/proxies/smart-proxy/models/interfaces.ts +13 -67
- package/ts/proxies/smart-proxy/models/route-types.ts +223 -25
- package/ts/proxies/smart-proxy/network-proxy-bridge.ts +57 -123
- package/ts/proxies/smart-proxy/port-manager.ts +195 -0
- package/ts/proxies/smart-proxy/route-connection-handler.ts +191 -225
- package/ts/proxies/smart-proxy/route-manager.ts +101 -144
- package/ts/proxies/smart-proxy/smart-proxy.ts +206 -377
- package/ts/proxies/smart-proxy/timeout-manager.ts +2 -2
- package/ts/proxies/smart-proxy/utils/index.ts +40 -0
- package/ts/proxies/smart-proxy/utils/route-helpers.ts +621 -0
- package/ts/proxies/smart-proxy/utils/route-migration-utils.ts +165 -0
- package/ts/proxies/smart-proxy/utils/route-patterns.ts +309 -0
- package/ts/proxies/smart-proxy/utils/route-utils.ts +330 -0
- package/ts/proxies/smart-proxy/utils/route-validators.ts +288 -0
- package/ts/forwarding/config/domain-config.ts +0 -28
- package/ts/forwarding/config/domain-manager.ts +0 -283
- package/ts/proxies/smart-proxy/connection-handler.ts +0 -1240
- package/ts/proxies/smart-proxy/domain-config-manager.ts +0 -441
- package/ts/proxies/smart-proxy/port-range-manager.ts +0 -211
- package/ts/proxies/smart-proxy/route-helpers.ts +0 -344
|
@@ -1,79 +1,11 @@
|
|
|
1
1
|
import type * as plugins from '../../plugins.js';
|
|
2
2
|
/**
|
|
3
|
+
* @deprecated The legacy forwarding types are being replaced by the route-based configuration system.
|
|
4
|
+
* See /ts/proxies/smart-proxy/models/route-types.ts for the new route-based configuration.
|
|
5
|
+
*
|
|
3
6
|
* The primary forwarding types supported by SmartProxy
|
|
4
7
|
*/
|
|
5
8
|
export type TForwardingType = 'http-only' | 'https-passthrough' | 'https-terminate-to-http' | 'https-terminate-to-https';
|
|
6
|
-
/**
|
|
7
|
-
* Target configuration for forwarding
|
|
8
|
-
*/
|
|
9
|
-
export interface ITargetConfig {
|
|
10
|
-
host: string | string[];
|
|
11
|
-
port: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* HTTP-specific options for forwarding
|
|
15
|
-
*/
|
|
16
|
-
export interface IHttpOptions {
|
|
17
|
-
enabled?: boolean;
|
|
18
|
-
redirectToHttps?: boolean;
|
|
19
|
-
headers?: Record<string, string>;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* HTTPS-specific options for forwarding
|
|
23
|
-
*/
|
|
24
|
-
export interface IHttpsOptions {
|
|
25
|
-
customCert?: {
|
|
26
|
-
key: string;
|
|
27
|
-
cert: string;
|
|
28
|
-
};
|
|
29
|
-
forwardSni?: boolean;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* ACME certificate handling options
|
|
33
|
-
*/
|
|
34
|
-
export interface IAcmeForwardingOptions {
|
|
35
|
-
enabled?: boolean;
|
|
36
|
-
maintenance?: boolean;
|
|
37
|
-
production?: boolean;
|
|
38
|
-
forwardChallenges?: {
|
|
39
|
-
host: string;
|
|
40
|
-
port: number;
|
|
41
|
-
useTls?: boolean;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Security options for forwarding
|
|
46
|
-
*/
|
|
47
|
-
export interface ISecurityOptions {
|
|
48
|
-
allowedIps?: string[];
|
|
49
|
-
blockedIps?: string[];
|
|
50
|
-
maxConnections?: number;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Advanced options for forwarding
|
|
54
|
-
*/
|
|
55
|
-
export interface IAdvancedOptions {
|
|
56
|
-
portRanges?: Array<{
|
|
57
|
-
from: number;
|
|
58
|
-
to: number;
|
|
59
|
-
}>;
|
|
60
|
-
networkProxyPort?: number;
|
|
61
|
-
keepAlive?: boolean;
|
|
62
|
-
timeout?: number;
|
|
63
|
-
headers?: Record<string, string>;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Unified forwarding configuration interface
|
|
67
|
-
*/
|
|
68
|
-
export interface IForwardConfig {
|
|
69
|
-
type: TForwardingType;
|
|
70
|
-
target: ITargetConfig;
|
|
71
|
-
http?: IHttpOptions;
|
|
72
|
-
https?: IHttpsOptions;
|
|
73
|
-
acme?: IAcmeForwardingOptions;
|
|
74
|
-
security?: ISecurityOptions;
|
|
75
|
-
advanced?: IAdvancedOptions;
|
|
76
|
-
}
|
|
77
9
|
/**
|
|
78
10
|
* Event types emitted by forwarding handlers
|
|
79
11
|
*/
|
|
@@ -95,10 +27,42 @@ export interface IForwardingHandler extends plugins.EventEmitter {
|
|
|
95
27
|
handleConnection(socket: plugins.net.Socket): void;
|
|
96
28
|
handleHttpRequest(req: plugins.http.IncomingMessage, res: plugins.http.ServerResponse): void;
|
|
97
29
|
}
|
|
30
|
+
import { createHttpRoute, createHttpsTerminateRoute, createHttpsPassthroughRoute, createHttpToHttpsRedirect, createCompleteHttpsServer, createLoadBalancerRoute } from '../../proxies/smart-proxy/utils/route-helpers.js';
|
|
31
|
+
export { createHttpRoute, createHttpsTerminateRoute, createHttpsPassthroughRoute, createHttpToHttpsRedirect, createCompleteHttpsServer, createLoadBalancerRoute };
|
|
32
|
+
export interface IForwardConfig {
|
|
33
|
+
type: TForwardingType;
|
|
34
|
+
target: {
|
|
35
|
+
host: string | string[];
|
|
36
|
+
port: number;
|
|
37
|
+
};
|
|
38
|
+
http?: any;
|
|
39
|
+
https?: any;
|
|
40
|
+
acme?: any;
|
|
41
|
+
security?: any;
|
|
42
|
+
advanced?: any;
|
|
43
|
+
[key: string]: any;
|
|
44
|
+
}
|
|
45
|
+
export interface IDeprecatedForwardConfig {
|
|
46
|
+
type: TForwardingType;
|
|
47
|
+
target: {
|
|
48
|
+
host: string | string[];
|
|
49
|
+
port: number;
|
|
50
|
+
};
|
|
51
|
+
[key: string]: any;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @deprecated Use createHttpRoute instead
|
|
55
|
+
*/
|
|
56
|
+
export declare const httpOnly: (partialConfig: Partial<IDeprecatedForwardConfig> & Pick<IDeprecatedForwardConfig, "target">) => IDeprecatedForwardConfig;
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated Use createHttpsTerminateRoute instead
|
|
59
|
+
*/
|
|
60
|
+
export declare const tlsTerminateToHttp: (partialConfig: Partial<IDeprecatedForwardConfig> & Pick<IDeprecatedForwardConfig, "target">) => IDeprecatedForwardConfig;
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Use createHttpsTerminateRoute with reencrypt option instead
|
|
63
|
+
*/
|
|
64
|
+
export declare const tlsTerminateToHttps: (partialConfig: Partial<IDeprecatedForwardConfig> & Pick<IDeprecatedForwardConfig, "target">) => IDeprecatedForwardConfig;
|
|
98
65
|
/**
|
|
99
|
-
*
|
|
66
|
+
* @deprecated Use createHttpsPassthroughRoute instead
|
|
100
67
|
*/
|
|
101
|
-
export declare const
|
|
102
|
-
export declare const tlsTerminateToHttp: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
103
|
-
export declare const tlsTerminateToHttps: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
104
|
-
export declare const httpsPassthrough: (partialConfig: Partial<IForwardConfig> & Pick<IForwardConfig, "target">) => IForwardConfig;
|
|
68
|
+
export declare const httpsPassthrough: (partialConfig: Partial<IDeprecatedForwardConfig> & Pick<IDeprecatedForwardConfig, "target">) => IDeprecatedForwardConfig;
|
|
@@ -12,39 +12,40 @@ export var ForwardingHandlerEvents;
|
|
|
12
12
|
ForwardingHandlerEvents["CERTIFICATE_NEEDED"] = "certificate-needed";
|
|
13
13
|
ForwardingHandlerEvents["CERTIFICATE_LOADED"] = "certificate-loaded";
|
|
14
14
|
})(ForwardingHandlerEvents || (ForwardingHandlerEvents = {}));
|
|
15
|
+
// Import and re-export the route-based helpers for seamless transition
|
|
16
|
+
import { createHttpRoute, createHttpsTerminateRoute, createHttpsPassthroughRoute, createHttpToHttpsRedirect, createCompleteHttpsServer, createLoadBalancerRoute } from '../../proxies/smart-proxy/utils/route-helpers.js';
|
|
17
|
+
export { createHttpRoute, createHttpsTerminateRoute, createHttpsPassthroughRoute, createHttpToHttpsRedirect, createCompleteHttpsServer, createLoadBalancerRoute };
|
|
18
|
+
import { domainConfigToRouteConfig } from '../../proxies/smart-proxy/utils/route-migration-utils.js';
|
|
15
19
|
/**
|
|
16
|
-
*
|
|
20
|
+
* @deprecated Use createHttpRoute instead
|
|
17
21
|
*/
|
|
18
22
|
export const httpOnly = (partialConfig) => ({
|
|
19
23
|
type: 'http-only',
|
|
20
24
|
target: partialConfig.target,
|
|
21
|
-
|
|
22
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
23
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
25
|
+
...(partialConfig)
|
|
24
26
|
});
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Use createHttpsTerminateRoute instead
|
|
29
|
+
*/
|
|
25
30
|
export const tlsTerminateToHttp = (partialConfig) => ({
|
|
26
31
|
type: 'https-terminate-to-http',
|
|
27
32
|
target: partialConfig.target,
|
|
28
|
-
|
|
29
|
-
acme: { enabled: true, maintenance: true, ...(partialConfig.acme || {}) },
|
|
30
|
-
http: { enabled: true, redirectToHttps: true, ...(partialConfig.http || {}) },
|
|
31
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
32
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
33
|
+
...(partialConfig)
|
|
33
34
|
});
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use createHttpsTerminateRoute with reencrypt option instead
|
|
37
|
+
*/
|
|
34
38
|
export const tlsTerminateToHttps = (partialConfig) => ({
|
|
35
39
|
type: 'https-terminate-to-https',
|
|
36
40
|
target: partialConfig.target,
|
|
37
|
-
|
|
38
|
-
acme: { enabled: true, maintenance: true, ...(partialConfig.acme || {}) },
|
|
39
|
-
http: { enabled: true, redirectToHttps: true, ...(partialConfig.http || {}) },
|
|
40
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
41
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
41
|
+
...(partialConfig)
|
|
42
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated Use createHttpsPassthroughRoute instead
|
|
45
|
+
*/
|
|
43
46
|
export const httpsPassthrough = (partialConfig) => ({
|
|
44
47
|
type: 'https-passthrough',
|
|
45
48
|
target: partialConfig.target,
|
|
46
|
-
|
|
47
|
-
...(partialConfig.security ? { security: partialConfig.security } : {}),
|
|
48
|
-
...(partialConfig.advanced ? { advanced: partialConfig.advanced } : {})
|
|
49
|
+
...(partialConfig)
|
|
49
50
|
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ZvcndhcmRpbmcvY29uZmlnL2ZvcndhcmRpbmctdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0E7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSx1QkFTWDtBQVRELFdBQVksdUJBQXVCO0lBQ2pDLGtEQUF1QixDQUFBO0lBQ3ZCLHdEQUE2QixDQUFBO0lBQzdCLDBDQUFlLENBQUE7SUFDZiw0REFBaUMsQ0FBQTtJQUNqQyx3REFBNkIsQ0FBQTtJQUM3QiwwREFBK0IsQ0FBQTtJQUMvQixvRUFBeUMsQ0FBQTtJQUN6QyxvRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBVFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVNsQztBQVdELHVFQUF1RTtBQUN2RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDeEIsTUFBTSxrREFBa0QsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDeEIsQ0FBQztBQVdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBMEJyRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUN0QixhQUEyRixFQUNqRSxFQUFFLENBQUMsQ0FBQztJQUM5QixJQUFJLEVBQUUsV0FBVztJQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFDNUIsR0FBRyxDQUFDLGFBQWEsQ0FBQztDQUNuQixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQ2hDLGFBQTJGLEVBQ2pFLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO0lBQzVCLEdBQUcsQ0FBQyxhQUFhLENBQUM7Q0FDbkIsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxhQUEyRixFQUNqRSxFQUFFLENBQUMsQ0FBQztJQUM5QixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTTtJQUM1QixHQUFHLENBQUMsYUFBYSxDQUFDO0NBQ25CLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsYUFBMkYsRUFDakUsRUFBRSxDQUFDLENBQUM7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFDNUIsR0FBRyxDQUFDLGFBQWEsQ0FBQztDQUNuQixDQUFDLENBQUMifQ==
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Forwarding configuration exports
|
|
3
|
+
*
|
|
4
|
+
* Note: The legacy domain-based configuration has been replaced by route-based configuration.
|
|
5
|
+
* See /ts/proxies/smart-proxy/models/route-types.ts for the new route-based configuration.
|
|
3
6
|
*/
|
|
4
7
|
export * from './forwarding-types.js';
|
|
5
|
-
export * from '
|
|
6
|
-
export * from './domain-manager.js';
|
|
8
|
+
export * from '../../proxies/smart-proxy/utils/route-helpers.js';
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Forwarding configuration exports
|
|
3
|
+
*
|
|
4
|
+
* Note: The legacy domain-based configuration has been replaced by route-based configuration.
|
|
5
|
+
* See /ts/proxies/smart-proxy/models/route-types.ts for the new route-based configuration.
|
|
3
6
|
*/
|
|
4
7
|
export * from './forwarding-types.js';
|
|
5
|
-
export * from '
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9mb3J3YXJkaW5nL2NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDIn0=
|
|
8
|
+
export * from '../../proxies/smart-proxy/utils/route-helpers.js';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9mb3J3YXJkaW5nL2NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrREFBa0QsQ0FBQyJ9
|
|
@@ -74,6 +74,8 @@ export class ForwardingHandler extends plugins.EventEmitter {
|
|
|
74
74
|
const result = { ...headers };
|
|
75
75
|
// Apply custom headers with variable substitution
|
|
76
76
|
for (const [key, value] of Object.entries(customHeaders)) {
|
|
77
|
+
if (typeof value !== 'string')
|
|
78
|
+
continue;
|
|
77
79
|
let processedValue = value;
|
|
78
80
|
// Replace variables in the header value
|
|
79
81
|
for (const [varName, varValue] of Object.entries(variables)) {
|
|
@@ -91,4 +93,4 @@ export class ForwardingHandler extends plugins.EventEmitter {
|
|
|
91
93
|
return this.config.advanced?.timeout || 60000; // Default: 60 seconds
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvZm9yd2FyZGluZy9oYW5kbGVycy9iYXNlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUs1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsaUJBQWtCLFNBQVEsT0FBTyxDQUFDLFlBQVk7SUFDbEU7OztPQUdHO0lBQ0gsWUFBc0IsTUFBc0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEWSxXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUU1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsaURBQWlEO0lBQ25ELENBQUM7SUFlRDs7O09BR0c7SUFDTyxtQkFBbUI7UUFDM0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFL0Isb0NBQW9DO1FBQ3BDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELCtCQUErQjtZQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25FLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7YUFDbEIsQ0FBQztRQUNKLENBQUM7UUFFRCxjQUFjO1FBQ2QsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sZUFBZSxDQUFDLEdBQWlDLEVBQUUsR0FBZ0M7UUFDM0YsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHLFdBQVcsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDO1FBRTdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLGVBQWUsRUFBRSxVQUFVO1NBQzVCLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUU7WUFDL0MsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFO1lBQ3BDLElBQUksRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sa0JBQWtCLENBQzFCLE9BQXNELEVBQ3RELFNBQWlDO1FBRWpDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBRTlCLGtEQUFrRDtRQUNsRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFBRSxTQUFTO1lBRXhDLElBQUksY0FBYyxHQUFHLEtBQUssQ0FBQztZQUUzQix3Q0FBd0M7WUFDeEMsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDNUQsY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUMvQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsc0JBQXNCO0lBQ3ZFLENBQUM7Q0FDRiJ9
|
|
@@ -3,17 +3,16 @@
|
|
|
3
3
|
* Provides a flexible and type-safe way to configure and manage various forwarding strategies
|
|
4
4
|
*/
|
|
5
5
|
export * from './config/forwarding-types.js';
|
|
6
|
-
export * from './config/domain-config.js';
|
|
7
|
-
export * from './config/domain-manager.js';
|
|
8
6
|
export { ForwardingHandler } from './handlers/base-handler.js';
|
|
9
7
|
export * from './handlers/http-handler.js';
|
|
10
8
|
export * from './handlers/https-passthrough-handler.js';
|
|
11
9
|
export * from './handlers/https-terminate-to-http-handler.js';
|
|
12
10
|
export * from './handlers/https-terminate-to-https-handler.js';
|
|
13
11
|
export * from './factory/forwarding-factory.js';
|
|
12
|
+
export * from '../proxies/smart-proxy/utils/route-helpers.js';
|
|
14
13
|
export declare const helpers: {
|
|
15
|
-
httpOnly: (partialConfig: Partial<import("./config/forwarding-types.js").
|
|
16
|
-
tlsTerminateToHttp: (partialConfig: Partial<import("./config/forwarding-types.js").
|
|
17
|
-
tlsTerminateToHttps: (partialConfig: Partial<import("./config/forwarding-types.js").
|
|
18
|
-
httpsPassthrough: (partialConfig: Partial<import("./config/forwarding-types.js").
|
|
14
|
+
httpOnly: (partialConfig: Partial<import("./config/forwarding-types.js").IDeprecatedForwardConfig> & Pick<import("./config/forwarding-types.js").IDeprecatedForwardConfig, "target">) => import("./config/forwarding-types.js").IDeprecatedForwardConfig;
|
|
15
|
+
tlsTerminateToHttp: (partialConfig: Partial<import("./config/forwarding-types.js").IDeprecatedForwardConfig> & Pick<import("./config/forwarding-types.js").IDeprecatedForwardConfig, "target">) => import("./config/forwarding-types.js").IDeprecatedForwardConfig;
|
|
16
|
+
tlsTerminateToHttps: (partialConfig: Partial<import("./config/forwarding-types.js").IDeprecatedForwardConfig> & Pick<import("./config/forwarding-types.js").IDeprecatedForwardConfig, "target">) => import("./config/forwarding-types.js").IDeprecatedForwardConfig;
|
|
17
|
+
httpsPassthrough: (partialConfig: Partial<import("./config/forwarding-types.js").IDeprecatedForwardConfig> & Pick<import("./config/forwarding-types.js").IDeprecatedForwardConfig, "target">) => import("./config/forwarding-types.js").IDeprecatedForwardConfig;
|
|
19
18
|
};
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
// Export types and configuration
|
|
6
6
|
export * from './config/forwarding-types.js';
|
|
7
|
-
export * from './config/domain-config.js';
|
|
8
|
-
export * from './config/domain-manager.js';
|
|
9
7
|
// Export handlers
|
|
10
8
|
export { ForwardingHandler } from './handlers/base-handler.js';
|
|
11
9
|
export * from './handlers/http-handler.js';
|
|
@@ -16,10 +14,12 @@ export * from './handlers/https-terminate-to-https-handler.js';
|
|
|
16
14
|
export * from './factory/forwarding-factory.js';
|
|
17
15
|
// Helper functions as a convenience object
|
|
18
16
|
import { httpOnly, tlsTerminateToHttp, tlsTerminateToHttps, httpsPassthrough } from './config/forwarding-types.js';
|
|
17
|
+
// Export route-based helpers from smart-proxy
|
|
18
|
+
export * from '../proxies/smart-proxy/utils/route-helpers.js';
|
|
19
19
|
export const helpers = {
|
|
20
20
|
httpOnly,
|
|
21
21
|
tlsTerminateToHttp,
|
|
22
22
|
tlsTerminateToHttps,
|
|
23
23
|
httpsPassthrough
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9mb3J3YXJkaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILGlDQUFpQztBQUNqQyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGtCQUFrQjtBQUNsQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGlCQUFpQjtBQUNqQixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELDJDQUEyQztBQUMzQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsOENBQThDO0FBQzlDLGNBQWMsK0NBQStDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtDQUNqQixDQUFDIn0=
|
|
@@ -59,4 +59,4 @@ export class ServerError extends HttpError {
|
|
|
59
59
|
// Backward compatibility interfaces
|
|
60
60
|
export { HttpError as Port80HandlerError };
|
|
61
61
|
export { CertificateError as CertError };
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2h0dHAvbW9kZWxzL2h0dHAtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQU01Qzs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsbURBQXFDLENBQUE7SUFDckMscURBQXVDLENBQUE7SUFDdkMsaURBQW1DLENBQUE7SUFDbkMsNkNBQStCLENBQUE7QUFDakMsQ0FBQyxFQUxXLFVBQVUsS0FBVixVQUFVLFFBS3JCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUFRLENBQUE7SUFDUix1RUFBdUIsQ0FBQTtJQUN2QiwrQ0FBVyxDQUFBO0lBQ1gseUVBQXdCLENBQUE7SUFDeEIseUVBQXdCLENBQUE7SUFDeEIsMkRBQWlCLENBQUE7SUFDakIsdURBQWUsQ0FBQTtJQUNmLHlFQUF3QixDQUFBO0lBQ3hCLCtFQUEyQixDQUFBO0lBQzNCLG1FQUFxQixDQUFBO0lBQ3JCLDJFQUF5QixDQUFBO0FBQzNCLENBQUMsRUFaVyxVQUFVLEtBQVYsVUFBVSxRQVlyQjtBQWVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0lBQ2xDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUFTO0lBQzdDLFlBQ0UsT0FBZSxFQUNDLE1BQWMsRUFDZCxZQUFxQixLQUFLO1FBRTFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sZUFBZSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIekQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBRzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFNBQVM7SUFDeEMsWUFBWSxPQUFlLEVBQWtCLElBQWE7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDRCLFNBQUksR0FBSixJQUFJLENBQVM7UUFFeEQsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBdUJELG9DQUFvQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxJQUFJLGtCQUFrQixFQUFFLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixJQUFJLFNBQVMsRUFBRSxDQUFDIn0=
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type definitions for SmartAcme interfaces used by ChallengeResponder
|
|
3
3
|
* These reflect the actual SmartAcme API based on the documentation
|
|
4
|
+
*
|
|
5
|
+
* Also includes route-based interfaces for Port80Handler to extract domains
|
|
6
|
+
* that need certificate management from route configurations.
|
|
4
7
|
*/
|
|
5
8
|
import * as plugins from '../../plugins.js';
|
|
9
|
+
import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
|
|
6
10
|
/**
|
|
7
11
|
* Structure for SmartAcme certificate result
|
|
8
12
|
*/
|
|
@@ -76,3 +80,29 @@ export interface ISmartAcme {
|
|
|
76
80
|
on?(event: string, listener: (data: any) => void): void;
|
|
77
81
|
eventEmitter?: plugins.EventEmitter;
|
|
78
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Port80Handler route options
|
|
85
|
+
*/
|
|
86
|
+
export interface IPort80RouteOptions {
|
|
87
|
+
domain: string;
|
|
88
|
+
sslRedirect: boolean;
|
|
89
|
+
acmeMaintenance: boolean;
|
|
90
|
+
forward?: {
|
|
91
|
+
ip: string;
|
|
92
|
+
port: number;
|
|
93
|
+
};
|
|
94
|
+
acmeForward?: {
|
|
95
|
+
ip: string;
|
|
96
|
+
port: number;
|
|
97
|
+
};
|
|
98
|
+
routeReference?: {
|
|
99
|
+
routeId?: string;
|
|
100
|
+
routeName?: string;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Extract domains that need certificate management from routes
|
|
105
|
+
* @param routes Route configurations to extract domains from
|
|
106
|
+
* @returns Array of Port80RouteOptions for each domain
|
|
107
|
+
*/
|
|
108
|
+
export declare function extractPort80RoutesFromRoutes(routes: IRouteConfig[]): IPort80RouteOptions[];
|
|
@@ -1,6 +1,51 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type definitions for SmartAcme interfaces used by ChallengeResponder
|
|
3
3
|
* These reflect the actual SmartAcme API based on the documentation
|
|
4
|
+
*
|
|
5
|
+
* Also includes route-based interfaces for Port80Handler to extract domains
|
|
6
|
+
* that need certificate management from route configurations.
|
|
4
7
|
*/
|
|
5
8
|
import * as plugins from '../../plugins.js';
|
|
6
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Extract domains that need certificate management from routes
|
|
11
|
+
* @param routes Route configurations to extract domains from
|
|
12
|
+
* @returns Array of Port80RouteOptions for each domain
|
|
13
|
+
*/
|
|
14
|
+
export function extractPort80RoutesFromRoutes(routes) {
|
|
15
|
+
const result = [];
|
|
16
|
+
for (const route of routes) {
|
|
17
|
+
// Skip routes that don't have domains or TLS configuration
|
|
18
|
+
if (!route.match.domains || !route.action.tls)
|
|
19
|
+
continue;
|
|
20
|
+
// Skip routes that don't terminate TLS
|
|
21
|
+
if (route.action.tls.mode !== 'terminate' && route.action.tls.mode !== 'terminate-and-reencrypt')
|
|
22
|
+
continue;
|
|
23
|
+
// Only routes with automatic certificates need ACME
|
|
24
|
+
if (route.action.tls.certificate !== 'auto')
|
|
25
|
+
continue;
|
|
26
|
+
// Get domains from route
|
|
27
|
+
const domains = Array.isArray(route.match.domains)
|
|
28
|
+
? route.match.domains
|
|
29
|
+
: [route.match.domains];
|
|
30
|
+
// Create Port80RouteOptions for each domain
|
|
31
|
+
for (const domain of domains) {
|
|
32
|
+
// Skip wildcards (we can't get certificates for them)
|
|
33
|
+
if (domain.includes('*'))
|
|
34
|
+
continue;
|
|
35
|
+
// Create Port80RouteOptions
|
|
36
|
+
const options = {
|
|
37
|
+
domain,
|
|
38
|
+
sslRedirect: true, // Default to true for HTTPS routes
|
|
39
|
+
acmeMaintenance: true, // Default to true for auto certificates
|
|
40
|
+
// Add route reference
|
|
41
|
+
routeReference: {
|
|
42
|
+
routeName: route.name
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// Add domain to result
|
|
46
|
+
result.push(options);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNtZS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaHR0cC9wb3J0ODAvYWNtZS1pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFtSDVDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsTUFBc0I7SUFDbEUsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztJQUV6QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7WUFBRSxTQUFTO1FBRXhELHVDQUF1QztRQUN2QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLHlCQUF5QjtZQUFFLFNBQVM7UUFFM0csb0RBQW9EO1FBQ3BELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLE1BQU07WUFBRSxTQUFTO1FBRXRELHlCQUF5QjtRQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDckIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQiw0Q0FBNEM7UUFDNUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixzREFBc0Q7WUFDdEQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxTQUFTO1lBRW5DLDRCQUE0QjtZQUM1QixNQUFNLE9BQU8sR0FBd0I7Z0JBQ25DLE1BQU07Z0JBQ04sV0FBVyxFQUFFLElBQUksRUFBRSxtQ0FBbUM7Z0JBQ3RELGVBQWUsRUFBRSxJQUFJLEVBQUUsd0NBQXdDO2dCQUUvRCxzQkFBc0I7Z0JBQ3RCLGNBQWMsRUFBRTtvQkFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ3RCO2FBQ0YsQ0FBQztZQUVGLHVCQUF1QjtZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import * as plugins from '../../plugins.js';
|
|
2
2
|
import { CertificateEvents } from '../../certificate/events/certificate-events.js';
|
|
3
|
-
import type { IDomainOptions,
|
|
3
|
+
import type { IDomainOptions, // Kept for backward compatibility
|
|
4
|
+
ICertificateData, IAcmeOptions } from '../../certificate/models/certificate-types.js';
|
|
4
5
|
import { HttpError, CertificateError, ServerError } from '../models/http-types.js';
|
|
6
|
+
import type { IPort80RouteOptions } from './acme-interfaces.js';
|
|
7
|
+
import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
|
|
5
8
|
export { HttpError as Port80HandlerError, CertificateError, ServerError };
|
|
6
9
|
export declare const Port80HandlerEvents: typeof CertificateEvents;
|
|
7
10
|
/**
|
|
@@ -34,7 +37,19 @@ export declare class Port80Handler extends plugins.EventEmitter {
|
|
|
34
37
|
* Adds a domain with configuration options
|
|
35
38
|
* @param options Domain configuration options
|
|
36
39
|
*/
|
|
37
|
-
addDomain(options: IDomainOptions): void;
|
|
40
|
+
addDomain(options: IDomainOptions | IPort80RouteOptions): void;
|
|
41
|
+
/**
|
|
42
|
+
* Add domains from route configurations
|
|
43
|
+
* @param routes Array of route configurations
|
|
44
|
+
*/
|
|
45
|
+
addDomainsFromRoutes(routes: IRouteConfig[]): void;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize options from either IDomainOptions or IPort80RouteOptions
|
|
48
|
+
* @param options Options to normalize
|
|
49
|
+
* @returns Normalized IDomainOptions
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
private normalizeOptions;
|
|
38
53
|
/**
|
|
39
54
|
* Removes a domain from management
|
|
40
55
|
* @param domain The domain to remove
|