appium-chromedriver 8.1.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [8.2.0](https://github.com/appium/appium-chromedriver/compare/v8.1.0...v8.2.0) (2025-12-25)
2
+
3
+ ### Features
4
+
5
+ * Migrate the rest of files to typescript ([#533](https://github.com/appium/appium-chromedriver/issues/533)) ([fbe186f](https://github.com/appium/appium-chromedriver/commit/fbe186f80901f76cd1b4458aca5dd059dceae268))
6
+
1
7
  ## [8.1.0](https://github.com/appium/appium-chromedriver/compare/v8.0.31...v8.1.0) (2025-12-22)
2
8
 
3
9
  ### Features
@@ -1,143 +1,114 @@
1
- export class Chromedriver extends events<any> {
2
- /**
3
- *
4
- * @param {import('./types').ChromedriverOpts} args
5
- */
6
- constructor(args?: import("./types").ChromedriverOpts);
7
- _log: import("@appium/types").AppiumLogger;
8
- proxyHost: string;
9
- proxyPort: string | number;
10
- adb: import("appium-adb").default | undefined;
11
- cmdArgs: string[] | undefined;
12
- proc: SubProcess<import("teen_process").SubProcessOptions> | null;
13
- useSystemExecutable: boolean;
14
- chromedriver: string | undefined;
15
- executableDir: string;
16
- mappingPath: string | undefined;
17
- bundleId: string | undefined;
18
- executableVerified: boolean;
1
+ import events from 'events';
2
+ import { JWProxy } from '@appium/base-driver';
3
+ import type { HTTPMethod, HTTPBody } from '@appium/types';
4
+ import type { Request, Response } from 'express';
5
+ import type { ChromedriverOpts } from './types';
6
+ type SessionCapabilities = Record<string, any>;
7
+ export declare class Chromedriver extends events.EventEmitter {
8
+ static readonly EVENT_ERROR = "chromedriver_error";
9
+ static readonly EVENT_CHANGED = "stateChanged";
10
+ static readonly STATE_STOPPED = "stopped";
11
+ static readonly STATE_STARTING = "starting";
12
+ static readonly STATE_ONLINE = "online";
13
+ static readonly STATE_STOPPING = "stopping";
14
+ static readonly STATE_RESTARTING = "restarting";
15
+ private readonly _log;
16
+ private readonly proxyHost;
17
+ private readonly proxyPort;
18
+ private readonly adb?;
19
+ private readonly cmdArgs?;
20
+ private proc;
21
+ private readonly useSystemExecutable;
22
+ private chromedriver?;
23
+ private readonly executableDir;
24
+ private readonly mappingPath?;
25
+ private bundleId?;
26
+ private executableVerified;
19
27
  state: string;
20
- _execFunc: typeof exec;
28
+ private readonly _execFunc;
21
29
  jwproxy: JWProxy;
22
- isCustomExecutableDir: boolean;
23
- verbose: boolean | undefined;
24
- logPath: string | undefined;
25
- disableBuildCheck: boolean;
26
- storageClient: ChromedriverStorageClient | null;
27
- details: {
28
- info?: {
29
- Browser: string;
30
- };
31
- } | undefined;
32
- /** @type {any} */
33
- capabilities: any;
34
- /** @type {keyof PROTOCOLS | null} */
35
- _desiredProtocol: ("W3C" | "MJSONWP") | null;
36
- /** @type {string|null} */
37
- _driverVersion: string | null;
38
- /** @type {Record<string, any> | null} */
39
- _onlineStatus: Record<string, any> | null;
40
- get log(): import("@appium/types").AppiumLogger;
41
- /**
42
- * @returns {string | null}
43
- */
44
- get driverVersion(): string | null;
45
- getDriversMapping(): Promise<any>;
46
- /**
47
- * @param {ChromedriverVersionMapping} mapping
48
- */
49
- getChromedrivers(mapping: ChromedriverVersionMapping): Promise<{
50
- executable: string;
51
- version: string;
52
- minChromeVersion: string | null;
53
- }[]>;
54
- getChromeVersion(): Promise<semver.SemVer | null>;
30
+ private readonly isCustomExecutableDir;
31
+ private readonly verbose?;
32
+ private readonly logPath?;
33
+ private readonly disableBuildCheck;
34
+ private readonly storageClient;
35
+ private readonly details?;
36
+ private capabilities;
37
+ private _desiredProtocol;
38
+ private _driverVersion;
39
+ private _onlineStatus;
40
+ constructor(args?: ChromedriverOpts);
55
41
  /**
56
- *
57
- * @param {ChromedriverVersionMapping} newMapping
58
- * @returns {Promise<void>}
42
+ * Gets the logger instance for this Chromedriver instance.
43
+ * @returns The logger instance.
59
44
  */
60
- updateDriversMapping(newMapping: ChromedriverVersionMapping): Promise<void>;
45
+ get log(): any;
61
46
  /**
62
- * When executableDir is given explicitly for non-adb environment,
63
- * this method will respect the executableDir rather than the system installed binary.
64
- * @returns {Promise<string>}
47
+ * Gets the version of the currently running Chromedriver.
48
+ * @returns The driver version string, or null if not yet determined.
65
49
  */
66
- getCompatibleChromedriver(): Promise<string>;
67
- initChromedriverPath(): Promise<string>;
50
+ get driverVersion(): string | null;
68
51
  /**
69
- * Determines the driver communication protocol
70
- * based on various validation rules.
71
- *
72
- * @returns {keyof PROTOCOLS}
52
+ * Starts a new Chromedriver session with the given capabilities.
53
+ * @param caps - The session capabilities to use.
54
+ * @param emitStartingState - Whether to emit the starting state event (default: true).
55
+ * @returns A promise that resolves to the session capabilities returned by Chromedriver.
56
+ * @throws {Error} If Chromedriver fails to start or crashes during startup.
73
57
  */
74
- syncProtocol(): "W3C" | "MJSONWP";
58
+ start(caps: SessionCapabilities, emitStartingState?: boolean): Promise<SessionCapabilities>;
75
59
  /**
76
- *
77
- * @param {SessionCapabilities} caps
78
- * @param {boolean} emitStartingState
79
- * @returns {Promise<SessionCapabilities>}
60
+ * Gets the current session ID if the driver is online.
61
+ * @returns The session ID string, or null if the driver is not online.
80
62
  */
81
- start(caps: SessionCapabilities, emitStartingState?: boolean): Promise<SessionCapabilities>;
82
63
  sessionId(): string | null;
83
64
  /**
84
- * Restarts the chromedriver session
85
- *
86
- * @returns {Promise<SessionCapabilities>}
65
+ * Restarts the Chromedriver session.
66
+ * The session will be stopped and then started again with the same capabilities.
67
+ * @returns A promise that resolves to the session capabilities returned by Chromedriver.
68
+ * @throws {Error} If the driver is not online or if restart fails.
87
69
  */
88
70
  restart(): Promise<SessionCapabilities>;
89
- waitForOnline(): Promise<void>;
90
- getStatus(): Promise<any>;
91
71
  /**
92
- * Starts a new session
93
- *
94
- * @returns {Promise<SessionCapabilities>}
72
+ * Stops the Chromedriver session and terminates the process.
73
+ * @param emitStates - Whether to emit state change events during shutdown (default: true).
74
+ * @returns A promise that resolves when the session has been stopped.
95
75
  */
96
- startSession(): Promise<SessionCapabilities>;
97
76
  stop(emitStates?: boolean): Promise<void>;
98
77
  /**
99
- *
100
- * @param {string} state
101
- */
102
- changeState(state: string): void;
103
- /**
104
- *
105
- * @param {string} url
106
- * @param {'POST'|'GET'|'DELETE'} method
107
- * @param {any} body
108
- * @returns
78
+ * Sends a command to the Chromedriver server.
79
+ * @param url - The endpoint URL (e.g., '/url', '/session').
80
+ * @param method - The HTTP method to use ('POST', 'GET', or 'DELETE').
81
+ * @param body - Optional request body for POST requests.
82
+ * @returns A promise that resolves to the response from Chromedriver.
109
83
  */
110
- sendCommand(url: string, method: "POST" | "GET" | "DELETE", body: any): Promise<any>;
84
+ sendCommand(url: string, method: HTTPMethod, body?: HTTPBody): Promise<HTTPBody>;
111
85
  /**
112
- *
113
- * @param {any} req
114
- * @param {any} res
86
+ * Proxies an HTTP request/response to the Chromedriver server.
87
+ * @param req - The incoming HTTP request object.
88
+ * @param res - The outgoing HTTP response object.
89
+ * @returns A promise that resolves when the proxying is complete.
115
90
  */
116
- proxyReq(req: any, res: any): Promise<void>;
117
- killAll(): Promise<void>;
91
+ proxyReq(req: Request, res: Response): Promise<void>;
118
92
  /**
119
- * @returns {Promise<boolean>}
93
+ * Checks if Chromedriver is currently able to automate webviews.
94
+ * Sometimes Chromedriver stops automating webviews; this method runs a simple
95
+ * command to determine the current state.
96
+ * @returns A promise that resolves to true if webviews are working, false otherwise.
120
97
  */
121
98
  hasWorkingWebview(): Promise<boolean>;
99
+ private buildChromedriverArgs;
100
+ private getDriversMapping;
101
+ private getChromedrivers;
102
+ private getChromeVersion;
103
+ private updateDriversMapping;
104
+ private getCompatibleChromedriver;
105
+ private initChromedriverPath;
106
+ private syncProtocol;
107
+ private waitForOnline;
108
+ private getStatus;
109
+ private startSession;
110
+ private changeState;
111
+ private killAll;
122
112
  }
123
- export namespace Chromedriver {
124
- let EVENT_ERROR: string;
125
- let EVENT_CHANGED: string;
126
- let STATE_STOPPED: string;
127
- let STATE_STARTING: string;
128
- let STATE_ONLINE: string;
129
- let STATE_STOPPING: string;
130
- let STATE_RESTARTING: string;
131
- }
132
- export type ChromedriverVersionMapping = import("./types").ChromedriverVersionMapping;
133
- export type NewSessionResponse = {
134
- capabilities: Record<string, any>;
135
- };
136
- export type SessionCapabilities = Record<string, any>;
137
- import events from 'events';
138
- import { SubProcess } from 'teen_process';
139
- import { exec } from 'teen_process';
140
- import { JWProxy } from '@appium/base-driver';
141
- import { ChromedriverStorageClient } from './storage-client/storage-client';
142
- import * as semver from 'semver';
113
+ export {};
143
114
  //# sourceMappingURL=chromedriver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chromedriver.d.ts","sourceRoot":"","sources":["../../lib/chromedriver.js"],"names":[],"mappings":"AAgCA;IACE;;;OAGG;IACH,mBAFW,OAAO,SAAS,EAAE,gBAAgB,EA2E5C;IArDC,2CAAqD;IAErD,kBAAqB;IACrB,2BAAqB;IACrB,8CAAc;IACd,8BAAsB;IACtB,kEAAgB;IAChB,6BAA8C;IAC9C,iCAA8B;IAC9B,sBAAkC;IAClC,gCAA8B;IAC9B,6BAAwB;IACxB,4BAA+B;IAC/B,cAAuC;IAGvC,uBAAqB;IAWrB,iBAAqC;IAGnC,+BAAiC;IAMnC,6BAAsB;IACtB,4BAAsB;IACtB,2BAA4C;IAC5C,gDAEQ;IACR;;;;kBAAsB;IACtB,kBAAkB;IAClB,cADW,GAAG,CACQ;IACtB,qCAAqC;IACrC,kBADW,sBAAkB,IAAI,CACL;IAG5B,0BAA0B;IAC1B,gBADW,MAAM,GAAC,IAAI,CACI;IAC1B,yCAAyC;IACzC,eADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CACZ;IAG3B,gDAEC;IAED;;OAEG;IACH,qBAFa,MAAM,GAAG,IAAI,CAIzB;IAED,kCA8BC;IAED;;OAEG;IACH,0BAFW,0BAA0B;;;;SAgGpC;IAED,kDAmEC;IAED;;;;OAIG;IACH,iCAHW,0BAA0B,GACxB,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;OAIG;IACH,6BAFa,OAAO,CAAC,MAAM,CAAC,CAqJ3B;IAED,wCAwBC;IAED;;;;;OAKG;IACH,kCAkCC;IAED;;;;;OAKG;IACH,YAJW,mBAAmB,sBACnB,OAAO,GACL,OAAO,CAAC,mBAAmB,CAAC,CA8HxC;IAED,2BAEC;IAED;;;;OAIG;IACH,WAFa,OAAO,CAAC,mBAAmB,CAAC,CAUxC;IAED,+BA0BC;IAED,0BAEC;IAED;;;;OAIG;IACH,gBAFa,OAAO,CAAC,mBAAmB,CAAC,CAiBxC;IAED,0CA2BC;IAED;;;OAGG;IACH,mBAFW,MAAM,QAMhB;IAED;;;;;;OAMG;IACH,iBALW,MAAM,UACN,MAAM,GAAC,KAAK,GAAC,QAAQ,QACrB,GAAG,gBAKb;IAED;;;;OAIG;IACH,cAHW,GAAG,OACH,GAAG,iBAIb;IAED,yBAuCC;IAED;;OAEG;IACH,qBAFa,OAAO,CAAC,OAAO,CAAC,CAW5B;CACF;;;;;;;;;;yCAWY,OAAO,SAAS,EAAE,0BAA0B;iCAI5C;IAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAC;kCACnC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;mBA34Bb,QAAQ;2BAKI,cAAc;qBAAd,cAAc;wBAJZ,qBAAqB;0CAiBd,iCAAiC;wBAJjD,QAAQ"}
1
+ {"version":3,"file":"chromedriver.d.ts","sourceRoot":"","sources":["../../lib/chromedriver.ts"],"names":[],"mappings":"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"}