- Introduced a centralized routing module with comprehensive matchers for domains, headers, IPs, and paths. - Added DomainMatcher for domain pattern matching with support for wildcards and specificity calculation. - Implemented HeaderMatcher for HTTP header matching, including exact matches and pattern support. - Developed IpMatcher for IP address matching, supporting CIDR notation, ranges, and wildcards. - Created PathMatcher for path matching with parameter extraction and wildcard support. - Established RouteSpecificity class to calculate and compare route specificity scores. - Enhanced HttpRouter to utilize the new matching system, supporting both modern and legacy route configurations. - Added detailed logging and error handling for routing operations.
21 lines
1.2 KiB
TypeScript
21 lines
1.2 KiB
TypeScript
/**
|
|
* Proxy implementations module
|
|
*/
|
|
|
|
// Export HttpProxy with selective imports to avoid conflicts
|
|
export { HttpProxy, CertificateManager, ConnectionPool, RequestHandler, WebSocketHandler } from './http-proxy/index.js';
|
|
export type { IMetricsTracker, MetricsTracker } from './http-proxy/index.js';
|
|
// Export http-proxy models except IAcmeOptions
|
|
export type { IHttpProxyOptions, ICertificateEntry, ILogger } from './http-proxy/models/types.js';
|
|
export { RouteManager as HttpProxyRouteManager } from './http-proxy/models/types.js';
|
|
|
|
// Export SmartProxy with selective imports to avoid conflicts
|
|
export { SmartProxy, ConnectionManager, SecurityManager, TimeoutManager, TlsManager, HttpProxyBridge, RouteConnectionHandler } from './smart-proxy/index.js';
|
|
export { SharedRouteManager as SmartProxyRouteManager } from '../core/utils/route-manager.js';
|
|
export * from './smart-proxy/utils/index.js';
|
|
// Export smart-proxy models except IAcmeOptions
|
|
export type { ISmartProxyOptions, IConnectionRecord, IRouteConfig, IRouteMatch, IRouteAction, IRouteTls, IRouteContext } from './smart-proxy/models/index.js';
|
|
|
|
// Export NFTables proxy (no conflicts)
|
|
export * from './nftables-proxy/index.js';
|