@push.rocks/smartproxy 23.0.0 → 23.1.1

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.
Files changed (161) hide show
  1. package/changelog.md +17 -0
  2. package/dist_rust/{rustproxy → rustproxy_linux_amd64} +0 -0
  3. package/dist_rust/rustproxy_linux_arm64 +0 -0
  4. package/dist_ts/00_commitinfo_data.js +1 -1
  5. package/dist_ts/plugins.d.ts +2 -1
  6. package/dist_ts/plugins.js +3 -2
  7. package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.d.ts +9 -21
  8. package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.js +84 -212
  9. package/dist_ts/proxies/smart-proxy/smart-proxy.js +2 -3
  10. package/npmextra.json +3 -0
  11. package/package.json +13 -11
  12. package/readme.md +41 -11
  13. package/ts/00_commitinfo_data.ts +1 -1
  14. package/ts/plugins.ts +2 -0
  15. package/ts/proxies/smart-proxy/rust-proxy-bridge.ts +103 -233
  16. package/ts/proxies/smart-proxy/smart-proxy.ts +1 -2
  17. package/dist_ts/common/eventUtils.d.ts +0 -14
  18. package/dist_ts/common/eventUtils.js +0 -20
  19. package/dist_ts/common/types.d.ts +0 -82
  20. package/dist_ts/common/types.js +0 -15
  21. package/dist_ts/core/utils/event-system.d.ts +0 -200
  22. package/dist_ts/core/utils/event-system.js +0 -224
  23. package/dist_ts/core/utils/event-utils.d.ts +0 -15
  24. package/dist_ts/core/utils/event-utils.js +0 -11
  25. package/dist_ts/core/utils/route-manager.d.ts +0 -88
  26. package/dist_ts/core/utils/route-manager.js +0 -342
  27. package/dist_ts/core/utils/route-utils.d.ts +0 -28
  28. package/dist_ts/core/utils/route-utils.js +0 -67
  29. package/dist_ts/detection/detectors/http-detector-v2.d.ts +0 -33
  30. package/dist_ts/detection/detectors/http-detector-v2.js +0 -87
  31. package/dist_ts/detection/detectors/tls-detector-v2.d.ts +0 -33
  32. package/dist_ts/detection/detectors/tls-detector-v2.js +0 -80
  33. package/dist_ts/detection/protocol-detector-v2.d.ts +0 -46
  34. package/dist_ts/detection/protocol-detector-v2.js +0 -116
  35. package/dist_ts/forwarding/config/forwarding-types.d.ts +0 -42
  36. package/dist_ts/forwarding/config/forwarding-types.js +0 -18
  37. package/dist_ts/forwarding/config/index.d.ts +0 -9
  38. package/dist_ts/forwarding/config/index.js +0 -10
  39. package/dist_ts/forwarding/factory/forwarding-factory.d.ts +0 -25
  40. package/dist_ts/forwarding/factory/forwarding-factory.js +0 -172
  41. package/dist_ts/forwarding/factory/index.d.ts +0 -4
  42. package/dist_ts/forwarding/factory/index.js +0 -5
  43. package/dist_ts/forwarding/handlers/base-handler.d.ts +0 -62
  44. package/dist_ts/forwarding/handlers/base-handler.js +0 -121
  45. package/dist_ts/forwarding/handlers/http-handler.d.ts +0 -30
  46. package/dist_ts/forwarding/handlers/http-handler.js +0 -143
  47. package/dist_ts/forwarding/handlers/https-passthrough-handler.d.ts +0 -29
  48. package/dist_ts/forwarding/handlers/https-passthrough-handler.js +0 -156
  49. package/dist_ts/forwarding/handlers/https-terminate-to-http-handler.d.ts +0 -36
  50. package/dist_ts/forwarding/handlers/https-terminate-to-http-handler.js +0 -276
  51. package/dist_ts/forwarding/handlers/https-terminate-to-https-handler.d.ts +0 -35
  52. package/dist_ts/forwarding/handlers/https-terminate-to-https-handler.js +0 -261
  53. package/dist_ts/forwarding/handlers/index.d.ts +0 -8
  54. package/dist_ts/forwarding/handlers/index.js +0 -9
  55. package/dist_ts/forwarding/index.d.ts +0 -13
  56. package/dist_ts/forwarding/index.js +0 -16
  57. package/dist_ts/http/index.d.ts +0 -5
  58. package/dist_ts/http/index.js +0 -8
  59. package/dist_ts/http/models/http-types.d.ts +0 -6
  60. package/dist_ts/http/models/http-types.js +0 -7
  61. package/dist_ts/http/router/index.d.ts +0 -8
  62. package/dist_ts/http/router/index.js +0 -7
  63. package/dist_ts/http/router/proxy-router.d.ts +0 -115
  64. package/dist_ts/http/router/proxy-router.js +0 -325
  65. package/dist_ts/http/router/route-router.d.ts +0 -108
  66. package/dist_ts/http/router/route-router.js +0 -393
  67. package/dist_ts/protocols/tls/constants.d.ts +0 -122
  68. package/dist_ts/protocols/tls/constants.js +0 -135
  69. package/dist_ts/protocols/tls/parser.d.ts +0 -53
  70. package/dist_ts/protocols/tls/parser.js +0 -294
  71. package/dist_ts/protocols/tls/types.d.ts +0 -65
  72. package/dist_ts/protocols/tls/types.js +0 -5
  73. package/dist_ts/proxies/http-proxy/certificate-manager.d.ts +0 -95
  74. package/dist_ts/proxies/http-proxy/certificate-manager.js +0 -214
  75. package/dist_ts/proxies/http-proxy/connection-pool.d.ts +0 -47
  76. package/dist_ts/proxies/http-proxy/connection-pool.js +0 -195
  77. package/dist_ts/proxies/http-proxy/context-creator.d.ts +0 -34
  78. package/dist_ts/proxies/http-proxy/context-creator.js +0 -108
  79. package/dist_ts/proxies/http-proxy/default-certificates.d.ts +0 -54
  80. package/dist_ts/proxies/http-proxy/default-certificates.js +0 -127
  81. package/dist_ts/proxies/http-proxy/function-cache.d.ts +0 -95
  82. package/dist_ts/proxies/http-proxy/function-cache.js +0 -215
  83. package/dist_ts/proxies/http-proxy/handlers/index.d.ts +0 -4
  84. package/dist_ts/proxies/http-proxy/handlers/index.js +0 -6
  85. package/dist_ts/proxies/http-proxy/handlers/redirect-handler.d.ts +0 -18
  86. package/dist_ts/proxies/http-proxy/handlers/redirect-handler.js +0 -78
  87. package/dist_ts/proxies/http-proxy/handlers/static-handler.d.ts +0 -19
  88. package/dist_ts/proxies/http-proxy/handlers/static-handler.js +0 -211
  89. package/dist_ts/proxies/http-proxy/http-proxy.d.ts +0 -117
  90. package/dist_ts/proxies/http-proxy/http-proxy.js +0 -521
  91. package/dist_ts/proxies/http-proxy/http-request-handler.d.ts +0 -40
  92. package/dist_ts/proxies/http-proxy/http-request-handler.js +0 -257
  93. package/dist_ts/proxies/http-proxy/http2-request-handler.d.ts +0 -24
  94. package/dist_ts/proxies/http-proxy/http2-request-handler.js +0 -201
  95. package/dist_ts/proxies/http-proxy/index.d.ts +0 -14
  96. package/dist_ts/proxies/http-proxy/index.js +0 -16
  97. package/dist_ts/proxies/http-proxy/models/http-types.d.ts +0 -117
  98. package/dist_ts/proxies/http-proxy/models/http-types.js +0 -92
  99. package/dist_ts/proxies/http-proxy/models/index.d.ts +0 -5
  100. package/dist_ts/proxies/http-proxy/models/index.js +0 -6
  101. package/dist_ts/proxies/http-proxy/models/types.d.ts +0 -75
  102. package/dist_ts/proxies/http-proxy/models/types.js +0 -35
  103. package/dist_ts/proxies/http-proxy/request-handler.d.ts +0 -97
  104. package/dist_ts/proxies/http-proxy/request-handler.js +0 -737
  105. package/dist_ts/proxies/http-proxy/security-manager.d.ts +0 -98
  106. package/dist_ts/proxies/http-proxy/security-manager.js +0 -341
  107. package/dist_ts/proxies/http-proxy/websocket-handler.d.ts +0 -50
  108. package/dist_ts/proxies/http-proxy/websocket-handler.js +0 -505
  109. package/dist_ts/proxies/smart-proxy/acme-state-manager.d.ts +0 -42
  110. package/dist_ts/proxies/smart-proxy/acme-state-manager.js +0 -101
  111. package/dist_ts/proxies/smart-proxy/cert-store.d.ts +0 -10
  112. package/dist_ts/proxies/smart-proxy/cert-store.js +0 -72
  113. package/dist_ts/proxies/smart-proxy/certificate-manager.d.ts +0 -164
  114. package/dist_ts/proxies/smart-proxy/certificate-manager.js +0 -745
  115. package/dist_ts/proxies/smart-proxy/connection-manager.d.ts +0 -128
  116. package/dist_ts/proxies/smart-proxy/connection-manager.js +0 -689
  117. package/dist_ts/proxies/smart-proxy/http-proxy-bridge.d.ts +0 -43
  118. package/dist_ts/proxies/smart-proxy/http-proxy-bridge.js +0 -180
  119. package/dist_ts/proxies/smart-proxy/metrics-collector.d.ts +0 -98
  120. package/dist_ts/proxies/smart-proxy/metrics-collector.js +0 -355
  121. package/dist_ts/proxies/smart-proxy/nftables-manager.d.ts +0 -82
  122. package/dist_ts/proxies/smart-proxy/nftables-manager.js +0 -237
  123. package/dist_ts/proxies/smart-proxy/port-manager.d.ts +0 -117
  124. package/dist_ts/proxies/smart-proxy/port-manager.js +0 -318
  125. package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +0 -60
  126. package/dist_ts/proxies/smart-proxy/route-connection-handler.js +0 -1407
  127. package/dist_ts/proxies/smart-proxy/route-manager.d.ts +0 -112
  128. package/dist_ts/proxies/smart-proxy/route-manager.js +0 -453
  129. package/dist_ts/proxies/smart-proxy/route-orchestrator.d.ts +0 -56
  130. package/dist_ts/proxies/smart-proxy/route-orchestrator.js +0 -204
  131. package/dist_ts/proxies/smart-proxy/rust-binary-locator.d.ts +0 -23
  132. package/dist_ts/proxies/smart-proxy/rust-binary-locator.js +0 -104
  133. package/dist_ts/proxies/smart-proxy/security-manager.d.ts +0 -74
  134. package/dist_ts/proxies/smart-proxy/security-manager.js +0 -227
  135. package/dist_ts/proxies/smart-proxy/throughput-tracker.d.ts +0 -36
  136. package/dist_ts/proxies/smart-proxy/throughput-tracker.js +0 -115
  137. package/dist_ts/proxies/smart-proxy/timeout-manager.d.ts +0 -48
  138. package/dist_ts/proxies/smart-proxy/timeout-manager.js +0 -158
  139. package/dist_ts/proxies/smart-proxy/tls-manager.d.ts +0 -50
  140. package/dist_ts/proxies/smart-proxy/tls-manager.js +0 -110
  141. package/dist_ts/proxies/smart-proxy/utils/route-patterns.d.ts +0 -161
  142. package/dist_ts/proxies/smart-proxy/utils/route-patterns.js +0 -282
  143. package/dist_ts/proxies/smart-proxy/utils/route-validators.d.ts +0 -73
  144. package/dist_ts/proxies/smart-proxy/utils/route-validators.js +0 -259
  145. package/dist_ts/routing/router/proxy-router.d.ts +0 -115
  146. package/dist_ts/routing/router/proxy-router.js +0 -325
  147. package/dist_ts/routing/router/route-router.d.ts +0 -108
  148. package/dist_ts/routing/router/route-router.js +0 -393
  149. package/dist_ts/tls/alerts/index.d.ts +0 -4
  150. package/dist_ts/tls/alerts/index.js +0 -5
  151. package/dist_ts/tls/alerts/tls-alert.d.ts +0 -150
  152. package/dist_ts/tls/alerts/tls-alert.js +0 -226
  153. package/dist_ts/tls/sni/client-hello-parser.d.ts +0 -100
  154. package/dist_ts/tls/sni/client-hello-parser.js +0 -464
  155. package/dist_ts/tls/sni/sni-extraction.d.ts +0 -58
  156. package/dist_ts/tls/sni/sni-extraction.js +0 -275
  157. package/dist_ts/tls/utils/index.d.ts +0 -4
  158. package/dist_ts/tls/utils/index.js +0 -5
  159. package/dist_ts/tls/utils/tls-utils.d.ts +0 -49
  160. package/dist_ts/tls/utils/tls-utils.js +0 -75
  161. package/ts/proxies/smart-proxy/rust-binary-locator.ts +0 -112
@@ -1,82 +0,0 @@
1
- /**
2
- * Shared types for certificate management and domain options
3
- */
4
- /**
5
- * Domain forwarding configuration
6
- */
7
- export interface IForwardConfig {
8
- ip: string;
9
- port: number;
10
- }
11
- /**
12
- * Domain configuration options
13
- */
14
- export interface IDomainOptions {
15
- domainName: string;
16
- sslRedirect: boolean;
17
- acmeMaintenance: boolean;
18
- forward?: IForwardConfig;
19
- acmeForward?: IForwardConfig;
20
- }
21
- /**
22
- * Certificate data that can be emitted via events or set from outside
23
- */
24
- export interface ICertificateData {
25
- domain: string;
26
- certificate: string;
27
- privateKey: string;
28
- expiryDate: Date;
29
- }
30
- /**
31
- * Events emitted by the Port80Handler
32
- */
33
- export declare enum Port80HandlerEvents {
34
- CERTIFICATE_ISSUED = "certificate-issued",
35
- CERTIFICATE_RENEWED = "certificate-renewed",
36
- CERTIFICATE_FAILED = "certificate-failed",
37
- CERTIFICATE_EXPIRING = "certificate-expiring",
38
- MANAGER_STARTED = "manager-started",
39
- MANAGER_STOPPED = "manager-stopped",
40
- REQUEST_FORWARDED = "request-forwarded"
41
- }
42
- /**
43
- * Certificate failure payload type
44
- */
45
- export interface ICertificateFailure {
46
- domain: string;
47
- error: string;
48
- isRenewal: boolean;
49
- }
50
- /**
51
- * Certificate expiry payload type
52
- */
53
- export interface ICertificateExpiring {
54
- domain: string;
55
- expiryDate: Date;
56
- daysRemaining: number;
57
- }
58
- /**
59
- * Forwarding configuration for specific domains in ACME setup
60
- */
61
- export interface IDomainForwardConfig {
62
- domain: string;
63
- forwardConfig?: IForwardConfig;
64
- acmeForwardConfig?: IForwardConfig;
65
- sslRedirect?: boolean;
66
- }
67
- /**
68
- * Unified ACME configuration options used across proxies and handlers
69
- */
70
- export interface IAcmeOptions {
71
- accountEmail?: string;
72
- enabled?: boolean;
73
- port?: number;
74
- useProduction?: boolean;
75
- httpsRedirectPort?: number;
76
- renewThresholdDays?: number;
77
- renewCheckIntervalHours?: number;
78
- autoRenew?: boolean;
79
- certificateStore?: string;
80
- skipConfiguredCerts?: boolean;
81
- domainForwards?: IDomainForwardConfig[];
82
- }
@@ -1,15 +0,0 @@
1
- import * as plugins from '../plugins.js';
2
- /**
3
- * Events emitted by the Port80Handler
4
- */
5
- export var Port80HandlerEvents;
6
- (function (Port80HandlerEvents) {
7
- Port80HandlerEvents["CERTIFICATE_ISSUED"] = "certificate-issued";
8
- Port80HandlerEvents["CERTIFICATE_RENEWED"] = "certificate-renewed";
9
- Port80HandlerEvents["CERTIFICATE_FAILED"] = "certificate-failed";
10
- Port80HandlerEvents["CERTIFICATE_EXPIRING"] = "certificate-expiring";
11
- Port80HandlerEvents["MANAGER_STARTED"] = "manager-started";
12
- Port80HandlerEvents["MANAGER_STOPPED"] = "manager-stopped";
13
- Port80HandlerEvents["REQUEST_FORWARDED"] = "request-forwarded";
14
- })(Port80HandlerEvents || (Port80HandlerEvents = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jb21tb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFtQ3pDOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksbUJBUVg7QUFSRCxXQUFZLG1CQUFtQjtJQUM3QixnRUFBeUMsQ0FBQTtJQUN6QyxrRUFBMkMsQ0FBQTtJQUMzQyxnRUFBeUMsQ0FBQTtJQUN6QyxvRUFBNkMsQ0FBQTtJQUM3QywwREFBbUMsQ0FBQTtJQUNuQywwREFBbUMsQ0FBQTtJQUNuQyw4REFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBUlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQVE5QiJ9
@@ -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
- }