@push.rocks/smartproxy 25.17.10 → 26.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.
Files changed (184) hide show
  1. package/changelog.md +15 -0
  2. package/dist_rust/rustproxy_linux_amd64 +0 -0
  3. package/dist_rust/rustproxy_linux_arm64 +0 -0
  4. package/dist_ts/00_commitinfo_data.js +2 -2
  5. package/dist_ts/core/index.d.ts +0 -1
  6. package/dist_ts/core/index.js +1 -2
  7. package/dist_ts/core/models/index.d.ts +0 -1
  8. package/dist_ts/core/models/index.js +1 -2
  9. package/dist_ts/core/utils/index.d.ts +0 -12
  10. package/dist_ts/core/utils/index.js +1 -13
  11. package/dist_ts/index.d.ts +0 -3
  12. package/dist_ts/index.js +2 -7
  13. package/dist_ts/protocols/http/index.d.ts +0 -1
  14. package/dist_ts/protocols/http/index.js +1 -2
  15. package/dist_ts/protocols/index.d.ts +0 -7
  16. package/dist_ts/protocols/index.js +1 -8
  17. package/dist_ts/proxies/smart-proxy/models/metrics-types.d.ts +20 -0
  18. package/dist_ts/proxies/smart-proxy/rust-metrics-adapter.d.ts +2 -1
  19. package/dist_ts/proxies/smart-proxy/rust-metrics-adapter.js +4 -1
  20. package/dist_ts/proxies/smart-proxy/socket-handler-server.js +6 -1
  21. package/dist_ts/proxies/smart-proxy/utils/route-helpers/socket-handlers.d.ts +0 -7
  22. package/dist_ts/proxies/smart-proxy/utils/route-helpers/socket-handlers.js +50 -51
  23. package/dist_ts/routing/index.d.ts +0 -1
  24. package/dist_ts/routing/index.js +1 -3
  25. package/package.json +1 -1
  26. package/ts/00_commitinfo_data.ts +1 -1
  27. package/ts/core/index.ts +0 -1
  28. package/ts/core/models/index.ts +0 -1
  29. package/ts/core/utils/index.ts +0 -12
  30. package/ts/index.ts +1 -7
  31. package/ts/protocols/http/index.ts +1 -2
  32. package/ts/protocols/index.ts +0 -7
  33. package/ts/proxies/smart-proxy/models/metrics-types.ts +21 -0
  34. package/ts/proxies/smart-proxy/rust-metrics-adapter.ts +4 -1
  35. package/ts/proxies/smart-proxy/socket-handler-server.ts +6 -0
  36. package/ts/proxies/smart-proxy/utils/route-helpers/socket-handlers.ts +60 -59
  37. package/ts/routing/index.ts +0 -3
  38. package/dist_ts/core/events/index.d.ts +0 -4
  39. package/dist_ts/core/events/index.js +0 -5
  40. package/dist_ts/core/models/socket-augmentation.d.ts +0 -15
  41. package/dist_ts/core/models/socket-augmentation.js +0 -18
  42. package/dist_ts/core/utils/async-utils.d.ts +0 -81
  43. package/dist_ts/core/utils/async-utils.js +0 -216
  44. package/dist_ts/core/utils/binary-heap.d.ts +0 -73
  45. package/dist_ts/core/utils/binary-heap.js +0 -193
  46. package/dist_ts/core/utils/enhanced-connection-pool.d.ts +0 -110
  47. package/dist_ts/core/utils/enhanced-connection-pool.js +0 -325
  48. package/dist_ts/core/utils/fs-utils.d.ts +0 -144
  49. package/dist_ts/core/utils/fs-utils.js +0 -252
  50. package/dist_ts/core/utils/ip-utils.d.ts +0 -69
  51. package/dist_ts/core/utils/ip-utils.js +0 -270
  52. package/dist_ts/core/utils/lifecycle-component.d.ts +0 -59
  53. package/dist_ts/core/utils/lifecycle-component.js +0 -211
  54. package/dist_ts/core/utils/log-deduplicator.d.ts +0 -39
  55. package/dist_ts/core/utils/log-deduplicator.js +0 -305
  56. package/dist_ts/core/utils/security-utils.d.ts +0 -111
  57. package/dist_ts/core/utils/security-utils.js +0 -212
  58. package/dist_ts/core/utils/shared-security-manager.d.ts +0 -128
  59. package/dist_ts/core/utils/shared-security-manager.js +0 -362
  60. package/dist_ts/core/utils/socket-utils.d.ts +0 -63
  61. package/dist_ts/core/utils/socket-utils.js +0 -249
  62. package/dist_ts/core/utils/template-utils.d.ts +0 -37
  63. package/dist_ts/core/utils/template-utils.js +0 -104
  64. package/dist_ts/core/utils/validation-utils.d.ts +0 -61
  65. package/dist_ts/core/utils/validation-utils.js +0 -149
  66. package/dist_ts/core/utils/websocket-utils.d.ts +0 -22
  67. package/dist_ts/core/utils/websocket-utils.js +0 -30
  68. package/dist_ts/detection/detectors/http-detector.d.ts +0 -33
  69. package/dist_ts/detection/detectors/http-detector.js +0 -101
  70. package/dist_ts/detection/detectors/quick-detector.d.ts +0 -28
  71. package/dist_ts/detection/detectors/quick-detector.js +0 -131
  72. package/dist_ts/detection/detectors/routing-extractor.d.ts +0 -28
  73. package/dist_ts/detection/detectors/routing-extractor.js +0 -122
  74. package/dist_ts/detection/detectors/tls-detector.d.ts +0 -47
  75. package/dist_ts/detection/detectors/tls-detector.js +0 -183
  76. package/dist_ts/detection/index.d.ts +0 -17
  77. package/dist_ts/detection/index.js +0 -22
  78. package/dist_ts/detection/models/detection-types.d.ts +0 -87
  79. package/dist_ts/detection/models/detection-types.js +0 -5
  80. package/dist_ts/detection/models/interfaces.d.ts +0 -97
  81. package/dist_ts/detection/models/interfaces.js +0 -5
  82. package/dist_ts/detection/protocol-detector.d.ts +0 -79
  83. package/dist_ts/detection/protocol-detector.js +0 -253
  84. package/dist_ts/detection/utils/buffer-utils.d.ts +0 -61
  85. package/dist_ts/detection/utils/buffer-utils.js +0 -127
  86. package/dist_ts/detection/utils/fragment-manager.d.ts +0 -31
  87. package/dist_ts/detection/utils/fragment-manager.js +0 -53
  88. package/dist_ts/detection/utils/parser-utils.d.ts +0 -42
  89. package/dist_ts/detection/utils/parser-utils.js +0 -63
  90. package/dist_ts/protocols/common/fragment-handler.d.ts +0 -73
  91. package/dist_ts/protocols/common/fragment-handler.js +0 -121
  92. package/dist_ts/protocols/common/index.d.ts +0 -7
  93. package/dist_ts/protocols/common/index.js +0 -8
  94. package/dist_ts/protocols/common/types.d.ts +0 -68
  95. package/dist_ts/protocols/common/types.js +0 -7
  96. package/dist_ts/protocols/http/parser.d.ts +0 -58
  97. package/dist_ts/protocols/http/parser.js +0 -184
  98. package/dist_ts/protocols/proxy/index.d.ts +0 -5
  99. package/dist_ts/protocols/proxy/index.js +0 -6
  100. package/dist_ts/protocols/proxy/types.d.ts +0 -47
  101. package/dist_ts/protocols/proxy/types.js +0 -6
  102. package/dist_ts/protocols/tls/alerts/index.d.ts +0 -4
  103. package/dist_ts/protocols/tls/alerts/index.js +0 -5
  104. package/dist_ts/protocols/tls/alerts/tls-alert.d.ts +0 -150
  105. package/dist_ts/protocols/tls/alerts/tls-alert.js +0 -226
  106. package/dist_ts/protocols/tls/index.d.ts +0 -12
  107. package/dist_ts/protocols/tls/index.js +0 -27
  108. package/dist_ts/protocols/tls/sni/client-hello-parser.d.ts +0 -100
  109. package/dist_ts/protocols/tls/sni/client-hello-parser.js +0 -463
  110. package/dist_ts/protocols/tls/sni/index.d.ts +0 -5
  111. package/dist_ts/protocols/tls/sni/index.js +0 -6
  112. package/dist_ts/protocols/tls/sni/sni-extraction.d.ts +0 -58
  113. package/dist_ts/protocols/tls/sni/sni-extraction.js +0 -275
  114. package/dist_ts/protocols/tls/utils/index.d.ts +0 -4
  115. package/dist_ts/protocols/tls/utils/index.js +0 -5
  116. package/dist_ts/protocols/tls/utils/tls-utils.d.ts +0 -158
  117. package/dist_ts/protocols/tls/utils/tls-utils.js +0 -187
  118. package/dist_ts/protocols/websocket/constants.d.ts +0 -55
  119. package/dist_ts/protocols/websocket/constants.js +0 -58
  120. package/dist_ts/protocols/websocket/index.d.ts +0 -7
  121. package/dist_ts/protocols/websocket/index.js +0 -8
  122. package/dist_ts/protocols/websocket/types.d.ts +0 -47
  123. package/dist_ts/protocols/websocket/types.js +0 -5
  124. package/dist_ts/protocols/websocket/utils.d.ts +0 -25
  125. package/dist_ts/protocols/websocket/utils.js +0 -103
  126. package/dist_ts/routing/router/http-router.d.ts +0 -89
  127. package/dist_ts/routing/router/http-router.js +0 -205
  128. package/dist_ts/routing/router/index.d.ts +0 -5
  129. package/dist_ts/routing/router/index.js +0 -6
  130. package/dist_ts/tls/index.d.ts +0 -16
  131. package/dist_ts/tls/index.js +0 -24
  132. package/dist_ts/tls/sni/index.d.ts +0 -4
  133. package/dist_ts/tls/sni/index.js +0 -5
  134. package/dist_ts/tls/sni/sni-handler.d.ts +0 -154
  135. package/dist_ts/tls/sni/sni-handler.js +0 -191
  136. package/ts/core/events/index.ts +0 -3
  137. package/ts/core/models/socket-augmentation.ts +0 -38
  138. package/ts/core/utils/async-utils.ts +0 -275
  139. package/ts/core/utils/binary-heap.ts +0 -225
  140. package/ts/core/utils/enhanced-connection-pool.ts +0 -425
  141. package/ts/core/utils/fs-utils.ts +0 -270
  142. package/ts/core/utils/ip-utils.ts +0 -303
  143. package/ts/core/utils/lifecycle-component.ts +0 -251
  144. package/ts/core/utils/log-deduplicator.ts +0 -370
  145. package/ts/core/utils/security-utils.ts +0 -305
  146. package/ts/core/utils/shared-security-manager.ts +0 -470
  147. package/ts/core/utils/socket-utils.ts +0 -322
  148. package/ts/core/utils/template-utils.ts +0 -124
  149. package/ts/core/utils/validation-utils.ts +0 -177
  150. package/ts/core/utils/websocket-utils.ts +0 -33
  151. package/ts/detection/detectors/http-detector.ts +0 -127
  152. package/ts/detection/detectors/quick-detector.ts +0 -148
  153. package/ts/detection/detectors/routing-extractor.ts +0 -147
  154. package/ts/detection/detectors/tls-detector.ts +0 -223
  155. package/ts/detection/index.ts +0 -25
  156. package/ts/detection/models/detection-types.ts +0 -102
  157. package/ts/detection/models/interfaces.ts +0 -115
  158. package/ts/detection/protocol-detector.ts +0 -319
  159. package/ts/detection/utils/buffer-utils.ts +0 -141
  160. package/ts/detection/utils/fragment-manager.ts +0 -64
  161. package/ts/detection/utils/parser-utils.ts +0 -77
  162. package/ts/protocols/common/fragment-handler.ts +0 -167
  163. package/ts/protocols/common/index.ts +0 -8
  164. package/ts/protocols/common/types.ts +0 -76
  165. package/ts/protocols/http/parser.ts +0 -219
  166. package/ts/protocols/proxy/index.ts +0 -6
  167. package/ts/protocols/proxy/types.ts +0 -53
  168. package/ts/protocols/tls/alerts/index.ts +0 -3
  169. package/ts/protocols/tls/alerts/tls-alert.ts +0 -259
  170. package/ts/protocols/tls/index.ts +0 -37
  171. package/ts/protocols/tls/sni/client-hello-parser.ts +0 -629
  172. package/ts/protocols/tls/sni/index.ts +0 -6
  173. package/ts/protocols/tls/sni/sni-extraction.ts +0 -353
  174. package/ts/protocols/tls/utils/index.ts +0 -3
  175. package/ts/protocols/tls/utils/tls-utils.ts +0 -201
  176. package/ts/protocols/websocket/constants.ts +0 -60
  177. package/ts/protocols/websocket/index.ts +0 -8
  178. package/ts/protocols/websocket/types.ts +0 -53
  179. package/ts/protocols/websocket/utils.ts +0 -98
  180. package/ts/routing/router/http-router.ts +0 -266
  181. package/ts/routing/router/index.ts +0 -7
  182. package/ts/tls/index.ts +0 -29
  183. package/ts/tls/sni/index.ts +0 -3
  184. package/ts/tls/sni/sni-handler.ts +0 -264
@@ -1,55 +0,0 @@
1
- /**
2
- * WebSocket Protocol Constants
3
- * Based on RFC 6455
4
- */
5
- /**
6
- * WebSocket opcode types
7
- */
8
- export declare enum WebSocketOpcode {
9
- CONTINUATION = 0,
10
- TEXT = 1,
11
- BINARY = 2,
12
- CLOSE = 8,
13
- PING = 9,
14
- PONG = 10
15
- }
16
- /**
17
- * WebSocket close codes
18
- */
19
- export declare enum WebSocketCloseCode {
20
- NORMAL_CLOSURE = 1000,
21
- GOING_AWAY = 1001,
22
- PROTOCOL_ERROR = 1002,
23
- UNSUPPORTED_DATA = 1003,
24
- NO_STATUS_RECEIVED = 1005,
25
- ABNORMAL_CLOSURE = 1006,
26
- INVALID_FRAME_PAYLOAD_DATA = 1007,
27
- POLICY_VIOLATION = 1008,
28
- MESSAGE_TOO_BIG = 1009,
29
- MISSING_EXTENSION = 1010,
30
- INTERNAL_ERROR = 1011,
31
- SERVICE_RESTART = 1012,
32
- TRY_AGAIN_LATER = 1013,
33
- BAD_GATEWAY = 1014,
34
- TLS_HANDSHAKE = 1015
35
- }
36
- /**
37
- * WebSocket protocol version
38
- */
39
- export declare const WEBSOCKET_VERSION = 13;
40
- /**
41
- * WebSocket magic string for handshake
42
- */
43
- export declare const WEBSOCKET_MAGIC_STRING = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
44
- /**
45
- * WebSocket headers
46
- */
47
- export declare const WEBSOCKET_HEADERS: {
48
- readonly UPGRADE: "upgrade";
49
- readonly CONNECTION: "connection";
50
- readonly SEC_WEBSOCKET_KEY: "sec-websocket-key";
51
- readonly SEC_WEBSOCKET_VERSION: "sec-websocket-version";
52
- readonly SEC_WEBSOCKET_ACCEPT: "sec-websocket-accept";
53
- readonly SEC_WEBSOCKET_PROTOCOL: "sec-websocket-protocol";
54
- readonly SEC_WEBSOCKET_EXTENSIONS: "sec-websocket-extensions";
55
- };
@@ -1,58 +0,0 @@
1
- /**
2
- * WebSocket Protocol Constants
3
- * Based on RFC 6455
4
- */
5
- /**
6
- * WebSocket opcode types
7
- */
8
- export var WebSocketOpcode;
9
- (function (WebSocketOpcode) {
10
- WebSocketOpcode[WebSocketOpcode["CONTINUATION"] = 0] = "CONTINUATION";
11
- WebSocketOpcode[WebSocketOpcode["TEXT"] = 1] = "TEXT";
12
- WebSocketOpcode[WebSocketOpcode["BINARY"] = 2] = "BINARY";
13
- WebSocketOpcode[WebSocketOpcode["CLOSE"] = 8] = "CLOSE";
14
- WebSocketOpcode[WebSocketOpcode["PING"] = 9] = "PING";
15
- WebSocketOpcode[WebSocketOpcode["PONG"] = 10] = "PONG";
16
- })(WebSocketOpcode || (WebSocketOpcode = {}));
17
- /**
18
- * WebSocket close codes
19
- */
20
- export var WebSocketCloseCode;
21
- (function (WebSocketCloseCode) {
22
- WebSocketCloseCode[WebSocketCloseCode["NORMAL_CLOSURE"] = 1000] = "NORMAL_CLOSURE";
23
- WebSocketCloseCode[WebSocketCloseCode["GOING_AWAY"] = 1001] = "GOING_AWAY";
24
- WebSocketCloseCode[WebSocketCloseCode["PROTOCOL_ERROR"] = 1002] = "PROTOCOL_ERROR";
25
- WebSocketCloseCode[WebSocketCloseCode["UNSUPPORTED_DATA"] = 1003] = "UNSUPPORTED_DATA";
26
- WebSocketCloseCode[WebSocketCloseCode["NO_STATUS_RECEIVED"] = 1005] = "NO_STATUS_RECEIVED";
27
- WebSocketCloseCode[WebSocketCloseCode["ABNORMAL_CLOSURE"] = 1006] = "ABNORMAL_CLOSURE";
28
- WebSocketCloseCode[WebSocketCloseCode["INVALID_FRAME_PAYLOAD_DATA"] = 1007] = "INVALID_FRAME_PAYLOAD_DATA";
29
- WebSocketCloseCode[WebSocketCloseCode["POLICY_VIOLATION"] = 1008] = "POLICY_VIOLATION";
30
- WebSocketCloseCode[WebSocketCloseCode["MESSAGE_TOO_BIG"] = 1009] = "MESSAGE_TOO_BIG";
31
- WebSocketCloseCode[WebSocketCloseCode["MISSING_EXTENSION"] = 1010] = "MISSING_EXTENSION";
32
- WebSocketCloseCode[WebSocketCloseCode["INTERNAL_ERROR"] = 1011] = "INTERNAL_ERROR";
33
- WebSocketCloseCode[WebSocketCloseCode["SERVICE_RESTART"] = 1012] = "SERVICE_RESTART";
34
- WebSocketCloseCode[WebSocketCloseCode["TRY_AGAIN_LATER"] = 1013] = "TRY_AGAIN_LATER";
35
- WebSocketCloseCode[WebSocketCloseCode["BAD_GATEWAY"] = 1014] = "BAD_GATEWAY";
36
- WebSocketCloseCode[WebSocketCloseCode["TLS_HANDSHAKE"] = 1015] = "TLS_HANDSHAKE";
37
- })(WebSocketCloseCode || (WebSocketCloseCode = {}));
38
- /**
39
- * WebSocket protocol version
40
- */
41
- export const WEBSOCKET_VERSION = 13;
42
- /**
43
- * WebSocket magic string for handshake
44
- */
45
- export const WEBSOCKET_MAGIC_STRING = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
46
- /**
47
- * WebSocket headers
48
- */
49
- export const WEBSOCKET_HEADERS = {
50
- UPGRADE: 'upgrade',
51
- CONNECTION: 'connection',
52
- SEC_WEBSOCKET_KEY: 'sec-websocket-key',
53
- SEC_WEBSOCKET_VERSION: 'sec-websocket-version',
54
- SEC_WEBSOCKET_ACCEPT: 'sec-websocket-accept',
55
- SEC_WEBSOCKET_PROTOCOL: 'sec-websocket-protocol',
56
- SEC_WEBSOCKET_EXTENSIONS: 'sec-websocket-extensions',
57
- };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvcHJvdG9jb2xzL3dlYnNvY2tldC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxlQU9YO0FBUEQsV0FBWSxlQUFlO0lBQ3pCLHFFQUFrQixDQUFBO0lBQ2xCLHFEQUFVLENBQUE7SUFDVix5REFBWSxDQUFBO0lBQ1osdURBQVcsQ0FBQTtJQUNYLHFEQUFVLENBQUE7SUFDVixzREFBVSxDQUFBO0FBQ1osQ0FBQyxFQVBXLGVBQWUsS0FBZixlQUFlLFFBTzFCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxrQkFnQlg7QUFoQkQsV0FBWSxrQkFBa0I7SUFDNUIsa0ZBQXFCLENBQUE7SUFDckIsMEVBQWlCLENBQUE7SUFDakIsa0ZBQXFCLENBQUE7SUFDckIsc0ZBQXVCLENBQUE7SUFDdkIsMEZBQXlCLENBQUE7SUFDekIsc0ZBQXVCLENBQUE7SUFDdkIsMEdBQWlDLENBQUE7SUFDakMsc0ZBQXVCLENBQUE7SUFDdkIsb0ZBQXNCLENBQUE7SUFDdEIsd0ZBQXdCLENBQUE7SUFDeEIsa0ZBQXFCLENBQUE7SUFDckIsb0ZBQXNCLENBQUE7SUFDdEIsb0ZBQXNCLENBQUE7SUFDdEIsNEVBQWtCLENBQUE7SUFDbEIsZ0ZBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQWhCVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBZ0I3QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBRXBDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsc0NBQXNDLENBQUM7QUFFN0U7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsWUFBWTtJQUN4QixpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMscUJBQXFCLEVBQUUsdUJBQXVCO0lBQzlDLG9CQUFvQixFQUFFLHNCQUFzQjtJQUM1QyxzQkFBc0IsRUFBRSx3QkFBd0I7SUFDaEQsd0JBQXdCLEVBQUUsMEJBQTBCO0NBQzVDLENBQUMifQ==
@@ -1,7 +0,0 @@
1
- /**
2
- * WebSocket Protocol Module
3
- * WebSocket protocol utilities and constants
4
- */
5
- export * from './constants.js';
6
- export * from './types.js';
7
- export * from './utils.js';
@@ -1,8 +0,0 @@
1
- /**
2
- * WebSocket Protocol Module
3
- * WebSocket protocol utilities and constants
4
- */
5
- export * from './constants.js';
6
- export * from './types.js';
7
- export * from './utils.js';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9wcm90b2NvbHMvd2Vic29ja2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMifQ==
@@ -1,47 +0,0 @@
1
- /**
2
- * WebSocket Protocol Type Definitions
3
- */
4
- import type { WebSocketOpcode, WebSocketCloseCode } from './constants.js';
5
- /**
6
- * WebSocket frame header
7
- */
8
- export interface IWebSocketFrameHeader {
9
- fin: boolean;
10
- rsv1: boolean;
11
- rsv2: boolean;
12
- rsv3: boolean;
13
- opcode: WebSocketOpcode;
14
- masked: boolean;
15
- payloadLength: number;
16
- maskingKey?: Buffer;
17
- }
18
- /**
19
- * WebSocket frame
20
- */
21
- export interface IWebSocketFrame {
22
- header: IWebSocketFrameHeader;
23
- payload: Buffer;
24
- }
25
- /**
26
- * WebSocket close frame payload
27
- */
28
- export interface IWebSocketClosePayload {
29
- code: WebSocketCloseCode;
30
- reason?: string;
31
- }
32
- /**
33
- * WebSocket handshake request headers
34
- */
35
- export interface IWebSocketHandshakeHeaders {
36
- upgrade: string;
37
- connection: string;
38
- 'sec-websocket-key': string;
39
- 'sec-websocket-version': string;
40
- 'sec-websocket-protocol'?: string;
41
- 'sec-websocket-extensions'?: string;
42
- [key: string]: string | undefined;
43
- }
44
- /**
45
- * Type for WebSocket raw data (matching ws library)
46
- */
47
- export type RawData = Buffer | ArrayBuffer | Buffer[] | any;
@@ -1,5 +0,0 @@
1
- /**
2
- * WebSocket Protocol Type Definitions
3
- */
4
- export {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9wcm90b2NvbHMvd2Vic29ja2V0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIn0=
@@ -1,25 +0,0 @@
1
- /**
2
- * WebSocket Protocol Utilities
3
- */
4
- import type { RawData } from './types.js';
5
- /**
6
- * Get the length of a WebSocket message regardless of its type
7
- * (handles all possible WebSocket message data types)
8
- */
9
- export declare function getMessageSize(data: RawData): number;
10
- /**
11
- * Convert any raw WebSocket data to Buffer for consistent handling
12
- */
13
- export declare function toBuffer(data: RawData): Buffer;
14
- /**
15
- * Generate WebSocket accept key from client key
16
- */
17
- export declare function generateAcceptKey(clientKey: string): string;
18
- /**
19
- * Validate WebSocket upgrade request
20
- */
21
- export declare function isWebSocketUpgrade(headers: Record<string, string>): boolean;
22
- /**
23
- * Generate random WebSocket key for client handshake
24
- */
25
- export declare function generateWebSocketKey(): string;
@@ -1,103 +0,0 @@
1
- /**
2
- * WebSocket Protocol Utilities
3
- */
4
- import * as crypto from 'node:crypto';
5
- import { WEBSOCKET_MAGIC_STRING } from './constants.js';
6
- /**
7
- * Get the length of a WebSocket message regardless of its type
8
- * (handles all possible WebSocket message data types)
9
- */
10
- export function getMessageSize(data) {
11
- if (typeof data === 'string') {
12
- // For string data, get the byte length
13
- return Buffer.from(data, 'utf8').length;
14
- }
15
- else if (data instanceof Buffer) {
16
- // For Node.js Buffer
17
- return data.length;
18
- }
19
- else if (data instanceof ArrayBuffer) {
20
- // For ArrayBuffer
21
- return data.byteLength;
22
- }
23
- else if (Array.isArray(data)) {
24
- // For array of buffers, sum their lengths
25
- return data.reduce((sum, chunk) => {
26
- if (chunk instanceof Buffer) {
27
- return sum + chunk.length;
28
- }
29
- else if (chunk instanceof ArrayBuffer) {
30
- return sum + chunk.byteLength;
31
- }
32
- return sum;
33
- }, 0);
34
- }
35
- else {
36
- // For other types, try to determine the size or return 0
37
- try {
38
- return Buffer.from(data).length;
39
- }
40
- catch (e) {
41
- return 0;
42
- }
43
- }
44
- }
45
- /**
46
- * Convert any raw WebSocket data to Buffer for consistent handling
47
- */
48
- export function toBuffer(data) {
49
- if (typeof data === 'string') {
50
- return Buffer.from(data, 'utf8');
51
- }
52
- else if (data instanceof Buffer) {
53
- return data;
54
- }
55
- else if (data instanceof ArrayBuffer) {
56
- return Buffer.from(data);
57
- }
58
- else if (Array.isArray(data)) {
59
- // For array of buffers, concatenate them
60
- return Buffer.concat(data.map(chunk => {
61
- if (chunk instanceof Buffer) {
62
- return chunk;
63
- }
64
- else if (chunk instanceof ArrayBuffer) {
65
- return Buffer.from(chunk);
66
- }
67
- return Buffer.from(chunk);
68
- }));
69
- }
70
- else {
71
- // For other types, try to convert to Buffer or return empty Buffer
72
- try {
73
- return Buffer.from(data);
74
- }
75
- catch (e) {
76
- return Buffer.alloc(0);
77
- }
78
- }
79
- }
80
- /**
81
- * Generate WebSocket accept key from client key
82
- */
83
- export function generateAcceptKey(clientKey) {
84
- const hash = crypto.createHash('sha1');
85
- hash.update(clientKey + WEBSOCKET_MAGIC_STRING);
86
- return hash.digest('base64');
87
- }
88
- /**
89
- * Validate WebSocket upgrade request
90
- */
91
- export function isWebSocketUpgrade(headers) {
92
- const upgrade = headers['upgrade'];
93
- const connection = headers['connection'];
94
- return upgrade?.toLowerCase() === 'websocket' &&
95
- connection?.toLowerCase().includes('upgrade');
96
- }
97
- /**
98
- * Generate random WebSocket key for client handshake
99
- */
100
- export function generateWebSocketKey() {
101
- return crypto.randomBytes(16).toString('base64');
102
- }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9wcm90b2NvbHMvd2Vic29ja2V0L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFhO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsdUNBQXVDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUNsQyxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQiwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hDLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLENBQUM7aUJBQU0sSUFBSSxLQUFLLFlBQVksV0FBVyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sR0FBRyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDaEMsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FB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
@@ -1,89 +0,0 @@
1
- import * as plugins from '../../plugins.js';
2
- import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
3
- /**
4
- * Interface for router result with additional metadata
5
- */
6
- export interface RouterResult {
7
- route: IRouteConfig;
8
- pathMatch?: string;
9
- pathParams?: Record<string, string>;
10
- pathRemainder?: string;
11
- }
12
- /**
13
- * Logger interface for HttpRouter
14
- */
15
- export interface ILogger {
16
- debug?: (message: string, data?: any) => void;
17
- info: (message: string, data?: any) => void;
18
- warn: (message: string, data?: any) => void;
19
- error: (message: string, data?: any) => void;
20
- }
21
- /**
22
- * Unified HTTP Router for reverse proxy requests
23
- *
24
- * Domain matching patterns:
25
- * - Exact matches: "example.com"
26
- * - Wildcard subdomains: "*.example.com" (matches any subdomain of example.com)
27
- * - TLD wildcards: "example.*" (matches example.com, example.org, etc.)
28
- * - Complex wildcards: "*.lossless*" (matches any subdomain of any lossless domain)
29
- * - Default fallback: "*" (matches any unmatched domain)
30
- *
31
- * Path pattern matching:
32
- * - Exact path: "/api/users"
33
- * - Wildcard paths: "/api/*"
34
- * - Path parameters: "/users/:id/profile"
35
- */
36
- export declare class HttpRouter {
37
- private routes;
38
- private defaultRoute?;
39
- private logger;
40
- constructor(routes?: IRouteConfig[], logger?: ILogger);
41
- /**
42
- * Sets a new set of routes
43
- * @param routes Array of route configurations
44
- */
45
- setRoutes(routes: IRouteConfig[]): void;
46
- /**
47
- * Routes a request based on hostname and path
48
- * @param req The incoming HTTP request
49
- * @returns The matching route or undefined if no match found
50
- */
51
- routeReq(req: plugins.http.IncomingMessage): IRouteConfig | undefined;
52
- /**
53
- * Routes a request with detailed matching information
54
- * @param req The incoming HTTP request
55
- * @returns Detailed routing result including matched route and path information
56
- */
57
- routeReqWithDetails(req: plugins.http.IncomingMessage): RouterResult | undefined;
58
- /**
59
- * Find the best matching route for a given hostname and path
60
- */
61
- private findMatchingRoute;
62
- /**
63
- * Gets all currently active route configurations
64
- * @returns Array of all active routes
65
- */
66
- getRoutes(): IRouteConfig[];
67
- /**
68
- * Gets all hostnames that this router is configured to handle
69
- * @returns Array of unique hostnames
70
- */
71
- getHostnames(): string[];
72
- /**
73
- * Adds a single new route configuration
74
- * @param route The route configuration to add
75
- */
76
- addRoute(route: IRouteConfig): void;
77
- /**
78
- * Removes routes by domain pattern
79
- * @param domain The domain pattern to remove routes for
80
- * @returns Boolean indicating whether any routes were removed
81
- */
82
- removeRoutesByDomain(domain: string): boolean;
83
- /**
84
- * Remove a specific route by reference
85
- * @param route The route to remove
86
- * @returns Boolean indicating if the route was found and removed
87
- */
88
- removeRoute(route: IRouteConfig): boolean;
89
- }
@@ -1,205 +0,0 @@
1
- import * as plugins from '../../plugins.js';
2
- import { DomainMatcher, PathMatcher } from '../../core/routing/matchers/index.js';
3
- /**
4
- * Unified HTTP Router for reverse proxy requests
5
- *
6
- * Domain matching patterns:
7
- * - Exact matches: "example.com"
8
- * - Wildcard subdomains: "*.example.com" (matches any subdomain of example.com)
9
- * - TLD wildcards: "example.*" (matches example.com, example.org, etc.)
10
- * - Complex wildcards: "*.lossless*" (matches any subdomain of any lossless domain)
11
- * - Default fallback: "*" (matches any unmatched domain)
12
- *
13
- * Path pattern matching:
14
- * - Exact path: "/api/users"
15
- * - Wildcard paths: "/api/*"
16
- * - Path parameters: "/users/:id/profile"
17
- */
18
- export class HttpRouter {
19
- constructor(routes, logger) {
20
- // Store routes sorted by priority
21
- this.routes = [];
22
- this.logger = logger || {
23
- error: console.error.bind(console),
24
- warn: console.warn.bind(console),
25
- info: console.info.bind(console),
26
- debug: console.debug?.bind(console)
27
- };
28
- if (routes) {
29
- this.setRoutes(routes);
30
- }
31
- }
32
- /**
33
- * Sets a new set of routes
34
- * @param routes Array of route configurations
35
- */
36
- setRoutes(routes) {
37
- this.routes = [...routes];
38
- // Sort routes by priority (higher priority first)
39
- this.routes.sort((a, b) => {
40
- const priorityA = a.priority ?? 0;
41
- const priorityB = b.priority ?? 0;
42
- return priorityB - priorityA;
43
- });
44
- // Find default route if any (route with "*" as domain)
45
- this.defaultRoute = this.routes.find(route => {
46
- const domains = Array.isArray(route.match.domains)
47
- ? route.match.domains
48
- : route.match.domains ? [route.match.domains] : [];
49
- return domains.includes('*');
50
- });
51
- const uniqueDomains = this.getHostnames();
52
- this.logger.info(`HttpRouter initialized with ${this.routes.length} routes (${uniqueDomains.length} unique hosts)`);
53
- }
54
- /**
55
- * Routes a request based on hostname and path
56
- * @param req The incoming HTTP request
57
- * @returns The matching route or undefined if no match found
58
- */
59
- routeReq(req) {
60
- const result = this.routeReqWithDetails(req);
61
- return result ? result.route : undefined;
62
- }
63
- /**
64
- * Routes a request with detailed matching information
65
- * @param req The incoming HTTP request
66
- * @returns Detailed routing result including matched route and path information
67
- */
68
- routeReqWithDetails(req) {
69
- // Extract and validate host header
70
- const originalHost = req.headers.host;
71
- if (!originalHost) {
72
- this.logger.error('No host header found in request');
73
- return this.defaultRoute ? { route: this.defaultRoute } : undefined;
74
- }
75
- // Parse URL for path matching
76
- const parsedUrl = plugins.url.parse(req.url || '/');
77
- const urlPath = parsedUrl.pathname || '/';
78
- // Extract hostname without port
79
- const hostWithoutPort = originalHost.split(':')[0].toLowerCase();
80
- // Find matching route
81
- const matchingRoute = this.findMatchingRoute(hostWithoutPort, urlPath);
82
- if (matchingRoute) {
83
- return matchingRoute;
84
- }
85
- // Fall back to default route if available
86
- if (this.defaultRoute) {
87
- this.logger.warn(`No specific route found for host: ${hostWithoutPort}, using default`);
88
- return { route: this.defaultRoute };
89
- }
90
- this.logger.error(`No route found for host: ${hostWithoutPort}`);
91
- return undefined;
92
- }
93
- /**
94
- * Find the best matching route for a given hostname and path
95
- */
96
- findMatchingRoute(hostname, path) {
97
- // Try each route in priority order
98
- for (const route of this.routes) {
99
- // Skip disabled routes
100
- if (route.enabled === false) {
101
- continue;
102
- }
103
- // Check domain match
104
- if (route.match.domains) {
105
- const domains = Array.isArray(route.match.domains)
106
- ? route.match.domains
107
- : [route.match.domains];
108
- // Check if any domain pattern matches
109
- const domainMatches = domains.some(domain => DomainMatcher.match(domain, hostname));
110
- if (!domainMatches) {
111
- continue;
112
- }
113
- }
114
- // Check path match if specified
115
- if (route.match.path) {
116
- const pathResult = PathMatcher.match(route.match.path, path);
117
- if (pathResult.matches) {
118
- return {
119
- route,
120
- pathMatch: pathResult.pathMatch || path,
121
- pathParams: pathResult.params,
122
- pathRemainder: pathResult.pathRemainder
123
- };
124
- }
125
- }
126
- else {
127
- // No path specified, so domain match is sufficient
128
- return { route };
129
- }
130
- }
131
- return undefined;
132
- }
133
- /**
134
- * Gets all currently active route configurations
135
- * @returns Array of all active routes
136
- */
137
- getRoutes() {
138
- return [...this.routes];
139
- }
140
- /**
141
- * Gets all hostnames that this router is configured to handle
142
- * @returns Array of unique hostnames
143
- */
144
- getHostnames() {
145
- const hostnames = new Set();
146
- for (const route of this.routes) {
147
- if (!route.match.domains)
148
- continue;
149
- const domains = Array.isArray(route.match.domains)
150
- ? route.match.domains
151
- : [route.match.domains];
152
- for (const domain of domains) {
153
- if (domain !== '*') {
154
- hostnames.add(domain.toLowerCase());
155
- }
156
- }
157
- }
158
- return Array.from(hostnames);
159
- }
160
- /**
161
- * Adds a single new route configuration
162
- * @param route The route configuration to add
163
- */
164
- addRoute(route) {
165
- this.routes.push(route);
166
- // Re-sort routes by priority
167
- this.routes.sort((a, b) => {
168
- const priorityA = a.priority ?? 0;
169
- const priorityB = b.priority ?? 0;
170
- return priorityB - priorityA;
171
- });
172
- }
173
- /**
174
- * Removes routes by domain pattern
175
- * @param domain The domain pattern to remove routes for
176
- * @returns Boolean indicating whether any routes were removed
177
- */
178
- removeRoutesByDomain(domain) {
179
- const initialCount = this.routes.length;
180
- // Filter out routes that match the domain
181
- this.routes = this.routes.filter(route => {
182
- if (!route.match.domains)
183
- return true;
184
- const domains = Array.isArray(route.match.domains)
185
- ? route.match.domains
186
- : [route.match.domains];
187
- return !domains.includes(domain);
188
- });
189
- return this.routes.length !== initialCount;
190
- }
191
- /**
192
- * Remove a specific route by reference
193
- * @param route The route to remove
194
- * @returns Boolean indicating if the route was found and removed
195
- */
196
- removeRoute(route) {
197
- const index = this.routes.indexOf(route);
198
- if (index !== -1) {
199
- this.routes.splice(index, 1);
200
- return true;
201
- }
202
- return false;
203
- }
204
- }
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yb3V0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9yb3V0aW5nL3JvdXRlci9odHRwLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUF1QmxGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFRckIsWUFDRSxNQUF1QixFQUN2QixNQUFnQjtRQVRsQixrQ0FBa0M7UUFDMUIsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFVbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUk7WUFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2hDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDaEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUNwQyxDQUFDO1FBRUYsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsTUFBc0I7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFFMUIsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ3JCLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxhQUFhLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLEdBQWlDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsR0FBaUM7UUFDMUQsbUNBQW1DO1FBQ25DLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdEUsQ0FBQztRQUVELDhCQUE4QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDO1FBRTFDLGdDQUFnQztRQUNoQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpFLHNCQUFzQjtRQUN0QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXZFLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsZUFBZSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNqRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxRQUFnQixFQUFFLElBQVk7UUFDdEQsbUNBQW1DO1FBQ25DLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLHVCQUF1QjtZQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzVCLFNBQVM7WUFDWCxDQUFDO1lBRUQscUJBQXFCO1lBQ3JCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztvQkFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTztvQkFDckIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFMUIsc0NBQXNDO2dCQUN0QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUN0QyxDQUFDO2dCQUVGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDbkIsU0FBUztnQkFDWCxDQUFDO1lBQ0gsQ0FBQztZQUVELGdDQUFnQztZQUNoQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN2QixPQUFPO3dCQUNMLEtBQUs7d0JBQ0wsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTLElBQUksSUFBSTt3QkFDdkMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxNQUFNO3dCQUM3QixhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7cUJBQ3hDLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixtREFBbUQ7Z0JBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTO1FBQ2QsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDcEMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFBRSxTQUFTO1lBRW5DLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFMUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ25CLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEtBQW1CO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztZQUNsQyxPQUFPLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG9CQUFvQixDQUFDLE1BQWM7UUFDeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFeEMsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV0QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUNyQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsS0FBbUI7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUYifQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * HTTP routing
3
- */
4
- export { HttpRouter } from './http-router.js';
5
- export type { RouterResult, ILogger } from './http-router.js';
@@ -1,6 +0,0 @@
1
- /**
2
- * HTTP routing
3
- */
4
- // Export the unified HttpRouter
5
- export { HttpRouter } from './http-router.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9yb3V0aW5nL3JvdXRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGdDQUFnQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUMifQ==
@@ -1,16 +0,0 @@
1
- /**
2
- * TLS module for smartproxy
3
- * Re-exports protocol components and provides smartproxy-specific functionality
4
- */
5
- export * from '../protocols/tls/index.js';
6
- export * from './sni/sni-handler.js';
7
- import { SniHandler } from './sni/sni-handler.js';
8
- import { SniExtraction } from '../protocols/tls/sni/sni-extraction.js';
9
- import { ClientHelloParser } from '../protocols/tls/sni/client-hello-parser.js';
10
- export declare const SNI: {
11
- Handler: typeof SniHandler;
12
- Extraction: typeof SniExtraction;
13
- Parser: typeof ClientHelloParser;
14
- extractSNI: typeof SniHandler.extractSNI;
15
- processTlsPacket: typeof SniHandler.processTlsPacket;
16
- };