playwright/src/protocol/validator.ts

1384 lines
44 KiB
TypeScript
Raw Normal View History

/**
* Copyright (c) Microsoft Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// This file is generated by generate_channels.js, do not edit manually.
import { Validator, ValidationError, tOptional, tObject, tBoolean, tNumber, tString, tAny, tEnum, tArray, tBinary } from './validatorPrimitives';
export { Validator, ValidationError } from './validatorPrimitives';
type Scheme = { [key: string]: Validator };
export function createScheme(tChannel: (name: string) => Validator): Scheme {
const scheme: Scheme = {};
const tType = (name: string): Validator => {
return (arg: any, path: string) => {
const v = scheme[name];
if (!v)
throw new ValidationError(path + ': unknown type "' + name + '"');
return v(arg, path);
};
};
scheme.StackFrame = tObject({
file: tString,
line: tOptional(tNumber),
column: tOptional(tNumber),
function: tOptional(tString),
});
scheme.Metadata = tObject({
stack: tOptional(tArray(tType('StackFrame'))),
apiName: tOptional(tString),
collectLogs: tOptional(tBoolean),
});
scheme.Point = tObject({
x: tNumber,
y: tNumber,
});
scheme.Rect = tObject({
x: tNumber,
y: tNumber,
width: tNumber,
height: tNumber,
});
scheme.SerializedValue = tObject({
n: tOptional(tNumber),
b: tOptional(tBoolean),
s: tOptional(tString),
v: tOptional(tEnum(['null', 'undefined', 'NaN', 'Infinity', '-Infinity', '-0'])),
d: tOptional(tString),
r: tOptional(tObject({
p: tString,
f: tString,
})),
a: tOptional(tArray(tType('SerializedValue'))),
o: tOptional(tArray(tObject({
k: tString,
v: tType('SerializedValue'),
}))),
h: tOptional(tNumber),
});
scheme.SerializedArgument = tObject({
value: tType('SerializedValue'),
handles: tArray(tChannel('*')),
});
scheme.AXNode = tObject({
role: tString,
name: tString,
valueString: tOptional(tString),
valueNumber: tOptional(tNumber),
description: tOptional(tString),
keyshortcuts: tOptional(tString),
roledescription: tOptional(tString),
valuetext: tOptional(tString),
disabled: tOptional(tBoolean),
expanded: tOptional(tBoolean),
focused: tOptional(tBoolean),
modal: tOptional(tBoolean),
multiline: tOptional(tBoolean),
multiselectable: tOptional(tBoolean),
readonly: tOptional(tBoolean),
required: tOptional(tBoolean),
selected: tOptional(tBoolean),
checked: tOptional(tEnum(['checked', 'unchecked', 'mixed'])),
pressed: tOptional(tEnum(['pressed', 'released', 'mixed'])),
level: tOptional(tNumber),
valuemin: tOptional(tNumber),
valuemax: tOptional(tNumber),
autocomplete: tOptional(tString),
haspopup: tOptional(tString),
invalid: tOptional(tString),
orientation: tOptional(tString),
children: tOptional(tArray(tType('AXNode'))),
});
scheme.SetNetworkCookie = tObject({
name: tString,
value: tString,
url: tOptional(tString),
domain: tOptional(tString),
path: tOptional(tString),
expires: tOptional(tNumber),
httpOnly: tOptional(tBoolean),
secure: tOptional(tBoolean),
sameSite: tOptional(tEnum(['Strict', 'Lax', 'None'])),
});
scheme.NetworkCookie = tObject({
name: tString,
value: tString,
domain: tString,
path: tString,
expires: tNumber,
httpOnly: tBoolean,
secure: tBoolean,
sameSite: tEnum(['Strict', 'Lax', 'None']),
});
scheme.NameValue = tObject({
name: tString,
value: tString,
});
scheme.OriginStorage = tObject({
origin: tString,
localStorage: tArray(tType('NameValue')),
});
scheme.SerializedError = tObject({
error: tOptional(tObject({
message: tString,
name: tString,
stack: tOptional(tString),
})),
value: tOptional(tType('SerializedValue')),
});
2021-06-18 11:04:48 -07:00
scheme.InterceptedResponse = tObject({
request: tChannel('Request'),
status: tNumber,
statusText: tString,
headers: tArray(tType('NameValue')),
2021-06-18 11:04:48 -07:00
});
scheme.FetchRequestFetchParams = tObject({
url: tString,
params: tOptional(tArray(tType('NameValue'))),
method: tOptional(tString),
headers: tOptional(tArray(tType('NameValue'))),
postData: tOptional(tBinary),
timeout: tOptional(tNumber),
failOnStatusCode: tOptional(tBoolean),
});
scheme.FetchRequestFetchResponseBodyParams = tObject({
fetchUid: tString,
});
scheme.FetchRequestDisposeFetchResponseParams = tObject({
fetchUid: tString,
});
scheme.FetchResponse = tObject({
2021-09-08 13:40:07 -07:00
fetchUid: tString,
url: tString,
status: tNumber,
statusText: tString,
headers: tArray(tType('NameValue')),
});
scheme.RootInitializeParams = tObject({
sdkLanguage: tString,
});
scheme.PlaywrightSocksConnectedParams = tObject({
uid: tString,
host: tString,
port: tNumber,
});
scheme.PlaywrightSocksFailedParams = tObject({
uid: tString,
errorCode: tString,
});
scheme.PlaywrightSocksDataParams = tObject({
uid: tString,
data: tBinary,
});
scheme.PlaywrightSocksErrorParams = tObject({
uid: tString,
error: tString,
});
scheme.PlaywrightSocksEndParams = tObject({
uid: tString,
});
scheme.PlaywrightNewRequestParams = tObject({
ignoreHTTPSErrors: tOptional(tBoolean),
});
scheme.SelectorsRegisterParams = tObject({
name: tString,
source: tString,
contentScript: tOptional(tBoolean),
});
scheme.BrowserTypeConnectParams = tObject({
wsEndpoint: tString,
headers: tOptional(tAny),
slowMo: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.BrowserTypeLaunchParams = tObject({
channel: tOptional(tString),
executablePath: tOptional(tString),
args: tOptional(tArray(tString)),
ignoreAllDefaultArgs: tOptional(tBoolean),
ignoreDefaultArgs: tOptional(tArray(tString)),
handleSIGINT: tOptional(tBoolean),
handleSIGTERM: tOptional(tBoolean),
handleSIGHUP: tOptional(tBoolean),
timeout: tOptional(tNumber),
env: tOptional(tArray(tType('NameValue'))),
headless: tOptional(tBoolean),
devtools: tOptional(tBoolean),
proxy: tOptional(tObject({
server: tString,
bypass: tOptional(tString),
username: tOptional(tString),
password: tOptional(tString),
})),
downloadsPath: tOptional(tString),
tracesDir: tOptional(tString),
chromiumSandbox: tOptional(tBoolean),
firefoxUserPrefs: tOptional(tAny),
slowMo: tOptional(tNumber),
});
scheme.BrowserTypeLaunchPersistentContextParams = tObject({
channel: tOptional(tString),
executablePath: tOptional(tString),
args: tOptional(tArray(tString)),
ignoreAllDefaultArgs: tOptional(tBoolean),
ignoreDefaultArgs: tOptional(tArray(tString)),
handleSIGINT: tOptional(tBoolean),
handleSIGTERM: tOptional(tBoolean),
handleSIGHUP: tOptional(tBoolean),
timeout: tOptional(tNumber),
env: tOptional(tArray(tType('NameValue'))),
headless: tOptional(tBoolean),
devtools: tOptional(tBoolean),
proxy: tOptional(tObject({
server: tString,
bypass: tOptional(tString),
username: tOptional(tString),
password: tOptional(tString),
})),
downloadsPath: tOptional(tString),
tracesDir: tOptional(tString),
chromiumSandbox: tOptional(tBoolean),
noDefaultViewport: tOptional(tBoolean),
viewport: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
screen: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
ignoreHTTPSErrors: tOptional(tBoolean),
javaScriptEnabled: tOptional(tBoolean),
bypassCSP: tOptional(tBoolean),
userAgent: tOptional(tString),
locale: tOptional(tString),
timezoneId: tOptional(tString),
geolocation: tOptional(tObject({
longitude: tNumber,
latitude: tNumber,
accuracy: tOptional(tNumber),
})),
permissions: tOptional(tArray(tString)),
extraHTTPHeaders: tOptional(tArray(tType('NameValue'))),
offline: tOptional(tBoolean),
httpCredentials: tOptional(tObject({
username: tString,
password: tString,
})),
deviceScaleFactor: tOptional(tNumber),
isMobile: tOptional(tBoolean),
hasTouch: tOptional(tBoolean),
colorScheme: tOptional(tEnum(['dark', 'light', 'no-preference'])),
reducedMotion: tOptional(tEnum(['reduce', 'no-preference'])),
forcedColors: tOptional(tEnum(['active', 'none'])),
acceptDownloads: tOptional(tBoolean),
baseURL: tOptional(tString),
_debugName: tOptional(tString),
recordVideo: tOptional(tObject({
dir: tString,
size: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
})),
recordHar: tOptional(tObject({
omitContent: tOptional(tBoolean),
path: tString,
})),
strictSelectors: tOptional(tBoolean),
userDataDir: tString,
slowMo: tOptional(tNumber),
});
scheme.BrowserTypeConnectOverCDPParams = tObject({
endpointURL: tString,
headers: tOptional(tArray(tType('NameValue'))),
slowMo: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.BrowserCloseParams = tOptional(tObject({}));
scheme.BrowserKillForTestsParams = tOptional(tObject({}));
scheme.BrowserNewContextParams = tObject({
noDefaultViewport: tOptional(tBoolean),
viewport: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
screen: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
ignoreHTTPSErrors: tOptional(tBoolean),
javaScriptEnabled: tOptional(tBoolean),
bypassCSP: tOptional(tBoolean),
userAgent: tOptional(tString),
locale: tOptional(tString),
timezoneId: tOptional(tString),
geolocation: tOptional(tObject({
longitude: tNumber,
latitude: tNumber,
accuracy: tOptional(tNumber),
})),
permissions: tOptional(tArray(tString)),
extraHTTPHeaders: tOptional(tArray(tType('NameValue'))),
offline: tOptional(tBoolean),
httpCredentials: tOptional(tObject({
username: tString,
password: tString,
})),
deviceScaleFactor: tOptional(tNumber),
isMobile: tOptional(tBoolean),
hasTouch: tOptional(tBoolean),
colorScheme: tOptional(tEnum(['dark', 'light', 'no-preference'])),
reducedMotion: tOptional(tEnum(['reduce', 'no-preference'])),
forcedColors: tOptional(tEnum(['active', 'none'])),
acceptDownloads: tOptional(tBoolean),
baseURL: tOptional(tString),
_debugName: tOptional(tString),
recordVideo: tOptional(tObject({
dir: tString,
size: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
})),
recordHar: tOptional(tObject({
omitContent: tOptional(tBoolean),
path: tString,
})),
strictSelectors: tOptional(tBoolean),
proxy: tOptional(tObject({
server: tString,
bypass: tOptional(tString),
username: tOptional(tString),
password: tOptional(tString),
})),
storageState: tOptional(tObject({
cookies: tOptional(tArray(tType('SetNetworkCookie'))),
origins: tOptional(tArray(tType('OriginStorage'))),
})),
});
2021-04-02 09:47:14 +08:00
scheme.BrowserNewBrowserCDPSessionParams = tOptional(tObject({}));
scheme.BrowserStartTracingParams = tObject({
page: tOptional(tChannel('Page')),
path: tOptional(tString),
screenshots: tOptional(tBoolean),
categories: tOptional(tArray(tString)),
});
2021-04-02 09:47:14 +08:00
scheme.BrowserStopTracingParams = tOptional(tObject({}));
scheme.EventTargetWaitForEventInfoParams = tObject({
info: tObject({
waitId: tString,
phase: tEnum(['before', 'after', 'log']),
event: tOptional(tString),
message: tOptional(tString),
error: tOptional(tString),
}),
});
scheme.BrowserContextWaitForEventInfoParams = tType('EventTargetWaitForEventInfoParams');
scheme.PageWaitForEventInfoParams = tType('EventTargetWaitForEventInfoParams');
scheme.WebSocketWaitForEventInfoParams = tType('EventTargetWaitForEventInfoParams');
scheme.ElectronApplicationWaitForEventInfoParams = tType('EventTargetWaitForEventInfoParams');
scheme.AndroidDeviceWaitForEventInfoParams = tType('EventTargetWaitForEventInfoParams');
scheme.BrowserContextAddCookiesParams = tObject({
cookies: tArray(tType('SetNetworkCookie')),
});
scheme.BrowserContextAddInitScriptParams = tObject({
source: tString,
});
scheme.BrowserContextClearCookiesParams = tOptional(tObject({}));
scheme.BrowserContextClearPermissionsParams = tOptional(tObject({}));
scheme.BrowserContextCloseParams = tOptional(tObject({}));
scheme.BrowserContextCookiesParams = tObject({
urls: tArray(tString),
});
scheme.BrowserContextExposeBindingParams = tObject({
name: tString,
needsHandle: tOptional(tBoolean),
});
scheme.BrowserContextGrantPermissionsParams = tObject({
permissions: tArray(tString),
origin: tOptional(tString),
});
scheme.BrowserContextNewPageParams = tOptional(tObject({}));
scheme.BrowserContextSetDefaultNavigationTimeoutNoReplyParams = tObject({
timeout: tNumber,
});
scheme.BrowserContextSetDefaultTimeoutNoReplyParams = tObject({
timeout: tNumber,
});
scheme.BrowserContextSetExtraHTTPHeadersParams = tObject({
headers: tArray(tType('NameValue')),
});
scheme.BrowserContextSetGeolocationParams = tObject({
geolocation: tOptional(tObject({
longitude: tNumber,
latitude: tNumber,
accuracy: tOptional(tNumber),
})),
});
scheme.BrowserContextSetHTTPCredentialsParams = tObject({
httpCredentials: tOptional(tObject({
username: tString,
password: tString,
})),
});
scheme.BrowserContextSetNetworkInterceptionEnabledParams = tObject({
enabled: tBoolean,
});
scheme.BrowserContextSetOfflineParams = tObject({
offline: tBoolean,
});
scheme.BrowserContextStorageStateParams = tOptional(tObject({}));
2021-01-25 14:49:26 -08:00
scheme.BrowserContextPauseParams = tOptional(tObject({}));
scheme.BrowserContextRecorderSupplementEnableParams = tObject({
language: tOptional(tString),
startRecording: tOptional(tBoolean),
pauseOnNextStatement: tOptional(tBoolean),
2021-01-25 14:49:26 -08:00
launchOptions: tOptional(tAny),
contextOptions: tOptional(tAny),
device: tOptional(tString),
saveStorage: tOptional(tString),
2021-01-25 14:49:26 -08:00
outputFile: tOptional(tString),
});
2021-04-02 09:47:14 +08:00
scheme.BrowserContextNewCDPSessionParams = tObject({
page: tOptional(tChannel('Page')),
frame: tOptional(tChannel('Frame')),
});
scheme.BrowserContextTracingStartParams = tObject({
name: tOptional(tString),
snapshots: tOptional(tBoolean),
screenshots: tOptional(tBoolean),
});
scheme.BrowserContextTracingStartChunkParams = tOptional(tObject({}));
scheme.BrowserContextTracingStopChunkParams = tObject({
save: tBoolean,
});
scheme.BrowserContextTracingStopParams = tOptional(tObject({}));
scheme.BrowserContextHarExportParams = tOptional(tObject({}));
scheme.PageSetDefaultNavigationTimeoutNoReplyParams = tObject({
timeout: tNumber,
});
scheme.PageSetDefaultTimeoutNoReplyParams = tObject({
timeout: tNumber,
});
scheme.PageSetFileChooserInterceptedNoReplyParams = tObject({
intercepted: tBoolean,
});
scheme.PageAddInitScriptParams = tObject({
source: tString,
});
scheme.PageCloseParams = tObject({
runBeforeUnload: tOptional(tBoolean),
});
scheme.PageEmulateMediaParams = tObject({
media: tOptional(tEnum(['screen', 'print', 'null'])),
colorScheme: tOptional(tEnum(['dark', 'light', 'no-preference', 'null'])),
reducedMotion: tOptional(tEnum(['reduce', 'no-preference', 'null'])),
forcedColors: tOptional(tEnum(['active', 'none', 'null'])),
});
scheme.PageExposeBindingParams = tObject({
name: tString,
needsHandle: tOptional(tBoolean),
});
scheme.PageGoBackParams = tObject({
timeout: tOptional(tNumber),
waitUntil: tOptional(tEnum(['load', 'domcontentloaded', 'networkidle'])),
});
scheme.PageGoForwardParams = tObject({
timeout: tOptional(tNumber),
waitUntil: tOptional(tEnum(['load', 'domcontentloaded', 'networkidle'])),
});
scheme.PageReloadParams = tObject({
timeout: tOptional(tNumber),
waitUntil: tOptional(tEnum(['load', 'domcontentloaded', 'networkidle'])),
});
scheme.PageScreenshotParams = tObject({
timeout: tOptional(tNumber),
type: tOptional(tEnum(['png', 'jpeg'])),
quality: tOptional(tNumber),
omitBackground: tOptional(tBoolean),
fullPage: tOptional(tBoolean),
clip: tOptional(tType('Rect')),
});
scheme.PageSetExtraHTTPHeadersParams = tObject({
headers: tArray(tType('NameValue')),
});
scheme.PageSetNetworkInterceptionEnabledParams = tObject({
enabled: tBoolean,
});
scheme.PageSetViewportSizeParams = tObject({
viewportSize: tObject({
width: tNumber,
height: tNumber,
}),
});
scheme.PageKeyboardDownParams = tObject({
key: tString,
});
scheme.PageKeyboardUpParams = tObject({
key: tString,
});
scheme.PageKeyboardInsertTextParams = tObject({
text: tString,
});
scheme.PageKeyboardTypeParams = tObject({
text: tString,
delay: tOptional(tNumber),
});
scheme.PageKeyboardPressParams = tObject({
key: tString,
delay: tOptional(tNumber),
});
scheme.PageMouseMoveParams = tObject({
x: tNumber,
y: tNumber,
steps: tOptional(tNumber),
});
scheme.PageMouseDownParams = tObject({
button: tOptional(tEnum(['left', 'right', 'middle'])),
clickCount: tOptional(tNumber),
});
scheme.PageMouseUpParams = tObject({
button: tOptional(tEnum(['left', 'right', 'middle'])),
clickCount: tOptional(tNumber),
});
scheme.PageMouseClickParams = tObject({
x: tNumber,
y: tNumber,
delay: tOptional(tNumber),
button: tOptional(tEnum(['left', 'right', 'middle'])),
clickCount: tOptional(tNumber),
});
2021-09-14 15:22:52 -04:00
scheme.PageMouseWheelParams = tObject({
deltaX: tNumber,
deltaY: tNumber,
});
2020-10-19 10:07:33 -07:00
scheme.PageTouchscreenTapParams = tObject({
x: tNumber,
y: tNumber,
});
scheme.PageAccessibilitySnapshotParams = tObject({
interestingOnly: tOptional(tBoolean),
root: tOptional(tChannel('ElementHandle')),
});
scheme.PagePdfParams = tObject({
scale: tOptional(tNumber),
displayHeaderFooter: tOptional(tBoolean),
headerTemplate: tOptional(tString),
footerTemplate: tOptional(tString),
printBackground: tOptional(tBoolean),
landscape: tOptional(tBoolean),
pageRanges: tOptional(tString),
format: tOptional(tString),
width: tOptional(tString),
height: tOptional(tString),
preferCSSPageSize: tOptional(tBoolean),
margin: tOptional(tObject({
top: tOptional(tString),
bottom: tOptional(tString),
left: tOptional(tString),
right: tOptional(tString),
})),
});
2021-04-02 09:47:14 +08:00
scheme.PageStartJSCoverageParams = tObject({
resetOnNavigation: tOptional(tBoolean),
reportAnonymousScripts: tOptional(tBoolean),
});
2021-04-02 09:47:14 +08:00
scheme.PageStopJSCoverageParams = tOptional(tObject({}));
scheme.PageStartCSSCoverageParams = tObject({
resetOnNavigation: tOptional(tBoolean),
});
2021-04-02 09:47:14 +08:00
scheme.PageStopCSSCoverageParams = tOptional(tObject({}));
scheme.PageBringToFrontParams = tOptional(tObject({}));
scheme.FrameEvalOnSelectorParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.FrameEvalOnSelectorAllParams = tObject({
selector: tString,
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.FrameAddScriptTagParams = tObject({
url: tOptional(tString),
content: tOptional(tString),
type: tOptional(tString),
});
scheme.FrameAddStyleTagParams = tObject({
url: tOptional(tString),
content: tOptional(tString),
});
scheme.FrameCheckParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
position: tOptional(tType('Point')),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.FrameClickParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
delay: tOptional(tNumber),
button: tOptional(tEnum(['left', 'right', 'middle'])),
clickCount: tOptional(tNumber),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.FrameContentParams = tOptional(tObject({}));
scheme.FrameDragAndDropParams = tObject({
source: tString,
target: tString,
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
sourcePosition: tOptional(tType('Point')),
targetPosition: tOptional(tType('Point')),
});
scheme.FrameDblclickParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
delay: tOptional(tNumber),
button: tOptional(tEnum(['left', 'right', 'middle'])),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.FrameDispatchEventParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
type: tString,
eventInit: tType('SerializedArgument'),
timeout: tOptional(tNumber),
});
scheme.FrameEvaluateExpressionParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.FrameEvaluateExpressionHandleParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.FrameFillParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
value: tString,
force: tOptional(tBoolean),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
scheme.FrameFocusParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameFrameElementParams = tOptional(tObject({}));
scheme.FrameGetAttributeParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
name: tString,
timeout: tOptional(tNumber),
});
scheme.FrameGotoParams = tObject({
url: tString,
timeout: tOptional(tNumber),
waitUntil: tOptional(tEnum(['load', 'domcontentloaded', 'networkidle'])),
referer: tOptional(tString),
});
scheme.FrameHoverParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
force: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.FrameInnerHTMLParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameInnerTextParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameInputValueParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameIsCheckedParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameIsDisabledParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameIsEnabledParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameIsHiddenParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
});
scheme.FrameIsVisibleParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
});
scheme.FrameIsEditableParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FramePressParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
key: tString,
delay: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameQuerySelectorParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
});
scheme.FrameQuerySelectorAllParams = tObject({
selector: tString,
});
scheme.FrameSelectOptionParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
elements: tOptional(tArray(tChannel('ElementHandle'))),
options: tOptional(tArray(tObject({
value: tOptional(tString),
label: tOptional(tString),
index: tOptional(tNumber),
}))),
force: tOptional(tBoolean),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
scheme.FrameSetContentParams = tObject({
html: tString,
timeout: tOptional(tNumber),
waitUntil: tOptional(tEnum(['load', 'domcontentloaded', 'networkidle'])),
});
scheme.FrameSetInputFilesParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
files: tArray(tObject({
name: tString,
mimeType: tOptional(tString),
buffer: tBinary,
})),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
2020-10-19 10:07:33 -07:00
scheme.FrameTapParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
2020-10-19 10:07:33 -07:00
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
2020-10-19 10:07:33 -07:00
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
2020-10-19 10:07:33 -07:00
});
scheme.FrameTextContentParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameTitleParams = tOptional(tObject({}));
scheme.FrameTypeParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
text: tString,
delay: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.FrameUncheckParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
position: tOptional(tType('Point')),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.FrameWaitForFunctionParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
timeout: tOptional(tNumber),
pollingInterval: tOptional(tNumber),
});
scheme.FrameWaitForSelectorParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
state: tOptional(tEnum(['attached', 'detached', 'visible', 'hidden'])),
});
scheme.WorkerEvaluateExpressionParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.WorkerEvaluateExpressionHandleParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.JSHandleDisposeParams = tOptional(tObject({}));
scheme.ElementHandleDisposeParams = tType('JSHandleDisposeParams');
scheme.JSHandleEvaluateExpressionParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.ElementHandleEvaluateExpressionParams = tType('JSHandleEvaluateExpressionParams');
scheme.JSHandleEvaluateExpressionHandleParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.ElementHandleEvaluateExpressionHandleParams = tType('JSHandleEvaluateExpressionHandleParams');
scheme.JSHandleGetPropertyListParams = tOptional(tObject({}));
scheme.ElementHandleGetPropertyListParams = tType('JSHandleGetPropertyListParams');
scheme.JSHandleGetPropertyParams = tObject({
name: tString,
});
scheme.ElementHandleGetPropertyParams = tType('JSHandleGetPropertyParams');
scheme.JSHandleJsonValueParams = tOptional(tObject({}));
scheme.ElementHandleJsonValueParams = tType('JSHandleJsonValueParams');
scheme.ElementHandleEvalOnSelectorParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.ElementHandleEvalOnSelectorAllParams = tObject({
selector: tString,
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.ElementHandleBoundingBoxParams = tOptional(tObject({}));
scheme.ElementHandleCheckParams = tObject({
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
position: tOptional(tType('Point')),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.ElementHandleClickParams = tObject({
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
delay: tOptional(tNumber),
button: tOptional(tEnum(['left', 'right', 'middle'])),
clickCount: tOptional(tNumber),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.ElementHandleContentFrameParams = tOptional(tObject({}));
scheme.ElementHandleDblclickParams = tObject({
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
delay: tOptional(tNumber),
button: tOptional(tEnum(['left', 'right', 'middle'])),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.ElementHandleDispatchEventParams = tObject({
type: tString,
eventInit: tType('SerializedArgument'),
});
scheme.ElementHandleFillParams = tObject({
value: tString,
force: tOptional(tBoolean),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
scheme.ElementHandleFocusParams = tOptional(tObject({}));
scheme.ElementHandleGetAttributeParams = tObject({
name: tString,
});
scheme.ElementHandleHoverParams = tObject({
force: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.ElementHandleInnerHTMLParams = tOptional(tObject({}));
scheme.ElementHandleInnerTextParams = tOptional(tObject({}));
scheme.ElementHandleInputValueParams = tOptional(tObject({}));
scheme.ElementHandleIsCheckedParams = tOptional(tObject({}));
scheme.ElementHandleIsDisabledParams = tOptional(tObject({}));
scheme.ElementHandleIsEditableParams = tOptional(tObject({}));
scheme.ElementHandleIsEnabledParams = tOptional(tObject({}));
scheme.ElementHandleIsHiddenParams = tOptional(tObject({}));
scheme.ElementHandleIsVisibleParams = tOptional(tObject({}));
scheme.ElementHandleOwnerFrameParams = tOptional(tObject({}));
scheme.ElementHandlePressParams = tObject({
key: tString,
delay: tOptional(tNumber),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
scheme.ElementHandleQuerySelectorParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
});
scheme.ElementHandleQuerySelectorAllParams = tObject({
selector: tString,
});
scheme.ElementHandleScreenshotParams = tObject({
timeout: tOptional(tNumber),
type: tOptional(tEnum(['png', 'jpeg'])),
quality: tOptional(tNumber),
omitBackground: tOptional(tBoolean),
});
scheme.ElementHandleScrollIntoViewIfNeededParams = tObject({
timeout: tOptional(tNumber),
});
scheme.ElementHandleSelectOptionParams = tObject({
elements: tOptional(tArray(tChannel('ElementHandle'))),
options: tOptional(tArray(tObject({
value: tOptional(tString),
label: tOptional(tString),
index: tOptional(tNumber),
}))),
force: tOptional(tBoolean),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
scheme.ElementHandleSelectTextParams = tObject({
force: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.ElementHandleSetInputFilesParams = tObject({
files: tArray(tObject({
name: tString,
mimeType: tOptional(tString),
buffer: tBinary,
})),
timeout: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
});
2020-10-19 10:07:33 -07:00
scheme.ElementHandleTapParams = tObject({
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))),
position: tOptional(tType('Point')),
2020-10-19 10:07:33 -07:00
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
2020-10-19 10:07:33 -07:00
});
scheme.ElementHandleTextContentParams = tOptional(tObject({}));
scheme.ElementHandleTypeParams = tObject({
text: tString,
delay: tOptional(tNumber),
noWaitAfter: tOptional(tBoolean),
timeout: tOptional(tNumber),
});
scheme.ElementHandleUncheckParams = tObject({
force: tOptional(tBoolean),
noWaitAfter: tOptional(tBoolean),
position: tOptional(tType('Point')),
timeout: tOptional(tNumber),
trial: tOptional(tBoolean),
});
scheme.ElementHandleWaitForElementStateParams = tObject({
state: tEnum(['visible', 'hidden', 'stable', 'enabled', 'disabled', 'editable']),
timeout: tOptional(tNumber),
});
scheme.ElementHandleWaitForSelectorParams = tObject({
selector: tString,
strict: tOptional(tBoolean),
timeout: tOptional(tNumber),
state: tOptional(tEnum(['attached', 'detached', 'visible', 'hidden'])),
});
scheme.RequestResponseParams = tOptional(tObject({}));
scheme.RouteAbortParams = tObject({
2020-07-30 11:14:41 -07:00
errorCode: tOptional(tString),
});
scheme.RouteContinueParams = tObject({
url: tOptional(tString),
method: tOptional(tString),
headers: tOptional(tArray(tType('NameValue'))),
postData: tOptional(tBinary),
2021-06-18 11:04:48 -07:00
interceptResponse: tOptional(tBoolean),
});
scheme.RouteFulfillParams = tObject({
status: tOptional(tNumber),
headers: tOptional(tArray(tType('NameValue'))),
body: tOptional(tString),
isBase64: tOptional(tBoolean),
useInterceptedResponseBody: tOptional(tBoolean),
fetchResponseUid: tOptional(tString),
});
2021-06-18 11:04:48 -07:00
scheme.RouteResponseBodyParams = tOptional(tObject({}));
scheme.ResourceTiming = tObject({
startTime: tNumber,
domainLookupStart: tNumber,
domainLookupEnd: tNumber,
connectStart: tNumber,
secureConnectionStart: tNumber,
connectEnd: tNumber,
requestStart: tNumber,
responseStart: tNumber,
});
scheme.ResponseBodyParams = tOptional(tObject({}));
scheme.ResponseSecurityDetailsParams = tOptional(tObject({}));
scheme.ResponseServerAddrParams = tOptional(tObject({}));
scheme.ResponseRawRequestHeadersParams = tOptional(tObject({}));
scheme.ResponseRawResponseHeadersParams = tOptional(tObject({}));
scheme.ResponseSizesParams = tOptional(tObject({}));
scheme.SecurityDetails = tObject({
issuer: tOptional(tString),
protocol: tOptional(tString),
subjectName: tOptional(tString),
validFrom: tOptional(tNumber),
validTo: tOptional(tNumber),
});
scheme.RequestSizes = tObject({
requestBodySize: tNumber,
requestHeadersSize: tNumber,
responseBodySize: tNumber,
responseHeadersSize: tNumber,
});
scheme.RemoteAddr = tObject({
ipAddress: tString,
port: tNumber,
});
scheme.BindingCallRejectParams = tObject({
error: tType('SerializedError'),
});
scheme.BindingCallResolveParams = tObject({
result: tType('SerializedArgument'),
});
scheme.DialogAcceptParams = tObject({
promptText: tOptional(tString),
});
scheme.DialogDismissParams = tOptional(tObject({}));
scheme.ArtifactPathAfterFinishedParams = tOptional(tObject({}));
scheme.ArtifactSaveAsParams = tObject({
path: tString,
});
scheme.ArtifactSaveAsStreamParams = tOptional(tObject({}));
scheme.ArtifactFailureParams = tOptional(tObject({}));
scheme.ArtifactStreamParams = tOptional(tObject({}));
scheme.ArtifactCancelParams = tOptional(tObject({}));
scheme.ArtifactDeleteParams = tOptional(tObject({}));
scheme.StreamReadParams = tObject({
size: tOptional(tNumber),
});
scheme.StreamCloseParams = tOptional(tObject({}));
scheme.CDPSessionSendParams = tObject({
method: tString,
params: tOptional(tAny),
});
scheme.CDPSessionDetachParams = tOptional(tObject({}));
scheme.ElectronLaunchParams = tObject({
2021-02-01 11:43:26 -08:00
executablePath: tOptional(tString),
args: tOptional(tArray(tString)),
cwd: tOptional(tString),
env: tOptional(tArray(tType('NameValue'))),
timeout: tOptional(tNumber),
acceptDownloads: tOptional(tBoolean),
bypassCSP: tOptional(tBoolean),
colorScheme: tOptional(tEnum(['dark', 'light', 'no-preference'])),
extraHTTPHeaders: tOptional(tArray(tType('NameValue'))),
geolocation: tOptional(tObject({
longitude: tNumber,
latitude: tNumber,
accuracy: tOptional(tNumber),
})),
httpCredentials: tOptional(tObject({
username: tString,
password: tString,
})),
ignoreHTTPSErrors: tOptional(tBoolean),
locale: tOptional(tString),
offline: tOptional(tBoolean),
recordHar: tOptional(tObject({
omitContent: tOptional(tBoolean),
path: tString,
})),
recordVideo: tOptional(tObject({
dir: tString,
size: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
})),
strictSelectors: tOptional(tBoolean),
timezoneId: tOptional(tString),
});
scheme.ElectronApplicationBrowserWindowParams = tObject({
page: tChannel('Page'),
});
scheme.ElectronApplicationEvaluateExpressionParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.ElectronApplicationEvaluateExpressionHandleParams = tObject({
expression: tString,
isFunction: tOptional(tBoolean),
arg: tType('SerializedArgument'),
});
scheme.ElectronApplicationCloseParams = tOptional(tObject({}));
scheme.AndroidDevicesParams = tOptional(tObject({}));
2020-12-09 17:15:24 -08:00
scheme.AndroidSetDefaultTimeoutNoReplyParams = tObject({
timeout: tNumber,
});
scheme.AndroidSocketWriteParams = tObject({
data: tBinary,
});
scheme.AndroidSocketCloseParams = tOptional(tObject({}));
scheme.AndroidDeviceWaitParams = tObject({
selector: tType('AndroidSelector'),
state: tOptional(tEnum(['gone'])),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceFillParams = tObject({
selector: tType('AndroidSelector'),
text: tString,
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceTapParams = tObject({
selector: tType('AndroidSelector'),
duration: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceDragParams = tObject({
selector: tType('AndroidSelector'),
dest: tType('Point'),
speed: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceFlingParams = tObject({
selector: tType('AndroidSelector'),
direction: tEnum(['up', 'down', 'left', 'right']),
speed: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceLongTapParams = tObject({
selector: tType('AndroidSelector'),
timeout: tOptional(tNumber),
});
scheme.AndroidDevicePinchCloseParams = tObject({
selector: tType('AndroidSelector'),
percent: tNumber,
speed: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDevicePinchOpenParams = tObject({
selector: tType('AndroidSelector'),
percent: tNumber,
speed: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceScrollParams = tObject({
selector: tType('AndroidSelector'),
direction: tEnum(['up', 'down', 'left', 'right']),
percent: tNumber,
speed: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceSwipeParams = tObject({
selector: tType('AndroidSelector'),
direction: tEnum(['up', 'down', 'left', 'right']),
percent: tNumber,
speed: tOptional(tNumber),
timeout: tOptional(tNumber),
});
scheme.AndroidDeviceInfoParams = tObject({
selector: tType('AndroidSelector'),
});
2020-12-13 23:20:13 -08:00
scheme.AndroidDeviceScreenshotParams = tOptional(tObject({}));
scheme.AndroidDeviceInputTypeParams = tObject({
text: tString,
});
scheme.AndroidDeviceInputPressParams = tObject({
key: tString,
});
scheme.AndroidDeviceInputTapParams = tObject({
point: tType('Point'),
});
scheme.AndroidDeviceInputSwipeParams = tObject({
segments: tArray(tType('Point')),
steps: tNumber,
});
scheme.AndroidDeviceInputDragParams = tObject({
from: tType('Point'),
to: tType('Point'),
steps: tNumber,
});
scheme.AndroidDeviceLaunchBrowserParams = tObject({
pkg: tOptional(tString),
ignoreHTTPSErrors: tOptional(tBoolean),
javaScriptEnabled: tOptional(tBoolean),
bypassCSP: tOptional(tBoolean),
userAgent: tOptional(tString),
locale: tOptional(tString),
timezoneId: tOptional(tString),
geolocation: tOptional(tObject({
longitude: tNumber,
latitude: tNumber,
accuracy: tOptional(tNumber),
})),
permissions: tOptional(tArray(tString)),
extraHTTPHeaders: tOptional(tArray(tType('NameValue'))),
offline: tOptional(tBoolean),
httpCredentials: tOptional(tObject({
username: tString,
password: tString,
})),
deviceScaleFactor: tOptional(tNumber),
isMobile: tOptional(tBoolean),
hasTouch: tOptional(tBoolean),
colorScheme: tOptional(tEnum(['dark', 'light', 'no-preference'])),
reducedMotion: tOptional(tEnum(['reduce', 'no-preference'])),
forcedColors: tOptional(tEnum(['active', 'none'])),
acceptDownloads: tOptional(tBoolean),
_debugName: tOptional(tString),
recordVideo: tOptional(tObject({
dir: tString,
size: tOptional(tObject({
width: tNumber,
height: tNumber,
})),
})),
recordHar: tOptional(tObject({
omitContent: tOptional(tBoolean),
path: tString,
})),
strictSelectors: tOptional(tBoolean),
proxy: tOptional(tObject({
server: tString,
bypass: tOptional(tString),
username: tOptional(tString),
password: tOptional(tString),
})),
});
scheme.AndroidDeviceOpenParams = tObject({
command: tString,
});
scheme.AndroidDeviceShellParams = tObject({
command: tString,
});
scheme.AndroidDeviceInstallApkParams = tObject({
file: tBinary,
args: tOptional(tArray(tString)),
});
2020-12-13 22:00:37 -08:00
scheme.AndroidDevicePushParams = tObject({
file: tBinary,
path: tString,
mode: tOptional(tNumber),
});
2020-12-09 17:15:24 -08:00
scheme.AndroidDeviceSetDefaultTimeoutNoReplyParams = tObject({
timeout: tNumber,
});
scheme.AndroidDeviceConnectToWebViewParams = tObject({
pid: tNumber,
});
scheme.AndroidDeviceCloseParams = tOptional(tObject({}));
2020-12-09 17:15:24 -08:00
scheme.AndroidWebView = tObject({
pid: tNumber,
pkg: tString,
});
scheme.AndroidSelector = tObject({
checkable: tOptional(tBoolean),
checked: tOptional(tBoolean),
clazz: tOptional(tString),
clickable: tOptional(tBoolean),
depth: tOptional(tNumber),
desc: tOptional(tString),
enabled: tOptional(tBoolean),
focusable: tOptional(tBoolean),
focused: tOptional(tBoolean),
hasChild: tOptional(tObject({
selector: tType('AndroidSelector'),
})),
hasDescendant: tOptional(tObject({
selector: tType('AndroidSelector'),
maxDepth: tOptional(tNumber),
})),
longClickable: tOptional(tBoolean),
pkg: tOptional(tString),
res: tOptional(tString),
scrollable: tOptional(tBoolean),
selected: tOptional(tBoolean),
text: tOptional(tString),
});
scheme.AndroidElementInfo = tObject({
2020-12-13 08:14:32 -08:00
children: tOptional(tArray(tType('AndroidElementInfo'))),
2020-12-09 17:15:24 -08:00
clazz: tString,
desc: tString,
res: tString,
pkg: tString,
text: tString,
bounds: tType('Rect'),
checkable: tBoolean,
checked: tBoolean,
clickable: tBoolean,
enabled: tBoolean,
focusable: tBoolean,
focused: tBoolean,
longClickable: tBoolean,
scrollable: tBoolean,
selected: tBoolean,
});
scheme.JsonPipeSendParams = tObject({
message: tAny,
});
scheme.JsonPipeCloseParams = tOptional(tObject({}));
return scheme;
}