44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { ProtoHostPort } from './parse-host-uri';
|
|
/**
|
|
* Configuration for HTTP CONNECT proxying.
|
|
*/
|
|
export interface HttpConnectProxyConfig {
|
|
type: 'http-connect';
|
|
/**
|
|
* Address of the HTTP CONNECT proxy server, in either `hostname:port` or `http://hostname:port` formats.
|
|
*
|
|
* Port is required, and only the `http` scheme is supported. Raw IPv6 addresses must be wrapped in square brackets
|
|
* (e.g. `[ipv6]:port`).
|
|
*/
|
|
targetHost: string;
|
|
/**
|
|
* Basic auth for the HTTP CONNECT proxy, if any.
|
|
*
|
|
* Neither username nor password may contain `:` or `@`.
|
|
*
|
|
* Note that these credentials will be exposed through environment variables, and will be exchanged in non-encrypted
|
|
* form ovrer the network. The connection to the proxy server is not encrypted.
|
|
*/
|
|
basicAuth?: {
|
|
username: string;
|
|
password: string;
|
|
};
|
|
}
|
|
export type ProxyConfig = HttpConnectProxyConfig;
|
|
/**
|
|
* Parse the address of a HTTP CONNECT proxy endpoint.
|
|
*
|
|
* - The URI may only contain a scheme, a hostname, and a port;
|
|
* - If specified, scheme must be 'http';
|
|
* - Port is required.
|
|
*
|
|
* Examples of valid URIs:
|
|
*
|
|
* ```
|
|
* 127.0.0.1:8080 => { scheme: 'http', host: '192.168.0.1', port: 8080 }
|
|
* my.temporal.service.com:8888 => { scheme: 'http', host: 'my.temporal.service.com', port: 8888 }
|
|
* [::ffff:192.0.2.128]:8080 => { scheme: 'http', host: '::ffff:192.0.2.128', port: 8080 }
|
|
* ```
|
|
*/
|
|
export declare function parseHttpConnectProxyAddress(target: string): ProtoHostPort;
|