appium-mac2-driver 3.4.3 → 4.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 +16 -0
- package/README.md +4 -4
- package/build/lib/commands/app-management.d.ts +1 -1
- package/build/lib/commands/app-management.d.ts.map +1 -1
- package/build/lib/commands/app-management.js +4 -10
- package/build/lib/commands/app-management.js.map +1 -1
- package/build/lib/commands/applescript.d.ts +2 -2
- package/build/lib/commands/applescript.d.ts.map +1 -1
- package/build/lib/commands/applescript.js +11 -17
- package/build/lib/commands/applescript.js.map +1 -1
- package/build/lib/commands/audit.d.ts +1 -1
- package/build/lib/commands/audit.d.ts.map +1 -1
- package/build/lib/commands/audit.js +1 -4
- package/build/lib/commands/audit.js.map +1 -1
- package/build/lib/commands/bidi/constants.js +2 -5
- package/build/lib/commands/bidi/constants.js.map +1 -1
- package/build/lib/commands/bidi/models.d.ts +1 -1
- package/build/lib/commands/bidi/models.d.ts.map +1 -1
- package/build/lib/commands/bidi/models.js +3 -6
- package/build/lib/commands/bidi/models.js.map +1 -1
- package/build/lib/commands/bidi/types.js +1 -2
- package/build/lib/commands/clipboard.d.ts +1 -1
- package/build/lib/commands/clipboard.d.ts.map +1 -1
- package/build/lib/commands/clipboard.js +2 -6
- package/build/lib/commands/clipboard.js.map +1 -1
- package/build/lib/commands/execute.d.ts +1 -1
- package/build/lib/commands/execute.d.ts.map +1 -1
- package/build/lib/commands/execute.js +1 -4
- package/build/lib/commands/execute.js.map +1 -1
- package/build/lib/commands/find.d.ts +1 -1
- package/build/lib/commands/find.d.ts.map +1 -1
- package/build/lib/commands/find.js +3 -6
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/gestures.d.ts +2 -2
- package/build/lib/commands/gestures.d.ts.map +1 -1
- package/build/lib/commands/gestures.js +23 -40
- package/build/lib/commands/gestures.js.map +1 -1
- package/build/lib/commands/helpers.d.ts +1 -1
- package/build/lib/commands/helpers.d.ts.map +1 -1
- package/build/lib/commands/helpers.js +6 -9
- package/build/lib/commands/helpers.js.map +1 -1
- package/build/lib/commands/native-record-screen.d.ts +1 -1
- package/build/lib/commands/native-record-screen.d.ts.map +1 -1
- package/build/lib/commands/native-record-screen.js +84 -63
- package/build/lib/commands/native-record-screen.js.map +1 -1
- package/build/lib/commands/navigation.d.ts +1 -1
- package/build/lib/commands/navigation.d.ts.map +1 -1
- package/build/lib/commands/navigation.js +1 -4
- package/build/lib/commands/navigation.js.map +1 -1
- package/build/lib/commands/record-screen.d.ts +2 -2
- package/build/lib/commands/record-screen.d.ts.map +1 -1
- package/build/lib/commands/record-screen.js +20 -28
- package/build/lib/commands/record-screen.js.map +1 -1
- package/build/lib/commands/screenshots.d.ts +2 -2
- package/build/lib/commands/screenshots.d.ts.map +1 -1
- package/build/lib/commands/screenshots.js +1 -4
- package/build/lib/commands/screenshots.js.map +1 -1
- package/build/lib/commands/source.d.ts +1 -1
- package/build/lib/commands/source.d.ts.map +1 -1
- package/build/lib/commands/source.js +1 -4
- package/build/lib/commands/source.js.map +1 -1
- package/build/lib/constraints.js +1 -3
- package/build/lib/constraints.js.map +1 -1
- package/build/lib/doctor/optional-checks.d.ts +21 -0
- package/build/lib/doctor/optional-checks.d.ts.map +1 -1
- package/build/lib/doctor/optional-checks.js +116 -20
- package/build/lib/doctor/optional-checks.js.map +1 -1
- package/build/lib/doctor/required-checks.js +16 -21
- package/build/lib/doctor/required-checks.js.map +1 -1
- package/build/lib/doctor/utils.js +4 -7
- package/build/lib/doctor/utils.js.map +1 -1
- package/build/lib/driver.d.ts +15 -15
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +31 -71
- package/build/lib/driver.js.map +1 -1
- package/build/lib/execute-method-map.js +1 -4
- package/build/lib/execute-method-map.js.map +1 -1
- package/build/lib/index.d.ts +1 -1
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +3 -6
- package/build/lib/index.js.map +1 -1
- package/build/lib/logger.js +3 -5
- package/build/lib/logger.js.map +1 -1
- package/build/lib/method-map.js +1 -4
- package/build/lib/method-map.js.map +1 -1
- package/build/lib/types.js +1 -2
- package/build/lib/utils.d.ts +7 -0
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +24 -22
- package/build/lib/utils.js.map +1 -1
- package/build/lib/wda-mac.d.ts +1 -1
- package/build/lib/wda-mac.d.ts.map +1 -1
- package/build/lib/wda-mac.js +43 -51
- package/build/lib/wda-mac.js.map +1 -1
- package/lib/commands/app-management.ts +1 -1
- package/lib/commands/applescript.ts +3 -3
- package/lib/commands/audit.ts +1 -1
- package/lib/commands/bidi/models.ts +2 -2
- package/lib/commands/clipboard.ts +1 -1
- package/lib/commands/execute.ts +1 -1
- package/lib/commands/find.ts +2 -2
- package/lib/commands/gestures.ts +4 -4
- package/lib/commands/helpers.ts +2 -2
- package/lib/commands/native-record-screen.ts +67 -35
- package/lib/commands/navigation.ts +1 -1
- package/lib/commands/record-screen.ts +4 -4
- package/lib/commands/screenshots.ts +2 -2
- package/lib/commands/source.ts +1 -1
- package/lib/doctor/optional-checks.ts +127 -2
- package/lib/doctor/required-checks.ts +1 -1
- package/lib/doctor/utils.ts +1 -1
- package/lib/driver.ts +18 -18
- package/lib/index.ts +1 -1
- package/lib/logger.ts +1 -1
- package/lib/utils.ts +20 -9
- package/lib/wda-mac.ts +3 -3
- package/npm-shrinkwrap.json +130 -590
- package/package.json +13 -12
package/build/lib/wda-mac.js
CHANGED
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const teen_process_1 = require("teen_process");
|
|
15
|
-
const asyncbox_1 = require("asyncbox");
|
|
16
|
-
const portscanner_1 = require("portscanner");
|
|
17
|
-
const utils_1 = require("./utils");
|
|
18
|
-
const log = support_1.logger.getLogger('WebDriverAgentMac');
|
|
19
|
-
const DEFAULT_WDA_ROOT = node_path_1.default.resolve((0, utils_1.getModuleRoot)(), 'WebDriverAgentMac');
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import url from 'node:url';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
|
+
import { JWProxy, errors } from 'appium/driver.js';
|
|
6
|
+
import { fs, logger, util, timing } from 'appium/support.js';
|
|
7
|
+
import { strongbox } from '@appium/strongbox';
|
|
8
|
+
import { SubProcess, exec } from 'teen_process';
|
|
9
|
+
import { waitForCondition } from 'asyncbox';
|
|
10
|
+
import { checkPortStatus } from 'portscanner';
|
|
11
|
+
import { listChildrenProcessIds, getModuleRoot, clearArray, removeAllOccurrences } from './utils.js';
|
|
12
|
+
const log = logger.getLogger('WebDriverAgentMac');
|
|
13
|
+
const DEFAULT_WDA_ROOT = path.resolve(getModuleRoot(), 'WebDriverAgentMac');
|
|
20
14
|
const WDA_PROJECT_NAME = 'WebDriverAgentMac.xcodeproj';
|
|
21
|
-
const WDA_PROJECT = (wdaRoot = DEFAULT_WDA_ROOT) =>
|
|
15
|
+
const WDA_PROJECT = (wdaRoot = DEFAULT_WDA_ROOT) => path.resolve(wdaRoot, WDA_PROJECT_NAME);
|
|
22
16
|
const RUNNER_SCHEME = 'WebDriverAgentRunner';
|
|
23
17
|
const DISABLE_STORE_ARG = 'COMPILER_INDEX_STORE_ENABLE=NO';
|
|
24
18
|
const XCODEBUILD = 'xcodebuild';
|
|
@@ -27,7 +21,7 @@ const DEFAULT_SYSTEM_PORT = 10100;
|
|
|
27
21
|
const DEFAULT_SYSTEM_HOST = '127.0.0.1';
|
|
28
22
|
const DEFAULT_SHOW_SERVER_LOGS = false;
|
|
29
23
|
const RUNNING_PROCESS_IDS = [];
|
|
30
|
-
const RECENT_UPGRADE_TIMESTAMP_PATH =
|
|
24
|
+
const RECENT_UPGRADE_TIMESTAMP_PATH = path.join('.appium', 'webdriveragent_mac', 'upgrade.time');
|
|
31
25
|
const RECENT_MODULE_VERSION_ITEM_NAME = 'recentWdaModuleVersion';
|
|
32
26
|
class WDAMacProcess {
|
|
33
27
|
port = DEFAULT_SYSTEM_PORT;
|
|
@@ -42,15 +36,15 @@ class WDAMacProcess {
|
|
|
42
36
|
return this.isRunning && this.proc ? this.proc.pid : null;
|
|
43
37
|
}
|
|
44
38
|
async listChildrenPids() {
|
|
45
|
-
return this.pid ? await
|
|
39
|
+
return this.pid ? await listChildrenProcessIds(this.pid) : [];
|
|
46
40
|
}
|
|
47
41
|
async cleanupProjectIfFresh() {
|
|
48
|
-
const packageInfo = JSON.parse(await
|
|
49
|
-
const box =
|
|
42
|
+
const packageInfo = JSON.parse(await fs.readFile(path.join(getModuleRoot(), 'package.json'), 'utf8'));
|
|
43
|
+
const box = strongbox(packageInfo.name);
|
|
50
44
|
let boxItem = box.getItem(RECENT_MODULE_VERSION_ITEM_NAME);
|
|
51
45
|
if (!boxItem) {
|
|
52
|
-
const timestampPath =
|
|
53
|
-
if (await
|
|
46
|
+
const timestampPath = path.resolve(process.env.HOME ?? '', RECENT_UPGRADE_TIMESTAMP_PATH);
|
|
47
|
+
if (await fs.exists(timestampPath)) {
|
|
54
48
|
// TODO: It is probably a bit ugly to hardcode the recent version string,
|
|
55
49
|
// TODO: however it should do the job as a temporary transition trick
|
|
56
50
|
// TODO: to switch from a hardcoded file path to the strongbox usage.
|
|
@@ -75,7 +69,7 @@ class WDAMacProcess {
|
|
|
75
69
|
}
|
|
76
70
|
let recentModuleVersion = await boxItem.read();
|
|
77
71
|
try {
|
|
78
|
-
recentModuleVersion =
|
|
72
|
+
recentModuleVersion = util.coerceVersion(recentModuleVersion, true);
|
|
79
73
|
}
|
|
80
74
|
catch (e) {
|
|
81
75
|
log.warn(`The persisted module version string has been damaged: ${e.message}`);
|
|
@@ -83,7 +77,7 @@ class WDAMacProcess {
|
|
|
83
77
|
await boxItem.write(packageInfo.version);
|
|
84
78
|
return;
|
|
85
79
|
}
|
|
86
|
-
if (
|
|
80
|
+
if (util.compareVersions(recentModuleVersion, '>=', packageInfo.version)) {
|
|
87
81
|
log.info(`WebDriverAgent does not need a cleanup. The project sources are up to date ` +
|
|
88
82
|
`(${recentModuleVersion} >= ${packageInfo.version})`);
|
|
89
83
|
return;
|
|
@@ -91,7 +85,7 @@ class WDAMacProcess {
|
|
|
91
85
|
try {
|
|
92
86
|
log.info('Performing project cleanup');
|
|
93
87
|
const args = ['clean', '-project', WDA_PROJECT(this.bootstrapRoot), '-scheme', RUNNER_SCHEME];
|
|
94
|
-
await
|
|
88
|
+
await exec(XCODEBUILD, args, { cwd: this.bootstrapRoot });
|
|
95
89
|
await boxItem.write(packageInfo.version);
|
|
96
90
|
}
|
|
97
91
|
catch (e) {
|
|
@@ -107,7 +101,7 @@ class WDAMacProcess {
|
|
|
107
101
|
this.host = opts.systemHost ?? this.host;
|
|
108
102
|
this.bootstrapRoot = opts.bootstrapRoot ?? this.bootstrapRoot;
|
|
109
103
|
log.debug(`Using bootstrap root: ${this.bootstrapRoot}`);
|
|
110
|
-
if (!(await
|
|
104
|
+
if (!(await fs.exists(WDA_PROJECT(this.bootstrapRoot)))) {
|
|
111
105
|
throw new Error(`${WDA_PROJECT_NAME} does not exist at '${WDA_PROJECT(this.bootstrapRoot)}'. ` +
|
|
112
106
|
`Was 'bootstrapRoot' set to a proper value?`);
|
|
113
107
|
}
|
|
@@ -115,7 +109,7 @@ class WDAMacProcess {
|
|
|
115
109
|
await cleanupObsoleteProcesses();
|
|
116
110
|
let xcodebuild;
|
|
117
111
|
try {
|
|
118
|
-
xcodebuild = await
|
|
112
|
+
xcodebuild = await fs.which(XCODEBUILD);
|
|
119
113
|
}
|
|
120
114
|
catch {
|
|
121
115
|
throw new Error(`${XCODEBUILD} binary cannot be found in PATH. ` +
|
|
@@ -125,19 +119,19 @@ class WDAMacProcess {
|
|
|
125
119
|
await this.cleanupProjectIfFresh();
|
|
126
120
|
log.debug(`Using ${this.host} as server host`);
|
|
127
121
|
log.debug(`Using port ${this.port}`);
|
|
128
|
-
const isPortBusy = async () => (await
|
|
122
|
+
const isPortBusy = async () => (await checkPortStatus(this.port, this.host)) === 'open';
|
|
129
123
|
if (await isPortBusy()) {
|
|
130
124
|
log.warn(`The port #${this.port} at ${this.host} is busy. ` +
|
|
131
125
|
`Assuming it is an obsolete WDA server instance and ` +
|
|
132
126
|
`trying to terminate it in order to start a new one`);
|
|
133
|
-
const timer = new
|
|
127
|
+
const timer = new timing.Timer().start();
|
|
134
128
|
try {
|
|
135
|
-
await
|
|
129
|
+
await axios.delete(`http://${this.host}:${this.port}/`, {
|
|
136
130
|
timeout: 5000,
|
|
137
131
|
});
|
|
138
132
|
// Give the server some time to finish and stop listening
|
|
139
|
-
await (
|
|
140
|
-
await
|
|
133
|
+
await delay(500);
|
|
134
|
+
await waitForCondition(async () => !(await isPortBusy()), {
|
|
141
135
|
waitMs: 3000,
|
|
142
136
|
intervalMs: 100,
|
|
143
137
|
});
|
|
@@ -165,7 +159,7 @@ class WDAMacProcess {
|
|
|
165
159
|
USE_PORT: `${this.port}`,
|
|
166
160
|
USE_HOST: this.host,
|
|
167
161
|
});
|
|
168
|
-
this.proc = new
|
|
162
|
+
this.proc = new SubProcess(xcodebuild, args, {
|
|
169
163
|
cwd: this.bootstrapRoot,
|
|
170
164
|
env,
|
|
171
165
|
});
|
|
@@ -186,7 +180,7 @@ class WDAMacProcess {
|
|
|
186
180
|
this.proc.on('exit', (code, signal) => {
|
|
187
181
|
log.info(`Mac2Driver host process has exited with code ${code}, signal ${signal}`);
|
|
188
182
|
});
|
|
189
|
-
log.info(`Starting Mac2Driver host process: ${XCODEBUILD} ${
|
|
183
|
+
log.info(`Starting Mac2Driver host process: ${XCODEBUILD} ${util.quote(args)}`);
|
|
190
184
|
await this.proc.start(0);
|
|
191
185
|
return true;
|
|
192
186
|
}
|
|
@@ -230,18 +224,17 @@ class WDAMacProcess {
|
|
|
230
224
|
return true;
|
|
231
225
|
}
|
|
232
226
|
}
|
|
233
|
-
class WDAMacProxy extends
|
|
227
|
+
export class WDAMacProxy extends JWProxy {
|
|
234
228
|
didProcessExit = false;
|
|
235
229
|
async proxyCommand(url, method, body = null) {
|
|
236
230
|
if (this.didProcessExit) {
|
|
237
|
-
throw new
|
|
231
|
+
throw new errors.InvalidContextError(`'${method} ${url}' cannot be proxied to Mac2 Driver server because ` +
|
|
238
232
|
'its process is not running (probably crashed). Check the Appium log for more details');
|
|
239
233
|
}
|
|
240
234
|
return await super.proxyCommand(url, method, body);
|
|
241
235
|
}
|
|
242
236
|
}
|
|
243
|
-
|
|
244
|
-
class WDAMacServer {
|
|
237
|
+
export class WDAMacServer {
|
|
245
238
|
_proxy = null;
|
|
246
239
|
_process = null;
|
|
247
240
|
_serverStartupTimeoutMs = STARTUP_TIMEOUT_MS;
|
|
@@ -291,9 +284,9 @@ class WDAMacServer {
|
|
|
291
284
|
}
|
|
292
285
|
});
|
|
293
286
|
}
|
|
294
|
-
const timer = new
|
|
287
|
+
const timer = new timing.Timer().start();
|
|
295
288
|
try {
|
|
296
|
-
await
|
|
289
|
+
await waitForCondition(async () => await this.isProxyReady(), {
|
|
297
290
|
waitMs: this._serverStartupTimeoutMs,
|
|
298
291
|
intervalMs: 1000,
|
|
299
292
|
});
|
|
@@ -320,7 +313,7 @@ class WDAMacServer {
|
|
|
320
313
|
if (pid !== null) {
|
|
321
314
|
RUNNING_PROCESS_IDS.push(...childrenPids, pid);
|
|
322
315
|
this._process.proc?.on('exit', () => {
|
|
323
|
-
|
|
316
|
+
removeAllOccurrences(RUNNING_PROCESS_IDS, pid);
|
|
324
317
|
});
|
|
325
318
|
}
|
|
326
319
|
log.info(`The host process is ready within ${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
|
|
@@ -384,7 +377,7 @@ class WDAMacServer {
|
|
|
384
377
|
}
|
|
385
378
|
let parsedUrl;
|
|
386
379
|
try {
|
|
387
|
-
parsedUrl = new
|
|
380
|
+
parsedUrl = new url.URL(caps.webDriverAgentMacUrl);
|
|
388
381
|
}
|
|
389
382
|
catch (e) {
|
|
390
383
|
throw new Error(`webDriverAgentMacUrl, '${caps.webDriverAgentMacUrl}', ` +
|
|
@@ -402,8 +395,7 @@ class WDAMacServer {
|
|
|
402
395
|
};
|
|
403
396
|
}
|
|
404
397
|
}
|
|
405
|
-
|
|
406
|
-
exports.WDA_MAC_SERVER = new WDAMacServer();
|
|
398
|
+
export const WDA_MAC_SERVER = new WDAMacServer();
|
|
407
399
|
// Private functions
|
|
408
400
|
function tryKillPid(pid, signal) {
|
|
409
401
|
const n = typeof pid === 'number' ? pid : Number.parseInt(String(pid), 10);
|
|
@@ -425,15 +417,15 @@ function tryKillPids(pids, signal) {
|
|
|
425
417
|
async function cleanupObsoleteProcesses() {
|
|
426
418
|
if (RUNNING_PROCESS_IDS.length > 0) {
|
|
427
419
|
log.debug(`Cleaning up ${RUNNING_PROCESS_IDS.length} obsolete ` +
|
|
428
|
-
|
|
420
|
+
util.pluralize('process', RUNNING_PROCESS_IDS.length, false));
|
|
429
421
|
tryKillPids(RUNNING_PROCESS_IDS.map(String), 'SIGKILL');
|
|
430
|
-
|
|
422
|
+
clearArray(RUNNING_PROCESS_IDS);
|
|
431
423
|
}
|
|
432
424
|
}
|
|
433
425
|
process.once('exit', () => {
|
|
434
426
|
if (RUNNING_PROCESS_IDS.length > 0) {
|
|
435
427
|
tryKillPids(RUNNING_PROCESS_IDS.map(String), 'SIGKILL');
|
|
436
|
-
|
|
428
|
+
clearArray(RUNNING_PROCESS_IDS);
|
|
437
429
|
}
|
|
438
430
|
});
|
|
439
431
|
//# sourceMappingURL=wda-mac.js.map
|
package/build/lib/wda-mac.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wda-mac.js","sourceRoot":"","sources":["../../lib/wda-mac.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wda-mac.js","sourceRoot":"","sources":["../../lib/wda-mac.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {fs, tempDir, util} from 'appium/support';
|
|
1
|
+
import {fs, tempDir, util} from 'appium/support.js';
|
|
2
2
|
import {exec} from 'teen_process';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import type {Mac2Driver} from '../driver';
|
|
4
|
+
import type {Mac2Driver} from '../driver.js';
|
|
5
5
|
|
|
6
6
|
const OSASCRIPT = 'osascript';
|
|
7
7
|
const APPLE_SCRIPT_FEATURE = 'apple_script';
|
|
@@ -15,7 +15,7 @@ const APPLE_SCRIPT_FEATURE = 'apple_script';
|
|
|
15
15
|
* Note that by default AppleScript engine blocks commands/scripts execution if your script
|
|
16
16
|
* is trying to access some private entities, like cameras or the desktop screen
|
|
17
17
|
* and no permissions to do it are given to the parent (for example, Appium or Terminal)
|
|
18
|
-
* process in System
|
|
18
|
+
* process in System Settings -> Privacy list.
|
|
19
19
|
*
|
|
20
20
|
* @param script - A valid AppleScript to execute
|
|
21
21
|
* @param language - Overrides the scripting language. Basically, sets
|
package/lib/commands/audit.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {NativeVideoChunkAddedEvent} from './types';
|
|
2
|
-
import {NATIVE_VIDEO_CHUNK_ADDED_EVENT} from './constants';
|
|
1
|
+
import type {NativeVideoChunkAddedEvent} from './types.js';
|
|
2
|
+
import {NATIVE_VIDEO_CHUNK_ADDED_EVENT} from './constants.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Converts the given UUID and video chunk payload into a NativeVideoChunkAddedEvent object.
|
package/lib/commands/execute.ts
CHANGED
package/lib/commands/find.ts
CHANGED
package/lib/commands/gestures.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {util} from 'appium/support';
|
|
2
|
-
import {errors} from 'appium/driver';
|
|
3
|
-
import type {Mac2Driver} from '../driver';
|
|
4
|
-
import type {KeyOptions} from '../types';
|
|
1
|
+
import {util} from 'appium/support.js';
|
|
2
|
+
import {errors} from 'appium/driver.js';
|
|
3
|
+
import type {Mac2Driver} from '../driver.js';
|
|
4
|
+
import type {KeyOptions} from '../types.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Set value to the given element.
|
package/lib/commands/helpers.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import {fs, util} from 'appium/support';
|
|
3
|
-
import type {Mac2Driver} from '../driver';
|
|
4
|
-
import {uploadRecordedMedia} from './helpers';
|
|
2
|
+
import {fs, util} from 'appium/support.js';
|
|
3
|
+
import type {Mac2Driver} from '../driver.js';
|
|
4
|
+
import {uploadRecordedMedia} from './helpers.js';
|
|
5
5
|
import type {AppiumLogger, StringRecord} from '@appium/types';
|
|
6
6
|
import type EventEmitter from 'node:events';
|
|
7
7
|
import type {CancellablePromise} from 'asyncbox';
|
|
8
8
|
import {TimeoutError, sleep, waitForCondition, withTimeout} from 'asyncbox';
|
|
9
9
|
import {exec} from 'teen_process';
|
|
10
|
-
import {BIDI_EVENT_NAME} from './bidi/constants';
|
|
11
|
-
import {toNativeVideoChunkAddedEvent} from './bidi/models';
|
|
12
|
-
import {isPlainObject} from '../utils';
|
|
10
|
+
import {BIDI_EVENT_NAME} from './bidi/constants.js';
|
|
11
|
+
import {toNativeVideoChunkAddedEvent} from './bidi/models.js';
|
|
12
|
+
import {isPlainObject} from '../utils.js';
|
|
13
|
+
import os from 'node:os';
|
|
13
14
|
|
|
14
15
|
const RECORDING_STARTUP_TIMEOUT_MS = 5000;
|
|
15
16
|
const BUFFER_SIZE = 0xffff;
|
|
@@ -17,6 +18,12 @@ const MONITORING_INTERVAL_DURATION_MS = 1000;
|
|
|
17
18
|
const MAX_MONITORING_DURATION_MS = 24 * 60 * 60 * 1000; // 1 day
|
|
18
19
|
const STOP_WAIT_TIMEOUT_MS = 5000;
|
|
19
20
|
|
|
21
|
+
/**
|
|
22
|
+
* XCTest daemon stores native screen recording attachments under `Data/Attachments` (legacy) or
|
|
23
|
+
* `Data/tmp/Attachments` (Xcode 26.5+). Brace `{,tmp/}` matches both in a single glob.
|
|
24
|
+
*/
|
|
25
|
+
const DAEMON_NATIVE_RECORDING_ATTACHMENT_GLOB = '*/Data/{,tmp/}Attachments/*';
|
|
26
|
+
|
|
20
27
|
interface ActiveVideoInfo {
|
|
21
28
|
fps: number;
|
|
22
29
|
codec: number;
|
|
@@ -130,13 +137,20 @@ export class NativeVideoChunksBroadcaster {
|
|
|
130
137
|
try {
|
|
131
138
|
await waitForCondition(
|
|
132
139
|
async () => {
|
|
133
|
-
const paths = await listAttachments();
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
const {hasAccess, paths} = await listAttachments();
|
|
141
|
+
if (!hasAccess) {
|
|
142
|
+
this._log.info(
|
|
143
|
+
`Cannot access native video recordings folder. ` +
|
|
144
|
+
`Make sure to grant Full Disk Access to the Appium server process.`,
|
|
145
|
+
);
|
|
146
|
+
throw new Error('Access denied');
|
|
147
|
+
}
|
|
148
|
+
const result = paths.find((fp) => pathMatchesUuid(fp, uuid));
|
|
149
|
+
if (!result) {
|
|
150
|
+
return false;
|
|
138
151
|
}
|
|
139
|
-
|
|
152
|
+
fullPath = result;
|
|
153
|
+
return true;
|
|
140
154
|
},
|
|
141
155
|
{
|
|
142
156
|
waitMs: RECORDING_STARTUP_TIMEOUT_MS,
|
|
@@ -145,7 +159,7 @@ export class NativeVideoChunksBroadcaster {
|
|
|
145
159
|
);
|
|
146
160
|
} catch {
|
|
147
161
|
this._log.warn(
|
|
148
|
-
`The video recording identified by ${uuid} did not ` +
|
|
162
|
+
`The video recording BiDi broadcast identified by ${uuid} did not ` +
|
|
149
163
|
`start within ${RECORDING_STARTUP_TIMEOUT_MS}ms timeout`,
|
|
150
164
|
);
|
|
151
165
|
return;
|
|
@@ -255,15 +269,15 @@ export class NativeVideoChunksBroadcaster {
|
|
|
255
269
|
if (uuids.length === 0) {
|
|
256
270
|
return;
|
|
257
271
|
}
|
|
258
|
-
const uuidSet = new Set(uuids);
|
|
272
|
+
const uuidSet = new Set(uuids.map((uuid) => uuid.toUpperCase()));
|
|
259
273
|
|
|
260
|
-
const
|
|
261
|
-
if (
|
|
274
|
+
const {hasAccess, paths} = await listAttachments();
|
|
275
|
+
if (!hasAccess || paths.length === 0) {
|
|
262
276
|
return;
|
|
263
277
|
}
|
|
264
|
-
const tasks: Promise<
|
|
278
|
+
const tasks: Promise<void>[] = paths
|
|
265
279
|
.map((attachmentPath) => [path.basename(attachmentPath), attachmentPath])
|
|
266
|
-
.filter(([name]) => uuidSet.has(name))
|
|
280
|
+
.filter(([name]) => uuidSet.has(name.toUpperCase()))
|
|
267
281
|
.map(([, attachmentPath]) => fs.rimraf(attachmentPath));
|
|
268
282
|
if (tasks.length === 0) {
|
|
269
283
|
return;
|
|
@@ -416,17 +430,25 @@ export async function macosStopNativeScreenRecording(
|
|
|
416
430
|
return '';
|
|
417
431
|
}
|
|
418
432
|
|
|
419
|
-
const
|
|
420
|
-
if (!
|
|
433
|
+
const {hasAccess, paths: attachments} = await listAttachments();
|
|
434
|
+
if (!hasAccess) {
|
|
421
435
|
throw new Error(
|
|
422
436
|
`The screen recording identified by ${uuid} cannot be retrieved. ` +
|
|
423
437
|
`Make sure the Appium Server process or its parent process (e.g. Terminal) ` +
|
|
424
|
-
`has Full Disk Access permission enabled in 'System
|
|
425
|
-
`You may verify the presence of the recorded video manually
|
|
426
|
-
|
|
438
|
+
`has Full Disk Access permission enabled in 'System Settings' -> 'Privacy & Security' tab. ` +
|
|
439
|
+
`You may verify the presence of the recorded video manually (e.g. under ` +
|
|
440
|
+
`*/Data/Attachments/ or */Data/tmp/Attachments/ within Daemon Containers) by running ` +
|
|
441
|
+
`'find "$HOME/Library/Daemon Containers" -type f -name "${uuid}"' from Terminal ` +
|
|
427
442
|
`if the latter has been granted the above access permission.`,
|
|
428
443
|
);
|
|
429
444
|
}
|
|
445
|
+
const matchedVideoPath = attachments.find((fullPath) => pathMatchesUuid(fullPath, uuid));
|
|
446
|
+
if (!matchedVideoPath) {
|
|
447
|
+
throw new Error(
|
|
448
|
+
`The screen recording identified by ${uuid} cannot be retrieved even ` +
|
|
449
|
+
`though the Appium Server process has Full Disk Access permission.`,
|
|
450
|
+
);
|
|
451
|
+
}
|
|
430
452
|
const options = {
|
|
431
453
|
user,
|
|
432
454
|
pass,
|
|
@@ -447,18 +469,28 @@ export async function macosListDisplays(this: Mac2Driver): Promise<StringRecord<
|
|
|
447
469
|
return (await this.wda.proxy.command('/wda/displays/list', 'GET')) as StringRecord<DisplayInfo>;
|
|
448
470
|
}
|
|
449
471
|
|
|
450
|
-
async function listAttachments(): Promise<string[]> {
|
|
451
|
-
//
|
|
452
|
-
//
|
|
453
|
-
const
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
472
|
+
async function listAttachments(): Promise<{hasAccess: boolean; paths: string[]}> {
|
|
473
|
+
// e.g. .../Daemon Containers/<container-id>/Data/Attachments/<uuid>
|
|
474
|
+
// or .../Daemon Containers/<container-id>/Data/tmp/Attachments/<uuid> (Xcode 26.5+)
|
|
475
|
+
const daemonContainersRoot = path.resolve(os.homedir(), 'Library', 'Daemon Containers');
|
|
476
|
+
try {
|
|
477
|
+
await fs.access(daemonContainersRoot);
|
|
478
|
+
} catch {
|
|
479
|
+
return {hasAccess: false, paths: []};
|
|
480
|
+
}
|
|
481
|
+
try {
|
|
482
|
+
const paths = await fs.glob(DAEMON_NATIVE_RECORDING_ATTACHMENT_GLOB, {
|
|
483
|
+
cwd: daemonContainersRoot,
|
|
484
|
+
absolute: true,
|
|
485
|
+
});
|
|
486
|
+
return {hasAccess: true, paths: [...new Set(paths)]};
|
|
487
|
+
} catch {
|
|
488
|
+
return {hasAccess: true, paths: []};
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
function pathMatchesUuid(fullPath: string, uuid: string): boolean {
|
|
493
|
+
return path.basename(fullPath).toUpperCase() === uuid.toUpperCase();
|
|
462
494
|
}
|
|
463
495
|
|
|
464
496
|
async function isFileUsed(fpath: string, userProcessName: string): Promise<boolean> {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {waitForCondition} from 'asyncbox';
|
|
2
|
-
import {util, fs, tempDir} from 'appium/support';
|
|
2
|
+
import {util, fs, tempDir} from 'appium/support.js';
|
|
3
3
|
import {SubProcess} from 'teen_process';
|
|
4
|
-
import {uploadRecordedMedia} from './helpers';
|
|
5
|
-
import type {Mac2Driver} from '../driver';
|
|
4
|
+
import {uploadRecordedMedia} from './helpers.js';
|
|
5
|
+
import type {Mac2Driver} from '../driver.js';
|
|
6
6
|
import type {AppiumLogger, StringRecord} from '@appium/types';
|
|
7
7
|
|
|
8
8
|
const RETRY_PAUSE = 300;
|
|
@@ -245,7 +245,7 @@ export class ScreenRecorder {
|
|
|
245
245
|
* Record the display in background while the automated test is running.
|
|
246
246
|
* This method requires FFMPEG (https://www.ffmpeg.org/download.html) to be installed
|
|
247
247
|
* and present in PATH. Also, the Appium process must be allowed to access screen recording
|
|
248
|
-
* in System
|
|
248
|
+
* in System Settings->Security & Privacy->Screen Recording.
|
|
249
249
|
* The resulting video uses H264 codec and is ready to be played by media players built-in into web browsers.
|
|
250
250
|
*
|
|
251
251
|
* @param deviceId - Screen device index to use for the recording.
|
package/lib/commands/source.ts
CHANGED