@push.rocks/smartproxy 15.0.2 → 16.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/certificate/index.d.ts +10 -4
  3. package/dist_ts/certificate/index.js +5 -7
  4. package/dist_ts/certificate/models/certificate-types.d.ts +35 -15
  5. package/dist_ts/certificate/providers/cert-provisioner.d.ts +41 -15
  6. package/dist_ts/certificate/providers/cert-provisioner.js +201 -41
  7. package/dist_ts/core/models/index.d.ts +2 -0
  8. package/dist_ts/core/models/index.js +3 -1
  9. package/dist_ts/core/models/route-context.d.ts +62 -0
  10. package/dist_ts/core/models/route-context.js +43 -0
  11. package/dist_ts/core/models/socket-augmentation.d.ts +12 -0
  12. package/dist_ts/core/models/socket-augmentation.js +18 -0
  13. package/dist_ts/core/utils/event-system.d.ts +200 -0
  14. package/dist_ts/core/utils/event-system.js +224 -0
  15. package/dist_ts/core/utils/index.d.ts +7 -0
  16. package/dist_ts/core/utils/index.js +8 -1
  17. package/dist_ts/core/utils/route-manager.d.ts +118 -0
  18. package/dist_ts/core/utils/route-manager.js +383 -0
  19. package/dist_ts/core/utils/route-utils.d.ts +94 -0
  20. package/dist_ts/core/utils/route-utils.js +264 -0
  21. package/dist_ts/core/utils/security-utils.d.ts +111 -0
  22. package/dist_ts/core/utils/security-utils.js +212 -0
  23. package/dist_ts/core/utils/shared-security-manager.d.ts +110 -0
  24. package/dist_ts/core/utils/shared-security-manager.js +252 -0
  25. package/dist_ts/core/utils/template-utils.d.ts +37 -0
  26. package/dist_ts/core/utils/template-utils.js +104 -0
  27. package/dist_ts/core/utils/websocket-utils.d.ts +23 -0
  28. package/dist_ts/core/utils/websocket-utils.js +86 -0
  29. package/dist_ts/forwarding/config/forwarding-types.d.ts +40 -76
  30. package/dist_ts/forwarding/config/forwarding-types.js +19 -18
  31. package/dist_ts/forwarding/config/index.d.ts +4 -2
  32. package/dist_ts/forwarding/config/index.js +5 -3
  33. package/dist_ts/forwarding/handlers/base-handler.js +3 -1
  34. package/dist_ts/forwarding/index.d.ts +5 -6
  35. package/dist_ts/forwarding/index.js +3 -3
  36. package/dist_ts/http/models/http-types.js +1 -1
  37. package/dist_ts/http/port80/acme-interfaces.d.ts +30 -0
  38. package/dist_ts/http/port80/acme-interfaces.js +46 -1
  39. package/dist_ts/http/port80/port80-handler.d.ts +17 -2
  40. package/dist_ts/http/port80/port80-handler.js +49 -11
  41. package/dist_ts/http/router/index.d.ts +5 -1
  42. package/dist_ts/http/router/index.js +4 -2
  43. package/dist_ts/http/router/route-router.d.ts +108 -0
  44. package/dist_ts/http/router/route-router.js +393 -0
  45. package/dist_ts/index.d.ts +8 -2
  46. package/dist_ts/index.js +10 -3
  47. package/dist_ts/proxies/index.d.ts +7 -2
  48. package/dist_ts/proxies/index.js +10 -4
  49. package/dist_ts/proxies/network-proxy/certificate-manager.d.ts +21 -0
  50. package/dist_ts/proxies/network-proxy/certificate-manager.js +92 -1
  51. package/dist_ts/proxies/network-proxy/context-creator.d.ts +34 -0
  52. package/dist_ts/proxies/network-proxy/context-creator.js +108 -0
  53. package/dist_ts/proxies/network-proxy/function-cache.d.ts +90 -0
  54. package/dist_ts/proxies/network-proxy/function-cache.js +198 -0
  55. package/dist_ts/proxies/network-proxy/http-request-handler.d.ts +40 -0
  56. package/dist_ts/proxies/network-proxy/http-request-handler.js +256 -0
  57. package/dist_ts/proxies/network-proxy/http2-request-handler.d.ts +24 -0
  58. package/dist_ts/proxies/network-proxy/http2-request-handler.js +201 -0
  59. package/dist_ts/proxies/network-proxy/models/types.d.ts +73 -1
  60. package/dist_ts/proxies/network-proxy/models/types.js +242 -1
  61. package/dist_ts/proxies/network-proxy/network-proxy.d.ts +23 -20
  62. package/dist_ts/proxies/network-proxy/network-proxy.js +147 -60
  63. package/dist_ts/proxies/network-proxy/request-handler.d.ts +38 -5
  64. package/dist_ts/proxies/network-proxy/request-handler.js +584 -198
  65. package/dist_ts/proxies/network-proxy/security-manager.d.ts +65 -0
  66. package/dist_ts/proxies/network-proxy/security-manager.js +255 -0
  67. package/dist_ts/proxies/network-proxy/websocket-handler.d.ts +13 -2
  68. package/dist_ts/proxies/network-proxy/websocket-handler.js +238 -20
  69. package/dist_ts/proxies/smart-proxy/index.d.ts +1 -1
  70. package/dist_ts/proxies/smart-proxy/index.js +3 -3
  71. package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +5 -66
  72. package/dist_ts/proxies/smart-proxy/models/interfaces.js +5 -4
  73. package/dist_ts/proxies/smart-proxy/models/route-types.d.ts +173 -6
  74. package/dist_ts/proxies/smart-proxy/network-proxy-bridge.d.ts +20 -7
  75. package/dist_ts/proxies/smart-proxy/network-proxy-bridge.js +49 -108
  76. package/dist_ts/proxies/smart-proxy/port-manager.d.ts +81 -0
  77. package/dist_ts/proxies/smart-proxy/port-manager.js +166 -0
  78. package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +7 -5
  79. package/dist_ts/proxies/smart-proxy/route-connection-handler.js +155 -160
  80. package/dist_ts/proxies/smart-proxy/route-helpers/index.d.ts +9 -0
  81. package/dist_ts/proxies/smart-proxy/route-helpers/index.js +11 -0
  82. package/dist_ts/proxies/smart-proxy/route-helpers.d.ts +5 -125
  83. package/dist_ts/proxies/smart-proxy/route-helpers.js +8 -195
  84. package/dist_ts/proxies/smart-proxy/route-manager.d.ts +14 -11
  85. package/dist_ts/proxies/smart-proxy/route-manager.js +81 -124
  86. package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +101 -12
  87. package/dist_ts/proxies/smart-proxy/smart-proxy.js +178 -306
  88. package/dist_ts/proxies/smart-proxy/timeout-manager.js +3 -3
  89. package/dist_ts/proxies/smart-proxy/utils/index.d.ts +12 -0
  90. package/dist_ts/proxies/smart-proxy/utils/index.js +19 -0
  91. package/dist_ts/proxies/smart-proxy/utils/route-helpers.d.ts +240 -0
  92. package/dist_ts/proxies/smart-proxy/utils/route-helpers.js +451 -0
  93. package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.d.ts +51 -0
  94. package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.js +124 -0
  95. package/dist_ts/proxies/smart-proxy/utils/route-patterns.d.ts +131 -0
  96. package/dist_ts/proxies/smart-proxy/utils/route-patterns.js +217 -0
  97. package/dist_ts/proxies/smart-proxy/utils/route-utils.d.ts +79 -0
  98. package/dist_ts/proxies/smart-proxy/utils/route-utils.js +266 -0
  99. package/dist_ts/proxies/smart-proxy/utils/route-validators.d.ts +73 -0
  100. package/dist_ts/proxies/smart-proxy/utils/route-validators.js +264 -0
  101. package/package.json +1 -1
  102. package/readme.md +241 -125
  103. package/readme.plan.md +73 -286
  104. package/ts/00_commitinfo_data.ts +1 -1
  105. package/ts/certificate/index.ts +17 -9
  106. package/ts/certificate/models/certificate-types.ts +37 -16
  107. package/ts/certificate/providers/cert-provisioner.ts +247 -54
  108. package/ts/core/models/index.ts +2 -0
  109. package/ts/core/models/route-context.ts +113 -0
  110. package/ts/core/models/socket-augmentation.ts +33 -0
  111. package/ts/core/utils/event-system.ts +376 -0
  112. package/ts/core/utils/index.ts +7 -0
  113. package/ts/core/utils/route-manager.ts +489 -0
  114. package/ts/core/utils/route-utils.ts +312 -0
  115. package/ts/core/utils/security-utils.ts +309 -0
  116. package/ts/core/utils/shared-security-manager.ts +333 -0
  117. package/ts/core/utils/template-utils.ts +124 -0
  118. package/ts/core/utils/websocket-utils.ts +81 -0
  119. package/ts/forwarding/config/forwarding-types.ts +79 -107
  120. package/ts/forwarding/config/index.ts +4 -2
  121. package/ts/forwarding/handlers/base-handler.ts +4 -2
  122. package/ts/forwarding/index.ts +3 -2
  123. package/ts/http/models/http-types.ts +0 -1
  124. package/ts/http/port80/acme-interfaces.ts +84 -0
  125. package/ts/http/port80/port80-handler.ts +61 -15
  126. package/ts/http/router/index.ts +8 -1
  127. package/ts/http/router/route-router.ts +482 -0
  128. package/ts/index.ts +14 -2
  129. package/ts/proxies/index.ts +12 -3
  130. package/ts/proxies/network-proxy/certificate-manager.ts +114 -10
  131. package/ts/proxies/network-proxy/context-creator.ts +145 -0
  132. package/ts/proxies/network-proxy/function-cache.ts +259 -0
  133. package/ts/proxies/network-proxy/http-request-handler.ts +330 -0
  134. package/ts/proxies/network-proxy/http2-request-handler.ts +255 -0
  135. package/ts/proxies/network-proxy/models/types.ts +312 -1
  136. package/ts/proxies/network-proxy/network-proxy.ts +195 -86
  137. package/ts/proxies/network-proxy/request-handler.ts +698 -246
  138. package/ts/proxies/network-proxy/security-manager.ts +298 -0
  139. package/ts/proxies/network-proxy/websocket-handler.ts +276 -33
  140. package/ts/proxies/smart-proxy/index.ts +2 -12
  141. package/ts/proxies/smart-proxy/models/interfaces.ts +13 -67
  142. package/ts/proxies/smart-proxy/models/route-types.ts +223 -25
  143. package/ts/proxies/smart-proxy/network-proxy-bridge.ts +57 -123
  144. package/ts/proxies/smart-proxy/port-manager.ts +195 -0
  145. package/ts/proxies/smart-proxy/route-connection-handler.ts +191 -225
  146. package/ts/proxies/smart-proxy/route-manager.ts +101 -144
  147. package/ts/proxies/smart-proxy/smart-proxy.ts +206 -377
  148. package/ts/proxies/smart-proxy/timeout-manager.ts +2 -2
  149. package/ts/proxies/smart-proxy/utils/index.ts +40 -0
  150. package/ts/proxies/smart-proxy/utils/route-helpers.ts +621 -0
  151. package/ts/proxies/smart-proxy/utils/route-migration-utils.ts +165 -0
  152. package/ts/proxies/smart-proxy/utils/route-patterns.ts +309 -0
  153. package/ts/proxies/smart-proxy/utils/route-utils.ts +330 -0
  154. package/ts/proxies/smart-proxy/utils/route-validators.ts +288 -0
  155. package/ts/forwarding/config/domain-config.ts +0 -28
  156. package/ts/forwarding/config/domain-manager.ts +0 -283
  157. package/ts/proxies/smart-proxy/connection-handler.ts +0 -1240
  158. package/ts/proxies/smart-proxy/domain-config-manager.ts +0 -441
  159. package/ts/proxies/smart-proxy/port-range-manager.ts +0 -211
  160. package/ts/proxies/smart-proxy/route-helpers.ts +0 -344
@@ -1,127 +1,7 @@
1
- import type { IRouteConfig, IRouteMatch, IRouteAction, IRouteTarget, IRouteSecurity } from './models/route-types.js';
2
1
  /**
3
- * Basic helper function to create a route configuration
2
+ * Route helpers for SmartProxy
3
+ *
4
+ * @deprecated Import from './utils/route-helpers.js' directly instead
5
+ * This file is maintained for backward compatibility but will be removed in a future version.
4
6
  */
5
- export declare function createRoute(match: IRouteMatch, action: IRouteAction, metadata?: {
6
- name?: string;
7
- description?: string;
8
- priority?: number;
9
- tags?: string[];
10
- }): IRouteConfig;
11
- /**
12
- * Create a basic HTTP route configuration
13
- */
14
- export declare function createHttpRoute(options: {
15
- ports?: number | number[];
16
- domains?: string | string[];
17
- path?: string;
18
- target: IRouteTarget;
19
- headers?: Record<string, string>;
20
- security?: IRouteSecurity;
21
- name?: string;
22
- description?: string;
23
- priority?: number;
24
- tags?: string[];
25
- }): IRouteConfig;
26
- /**
27
- * Create an HTTPS route configuration with TLS termination
28
- */
29
- export declare function createHttpsRoute(options: {
30
- ports?: number | number[];
31
- domains: string | string[];
32
- path?: string;
33
- target: IRouteTarget;
34
- tlsMode?: 'terminate' | 'terminate-and-reencrypt';
35
- certificate?: 'auto' | {
36
- key: string;
37
- cert: string;
38
- };
39
- headers?: Record<string, string>;
40
- security?: IRouteSecurity;
41
- name?: string;
42
- description?: string;
43
- priority?: number;
44
- tags?: string[];
45
- }): IRouteConfig;
46
- /**
47
- * Create an HTTPS passthrough route configuration
48
- */
49
- export declare function createPassthroughRoute(options: {
50
- ports?: number | number[];
51
- domains?: string | string[];
52
- target: IRouteTarget;
53
- security?: IRouteSecurity;
54
- name?: string;
55
- description?: string;
56
- priority?: number;
57
- tags?: string[];
58
- }): IRouteConfig;
59
- /**
60
- * Create a redirect route configuration
61
- */
62
- export declare function createRedirectRoute(options: {
63
- ports?: number | number[];
64
- domains?: string | string[];
65
- path?: string;
66
- redirectTo: string;
67
- statusCode?: 301 | 302 | 307 | 308;
68
- name?: string;
69
- description?: string;
70
- priority?: number;
71
- tags?: string[];
72
- }): IRouteConfig;
73
- /**
74
- * Create an HTTP to HTTPS redirect route configuration
75
- */
76
- export declare function createHttpToHttpsRedirect(options: {
77
- domains: string | string[];
78
- statusCode?: 301 | 302 | 307 | 308;
79
- name?: string;
80
- priority?: number;
81
- }): IRouteConfig;
82
- /**
83
- * Create a block route configuration
84
- */
85
- export declare function createBlockRoute(options: {
86
- ports: number | number[];
87
- domains?: string | string[];
88
- clientIp?: string[];
89
- name?: string;
90
- description?: string;
91
- priority?: number;
92
- tags?: string[];
93
- }): IRouteConfig;
94
- /**
95
- * Create a load balancer route configuration
96
- */
97
- export declare function createLoadBalancerRoute(options: {
98
- ports?: number | number[];
99
- domains: string | string[];
100
- path?: string;
101
- targets: string[];
102
- targetPort: number;
103
- tlsMode?: 'passthrough' | 'terminate' | 'terminate-and-reencrypt';
104
- certificate?: 'auto' | {
105
- key: string;
106
- cert: string;
107
- };
108
- headers?: Record<string, string>;
109
- security?: IRouteSecurity;
110
- name?: string;
111
- description?: string;
112
- tags?: string[];
113
- }): IRouteConfig;
114
- /**
115
- * Create a complete HTTPS server configuration with HTTP redirect
116
- */
117
- export declare function createHttpsServer(options: {
118
- domains: string | string[];
119
- target: IRouteTarget;
120
- certificate?: 'auto' | {
121
- key: string;
122
- cert: string;
123
- };
124
- security?: IRouteSecurity;
125
- addHttpRedirect?: boolean;
126
- name?: string;
127
- }): IRouteConfig[];
7
+ export * from './utils/route-helpers.js';
@@ -1,196 +1,9 @@
1
1
  /**
2
- * Basic helper function to create a route configuration
3
- */
4
- export function createRoute(match, action, metadata) {
5
- return {
6
- match,
7
- action,
8
- ...metadata
9
- };
10
- }
11
- /**
12
- * Create a basic HTTP route configuration
13
- */
14
- export function createHttpRoute(options) {
15
- return createRoute({
16
- ports: options.ports || 80,
17
- ...(options.domains ? { domains: options.domains } : {}),
18
- ...(options.path ? { path: options.path } : {})
19
- }, {
20
- type: 'forward',
21
- target: options.target,
22
- ...(options.headers || options.security ? {
23
- advanced: {
24
- ...(options.headers ? { headers: options.headers } : {})
25
- },
26
- ...(options.security ? { security: options.security } : {})
27
- } : {})
28
- }, {
29
- name: options.name || 'HTTP Route',
30
- description: options.description,
31
- priority: options.priority,
32
- tags: options.tags
33
- });
34
- }
35
- /**
36
- * Create an HTTPS route configuration with TLS termination
37
- */
38
- export function createHttpsRoute(options) {
39
- return createRoute({
40
- ports: options.ports || 443,
41
- domains: options.domains,
42
- ...(options.path ? { path: options.path } : {})
43
- }, {
44
- type: 'forward',
45
- target: options.target,
46
- tls: {
47
- mode: options.tlsMode || 'terminate',
48
- certificate: options.certificate || 'auto'
49
- },
50
- ...(options.headers || options.security ? {
51
- advanced: {
52
- ...(options.headers ? { headers: options.headers } : {})
53
- },
54
- ...(options.security ? { security: options.security } : {})
55
- } : {})
56
- }, {
57
- name: options.name || 'HTTPS Route',
58
- description: options.description,
59
- priority: options.priority,
60
- tags: options.tags
61
- });
62
- }
63
- /**
64
- * Create an HTTPS passthrough route configuration
65
- */
66
- export function createPassthroughRoute(options) {
67
- return createRoute({
68
- ports: options.ports || 443,
69
- ...(options.domains ? { domains: options.domains } : {})
70
- }, {
71
- type: 'forward',
72
- target: options.target,
73
- tls: {
74
- mode: 'passthrough'
75
- },
76
- ...(options.security ? { security: options.security } : {})
77
- }, {
78
- name: options.name || 'HTTPS Passthrough Route',
79
- description: options.description,
80
- priority: options.priority,
81
- tags: options.tags
82
- });
83
- }
84
- /**
85
- * Create a redirect route configuration
86
- */
87
- export function createRedirectRoute(options) {
88
- return createRoute({
89
- ports: options.ports || 80,
90
- ...(options.domains ? { domains: options.domains } : {}),
91
- ...(options.path ? { path: options.path } : {})
92
- }, {
93
- type: 'redirect',
94
- redirect: {
95
- to: options.redirectTo,
96
- status: options.statusCode || 301
97
- }
98
- }, {
99
- name: options.name || 'Redirect Route',
100
- description: options.description,
101
- priority: options.priority,
102
- tags: options.tags
103
- });
104
- }
105
- /**
106
- * Create an HTTP to HTTPS redirect route configuration
107
- */
108
- export function createHttpToHttpsRedirect(options) {
109
- const domainArray = Array.isArray(options.domains) ? options.domains : [options.domains];
110
- return createRedirectRoute({
111
- ports: 80,
112
- domains: options.domains,
113
- redirectTo: 'https://{domain}{path}',
114
- statusCode: options.statusCode || 301,
115
- name: options.name || `HTTP to HTTPS Redirect for ${domainArray.join(', ')}`,
116
- priority: options.priority || 100 // High priority for redirects
117
- });
118
- }
119
- /**
120
- * Create a block route configuration
121
- */
122
- export function createBlockRoute(options) {
123
- return createRoute({
124
- ports: options.ports,
125
- ...(options.domains ? { domains: options.domains } : {}),
126
- ...(options.clientIp ? { clientIp: options.clientIp } : {})
127
- }, {
128
- type: 'block'
129
- }, {
130
- name: options.name || 'Block Route',
131
- description: options.description,
132
- priority: options.priority || 1000, // Very high priority for blocks
133
- tags: options.tags
134
- });
135
- }
136
- /**
137
- * Create a load balancer route configuration
138
- */
139
- export function createLoadBalancerRoute(options) {
140
- const useTls = options.tlsMode !== undefined;
141
- const defaultPort = useTls ? 443 : 80;
142
- return createRoute({
143
- ports: options.ports || defaultPort,
144
- domains: options.domains,
145
- ...(options.path ? { path: options.path } : {})
146
- }, {
147
- type: 'forward',
148
- target: {
149
- host: options.targets,
150
- port: options.targetPort
151
- },
152
- ...(useTls ? {
153
- tls: {
154
- mode: options.tlsMode,
155
- ...(options.tlsMode !== 'passthrough' && options.certificate ? {
156
- certificate: options.certificate
157
- } : {})
158
- }
159
- } : {}),
160
- ...(options.headers || options.security ? {
161
- advanced: {
162
- ...(options.headers ? { headers: options.headers } : {})
163
- },
164
- ...(options.security ? { security: options.security } : {})
165
- } : {})
166
- }, {
167
- name: options.name || 'Load Balanced Route',
168
- description: options.description || `Load balancing across ${options.targets.length} backends`,
169
- tags: options.tags
170
- });
171
- }
172
- /**
173
- * Create a complete HTTPS server configuration with HTTP redirect
174
- */
175
- export function createHttpsServer(options) {
176
- const routes = [];
177
- const domainArray = Array.isArray(options.domains) ? options.domains : [options.domains];
178
- // Add HTTPS route
179
- routes.push(createHttpsRoute({
180
- domains: options.domains,
181
- target: options.target,
182
- certificate: options.certificate || 'auto',
183
- security: options.security,
184
- name: options.name || `HTTPS Server for ${domainArray.join(', ')}`
185
- }));
186
- // Add HTTP to HTTPS redirect if requested
187
- if (options.addHttpRedirect !== false) {
188
- routes.push(createHttpToHttpsRedirect({
189
- domains: options.domains,
190
- name: `HTTP to HTTPS Redirect for ${domainArray.join(', ')}`,
191
- priority: 100
192
- }));
193
- }
194
- return routes;
195
- }
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL3Byb3hpZXMvc21hcnQtcHJveHkvcm91dGUtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLEtBQWtCLEVBQ2xCLE1BQW9CLEVBQ3BCLFFBS0M7SUFFRCxPQUFPO1FBQ0wsS0FBSztRQUNMLE1BQU07UUFDTixHQUFHLFFBQVE7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsT0FXQztJQUVELE9BQU8sV0FBVyxDQUNoQjtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDMUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNoRCxFQUNEO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDeEMsUUFBUSxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN6RDtZQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFB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
2
+ * Route helpers for SmartProxy
3
+ *
4
+ * @deprecated Import from './utils/route-helpers.js' directly instead
5
+ * This file is maintained for backward compatibility but will be removed in a future version.
6
+ */
7
+ // Re-export all functions from the utils directory
8
+ export * from './utils/route-helpers.js';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL3Byb3hpZXMvc21hcnQtcHJveHkvcm91dGUtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILG1EQUFtRDtBQUNuRCxjQUFjLDBCQUEwQixDQUFDIn0=
@@ -1,6 +1,6 @@
1
1
  import * as plugins from '../../plugins.js';
2
- import type { IRouteConfig } from './models/route-types.js';
3
- import type { ISmartProxyOptions, IDomainConfig } from './models/interfaces.js';
2
+ import type { IRouteConfig, TPortRange } from './models/route-types.js';
3
+ import type { ISmartProxyOptions } from './models/interfaces.js';
4
4
  /**
5
5
  * Result of route matching
6
6
  */
@@ -22,14 +22,23 @@ export declare class RouteManager extends plugins.EventEmitter {
22
22
  updateRoutes(routes?: IRouteConfig[]): void;
23
23
  /**
24
24
  * Rebuild the port mapping for fast lookups
25
+ * Also logs information about the ports being listened on
25
26
  */
26
27
  private rebuildPortMap;
27
28
  /**
28
29
  * Expand a port range specification into an array of individual ports
30
+ * Uses caching to improve performance for frequently used port ranges
31
+ *
32
+ * @public - Made public to allow external code to interpret port ranges
29
33
  */
30
- private expandPortRange;
34
+ expandPortRange(portRange: TPortRange): number[];
35
+ /**
36
+ * Memoization cache for expanded port ranges
37
+ */
38
+ private portRangeCache;
31
39
  /**
32
40
  * Get all ports that should be listened on
41
+ * This method automatically infers all required ports from route configurations
33
42
  */
34
43
  getListeningPorts(): number[];
35
44
  /**
@@ -75,15 +84,9 @@ export declare class RouteManager extends plugins.EventEmitter {
75
84
  */
76
85
  private matchPath;
77
86
  /**
78
- * Convert a domain config to routes
79
- * (For backward compatibility with code that still uses domainConfigs)
80
- */
81
- domainConfigToRoutes(domainConfig: IDomainConfig): IRouteConfig[];
82
- /**
83
- * Update routes based on domain configs
84
- * (For backward compatibility with code that still uses domainConfigs)
87
+ * Domain-based configuration methods have been removed
88
+ * as part of the migration to pure route-based configuration
85
89
  */
86
- updateFromDomainConfigs(domainConfigs: IDomainConfig[]): void;
87
90
  /**
88
91
  * Validate the route configuration and return any warnings
89
92
  */