UNPKG

flagpole

Version:

Simple and fast DOM integration, headless or headful browser, and REST API testing framework.

138 lines (137 loc) 4.31 kB
/// <reference types="node" /> import { KeyValue } from "./interfaces"; import { HttpResponse } from "./httpresponse"; import { LaunchOptions } from "puppeteer-core"; import * as FormData from "form-data"; export declare type HttpRequestType = "generic" | "json" | "image"; export declare const HttpMethodVerbAllowedValues: string[]; export declare type HttpMethodVerb = "get" | "head" | "delete" | "patch" | "post" | "put" | "options"; export declare type HttpAuthType = "basic" | "digest" | "auto"; export interface BrowserOptions extends LaunchOptions { width?: number; height?: number; recordConsole?: boolean; outputConsole?: boolean; product?: "chrome" | "firefox"; ignoreHTTPSErrors?: boolean; headless?: boolean; executablePath?: string; slowMo?: number; args?: string[]; ignoreDefaultArgs?: boolean | string[]; timeout?: number; devtools?: boolean; defaultViewport?: { width?: number; height?: number; deviceScaleFactor?: number; isMobile?: boolean; hasTouch?: boolean; isLandscape?: boolean; }; handleSIGINT?: boolean; handleSIGTERM?: boolean; handleSIGHUP?: boolean; dumpio?: boolean; userDataDir?: string; env?: { [key: string]: any; }; pipe?: boolean; extraPrefsFirefox?: any; } export declare type HttpAuth = { username: string; password: string; }; export declare type HttpTimeout = { read?: number; open?: number; response?: number; }; export declare type HttpProxy = { host: string; port: number; auth: HttpAuth; }; export declare type HttpData = Buffer | KeyValue | NodeJS.ReadableStream | string | null | undefined; export declare type HttpRequestOptions = { browserOptions?: BrowserOptions; auth?: HttpAuth; authType?: HttpAuthType; data?: HttpData; cookies?: KeyValue; headers?: KeyValue; maxRedirects?: number; method?: HttpMethodVerb; outputFile?: string; proxy?: HttpProxy; timeout?: HttpTimeout | number; type?: HttpRequestType; uri?: string | null; verifyCert?: boolean; }; export declare class HttpRequest { private _uri; private _method; private _headers; private _cookies; private _verifyCert; private _proxy; private _timeout; private _maxRedirects; private _auth; private _authType; private _data; private _fetched; private _browser; private _type; private _outputFile?; get uri(): string | null; set uri(value: string | null); get method(): HttpMethodVerb; set method(value: HttpMethodVerb); get type(): HttpRequestType; set type(value: HttpRequestType); get headers(): KeyValue; set headers(value: KeyValue); get cookies(): KeyValue; set cookies(value: KeyValue); get auth(): HttpAuth | undefined; set auth(value: HttpAuth | undefined); get authType(): HttpAuthType | undefined; set authType(value: HttpAuthType | undefined); get maxRedirects(): number; set maxRedirects(value: number); get timeout(): HttpTimeout; set timeout(value: HttpTimeout); get proxy(): HttpProxy | undefined; set proxy(value: HttpProxy | undefined); get verifyCert(): boolean; set verifyCert(value: boolean); get data(): HttpData; set data(value: HttpData); get browser(): BrowserOptions; set browser(value: BrowserOptions); private get proxyAgent(); get isImmutable(): boolean; get outputFile(): string | undefined; set outputFile(value: string | undefined); get options(): HttpRequestOptions; private get needleOptions(); private get httpOptions(); private get gotOptions(); constructor(opts: HttpRequestOptions); private urlEncodeForm; setOptions(opts: HttpRequestOptions): HttpRequest; setCookie(key: string, value: any): void; getCookie(key: string): any; setHeader(key: string, value: any): void; getHeader(key: string): any; setJsonData(data: KeyValue): void; setFormData(formData: FormData): HttpRequest; setFormData(data: KeyValue, isMultipart?: boolean): HttpRequest; fetch(opts?: KeyValue): Promise<HttpResponse>; private _fetchHttp; protected _fetchImage(opts?: KeyValue): Promise<HttpResponse>; }