@push.rocks/smartproxy 22.6.0 → 23.1.0
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/changelog.md +18 -0
- package/dist_rust/{rustproxy → rustproxy_linux_amd64} +0 -0
- package/dist_rust/rustproxy_linux_arm64 +0 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/index.d.ts +0 -1
- package/dist_ts/index.js +1 -3
- package/dist_ts/plugins.d.ts +2 -1
- package/dist_ts/plugins.js +3 -2
- package/dist_ts/proxies/index.d.ts +0 -1
- package/dist_ts/proxies/index.js +1 -3
- package/dist_ts/proxies/smart-proxy/models/route-types.js +1 -1
- package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.d.ts +9 -21
- package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.js +83 -212
- package/dist_ts/proxies/smart-proxy/smart-proxy.js +2 -3
- package/npmextra.json +3 -0
- package/package.json +13 -11
- package/readme.md +35 -31
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +0 -3
- package/ts/plugins.ts +2 -0
- package/ts/proxies/index.ts +0 -3
- package/ts/proxies/smart-proxy/models/route-types.ts +0 -2
- package/ts/proxies/smart-proxy/rust-proxy-bridge.ts +102 -233
- package/ts/proxies/smart-proxy/smart-proxy.ts +1 -2
- package/dist_ts/common/eventUtils.d.ts +0 -14
- package/dist_ts/common/eventUtils.js +0 -20
- package/dist_ts/common/types.d.ts +0 -82
- package/dist_ts/common/types.js +0 -15
- package/dist_ts/core/utils/event-system.d.ts +0 -200
- package/dist_ts/core/utils/event-system.js +0 -224
- package/dist_ts/core/utils/event-utils.d.ts +0 -15
- package/dist_ts/core/utils/event-utils.js +0 -11
- package/dist_ts/core/utils/route-manager.d.ts +0 -88
- package/dist_ts/core/utils/route-manager.js +0 -342
- package/dist_ts/core/utils/route-utils.d.ts +0 -28
- package/dist_ts/core/utils/route-utils.js +0 -67
- package/dist_ts/detection/detectors/http-detector-v2.d.ts +0 -33
- package/dist_ts/detection/detectors/http-detector-v2.js +0 -87
- package/dist_ts/detection/detectors/tls-detector-v2.d.ts +0 -33
- package/dist_ts/detection/detectors/tls-detector-v2.js +0 -80
- package/dist_ts/detection/protocol-detector-v2.d.ts +0 -46
- package/dist_ts/detection/protocol-detector-v2.js +0 -116
- package/dist_ts/forwarding/config/forwarding-types.d.ts +0 -42
- package/dist_ts/forwarding/config/forwarding-types.js +0 -18
- package/dist_ts/forwarding/config/index.d.ts +0 -9
- package/dist_ts/forwarding/config/index.js +0 -10
- package/dist_ts/forwarding/factory/forwarding-factory.d.ts +0 -25
- package/dist_ts/forwarding/factory/forwarding-factory.js +0 -172
- package/dist_ts/forwarding/factory/index.d.ts +0 -4
- package/dist_ts/forwarding/factory/index.js +0 -5
- package/dist_ts/forwarding/handlers/base-handler.d.ts +0 -62
- package/dist_ts/forwarding/handlers/base-handler.js +0 -121
- package/dist_ts/forwarding/handlers/http-handler.d.ts +0 -30
- package/dist_ts/forwarding/handlers/http-handler.js +0 -143
- package/dist_ts/forwarding/handlers/https-passthrough-handler.d.ts +0 -29
- package/dist_ts/forwarding/handlers/https-passthrough-handler.js +0 -156
- package/dist_ts/forwarding/handlers/https-terminate-to-http-handler.d.ts +0 -36
- package/dist_ts/forwarding/handlers/https-terminate-to-http-handler.js +0 -276
- package/dist_ts/forwarding/handlers/https-terminate-to-https-handler.d.ts +0 -35
- package/dist_ts/forwarding/handlers/https-terminate-to-https-handler.js +0 -261
- package/dist_ts/forwarding/handlers/index.d.ts +0 -8
- package/dist_ts/forwarding/handlers/index.js +0 -9
- package/dist_ts/forwarding/index.d.ts +0 -13
- package/dist_ts/forwarding/index.js +0 -16
- package/dist_ts/http/index.d.ts +0 -5
- package/dist_ts/http/index.js +0 -8
- package/dist_ts/http/models/http-types.d.ts +0 -6
- package/dist_ts/http/models/http-types.js +0 -7
- package/dist_ts/http/router/index.d.ts +0 -8
- package/dist_ts/http/router/index.js +0 -7
- package/dist_ts/http/router/proxy-router.d.ts +0 -115
- package/dist_ts/http/router/proxy-router.js +0 -325
- package/dist_ts/http/router/route-router.d.ts +0 -108
- package/dist_ts/http/router/route-router.js +0 -393
- package/dist_ts/protocols/tls/constants.d.ts +0 -122
- package/dist_ts/protocols/tls/constants.js +0 -135
- package/dist_ts/protocols/tls/parser.d.ts +0 -53
- package/dist_ts/protocols/tls/parser.js +0 -294
- package/dist_ts/protocols/tls/types.d.ts +0 -65
- package/dist_ts/protocols/tls/types.js +0 -5
- package/dist_ts/proxies/http-proxy/certificate-manager.d.ts +0 -95
- package/dist_ts/proxies/http-proxy/certificate-manager.js +0 -214
- package/dist_ts/proxies/http-proxy/connection-pool.d.ts +0 -47
- package/dist_ts/proxies/http-proxy/connection-pool.js +0 -195
- package/dist_ts/proxies/http-proxy/context-creator.d.ts +0 -34
- package/dist_ts/proxies/http-proxy/context-creator.js +0 -108
- package/dist_ts/proxies/http-proxy/default-certificates.d.ts +0 -54
- package/dist_ts/proxies/http-proxy/default-certificates.js +0 -127
- package/dist_ts/proxies/http-proxy/function-cache.d.ts +0 -95
- package/dist_ts/proxies/http-proxy/function-cache.js +0 -215
- package/dist_ts/proxies/http-proxy/handlers/index.d.ts +0 -4
- package/dist_ts/proxies/http-proxy/handlers/index.js +0 -6
- package/dist_ts/proxies/http-proxy/handlers/redirect-handler.d.ts +0 -18
- package/dist_ts/proxies/http-proxy/handlers/redirect-handler.js +0 -78
- package/dist_ts/proxies/http-proxy/handlers/static-handler.d.ts +0 -19
- package/dist_ts/proxies/http-proxy/handlers/static-handler.js +0 -211
- package/dist_ts/proxies/http-proxy/http-proxy.d.ts +0 -117
- package/dist_ts/proxies/http-proxy/http-proxy.js +0 -521
- package/dist_ts/proxies/http-proxy/http-request-handler.d.ts +0 -40
- package/dist_ts/proxies/http-proxy/http-request-handler.js +0 -257
- package/dist_ts/proxies/http-proxy/http2-request-handler.d.ts +0 -24
- package/dist_ts/proxies/http-proxy/http2-request-handler.js +0 -201
- package/dist_ts/proxies/http-proxy/index.d.ts +0 -14
- package/dist_ts/proxies/http-proxy/index.js +0 -16
- package/dist_ts/proxies/http-proxy/models/http-types.d.ts +0 -117
- package/dist_ts/proxies/http-proxy/models/http-types.js +0 -92
- package/dist_ts/proxies/http-proxy/models/index.d.ts +0 -5
- package/dist_ts/proxies/http-proxy/models/index.js +0 -6
- package/dist_ts/proxies/http-proxy/models/types.d.ts +0 -75
- package/dist_ts/proxies/http-proxy/models/types.js +0 -35
- package/dist_ts/proxies/http-proxy/request-handler.d.ts +0 -97
- package/dist_ts/proxies/http-proxy/request-handler.js +0 -737
- package/dist_ts/proxies/http-proxy/security-manager.d.ts +0 -98
- package/dist_ts/proxies/http-proxy/security-manager.js +0 -341
- package/dist_ts/proxies/http-proxy/websocket-handler.d.ts +0 -50
- package/dist_ts/proxies/http-proxy/websocket-handler.js +0 -505
- package/dist_ts/proxies/nftables-proxy/index.d.ts +0 -6
- package/dist_ts/proxies/nftables-proxy/index.js +0 -7
- package/dist_ts/proxies/nftables-proxy/models/errors.d.ts +0 -15
- package/dist_ts/proxies/nftables-proxy/models/errors.js +0 -28
- package/dist_ts/proxies/nftables-proxy/models/index.d.ts +0 -5
- package/dist_ts/proxies/nftables-proxy/models/index.js +0 -6
- package/dist_ts/proxies/nftables-proxy/models/interfaces.d.ts +0 -75
- package/dist_ts/proxies/nftables-proxy/models/interfaces.js +0 -5
- package/dist_ts/proxies/nftables-proxy/nftables-proxy.d.ts +0 -124
- package/dist_ts/proxies/nftables-proxy/nftables-proxy.js +0 -1374
- package/dist_ts/proxies/nftables-proxy/utils/index.d.ts +0 -9
- package/dist_ts/proxies/nftables-proxy/utils/index.js +0 -12
- package/dist_ts/proxies/nftables-proxy/utils/nft-command-executor.d.ts +0 -66
- package/dist_ts/proxies/nftables-proxy/utils/nft-command-executor.js +0 -131
- package/dist_ts/proxies/nftables-proxy/utils/nft-port-spec-normalizer.d.ts +0 -39
- package/dist_ts/proxies/nftables-proxy/utils/nft-port-spec-normalizer.js +0 -112
- package/dist_ts/proxies/nftables-proxy/utils/nft-rule-validator.d.ts +0 -59
- package/dist_ts/proxies/nftables-proxy/utils/nft-rule-validator.js +0 -130
- package/dist_ts/proxies/smart-proxy/acme-state-manager.d.ts +0 -42
- package/dist_ts/proxies/smart-proxy/acme-state-manager.js +0 -101
- package/dist_ts/proxies/smart-proxy/cert-store.d.ts +0 -10
- package/dist_ts/proxies/smart-proxy/cert-store.js +0 -72
- package/dist_ts/proxies/smart-proxy/certificate-manager.d.ts +0 -164
- package/dist_ts/proxies/smart-proxy/certificate-manager.js +0 -745
- package/dist_ts/proxies/smart-proxy/connection-manager.d.ts +0 -128
- package/dist_ts/proxies/smart-proxy/connection-manager.js +0 -689
- package/dist_ts/proxies/smart-proxy/http-proxy-bridge.d.ts +0 -43
- package/dist_ts/proxies/smart-proxy/http-proxy-bridge.js +0 -180
- package/dist_ts/proxies/smart-proxy/metrics-collector.d.ts +0 -98
- package/dist_ts/proxies/smart-proxy/metrics-collector.js +0 -355
- package/dist_ts/proxies/smart-proxy/nftables-manager.d.ts +0 -82
- package/dist_ts/proxies/smart-proxy/nftables-manager.js +0 -237
- package/dist_ts/proxies/smart-proxy/port-manager.d.ts +0 -117
- package/dist_ts/proxies/smart-proxy/port-manager.js +0 -318
- package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +0 -60
- package/dist_ts/proxies/smart-proxy/route-connection-handler.js +0 -1407
- package/dist_ts/proxies/smart-proxy/route-manager.d.ts +0 -112
- package/dist_ts/proxies/smart-proxy/route-manager.js +0 -453
- package/dist_ts/proxies/smart-proxy/route-orchestrator.d.ts +0 -56
- package/dist_ts/proxies/smart-proxy/route-orchestrator.js +0 -204
- package/dist_ts/proxies/smart-proxy/rust-binary-locator.d.ts +0 -23
- package/dist_ts/proxies/smart-proxy/rust-binary-locator.js +0 -104
- package/dist_ts/proxies/smart-proxy/security-manager.d.ts +0 -74
- package/dist_ts/proxies/smart-proxy/security-manager.js +0 -227
- package/dist_ts/proxies/smart-proxy/throughput-tracker.d.ts +0 -36
- package/dist_ts/proxies/smart-proxy/throughput-tracker.js +0 -115
- package/dist_ts/proxies/smart-proxy/timeout-manager.d.ts +0 -48
- package/dist_ts/proxies/smart-proxy/timeout-manager.js +0 -158
- package/dist_ts/proxies/smart-proxy/tls-manager.d.ts +0 -50
- package/dist_ts/proxies/smart-proxy/tls-manager.js +0 -110
- package/dist_ts/proxies/smart-proxy/utils/route-patterns.d.ts +0 -161
- package/dist_ts/proxies/smart-proxy/utils/route-patterns.js +0 -282
- package/dist_ts/proxies/smart-proxy/utils/route-validators.d.ts +0 -73
- package/dist_ts/proxies/smart-proxy/utils/route-validators.js +0 -259
- package/dist_ts/routing/router/proxy-router.d.ts +0 -115
- package/dist_ts/routing/router/proxy-router.js +0 -325
- package/dist_ts/routing/router/route-router.d.ts +0 -108
- package/dist_ts/routing/router/route-router.js +0 -393
- package/dist_ts/tls/alerts/index.d.ts +0 -4
- package/dist_ts/tls/alerts/index.js +0 -5
- package/dist_ts/tls/alerts/tls-alert.d.ts +0 -150
- package/dist_ts/tls/alerts/tls-alert.js +0 -226
- package/dist_ts/tls/sni/client-hello-parser.d.ts +0 -100
- package/dist_ts/tls/sni/client-hello-parser.js +0 -464
- package/dist_ts/tls/sni/sni-extraction.d.ts +0 -58
- package/dist_ts/tls/sni/sni-extraction.js +0 -275
- package/dist_ts/tls/utils/index.d.ts +0 -4
- package/dist_ts/tls/utils/index.js +0 -5
- package/dist_ts/tls/utils/tls-utils.d.ts +0 -49
- package/dist_ts/tls/utils/tls-utils.js +0 -75
- package/ts/proxies/nftables-proxy/index.ts +0 -6
- package/ts/proxies/nftables-proxy/models/errors.ts +0 -30
- package/ts/proxies/nftables-proxy/models/index.ts +0 -5
- package/ts/proxies/nftables-proxy/models/interfaces.ts +0 -94
- package/ts/proxies/nftables-proxy/nftables-proxy.ts +0 -1754
- package/ts/proxies/nftables-proxy/utils/index.ts +0 -38
- package/ts/proxies/nftables-proxy/utils/nft-command-executor.ts +0 -162
- package/ts/proxies/nftables-proxy/utils/nft-port-spec-normalizer.ts +0 -125
- package/ts/proxies/nftables-proxy/utils/nft-rule-validator.ts +0 -156
- package/ts/proxies/smart-proxy/rust-binary-locator.ts +0 -112
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import type { ICertificateData, ICertificateFailure, ICertificateExpiring } from '../models/common-types.js';
|
|
2
|
-
import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Standardized event names used throughout the system
|
|
5
|
-
*/
|
|
6
|
-
export declare enum ProxyEvents {
|
|
7
|
-
CERTIFICATE_ISSUED = "certificate:issued",
|
|
8
|
-
CERTIFICATE_RENEWED = "certificate:renewed",
|
|
9
|
-
CERTIFICATE_FAILED = "certificate:failed",
|
|
10
|
-
CERTIFICATE_EXPIRING = "certificate:expiring",
|
|
11
|
-
COMPONENT_STARTED = "component:started",
|
|
12
|
-
COMPONENT_STOPPED = "component:stopped",
|
|
13
|
-
CONNECTION_ESTABLISHED = "connection:established",
|
|
14
|
-
CONNECTION_CLOSED = "connection:closed",
|
|
15
|
-
CONNECTION_ERROR = "connection:error",
|
|
16
|
-
REQUEST_RECEIVED = "request:received",
|
|
17
|
-
REQUEST_COMPLETED = "request:completed",
|
|
18
|
-
REQUEST_ERROR = "request:error",
|
|
19
|
-
ROUTE_MATCHED = "route:matched",
|
|
20
|
-
ROUTE_UPDATED = "route:updated",
|
|
21
|
-
ROUTE_ERROR = "route:error",
|
|
22
|
-
SECURITY_BLOCKED = "security:blocked",
|
|
23
|
-
SECURITY_BREACH_ATTEMPT = "security:breach-attempt",
|
|
24
|
-
TLS_HANDSHAKE_STARTED = "tls:handshake-started",
|
|
25
|
-
TLS_HANDSHAKE_COMPLETED = "tls:handshake-completed",
|
|
26
|
-
TLS_HANDSHAKE_FAILED = "tls:handshake-failed"
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Component types for event metadata
|
|
30
|
-
*/
|
|
31
|
-
export declare enum ComponentType {
|
|
32
|
-
SMART_PROXY = "smart-proxy",
|
|
33
|
-
NETWORK_PROXY = "network-proxy",
|
|
34
|
-
NFTABLES_PROXY = "nftables-proxy",
|
|
35
|
-
PORT80_HANDLER = "port80-handler",
|
|
36
|
-
CERTIFICATE_MANAGER = "certificate-manager",
|
|
37
|
-
ROUTE_MANAGER = "route-manager",
|
|
38
|
-
CONNECTION_MANAGER = "connection-manager",
|
|
39
|
-
TLS_MANAGER = "tls-manager",
|
|
40
|
-
SECURITY_MANAGER = "security-manager"
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Base event data interface
|
|
44
|
-
*/
|
|
45
|
-
export interface IEventData {
|
|
46
|
-
timestamp: number;
|
|
47
|
-
componentType: ComponentType;
|
|
48
|
-
componentId?: string;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Certificate event data
|
|
52
|
-
*/
|
|
53
|
-
export interface ICertificateEventData extends IEventData, ICertificateData {
|
|
54
|
-
isRenewal?: boolean;
|
|
55
|
-
source?: string;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Certificate failure event data
|
|
59
|
-
*/
|
|
60
|
-
export interface ICertificateFailureEventData extends IEventData, ICertificateFailure {
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Certificate expiring event data
|
|
64
|
-
*/
|
|
65
|
-
export interface ICertificateExpiringEventData extends IEventData, ICertificateExpiring {
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Component lifecycle event data
|
|
69
|
-
*/
|
|
70
|
-
export interface IComponentEventData extends IEventData {
|
|
71
|
-
name: string;
|
|
72
|
-
version?: string;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Connection event data
|
|
76
|
-
*/
|
|
77
|
-
export interface IConnectionEventData extends IEventData {
|
|
78
|
-
connectionId: string;
|
|
79
|
-
clientIp: string;
|
|
80
|
-
serverIp?: string;
|
|
81
|
-
port: number;
|
|
82
|
-
isTls?: boolean;
|
|
83
|
-
domain?: string;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Request event data
|
|
87
|
-
*/
|
|
88
|
-
export interface IRequestEventData extends IEventData {
|
|
89
|
-
connectionId: string;
|
|
90
|
-
requestId: string;
|
|
91
|
-
method?: string;
|
|
92
|
-
path?: string;
|
|
93
|
-
statusCode?: number;
|
|
94
|
-
duration?: number;
|
|
95
|
-
routeId?: string;
|
|
96
|
-
routeName?: string;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Route event data
|
|
100
|
-
*/
|
|
101
|
-
export interface IRouteEventData extends IEventData {
|
|
102
|
-
route: IRouteConfig;
|
|
103
|
-
context?: any;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Security event data
|
|
107
|
-
*/
|
|
108
|
-
export interface ISecurityEventData extends IEventData {
|
|
109
|
-
clientIp: string;
|
|
110
|
-
reason: string;
|
|
111
|
-
routeId?: string;
|
|
112
|
-
routeName?: string;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* TLS event data
|
|
116
|
-
*/
|
|
117
|
-
export interface ITlsEventData extends IEventData {
|
|
118
|
-
connectionId: string;
|
|
119
|
-
domain?: string;
|
|
120
|
-
clientIp: string;
|
|
121
|
-
tlsVersion?: string;
|
|
122
|
-
cipherSuite?: string;
|
|
123
|
-
sniHostname?: string;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Logger interface for event system
|
|
127
|
-
*/
|
|
128
|
-
export interface IEventLogger {
|
|
129
|
-
info: (message: string, ...args: any[]) => void;
|
|
130
|
-
warn: (message: string, ...args: any[]) => void;
|
|
131
|
-
error: (message: string, ...args: any[]) => void;
|
|
132
|
-
debug?: (message: string, ...args: any[]) => void;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Event handler type
|
|
136
|
-
*/
|
|
137
|
-
export type EventHandler<T> = (data: T) => void;
|
|
138
|
-
/**
|
|
139
|
-
* Helper class to standardize event emission and handling
|
|
140
|
-
* across all system components
|
|
141
|
-
*/
|
|
142
|
-
export declare class EventSystem {
|
|
143
|
-
private emitter;
|
|
144
|
-
private componentType;
|
|
145
|
-
private componentId;
|
|
146
|
-
private logger?;
|
|
147
|
-
constructor(componentType: ComponentType, componentId?: string, logger?: IEventLogger);
|
|
148
|
-
/**
|
|
149
|
-
* Emit a certificate issued event
|
|
150
|
-
*/
|
|
151
|
-
emitCertificateIssued(data: Omit<ICertificateEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
152
|
-
/**
|
|
153
|
-
* Emit a certificate renewed event
|
|
154
|
-
*/
|
|
155
|
-
emitCertificateRenewed(data: Omit<ICertificateEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
156
|
-
/**
|
|
157
|
-
* Emit a certificate failed event
|
|
158
|
-
*/
|
|
159
|
-
emitCertificateFailed(data: Omit<ICertificateFailureEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
160
|
-
/**
|
|
161
|
-
* Emit a certificate expiring event
|
|
162
|
-
*/
|
|
163
|
-
emitCertificateExpiring(data: Omit<ICertificateExpiringEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
164
|
-
/**
|
|
165
|
-
* Emit a component started event
|
|
166
|
-
*/
|
|
167
|
-
emitComponentStarted(name: string, version?: string): void;
|
|
168
|
-
/**
|
|
169
|
-
* Emit a component stopped event
|
|
170
|
-
*/
|
|
171
|
-
emitComponentStopped(name: string): void;
|
|
172
|
-
/**
|
|
173
|
-
* Emit a connection established event
|
|
174
|
-
*/
|
|
175
|
-
emitConnectionEstablished(data: Omit<IConnectionEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
176
|
-
/**
|
|
177
|
-
* Emit a connection closed event
|
|
178
|
-
*/
|
|
179
|
-
emitConnectionClosed(data: Omit<IConnectionEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
180
|
-
/**
|
|
181
|
-
* Emit a route matched event
|
|
182
|
-
*/
|
|
183
|
-
emitRouteMatched(data: Omit<IRouteEventData, 'timestamp' | 'componentType' | 'componentId'>): void;
|
|
184
|
-
/**
|
|
185
|
-
* Subscribe to an event
|
|
186
|
-
*/
|
|
187
|
-
on<T>(event: ProxyEvents, handler: EventHandler<T>): void;
|
|
188
|
-
/**
|
|
189
|
-
* Subscribe to an event once
|
|
190
|
-
*/
|
|
191
|
-
once<T>(event: ProxyEvents, handler: EventHandler<T>): void;
|
|
192
|
-
/**
|
|
193
|
-
* Unsubscribe from an event
|
|
194
|
-
*/
|
|
195
|
-
off<T>(event: ProxyEvents, handler: EventHandler<T>): void;
|
|
196
|
-
/**
|
|
197
|
-
* Map Port80Handler events to standard proxy events
|
|
198
|
-
*/
|
|
199
|
-
subscribePort80HandlerEvents(handler: any): void;
|
|
200
|
-
}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import { Port80HandlerEvents } from '../models/common-types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Standardized event names used throughout the system
|
|
5
|
-
*/
|
|
6
|
-
export var ProxyEvents;
|
|
7
|
-
(function (ProxyEvents) {
|
|
8
|
-
// Certificate events
|
|
9
|
-
ProxyEvents["CERTIFICATE_ISSUED"] = "certificate:issued";
|
|
10
|
-
ProxyEvents["CERTIFICATE_RENEWED"] = "certificate:renewed";
|
|
11
|
-
ProxyEvents["CERTIFICATE_FAILED"] = "certificate:failed";
|
|
12
|
-
ProxyEvents["CERTIFICATE_EXPIRING"] = "certificate:expiring";
|
|
13
|
-
// Component lifecycle events
|
|
14
|
-
ProxyEvents["COMPONENT_STARTED"] = "component:started";
|
|
15
|
-
ProxyEvents["COMPONENT_STOPPED"] = "component:stopped";
|
|
16
|
-
// Connection events
|
|
17
|
-
ProxyEvents["CONNECTION_ESTABLISHED"] = "connection:established";
|
|
18
|
-
ProxyEvents["CONNECTION_CLOSED"] = "connection:closed";
|
|
19
|
-
ProxyEvents["CONNECTION_ERROR"] = "connection:error";
|
|
20
|
-
// Request events
|
|
21
|
-
ProxyEvents["REQUEST_RECEIVED"] = "request:received";
|
|
22
|
-
ProxyEvents["REQUEST_COMPLETED"] = "request:completed";
|
|
23
|
-
ProxyEvents["REQUEST_ERROR"] = "request:error";
|
|
24
|
-
// Route events
|
|
25
|
-
ProxyEvents["ROUTE_MATCHED"] = "route:matched";
|
|
26
|
-
ProxyEvents["ROUTE_UPDATED"] = "route:updated";
|
|
27
|
-
ProxyEvents["ROUTE_ERROR"] = "route:error";
|
|
28
|
-
// Security events
|
|
29
|
-
ProxyEvents["SECURITY_BLOCKED"] = "security:blocked";
|
|
30
|
-
ProxyEvents["SECURITY_BREACH_ATTEMPT"] = "security:breach-attempt";
|
|
31
|
-
// TLS events
|
|
32
|
-
ProxyEvents["TLS_HANDSHAKE_STARTED"] = "tls:handshake-started";
|
|
33
|
-
ProxyEvents["TLS_HANDSHAKE_COMPLETED"] = "tls:handshake-completed";
|
|
34
|
-
ProxyEvents["TLS_HANDSHAKE_FAILED"] = "tls:handshake-failed";
|
|
35
|
-
})(ProxyEvents || (ProxyEvents = {}));
|
|
36
|
-
/**
|
|
37
|
-
* Component types for event metadata
|
|
38
|
-
*/
|
|
39
|
-
export var ComponentType;
|
|
40
|
-
(function (ComponentType) {
|
|
41
|
-
ComponentType["SMART_PROXY"] = "smart-proxy";
|
|
42
|
-
ComponentType["NETWORK_PROXY"] = "network-proxy";
|
|
43
|
-
ComponentType["NFTABLES_PROXY"] = "nftables-proxy";
|
|
44
|
-
ComponentType["PORT80_HANDLER"] = "port80-handler";
|
|
45
|
-
ComponentType["CERTIFICATE_MANAGER"] = "certificate-manager";
|
|
46
|
-
ComponentType["ROUTE_MANAGER"] = "route-manager";
|
|
47
|
-
ComponentType["CONNECTION_MANAGER"] = "connection-manager";
|
|
48
|
-
ComponentType["TLS_MANAGER"] = "tls-manager";
|
|
49
|
-
ComponentType["SECURITY_MANAGER"] = "security-manager";
|
|
50
|
-
})(ComponentType || (ComponentType = {}));
|
|
51
|
-
/**
|
|
52
|
-
* Helper class to standardize event emission and handling
|
|
53
|
-
* across all system components
|
|
54
|
-
*/
|
|
55
|
-
export class EventSystem {
|
|
56
|
-
constructor(componentType, componentId = '', logger) {
|
|
57
|
-
this.emitter = new plugins.EventEmitter();
|
|
58
|
-
this.componentType = componentType;
|
|
59
|
-
this.componentId = componentId;
|
|
60
|
-
this.logger = logger;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Emit a certificate issued event
|
|
64
|
-
*/
|
|
65
|
-
emitCertificateIssued(data) {
|
|
66
|
-
const eventData = {
|
|
67
|
-
...data,
|
|
68
|
-
timestamp: Date.now(),
|
|
69
|
-
componentType: this.componentType,
|
|
70
|
-
componentId: this.componentId
|
|
71
|
-
};
|
|
72
|
-
this.logger?.info?.(`Certificate issued for ${data.domain}`);
|
|
73
|
-
this.emitter.emit(ProxyEvents.CERTIFICATE_ISSUED, eventData);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Emit a certificate renewed event
|
|
77
|
-
*/
|
|
78
|
-
emitCertificateRenewed(data) {
|
|
79
|
-
const eventData = {
|
|
80
|
-
...data,
|
|
81
|
-
timestamp: Date.now(),
|
|
82
|
-
componentType: this.componentType,
|
|
83
|
-
componentId: this.componentId
|
|
84
|
-
};
|
|
85
|
-
this.logger?.info?.(`Certificate renewed for ${data.domain}`);
|
|
86
|
-
this.emitter.emit(ProxyEvents.CERTIFICATE_RENEWED, eventData);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Emit a certificate failed event
|
|
90
|
-
*/
|
|
91
|
-
emitCertificateFailed(data) {
|
|
92
|
-
const eventData = {
|
|
93
|
-
...data,
|
|
94
|
-
timestamp: Date.now(),
|
|
95
|
-
componentType: this.componentType,
|
|
96
|
-
componentId: this.componentId
|
|
97
|
-
};
|
|
98
|
-
this.logger?.error?.(`Certificate issuance failed for ${data.domain}: ${data.error}`);
|
|
99
|
-
this.emitter.emit(ProxyEvents.CERTIFICATE_FAILED, eventData);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Emit a certificate expiring event
|
|
103
|
-
*/
|
|
104
|
-
emitCertificateExpiring(data) {
|
|
105
|
-
const eventData = {
|
|
106
|
-
...data,
|
|
107
|
-
timestamp: Date.now(),
|
|
108
|
-
componentType: this.componentType,
|
|
109
|
-
componentId: this.componentId
|
|
110
|
-
};
|
|
111
|
-
this.logger?.warn?.(`Certificate expiring for ${data.domain} in ${data.daysRemaining} days`);
|
|
112
|
-
this.emitter.emit(ProxyEvents.CERTIFICATE_EXPIRING, eventData);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Emit a component started event
|
|
116
|
-
*/
|
|
117
|
-
emitComponentStarted(name, version) {
|
|
118
|
-
const eventData = {
|
|
119
|
-
name,
|
|
120
|
-
version,
|
|
121
|
-
timestamp: Date.now(),
|
|
122
|
-
componentType: this.componentType,
|
|
123
|
-
componentId: this.componentId
|
|
124
|
-
};
|
|
125
|
-
this.logger?.info?.(`Component ${name} started${version ? ` (v${version})` : ''}`);
|
|
126
|
-
this.emitter.emit(ProxyEvents.COMPONENT_STARTED, eventData);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Emit a component stopped event
|
|
130
|
-
*/
|
|
131
|
-
emitComponentStopped(name) {
|
|
132
|
-
const eventData = {
|
|
133
|
-
name,
|
|
134
|
-
timestamp: Date.now(),
|
|
135
|
-
componentType: this.componentType,
|
|
136
|
-
componentId: this.componentId
|
|
137
|
-
};
|
|
138
|
-
this.logger?.info?.(`Component ${name} stopped`);
|
|
139
|
-
this.emitter.emit(ProxyEvents.COMPONENT_STOPPED, eventData);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Emit a connection established event
|
|
143
|
-
*/
|
|
144
|
-
emitConnectionEstablished(data) {
|
|
145
|
-
const eventData = {
|
|
146
|
-
...data,
|
|
147
|
-
timestamp: Date.now(),
|
|
148
|
-
componentType: this.componentType,
|
|
149
|
-
componentId: this.componentId
|
|
150
|
-
};
|
|
151
|
-
this.logger?.debug?.(`Connection ${data.connectionId} established from ${data.clientIp} on port ${data.port}`);
|
|
152
|
-
this.emitter.emit(ProxyEvents.CONNECTION_ESTABLISHED, eventData);
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Emit a connection closed event
|
|
156
|
-
*/
|
|
157
|
-
emitConnectionClosed(data) {
|
|
158
|
-
const eventData = {
|
|
159
|
-
...data,
|
|
160
|
-
timestamp: Date.now(),
|
|
161
|
-
componentType: this.componentType,
|
|
162
|
-
componentId: this.componentId
|
|
163
|
-
};
|
|
164
|
-
this.logger?.debug?.(`Connection ${data.connectionId} closed`);
|
|
165
|
-
this.emitter.emit(ProxyEvents.CONNECTION_CLOSED, eventData);
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Emit a route matched event
|
|
169
|
-
*/
|
|
170
|
-
emitRouteMatched(data) {
|
|
171
|
-
const eventData = {
|
|
172
|
-
...data,
|
|
173
|
-
timestamp: Date.now(),
|
|
174
|
-
componentType: this.componentType,
|
|
175
|
-
componentId: this.componentId
|
|
176
|
-
};
|
|
177
|
-
this.logger?.debug?.(`Route matched: ${data.route.name || data.route.id || 'unnamed'}`);
|
|
178
|
-
this.emitter.emit(ProxyEvents.ROUTE_MATCHED, eventData);
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Subscribe to an event
|
|
182
|
-
*/
|
|
183
|
-
on(event, handler) {
|
|
184
|
-
this.emitter.on(event, handler);
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Subscribe to an event once
|
|
188
|
-
*/
|
|
189
|
-
once(event, handler) {
|
|
190
|
-
this.emitter.once(event, handler);
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Unsubscribe from an event
|
|
194
|
-
*/
|
|
195
|
-
off(event, handler) {
|
|
196
|
-
this.emitter.off(event, handler);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Map Port80Handler events to standard proxy events
|
|
200
|
-
*/
|
|
201
|
-
subscribePort80HandlerEvents(handler) {
|
|
202
|
-
handler.on(Port80HandlerEvents.CERTIFICATE_ISSUED, (data) => {
|
|
203
|
-
this.emitCertificateIssued({
|
|
204
|
-
...data,
|
|
205
|
-
isRenewal: false,
|
|
206
|
-
source: 'port80handler'
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
handler.on(Port80HandlerEvents.CERTIFICATE_RENEWED, (data) => {
|
|
210
|
-
this.emitCertificateRenewed({
|
|
211
|
-
...data,
|
|
212
|
-
isRenewal: true,
|
|
213
|
-
source: 'port80handler'
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
handler.on(Port80HandlerEvents.CERTIFICATE_FAILED, (data) => {
|
|
217
|
-
this.emitCertificateFailed(data);
|
|
218
|
-
});
|
|
219
|
-
handler.on(Port80HandlerEvents.CERTIFICATE_EXPIRING, (data) => {
|
|
220
|
-
this.emitCertificateExpiring(data);
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvY29yZS91dGlscy9ldmVudC1zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQU81QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBa0NYO0FBbENELFdBQVksV0FBVztJQUNyQixxQkFBcUI7SUFDckIsd0RBQXlDLENBQUE7SUFDekMsMERBQTJDLENBQUE7SUFDM0Msd0RBQXlDLENBQUE7SUFDekMsNERBQTZDLENBQUE7SUFFN0MsNkJBQTZCO0lBQzdCLHNEQUF1QyxDQUFBO0lBQ3ZDLHNEQUF1QyxDQUFBO0lBRXZDLG9CQUFvQjtJQUNwQixnRUFBaUQsQ0FBQTtJQUNqRCxzREFBdUMsQ0FBQTtJQUN2QyxvREFBcUMsQ0FBQTtJQUVyQyxpQkFBaUI7SUFDakIsb0RBQXFDLENBQUE7SUFDckMsc0RBQXVDLENBQUE7SUFDdkMsOENBQStCLENBQUE7SUFFL0IsZUFBZTtJQUNmLDhDQUErQixDQUFBO0lBQy9CLDhDQUErQixDQUFBO0lBQy9CLDBDQUEyQixDQUFBO0lBRTNCLGtCQUFrQjtJQUNsQixvREFBcUMsQ0FBQTtJQUNyQyxrRUFBbUQsQ0FBQTtJQUVuRCxhQUFhO0lBQ2IsOERBQStDLENBQUE7SUFDL0Msa0VBQW1ELENBQUE7SUFDbkQsNERBQTZDLENBQUE7QUFDL0MsQ0FBQyxFQWxDVyxXQUFXLEtBQVgsV0FBVyxRQWtDdEI7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGFBVVg7QUFWRCxXQUFZLGFBQWE7SUFDdkIsNENBQTJCLENBQUE7SUFDM0IsZ0RBQStCLENBQUE7SUFDL0Isa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsNERBQTJDLENBQUE7SUFDM0MsZ0RB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
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Port80HandlerEvents } from '../models/common-types.js';
|
|
2
|
-
export { Port80HandlerEvents };
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated Use SmartCertManager instead
|
|
5
|
-
*/
|
|
6
|
-
export interface IPort80HandlerSubscribers {
|
|
7
|
-
onCertificateIssued?: (data: any) => void;
|
|
8
|
-
onCertificateRenewed?: (data: any) => void;
|
|
9
|
-
onCertificateFailed?: (data: any) => void;
|
|
10
|
-
onCertificateExpiring?: (data: any) => void;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated Use SmartCertManager instead
|
|
14
|
-
*/
|
|
15
|
-
export declare function subscribeToPort80Handler(handler: any, subscribers: IPort80HandlerSubscribers): void;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// Port80Handler has been removed - use SmartCertManager instead
|
|
2
|
-
import { Port80HandlerEvents } from '../models/common-types.js';
|
|
3
|
-
// Re-export for backward compatibility
|
|
4
|
-
export { Port80HandlerEvents };
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated Use SmartCertManager instead
|
|
7
|
-
*/
|
|
8
|
-
export function subscribeToPort80Handler(handler, subscribers) {
|
|
9
|
-
console.warn('subscribeToPort80Handler is deprecated - use SmartCertManager instead');
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9jb3JlL3V0aWxzL2V2ZW50LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSx1Q0FBdUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFZL0I7O0dBRUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE9BQVksRUFDWixXQUFzQztJQUV0QyxPQUFPLENBQUMsSUFBSSxDQUFDLHVFQUF1RSxDQUFDLENBQUM7QUFDeEYsQ0FBQyJ9
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import type { IRouteConfig, TPortRange, IRouteContext } from '../../proxies/smart-proxy/models/route-types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Result of route matching
|
|
5
|
-
*/
|
|
6
|
-
export interface IRouteMatchResult {
|
|
7
|
-
route: IRouteConfig;
|
|
8
|
-
params?: Record<string, string>;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Logger interface for RouteManager
|
|
12
|
-
*/
|
|
13
|
-
export interface ILogger {
|
|
14
|
-
info: (message: string, ...args: any[]) => void;
|
|
15
|
-
warn: (message: string, ...args: any[]) => void;
|
|
16
|
-
error: (message: string, ...args: any[]) => void;
|
|
17
|
-
debug?: (message: string, ...args: any[]) => void;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Shared RouteManager used by both SmartProxy and NetworkProxy
|
|
21
|
-
*
|
|
22
|
-
* This provides a unified implementation for route management,
|
|
23
|
-
* route matching, and port handling.
|
|
24
|
-
*/
|
|
25
|
-
export declare class SharedRouteManager extends plugins.EventEmitter {
|
|
26
|
-
private routes;
|
|
27
|
-
private portMap;
|
|
28
|
-
private logger;
|
|
29
|
-
private enableDetailedLogging;
|
|
30
|
-
/**
|
|
31
|
-
* Memoization cache for expanded port ranges
|
|
32
|
-
*/
|
|
33
|
-
private portRangeCache;
|
|
34
|
-
constructor(options: {
|
|
35
|
-
logger?: ILogger;
|
|
36
|
-
enableDetailedLogging?: boolean;
|
|
37
|
-
routes?: IRouteConfig[];
|
|
38
|
-
});
|
|
39
|
-
/**
|
|
40
|
-
* Update routes with new configuration
|
|
41
|
-
*/
|
|
42
|
-
updateRoutes(routes?: IRouteConfig[]): void;
|
|
43
|
-
/**
|
|
44
|
-
* Get all routes
|
|
45
|
-
*/
|
|
46
|
-
getRoutes(): IRouteConfig[];
|
|
47
|
-
/**
|
|
48
|
-
* Rebuild the port mapping for fast lookups
|
|
49
|
-
* Also logs information about the ports being listened on
|
|
50
|
-
*/
|
|
51
|
-
private rebuildPortMap;
|
|
52
|
-
/**
|
|
53
|
-
* Expand a port range specification into an array of individual ports
|
|
54
|
-
* Uses caching to improve performance for frequently used port ranges
|
|
55
|
-
*
|
|
56
|
-
* @public - Made public to allow external code to interpret port ranges
|
|
57
|
-
*/
|
|
58
|
-
expandPortRange(portRange: TPortRange): number[];
|
|
59
|
-
/**
|
|
60
|
-
* Get all ports that should be listened on
|
|
61
|
-
* This method automatically infers all required ports from route configurations
|
|
62
|
-
*/
|
|
63
|
-
getListeningPorts(): number[];
|
|
64
|
-
/**
|
|
65
|
-
* Get all routes for a given port
|
|
66
|
-
*/
|
|
67
|
-
getRoutesForPort(port: number): IRouteConfig[];
|
|
68
|
-
/**
|
|
69
|
-
* Find the matching route for a connection
|
|
70
|
-
*/
|
|
71
|
-
findMatchingRoute(context: IRouteContext): IRouteMatchResult | null;
|
|
72
|
-
/**
|
|
73
|
-
* Check if a route matches the given context
|
|
74
|
-
*/
|
|
75
|
-
private matchesRoute;
|
|
76
|
-
/**
|
|
77
|
-
* Validate the route configuration and return any warnings
|
|
78
|
-
*/
|
|
79
|
-
validateConfiguration(): string[];
|
|
80
|
-
/**
|
|
81
|
-
* Check if two route matches are similar (potential conflict)
|
|
82
|
-
*/
|
|
83
|
-
private areMatchesSimilar;
|
|
84
|
-
/**
|
|
85
|
-
* Check if a route is completely shadowed by a higher priority route
|
|
86
|
-
*/
|
|
87
|
-
private isRouteShadowed;
|
|
88
|
-
}
|