UNPKG

appium-remote-debugger

Version:
178 lines (155 loc) 4.68 kB
import type {StringRecord, AppiumLogger} from '@appium/types'; export interface AppInfo { id: string; isProxy: boolean; name: string; bundleId: string; hostId?: string; isActive: boolean; isAutomationEnabled: boolean | string; pageArray?: Page[]; } export interface AppPage { appIdKey: AppIdKey; pageDict: Page; } export interface App { id: string; bundleId: string; } export interface Page { url: string; title: string; id: PageIdKey; isKey: boolean; bundleId?: string; } export type AppDict = StringRecord<AppInfo>; export type EventListener = (error?: Error, event?: StringRecord, method?: string) => any; export interface RemoteDebuggerOptions { /** id of the app being connected to */ bundleId?: string; /** array of possible bundle ids that the inspector could return */ additionalBundleIds?: string[]; /** array of bundle ids to exclude from webview context detection */ ignoredBundleIds?: string[]; /** version of iOS */ platformVersion?: string; isSafari?: boolean; includeSafari?: boolean; /** @deprecated - deprecated for removal, not used anywhere */ useNewSafari?: boolean; /** the time, in ms, that should be waited for page loading */ pageLoadMs?: number; /** the remote debugger's host address */ host?: string; /** the remote debugger port through which to communicate */ port?: number; socketPath?: string; pageReadyTimeout?: number; remoteDebugProxy?: string; garbageCollectOnExecute?: boolean; logFullResponse?: boolean; /** log plists sent and received from Web Inspector */ logAllCommunication?: boolean; /** log communication from Web Inspector as hex dump */ logAllCommunicationHexDump?: boolean; /** The maximum size in bytes of a single data frame in the device communication protocol */ webInspectorMaxFrameLength?: number; /** size, in bytes, of chunks of data sent to Web Inspector (real device only) */ socketChunkSize?: number; fullPageInitialization?: boolean; /** * How long to wait until a new target is created for a page. * Usually, it happens almost instantly, but on slow CI environments this might take some minutes. */ targetCreationTimeoutMs?: number; pageLoadStrategy?: string; log?: AppiumLogger; } interface RemoteDebuggerRealDeviceSpecificOptions { udid: string; } export type RemoteDebuggerRealDeviceOptions = RemoteDebuggerRealDeviceSpecificOptions & RemoteDebuggerOptions; /** * Options for configuring an RpcClient instance. */ export interface RpcClientOptions { bundleId?: string; platformVersion?: string; isSafari?: boolean; logAllCommunication?: boolean; logAllCommunicationHexDump?: boolean; webInspectorMaxFrameLength?: number; socketChunkSize?: number; fullPageInitialization?: boolean; pageLoadTimeoutMs?: number; udid?: string; targetCreationTimeoutMs?: number; } /** * Options specific to RpcClientSimulator. */ export interface RpcClientSimulatorOptions { socketPath?: string; host?: string; port?: number; messageProxy?: any; } export type AppIdKey = string | number; export type PageIdKey = string | number; export type TargetId = string; export interface RemoteCommandId { id: string; } export interface RemoteCommandOpts { appIdKey?: AppIdKey; pageIdKey?: PageIdKey; id?: string; connId?: string; senderId?: string; targetId?: TargetId; bundleId?: string; enabled?: boolean; [key: string]: any; } export interface ProtocolCommandOpts { id: string; method: string; params: StringRecord; } type SocketDataKey = Buffer | StringRecord; interface RemoteCommandArgument<T extends SocketDataKey> { WIRSocketDataKey?: T; WIRConnectionIdentifierKey?: string; WIRSenderKey?: string; WIRApplicationIdentifierKey?: AppIdKey; WIRPageIdentifierKey?: PageIdKey; WIRMessageDataTypeKey?: string; WIRDestinationKey?: string; WIRMessageDataKey?: string; [key: string]: any; } interface RemoteCommandTemplated<T extends SocketDataKey> { __argument: RemoteCommandArgument<T>; __selector: string; } export type RawRemoteCommand = RemoteCommandTemplated<StringRecord>; export type RemoteCommand = RemoteCommandTemplated<Buffer>; /** * Target types. * 'frame' was added since iOS 26.2 beta. * https://github.com/WebKit/WebKit/blob/06f8ad1a5a66f9ffaa33696a5b9fba4f4c65070b/Source/JavaScriptCore/inspector/protocol/Target.json#L12 */ export type TargetType = 'page' | 'service-worker' | 'worker' | 'frame'; export interface TargetInfo { targetId: string; type: TargetType; isProvisional: boolean; isPaused: boolean; } export interface ProvisionalTargetInfo { oldTargetId: string; newTargetId: string; }