appium-webdriveragent 10.5.4 → 11.0.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 +17 -0
- package/Scripts/{build-webdriveragent.js → build-webdriveragent.mjs} +13 -7
- package/Scripts/{fetch-prebuilt-wda.js → fetch-prebuilt-wda.mjs} +17 -9
- package/Scripts/update-wda-version.mjs +42 -0
- package/WebDriverAgentLib/Info.plist +2 -2
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -2
- package/build/index.js.map +1 -1
- package/build/lib/check-dependencies.d.ts +2 -7
- package/build/lib/check-dependencies.d.ts.map +1 -1
- package/build/lib/check-dependencies.js +0 -11
- package/build/lib/check-dependencies.js.map +1 -1
- package/build/lib/constants.d.ts +12 -12
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/constants.js +14 -26
- package/build/lib/constants.js.map +1 -1
- package/build/lib/logger.d.ts +1 -2
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +2 -2
- package/build/lib/logger.js.map +1 -1
- package/build/lib/no-session-proxy.d.ts +5 -5
- package/build/lib/no-session-proxy.d.ts.map +1 -1
- package/build/lib/no-session-proxy.js +0 -1
- package/build/lib/no-session-proxy.js.map +1 -1
- package/build/lib/utils.d.ts +53 -96
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +124 -110
- package/build/lib/utils.js.map +1 -1
- package/build/lib/webdriveragent.d.ts +123 -170
- package/build/lib/webdriveragent.d.ts.map +1 -1
- package/build/lib/webdriveragent.js +319 -349
- package/build/lib/webdriveragent.js.map +1 -1
- package/build/lib/xcodebuild.d.ts +66 -77
- package/build/lib/xcodebuild.d.ts.map +1 -1
- package/build/lib/xcodebuild.js +123 -92
- package/build/lib/xcodebuild.js.map +1 -1
- package/build/test/functional/desired.d.ts +3 -0
- package/build/test/functional/desired.d.ts.map +1 -0
- package/build/test/functional/desired.js +9 -0
- package/build/test/functional/desired.js.map +1 -0
- package/build/test/functional/helpers/simulator.d.ts +5 -0
- package/build/test/functional/helpers/simulator.d.ts.map +1 -0
- package/build/test/functional/helpers/simulator.js +39 -0
- package/build/test/functional/helpers/simulator.js.map +1 -0
- package/build/test/functional/webdriveragent-e2e-specs.d.ts +2 -0
- package/build/test/functional/webdriveragent-e2e-specs.d.ts.map +1 -0
- package/build/test/functional/webdriveragent-e2e-specs.js +133 -0
- package/build/test/functional/webdriveragent-e2e-specs.js.map +1 -0
- package/build/test/unit/utils-specs.d.ts +2 -0
- package/build/test/unit/utils-specs.d.ts.map +1 -0
- package/build/test/unit/utils-specs.js +161 -0
- package/build/test/unit/utils-specs.js.map +1 -0
- package/build/test/unit/webdriveragent-specs.d.ts +2 -0
- package/build/test/unit/webdriveragent-specs.d.ts.map +1 -0
- package/build/test/unit/webdriveragent-specs.js +424 -0
- package/build/test/unit/webdriveragent-specs.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/index.ts +1 -1
- package/lib/{check-dependencies.js → check-dependencies.ts} +4 -13
- package/lib/constants.ts +18 -0
- package/lib/logger.ts +3 -0
- package/lib/{no-session-proxy.js → no-session-proxy.ts} +4 -5
- package/lib/{utils.js → utils.ts} +101 -111
- package/lib/{webdriveragent.js → webdriveragent.ts} +353 -390
- package/lib/{xcodebuild.js → xcodebuild.ts} +145 -114
- package/package.json +7 -9
- package/lib/constants.js +0 -24
- package/lib/logger.js +0 -5
|
@@ -1,79 +1,81 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/** @type {string} */
|
|
1
|
+
import url from 'node:url';
|
|
2
|
+
import { JWProxy } from '@appium/base-driver';
|
|
3
|
+
import type { AppiumLogger, StringRecord } from '@appium/types';
|
|
4
|
+
import { NoSessionProxy } from './no-session-proxy';
|
|
5
|
+
import { XcodeBuild } from './xcodebuild';
|
|
6
|
+
import type { WebDriverAgentArgs, AppleDevice } from './types';
|
|
7
|
+
export declare class WebDriverAgent {
|
|
9
8
|
bootstrapPath: string;
|
|
10
|
-
/** @type {string} */
|
|
11
9
|
agentPath: string;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
wdaBindingIP: string | undefined;
|
|
28
|
-
prebuildWDA: boolean | undefined;
|
|
29
|
-
webDriverAgentUrl: string | undefined;
|
|
10
|
+
readonly args: WebDriverAgentArgs;
|
|
11
|
+
private readonly log;
|
|
12
|
+
readonly device: AppleDevice;
|
|
13
|
+
readonly platformVersion?: string;
|
|
14
|
+
readonly platformName?: string;
|
|
15
|
+
readonly iosSdkVersion?: string;
|
|
16
|
+
readonly host?: string;
|
|
17
|
+
readonly isRealDevice: boolean;
|
|
18
|
+
private readonly wdaBundlePath?;
|
|
19
|
+
private readonly wdaLocalPort?;
|
|
20
|
+
readonly wdaRemotePort: number;
|
|
21
|
+
readonly wdaBaseUrl: string;
|
|
22
|
+
readonly wdaBindingIP?: string;
|
|
23
|
+
private readonly prebuildWDA?;
|
|
24
|
+
webDriverAgentUrl?: string;
|
|
30
25
|
started: boolean;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
updatedWDABundleId
|
|
37
|
-
wdaLaunchTimeout
|
|
38
|
-
|
|
39
|
-
xctestApiClient
|
|
40
|
-
updatedWDABundleIdSuffix
|
|
41
|
-
|
|
26
|
+
private readonly wdaConnectionTimeout?;
|
|
27
|
+
private readonly useXctestrunFile?;
|
|
28
|
+
private readonly usePrebuiltWDA?;
|
|
29
|
+
private readonly derivedDataPath?;
|
|
30
|
+
private readonly mjpegServerPort?;
|
|
31
|
+
updatedWDABundleId?: string;
|
|
32
|
+
private readonly wdaLaunchTimeout;
|
|
33
|
+
private readonly usePreinstalledWDA?;
|
|
34
|
+
private xctestApiClient?;
|
|
35
|
+
private readonly updatedWDABundleIdSuffix;
|
|
36
|
+
private _xcodebuild?;
|
|
37
|
+
noSessionProxy?: NoSessionProxy;
|
|
38
|
+
jwproxy?: JWProxy;
|
|
39
|
+
proxyReqRes?: any;
|
|
40
|
+
private _url?;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new WebDriverAgent instance.
|
|
43
|
+
* @param args - Configuration arguments for WebDriverAgent
|
|
44
|
+
* @param log - Optional logger instance
|
|
45
|
+
*/
|
|
46
|
+
constructor(args: WebDriverAgentArgs, log?: AppiumLogger | null);
|
|
42
47
|
/**
|
|
43
48
|
* Return true if the session does not need xcodebuild.
|
|
44
|
-
* @returns
|
|
49
|
+
* @returns Whether the session needs/has xcodebuild.
|
|
45
50
|
*/
|
|
46
51
|
get canSkipXcodebuild(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Get the xcodebuild instance. Throws if not initialized.
|
|
54
|
+
* @returns The XcodeBuild instance
|
|
55
|
+
* @throws Error if xcodebuild is not available
|
|
56
|
+
*/
|
|
57
|
+
get xcodebuild(): XcodeBuild;
|
|
47
58
|
/**
|
|
48
59
|
* Return bundle id for WebDriverAgent to launch the WDA.
|
|
49
60
|
* The primary usage is with 'this.usePreinstalledWDA'.
|
|
50
61
|
* It adds `.xctrunner` as suffix by default but 'this.updatedWDABundleIdSuffix'
|
|
51
62
|
* lets skip it.
|
|
52
63
|
*
|
|
53
|
-
* @returns
|
|
64
|
+
* @returns Bundle ID for Xctest.
|
|
54
65
|
*/
|
|
55
66
|
get bundleIdForXctest(): string;
|
|
56
67
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*/
|
|
60
|
-
setWDAPaths(bootstrapPath?: string, agentPath?: string): void;
|
|
61
|
-
/**
|
|
62
|
-
* @returns {Promise<void>}
|
|
68
|
+
* Cleans up obsolete cached processes from previous WDA sessions
|
|
69
|
+
* that are listening on the same port but belong to different devices.
|
|
63
70
|
*/
|
|
64
71
|
cleanupObsoleteProcesses(): Promise<void>;
|
|
65
72
|
/**
|
|
66
|
-
*
|
|
67
|
-
* @
|
|
68
|
-
* @throws {Error} If there was invalid response code or body
|
|
69
|
-
*/
|
|
70
|
-
isRunning(): Promise<boolean>;
|
|
71
|
-
/**
|
|
72
|
-
* @returns {string}
|
|
73
|
+
* Gets the base path for the WebDriverAgent URL.
|
|
74
|
+
* @returns The base path (empty string if root path)
|
|
73
75
|
*/
|
|
74
76
|
get basePath(): string;
|
|
75
77
|
/**
|
|
76
|
-
* Return current running WDA's status like below
|
|
78
|
+
* Return current running WDA's status like below after launching WDA
|
|
77
79
|
* {
|
|
78
80
|
* "state": "success",
|
|
79
81
|
* "os": {
|
|
@@ -91,55 +93,64 @@ export class WebDriverAgent {
|
|
|
91
93
|
* }
|
|
92
94
|
* }
|
|
93
95
|
*
|
|
94
|
-
* @param
|
|
95
|
-
* this function will return the response of `/status` immediately. If the given timeoutMs,
|
|
96
|
-
* this function will try to get the response of `/status` up to the timeoutMs.
|
|
97
|
-
* @return {Promise<import('@appium/types').StringRecord|null>} State Object
|
|
98
|
-
* @throws {Error} If there was an error within timeoutMs timeout.
|
|
99
|
-
* No error is raised if zero or negative number for the timeoutMs.
|
|
96
|
+
* @param sessionId Launch WDA and establish the session with this sessionId
|
|
100
97
|
*/
|
|
101
|
-
|
|
98
|
+
launch(sessionId: string): Promise<StringRecord | null>;
|
|
102
99
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* @returns {Promise<void>}
|
|
100
|
+
* Checks if the WebDriverAgent source is fresh by verifying
|
|
101
|
+
* that required resource files exist.
|
|
102
|
+
* @returns `true` if source is fresh (all required files exist), `false` otherwise
|
|
108
103
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
isSourceFresh(): Promise<boolean>;
|
|
105
|
+
private parseBundleId;
|
|
106
|
+
private fetchWDABundle;
|
|
107
|
+
private setupProxies;
|
|
111
108
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
109
|
+
* Stops the WebDriverAgent session and cleans up resources.
|
|
110
|
+
* Handles both preinstalled WDA and xcodebuild-based sessions.
|
|
114
111
|
*/
|
|
112
|
+
quit(): Promise<void>;
|
|
115
113
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* When we implement launching XCTest service via appium-ios-device,
|
|
122
|
-
* this implementation can be replaced with it.
|
|
123
|
-
*
|
|
124
|
-
* @param {LaunchWdaViaDeviceCtlOptions} [opts={}] launching WDA with devicectl command options.
|
|
125
|
-
* @return {Promise<void>}
|
|
114
|
+
* Gets the WebDriverAgent URL.
|
|
115
|
+
* Constructs the URL from webDriverAgentUrl if provided, otherwise
|
|
116
|
+
* builds it from wdaBaseUrl, wdaBindingIP, and wdaLocalPort.
|
|
117
|
+
* @returns The parsed URL object
|
|
126
118
|
*/
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* environment variables for the launching WDA process
|
|
130
|
-
*/
|
|
131
|
-
env?: Record<string, string | number> | undefined;
|
|
132
|
-
}): Promise<void>;
|
|
119
|
+
get url(): url.UrlWithStringQuery;
|
|
133
120
|
/**
|
|
134
|
-
*
|
|
135
|
-
* @param
|
|
136
|
-
* @return {Promise<import('@appium/types').StringRecord|null>} State Object
|
|
137
|
-
* @throws {Error} If there was an error within timeoutMs timeout.
|
|
138
|
-
* No error is raised if zero or negative number for the timeoutMs.
|
|
121
|
+
* Sets the WebDriverAgent URL.
|
|
122
|
+
* @param _url - The URL string to parse and set
|
|
139
123
|
*/
|
|
140
|
-
|
|
124
|
+
set url(_url: string);
|
|
141
125
|
/**
|
|
142
|
-
*
|
|
126
|
+
* Gets whether WebDriverAgent has fully started.
|
|
127
|
+
* @returns `true` if WDA has started, `false` otherwise
|
|
128
|
+
*/
|
|
129
|
+
get fullyStarted(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Sets whether WebDriverAgent has fully started.
|
|
132
|
+
* @param started - `true` if WDA has started, `false` otherwise
|
|
133
|
+
*/
|
|
134
|
+
set fullyStarted(started: boolean);
|
|
135
|
+
/**
|
|
136
|
+
* Retrieves the Xcode derived data path for WebDriverAgent.
|
|
137
|
+
* @returns The derived data path, or `undefined` if xcodebuild is skipped
|
|
138
|
+
*/
|
|
139
|
+
retrieveDerivedDataPath(): Promise<string | undefined>;
|
|
140
|
+
/**
|
|
141
|
+
* Reuse running WDA if it has the same bundle id with updatedWDABundleId.
|
|
142
|
+
* Or reuse it if it has the default id without updatedWDABundleId.
|
|
143
|
+
* Uninstall it if the method faces an exception for the above situation.
|
|
144
|
+
*/
|
|
145
|
+
setupCaching(): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Quit and uninstall running WDA.
|
|
148
|
+
*/
|
|
149
|
+
quitAndUninstall(): Promise<void>;
|
|
150
|
+
private setWDAPaths;
|
|
151
|
+
private isRunning;
|
|
152
|
+
/**
|
|
153
|
+
* Return current running WDA's status like below
|
|
143
154
|
* {
|
|
144
155
|
* "state": "success",
|
|
145
156
|
* "os": {
|
|
@@ -157,90 +168,32 @@ export class WebDriverAgent {
|
|
|
157
168
|
* }
|
|
158
169
|
* }
|
|
159
170
|
*
|
|
160
|
-
* @param
|
|
161
|
-
* @return {Promise<any?>} State Object
|
|
162
|
-
* @throws {Error} If there was invalid response code or body
|
|
163
|
-
*/
|
|
164
|
-
launch(sessionId: string): Promise<any | null>;
|
|
165
|
-
/**
|
|
166
|
-
* @param {string} _url
|
|
167
|
-
* @returns {void}
|
|
171
|
+
* @param timeoutMs If zero or negative, returns immediately. Otherwise, waits up to timeoutMs.
|
|
168
172
|
*/
|
|
169
|
-
|
|
173
|
+
private getStatus;
|
|
170
174
|
/**
|
|
171
|
-
*
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* @deprecated We'll stop supporting idb. Deprecated for removal.
|
|
176
|
-
* @returns {Promise<void>}
|
|
175
|
+
* Uninstall WDAs from the test device.
|
|
176
|
+
* Over Xcode 11, multiple WDA can be in the device since Xcode 11 generates different WDA.
|
|
177
|
+
* Appium does not expect multiple WDAs are running on a device.
|
|
177
178
|
*/
|
|
178
|
-
|
|
179
|
+
private uninstall;
|
|
180
|
+
private _cleanupProjectIfFresh;
|
|
179
181
|
/**
|
|
182
|
+
* Launch WDA with preinstalled package with 'xcrun devicectl device process launch'.
|
|
183
|
+
* The WDA package must be prepared properly like published via
|
|
184
|
+
* https://github.com/appium/WebDriverAgent/releases
|
|
185
|
+
* with proper sign for this case.
|
|
180
186
|
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* @deprecated We'll stop using idb
|
|
187
|
-
* @returns {Promise<{wdaBundleId: string, testBundleId: string, wdaBundlePath: string}>}
|
|
188
|
-
*/
|
|
189
|
-
prepareWDA(): Promise<{
|
|
190
|
-
wdaBundleId: string;
|
|
191
|
-
testBundleId: string;
|
|
192
|
-
wdaBundlePath: string;
|
|
193
|
-
}>;
|
|
194
|
-
/**
|
|
195
|
-
* @returns {Promise<string>}
|
|
196
|
-
*/
|
|
197
|
-
fetchWDABundle(): Promise<string>;
|
|
198
|
-
/**
|
|
199
|
-
* @returns {Promise<boolean>}
|
|
200
|
-
*/
|
|
201
|
-
isSourceFresh(): Promise<boolean>;
|
|
202
|
-
/**
|
|
203
|
-
* @param {string} sessionId
|
|
204
|
-
* @returns {void}
|
|
205
|
-
*/
|
|
206
|
-
setupProxies(sessionId: string): void;
|
|
207
|
-
jwproxy: JWProxy | undefined;
|
|
208
|
-
proxyReqRes: any;
|
|
209
|
-
noSessionProxy: NoSessionProxy | undefined;
|
|
210
|
-
/**
|
|
211
|
-
* @returns {Promise<void>}
|
|
212
|
-
*/
|
|
213
|
-
quit(): Promise<void>;
|
|
214
|
-
_url: url.UrlWithStringQuery | undefined;
|
|
215
|
-
/**
|
|
216
|
-
* @param {boolean} started
|
|
217
|
-
* @returns {void}s
|
|
218
|
-
*/
|
|
219
|
-
set fullyStarted(started: boolean);
|
|
220
|
-
/**
|
|
221
|
-
* @returns {boolean}
|
|
222
|
-
*/
|
|
223
|
-
get fullyStarted(): boolean;
|
|
224
|
-
/**
|
|
225
|
-
* @returns {Promise<string|undefined>}
|
|
226
|
-
*/
|
|
227
|
-
retrieveDerivedDataPath(): Promise<string | undefined>;
|
|
228
|
-
/**
|
|
229
|
-
* Reuse running WDA if it has the same bundle id with updatedWDABundleId.
|
|
230
|
-
* Or reuse it if it has the default id without updatedWDABundleId.
|
|
231
|
-
* Uninstall it if the method faces an exception for the above situation.
|
|
232
|
-
* @returns {Promise<void>}
|
|
187
|
+
* When we implement launching XCTest service via appium-ios-device,
|
|
188
|
+
* this implementation can be replaced with it.
|
|
189
|
+
*
|
|
190
|
+
* @param opts launching WDA with devicectl command options.
|
|
233
191
|
*/
|
|
234
|
-
|
|
192
|
+
private _launchViaDevicectl;
|
|
235
193
|
/**
|
|
236
|
-
*
|
|
237
|
-
* @
|
|
194
|
+
* Launch WDA with preinstalled package without xcodebuild.
|
|
195
|
+
* @param sessionId Launch WDA and establish the session with this sessionId
|
|
238
196
|
*/
|
|
239
|
-
|
|
197
|
+
private launchWithPreinstalledWDA;
|
|
240
198
|
}
|
|
241
|
-
export default WebDriverAgent;
|
|
242
|
-
import { XcodeBuild } from './xcodebuild';
|
|
243
|
-
import { JWProxy } from '@appium/base-driver';
|
|
244
|
-
import { NoSessionProxy } from './no-session-proxy';
|
|
245
|
-
import url from 'url';
|
|
246
199
|
//# sourceMappingURL=webdriveragent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webdriveragent.d.ts","sourceRoot":"","sources":["../../lib/webdriveragent.
|
|
1
|
+
{"version":3,"file":"webdriveragent.d.ts","sourceRoot":"","sources":["../../lib/webdriveragent.ts"],"names":[],"mappings":"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"}
|