From e040b42ca3bcefc47b36cd021464a2f5dc1ca6f1 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Thu, 27 Feb 2025 14:28:24 +0100 Subject: [PATCH] update docs --- docs/src/api/class-apirequestcontext.md | 58 +- packages/playwright-client/types/types.d.ts | 1093 +++++++++++++++++- packages/playwright-core/src/client/fetch.ts | 2 +- packages/playwright-core/types/types.d.ts | 1093 +++++++++++++++++- utils/generate_types/overrides.d.ts | 1 + 5 files changed, 2220 insertions(+), 27 deletions(-) diff --git a/docs/src/api/class-apirequestcontext.md b/docs/src/api/class-apirequestcontext.md index d84c8a335c..ff51ae02ab 100644 --- a/docs/src/api/class-apirequestcontext.md +++ b/docs/src/api/class-apirequestcontext.md @@ -918,14 +918,68 @@ Defaults to `true`. Set to `false` to omit IndexedDB from snapshot. ## event: APIRequestContext.apiRequest * since: v1.51 -- argument: <[APIRequestEvent]> +- argument: <[Object]> + - `guid` <[string]> request GUID + - `url` <[URL]> request URL + - `method` <[string]> request method + - `headers` <[Object]<[string], [string]>> request headers + - `cookies` <[Array]<[Object]>> + - `name` <[string]> + - `value` <[string]> + - `postData` ?<[Buffer]> request post data Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is read-only. ## event: APIRequestContext.apiRequestFinished * since: v1.51 -- argument: <[APIRequestFinishedEvent]> +- argument: <[Object]> + - `httpVersion` <[string]> HTTP version + - `rawHeaders` <[Array]<[string]>> raw headers + - `statusCode` <[int]> status code + - `statusMessage` <[string]> status message + - `body` ?<[Buffer]> response body + - `headers` <[IncomingHttpHeaders]>> response headers + - `serverIPAddress` ?<[string]> server IP address + - `serverPort` ?<[int]> server port + - `timings` <[Object]> + - `blocked` ?<[int]> + - `dns` ?<[int]> + - `connect` ?<[int]> + - `send` <[int]> + - `wait` <[int]> + - `receive` <[int]> + - `ssl` ?<[int]> + - `comment` ?<[string]> + - `cookies` <[Array]<[Object]>> + - `name` <[string]> + - `value` <[string]> + - `domain` <[string]> + - `path` <[string]> + - `expires` <[float]> Unix time in seconds. + - `httpOnly` <[boolean]> + - `secure` <[boolean]> + - `sameSite` <[SameSiteAttribute]<"Strict"|"Lax"|"None">> + - `securityDetails` ?<[Object]> security details + - `issuer` ?<[string]> Common Name component of the Issuer field. + from the certificate. This should only be used for informational purposes. Optional. + - `protocol` ?<[string]> The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + - `subjectName` ?<[string]> Common Name component of the Subject + field from the certificate. This should only be used for informational purposes. Optional. + - `validFrom` ?<[float]> Unix timestamp (in seconds) specifying + when this cert becomes valid. Optional. + - `validTo` ?<[float]> Unix timestamp (in seconds) specifying + when this cert becomes invalid. Optional. + - `requestEvent` <[Object]> request event object + - `guid` <[string]> request GUID + - `url` <[URL]> request URL + - `method` <[string]> request method + - `headers` <[Object]<[string], [string]>> request headers + - `cookies` <[Array]<[Object]>> + - `name` <[string]> + - `value` <[string]> + - `postData` ?<[Buffer]> request post data + Emitted when a request finishes in any requests created through this context. The sequence of events is `apirequest` and `apirequestfinished` diff --git a/packages/playwright-client/types/types.d.ts b/packages/playwright-client/types/types.d.ts index d5f746ad23..e516ee2b3c 100644 --- a/packages/playwright-client/types/types.d.ts +++ b/packages/playwright-client/types/types.d.ts @@ -17,6 +17,7 @@ import { ChildProcess } from 'child_process'; import { Readable } from 'stream'; import { ReadStream } from 'fs'; +import type { IncomingHttpHeaders } from 'http'; import { Protocol } from './protocol'; import { Serializable, EvaluationArgument, PageFunction, PageFunctionOn, SmartHandle, ElementHandleForTag, BindingSource } from './structs'; @@ -17852,67 +17853,1135 @@ export interface APIRequestContext { * Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is * read-only. */ - on(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + on(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Emitted when a request finishes in any requests created through this context. The sequence of events is * `apirequest` and `apirequestfinished` */ - on(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + on(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + once(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + once(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is * read-only. */ - addListener(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + addListener(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Emitted when a request finishes in any requests created through this context. The sequence of events is * `apirequest` and `apirequestfinished` */ - addListener(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + addListener(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + removeListener(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + removeListener(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + off(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + off(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is * read-only. */ - prependListener(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + prependListener(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Emitted when a request finishes in any requests created through this context. The sequence of events is * `apirequest` and `apirequestfinished` */ - prependListener(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + prependListener(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Sends HTTP(S) [DELETE](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE) request and returns its diff --git a/packages/playwright-core/src/client/fetch.ts b/packages/playwright-core/src/client/fetch.ts index 72c8c1900f..55591ac25b 100644 --- a/packages/playwright-core/src/client/fetch.ts +++ b/packages/playwright-core/src/client/fetch.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { APIRequestEvent, APIRequestFinishedEvent } from 'playwright-core/lib/server/fetch'; import { toClientCertificatesProtocol } from './browserContext'; import { ChannelOwner } from './channelOwner'; @@ -27,6 +26,7 @@ import { headersObjectToArray } from '../utils/isomorphic/headers'; import { isString } from '../utils/isomorphic/rtti'; import { Events } from './events'; +import type { APIRequestEvent, APIRequestFinishedEvent } from 'playwright-core/lib/server/fetch'; import type { Playwright } from './playwright'; import type { ClientCertificate, FilePayload, Headers, SetStorageState, StorageState } from './types'; import type { Serializable } from '../../types/structs'; diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index d5f746ad23..e516ee2b3c 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -17,6 +17,7 @@ import { ChildProcess } from 'child_process'; import { Readable } from 'stream'; import { ReadStream } from 'fs'; +import type { IncomingHttpHeaders } from 'http'; import { Protocol } from './protocol'; import { Serializable, EvaluationArgument, PageFunction, PageFunctionOn, SmartHandle, ElementHandleForTag, BindingSource } from './structs'; @@ -17852,67 +17853,1135 @@ export interface APIRequestContext { * Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is * read-only. */ - on(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + on(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Emitted when a request finishes in any requests created through this context. The sequence of events is * `apirequest` and `apirequestfinished` */ - on(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + on(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + once(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + once(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is * read-only. */ - addListener(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + addListener(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Emitted when a request finishes in any requests created through this context. The sequence of events is * `apirequest` and `apirequestfinished` */ - addListener(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + addListener(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + removeListener(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + removeListener(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + off(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + off(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Emitted when a request is issued from any requests created through this context. The [APIRequestEvent] object is * read-only. */ - prependListener(event: 'apirequest', listener: (aPIRequestEvent: APIRequestEvent) => any): this; + prependListener(event: 'apirequest', listener: (data: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }) => any): this; /** * Emitted when a request finishes in any requests created through this context. The sequence of events is * `apirequest` and `apirequestfinished` */ - prependListener(event: 'apirequestfinished', listener: (aPIRequestFinishedEvent: APIRequestFinishedEvent) => any): this; + prependListener(event: 'apirequestfinished', listener: (data: { + /** + * HTTP version + */ + httpVersion: string; + + /** + * raw headers + */ + rawHeaders: Array; + + /** + * status code + */ + statusCode: number; + + /** + * status message + */ + statusMessage: string; + + /** + * response body + */ + body?: Buffer; + + /** + * response headers + */ + headers: IncomingHttpHeaders; + + /** + * server IP address + */ + serverIPAddress?: string; + + /** + * server port + */ + serverPort?: number; + + timings: { + blocked?: number; + + dns?: number; + + connect?: number; + + send: number; + + wait: number; + + receive: number; + + ssl?: number; + + comment?: string; + }; + + cookies: Array<{ + name: string; + + value: string; + + domain: string; + + path: string; + + /** + * Unix time in seconds. + */ + expires: number; + + httpOnly: boolean; + + secure: boolean; + + sameSite: "Strict"|"Lax"|"None"; + }>; + + /** + * security details + */ + securityDetails?: { + /** + * Common Name component of the Issuer field. from the certificate. This should only be used for informational + * purposes. Optional. + */ + issuer?: string; + + /** + * The specific TLS protocol used. (e.g. `TLS 1.3`). Optional. + */ + protocol?: string; + + /** + * Common Name component of the Subject field from the certificate. This should only be used for informational + * purposes. Optional. + */ + subjectName?: string; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes valid. Optional. + */ + validFrom?: number; + + /** + * Unix timestamp (in seconds) specifying when this cert becomes invalid. Optional. + */ + validTo?: number; + }; + + /** + * request event object + */ + requestEvent: { + /** + * request GUID + */ + guid: string; + + /** + * request URL + */ + url: URL; + + /** + * request method + */ + method: string; + + /** + * request headers + */ + headers: { [key: string]: string; }; + + cookies: Array<{ + name: string; + + value: string; + }>; + + /** + * request post data + */ + postData?: Buffer; + }; + }) => any): this; /** * Sends HTTP(S) [DELETE](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE) request and returns its diff --git a/utils/generate_types/overrides.d.ts b/utils/generate_types/overrides.d.ts index de8c95376b..bea22eff86 100644 --- a/utils/generate_types/overrides.d.ts +++ b/utils/generate_types/overrides.d.ts @@ -16,6 +16,7 @@ import { ChildProcess } from 'child_process'; import { Readable } from 'stream'; import { ReadStream } from 'fs'; +import type { IncomingHttpHeaders } from 'http'; import { Protocol } from './protocol'; import { Serializable, EvaluationArgument, PageFunction, PageFunctionOn, SmartHandle, ElementHandleForTag, BindingSource } from './structs';