fix(typescript): Refactor types and interfaces to use consistent I prefix and update related tests
This commit is contained in:
@ -1,28 +1,28 @@
|
||||
import * as plugins from '../../../plugins.js';
|
||||
import type { ForwardConfig } from '../../../forwarding/config/forwarding-types.js';
|
||||
import type { IForwardConfig } from '../../../forwarding/config/forwarding-types.js';
|
||||
|
||||
/**
|
||||
* Provision object for static or HTTP-01 certificate
|
||||
*/
|
||||
export type SmartProxyCertProvisionObject = plugins.tsclass.network.ICert | 'http01';
|
||||
export type TSmartProxyCertProvisionObject = plugins.tsclass.network.ICert | 'http01';
|
||||
|
||||
/**
|
||||
* Domain configuration with forwarding configuration
|
||||
*/
|
||||
export interface DomainConfig {
|
||||
export interface IDomainConfig {
|
||||
domains: string[]; // Glob patterns for domain(s)
|
||||
forwarding: ForwardConfig; // Unified forwarding configuration
|
||||
forwarding: IForwardConfig; // Unified forwarding configuration
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration options for the SmartProxy
|
||||
*/
|
||||
import type { AcmeOptions } from '../../../certificate/models/certificate-types.js';
|
||||
export interface SmartProxyOptions {
|
||||
import type { IAcmeOptions } from '../../../certificate/models/certificate-types.js';
|
||||
export interface ISmartProxyOptions {
|
||||
fromPort: number;
|
||||
toPort: number;
|
||||
targetIP?: string; // Global target host to proxy to, defaults to 'localhost'
|
||||
domainConfigs: DomainConfig[];
|
||||
domainConfigs: IDomainConfig[];
|
||||
sniEnabled?: boolean;
|
||||
defaultAllowedIPs?: string[];
|
||||
defaultBlockedIPs?: string[];
|
||||
@ -81,19 +81,19 @@ export interface SmartProxyOptions {
|
||||
networkProxyPort?: number; // Port where NetworkProxy is listening (default: 8443)
|
||||
|
||||
// ACME configuration options for SmartProxy
|
||||
acme?: AcmeOptions;
|
||||
|
||||
acme?: IAcmeOptions;
|
||||
|
||||
/**
|
||||
* Optional certificate provider callback. Return 'http01' to use HTTP-01 challenges,
|
||||
* or a static certificate object for immediate provisioning.
|
||||
*/
|
||||
certProvisionFunction?: (domain: string) => Promise<SmartProxyCertProvisionObject>;
|
||||
certProvisionFunction?: (domain: string) => Promise<TSmartProxyCertProvisionObject>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enhanced connection record
|
||||
*/
|
||||
export interface ConnectionRecord {
|
||||
export interface IConnectionRecord {
|
||||
id: string; // Unique connection identifier
|
||||
incoming: plugins.net.Socket;
|
||||
outgoing: plugins.net.Socket | null;
|
||||
@ -116,7 +116,7 @@ export interface ConnectionRecord {
|
||||
isTLS: boolean; // Whether this connection is a TLS connection
|
||||
tlsHandshakeComplete: boolean; // Whether the TLS handshake is complete
|
||||
hasReceivedInitialData: boolean; // Whether initial data has been received
|
||||
domainConfig?: DomainConfig; // Associated domain config for this connection
|
||||
domainConfig?: IDomainConfig; // Associated domain config for this connection
|
||||
|
||||
// Keep-alive tracking
|
||||
hasKeepAlive: boolean; // Whether keep-alive is enabled for this connection
|
||||
@ -133,10 +133,4 @@ export interface ConnectionRecord {
|
||||
// Browser connection tracking
|
||||
isBrowserConnection?: boolean; // Whether this connection appears to be from a browser
|
||||
domainSwitches?: number; // Number of times the domain has been switched on this connection
|
||||
}
|
||||
|
||||
// Backward compatibility types
|
||||
export type ISmartProxyCertProvisionObject = SmartProxyCertProvisionObject;
|
||||
export interface IDomainConfig extends DomainConfig {}
|
||||
export interface ISmartProxyOptions extends SmartProxyOptions {}
|
||||
export interface IConnectionRecord extends ConnectionRecord {}
|
||||
}
|
Reference in New Issue
Block a user