UNPKG

mockttp

Version:

Mock HTTP server for testing HTTP clients and stubbing webservices

112 lines 4.59 kB
import { ClientServerChannel, Serializable, SerializedProxyConfig } from "../../serialization/serialization"; import { Explainable, Headers } from "../../types"; import { ProxyConfig } from '../proxy-config'; import { PassThroughStepConnectionOptions, ForwardingOptions, PassThroughLookupOptions, CADefinition, PassThroughInitialTransforms } from '../passthrough-handling-definitions'; import { CloseConnectionStep, DelayStep, ResetConnectionStep, TimeoutStep } from '../requests/request-step-definitions'; import { Replace } from '../../util/type-utils'; import { SerializedMatchReplacePairs } from '../match-replace'; /** * The definition of a websocket rule step, which can be passed to Mockttp to define * a rule. * * Implementation of the step is not included in the definition classes, but * instead exists in an *Impl class defined separately and used internally. */ export interface WebSocketStepDefinition extends Explainable, Serializable { type: keyof typeof WsStepDefinitionLookup; } export interface PassThroughWebSocketStepOptions extends PassThroughStepConnectionOptions { transformRequest?: WebSocketRequestTransform; } export interface WebSocketRequestTransform extends PassThroughInitialTransforms { /** * Override the request protocol. If replaceHost & matchReplaceHost are not specified * and the URL no explicitly specified port, this will automatically switch to the * appropriate port (e.g. from 80 to 443). */ setProtocol?: 'ws' | 'wss'; } /** * @internal */ export interface SerializedPassThroughWebSocketData { type: 'ws-passthrough'; forwarding?: ForwardingOptions; lookupOptions?: PassThroughLookupOptions; proxyConfig?: SerializedProxyConfig; simulateConnectionErrors?: boolean; ignoreHostCertificateErrors?: string[] | boolean; extraCACertificates?: Array<{ cert: string; } | { certPath: string; }>; clientCertificateHostMap?: { [host: string]: { pfx: string; passphrase?: string; }; }; transformRequest?: Replace<WebSocketRequestTransform, { 'matchReplaceHost'?: { replacements: SerializedMatchReplacePairs; updateHostHeader?: boolean | string; }; 'matchReplacePath'?: SerializedMatchReplacePairs; 'matchReplaceQuery'?: SerializedMatchReplacePairs; }>; } export declare class PassThroughWebSocketStep extends Serializable implements WebSocketStepDefinition { readonly type = "ws-passthrough"; static readonly isFinal = true; readonly lookupOptions: PassThroughLookupOptions | undefined; readonly proxyConfig?: ProxyConfig; readonly simulateConnectionErrors: boolean; readonly ignoreHostHttpsErrors: string[] | boolean; readonly clientCertificateHostMap: { [host: string]: { pfx: Buffer; passphrase?: string; }; }; readonly extraCACertificates: Array<CADefinition>; readonly transformRequest?: WebSocketRequestTransform; constructor(options?: PassThroughWebSocketStepOptions); explain(): string; /** * @internal */ serialize(channel: ClientServerChannel): SerializedPassThroughWebSocketData; } export declare class EchoWebSocketStep extends Serializable implements WebSocketStepDefinition { readonly type = "ws-echo"; static readonly isFinal = true; explain(): string; } export declare class ListenWebSocketStep extends Serializable implements WebSocketStepDefinition { readonly type = "ws-listen"; static readonly isFinal = true; explain(): string; } export declare class RejectWebSocketStep extends Serializable implements WebSocketStepDefinition { readonly statusCode: number; readonly statusMessage: string; readonly headers: Headers; readonly body: Buffer | string; readonly type = "ws-reject"; static readonly isFinal = true; constructor(statusCode: number, statusMessage?: string, headers?: Headers, body?: Buffer | string); explain(): string; } export { CloseConnectionStep, ResetConnectionStep, TimeoutStep, DelayStep }; export declare const WsStepDefinitionLookup: { 'ws-passthrough': typeof PassThroughWebSocketStep; 'ws-echo': typeof EchoWebSocketStep; 'ws-listen': typeof ListenWebSocketStep; 'ws-reject': typeof RejectWebSocketStep; 'close-connection': typeof CloseConnectionStep; 'reset-connection': typeof ResetConnectionStep; timeout: typeof TimeoutStep; delay: typeof DelayStep; }; //# sourceMappingURL=websocket-step-definitions.d.ts.map