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.
Files changed (118) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +4 -4
  3. package/build/lib/commands/app-management.d.ts +1 -1
  4. package/build/lib/commands/app-management.d.ts.map +1 -1
  5. package/build/lib/commands/app-management.js +4 -10
  6. package/build/lib/commands/app-management.js.map +1 -1
  7. package/build/lib/commands/applescript.d.ts +2 -2
  8. package/build/lib/commands/applescript.d.ts.map +1 -1
  9. package/build/lib/commands/applescript.js +11 -17
  10. package/build/lib/commands/applescript.js.map +1 -1
  11. package/build/lib/commands/audit.d.ts +1 -1
  12. package/build/lib/commands/audit.d.ts.map +1 -1
  13. package/build/lib/commands/audit.js +1 -4
  14. package/build/lib/commands/audit.js.map +1 -1
  15. package/build/lib/commands/bidi/constants.js +2 -5
  16. package/build/lib/commands/bidi/constants.js.map +1 -1
  17. package/build/lib/commands/bidi/models.d.ts +1 -1
  18. package/build/lib/commands/bidi/models.d.ts.map +1 -1
  19. package/build/lib/commands/bidi/models.js +3 -6
  20. package/build/lib/commands/bidi/models.js.map +1 -1
  21. package/build/lib/commands/bidi/types.js +1 -2
  22. package/build/lib/commands/clipboard.d.ts +1 -1
  23. package/build/lib/commands/clipboard.d.ts.map +1 -1
  24. package/build/lib/commands/clipboard.js +2 -6
  25. package/build/lib/commands/clipboard.js.map +1 -1
  26. package/build/lib/commands/execute.d.ts +1 -1
  27. package/build/lib/commands/execute.d.ts.map +1 -1
  28. package/build/lib/commands/execute.js +1 -4
  29. package/build/lib/commands/execute.js.map +1 -1
  30. package/build/lib/commands/find.d.ts +1 -1
  31. package/build/lib/commands/find.d.ts.map +1 -1
  32. package/build/lib/commands/find.js +3 -6
  33. package/build/lib/commands/find.js.map +1 -1
  34. package/build/lib/commands/gestures.d.ts +2 -2
  35. package/build/lib/commands/gestures.d.ts.map +1 -1
  36. package/build/lib/commands/gestures.js +23 -40
  37. package/build/lib/commands/gestures.js.map +1 -1
  38. package/build/lib/commands/helpers.d.ts +1 -1
  39. package/build/lib/commands/helpers.d.ts.map +1 -1
  40. package/build/lib/commands/helpers.js +6 -9
  41. package/build/lib/commands/helpers.js.map +1 -1
  42. package/build/lib/commands/native-record-screen.d.ts +1 -1
  43. package/build/lib/commands/native-record-screen.d.ts.map +1 -1
  44. package/build/lib/commands/native-record-screen.js +84 -63
  45. package/build/lib/commands/native-record-screen.js.map +1 -1
  46. package/build/lib/commands/navigation.d.ts +1 -1
  47. package/build/lib/commands/navigation.d.ts.map +1 -1
  48. package/build/lib/commands/navigation.js +1 -4
  49. package/build/lib/commands/navigation.js.map +1 -1
  50. package/build/lib/commands/record-screen.d.ts +2 -2
  51. package/build/lib/commands/record-screen.d.ts.map +1 -1
  52. package/build/lib/commands/record-screen.js +20 -28
  53. package/build/lib/commands/record-screen.js.map +1 -1
  54. package/build/lib/commands/screenshots.d.ts +2 -2
  55. package/build/lib/commands/screenshots.d.ts.map +1 -1
  56. package/build/lib/commands/screenshots.js +1 -4
  57. package/build/lib/commands/screenshots.js.map +1 -1
  58. package/build/lib/commands/source.d.ts +1 -1
  59. package/build/lib/commands/source.d.ts.map +1 -1
  60. package/build/lib/commands/source.js +1 -4
  61. package/build/lib/commands/source.js.map +1 -1
  62. package/build/lib/constraints.js +1 -3
  63. package/build/lib/constraints.js.map +1 -1
  64. package/build/lib/doctor/optional-checks.d.ts +21 -0
  65. package/build/lib/doctor/optional-checks.d.ts.map +1 -1
  66. package/build/lib/doctor/optional-checks.js +116 -20
  67. package/build/lib/doctor/optional-checks.js.map +1 -1
  68. package/build/lib/doctor/required-checks.js +16 -21
  69. package/build/lib/doctor/required-checks.js.map +1 -1
  70. package/build/lib/doctor/utils.js +4 -7
  71. package/build/lib/doctor/utils.js.map +1 -1
  72. package/build/lib/driver.d.ts +15 -15
  73. package/build/lib/driver.d.ts.map +1 -1
  74. package/build/lib/driver.js +31 -71
  75. package/build/lib/driver.js.map +1 -1
  76. package/build/lib/execute-method-map.js +1 -4
  77. package/build/lib/execute-method-map.js.map +1 -1
  78. package/build/lib/index.d.ts +1 -1
  79. package/build/lib/index.d.ts.map +1 -1
  80. package/build/lib/index.js +3 -6
  81. package/build/lib/index.js.map +1 -1
  82. package/build/lib/logger.js +3 -5
  83. package/build/lib/logger.js.map +1 -1
  84. package/build/lib/method-map.js +1 -4
  85. package/build/lib/method-map.js.map +1 -1
  86. package/build/lib/types.js +1 -2
  87. package/build/lib/utils.d.ts +7 -0
  88. package/build/lib/utils.d.ts.map +1 -1
  89. package/build/lib/utils.js +24 -22
  90. package/build/lib/utils.js.map +1 -1
  91. package/build/lib/wda-mac.d.ts +1 -1
  92. package/build/lib/wda-mac.d.ts.map +1 -1
  93. package/build/lib/wda-mac.js +43 -51
  94. package/build/lib/wda-mac.js.map +1 -1
  95. package/lib/commands/app-management.ts +1 -1
  96. package/lib/commands/applescript.ts +3 -3
  97. package/lib/commands/audit.ts +1 -1
  98. package/lib/commands/bidi/models.ts +2 -2
  99. package/lib/commands/clipboard.ts +1 -1
  100. package/lib/commands/execute.ts +1 -1
  101. package/lib/commands/find.ts +2 -2
  102. package/lib/commands/gestures.ts +4 -4
  103. package/lib/commands/helpers.ts +2 -2
  104. package/lib/commands/native-record-screen.ts +67 -35
  105. package/lib/commands/navigation.ts +1 -1
  106. package/lib/commands/record-screen.ts +4 -4
  107. package/lib/commands/screenshots.ts +2 -2
  108. package/lib/commands/source.ts +1 -1
  109. package/lib/doctor/optional-checks.ts +127 -2
  110. package/lib/doctor/required-checks.ts +1 -1
  111. package/lib/doctor/utils.ts +1 -1
  112. package/lib/driver.ts +18 -18
  113. package/lib/index.ts +1 -1
  114. package/lib/logger.ts +1 -1
  115. package/lib/utils.ts +20 -9
  116. package/lib/wda-mac.ts +3 -3
  117. package/npm-shrinkwrap.json +130 -590
  118. package/package.json +13 -12
@@ -1,24 +1,18 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WDA_MAC_SERVER = exports.WDAMacServer = exports.WDAMacProxy = void 0;
7
- const node_path_1 = __importDefault(require("node:path"));
8
- const node_url_1 = __importDefault(require("node:url"));
9
- const axios_1 = __importDefault(require("axios"));
10
- const promises_1 = require("node:timers/promises");
11
- const driver_1 = require("appium/driver");
12
- const support_1 = require("appium/support");
13
- const strongbox_1 = require("@appium/strongbox");
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) => node_path_1.default.resolve(wdaRoot, WDA_PROJECT_NAME);
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 = node_path_1.default.join('.appium', 'webdriveragent_mac', 'upgrade.time');
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 (0, utils_1.listChildrenProcessIds)(this.pid) : [];
39
+ return this.pid ? await listChildrenProcessIds(this.pid) : [];
46
40
  }
47
41
  async cleanupProjectIfFresh() {
48
- const packageInfo = JSON.parse(await support_1.fs.readFile(node_path_1.default.join((0, utils_1.getModuleRoot)(), 'package.json'), 'utf8'));
49
- const box = (0, strongbox_1.strongbox)(packageInfo.name);
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 = node_path_1.default.resolve(process.env.HOME ?? '', RECENT_UPGRADE_TIMESTAMP_PATH);
53
- if (await support_1.fs.exists(timestampPath)) {
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 = support_1.util.coerceVersion(recentModuleVersion, true);
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 (support_1.util.compareVersions(recentModuleVersion, '>=', packageInfo.version)) {
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 (0, teen_process_1.exec)(XCODEBUILD, args, { cwd: this.bootstrapRoot });
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 support_1.fs.exists(WDA_PROJECT(this.bootstrapRoot)))) {
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 support_1.fs.which(XCODEBUILD);
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 (0, portscanner_1.checkPortStatus)(this.port, this.host)) === 'open';
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 support_1.timing.Timer().start();
127
+ const timer = new timing.Timer().start();
134
128
  try {
135
- await axios_1.default.delete(`http://${this.host}:${this.port}/`, {
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 (0, promises_1.setTimeout)(500);
140
- await (0, asyncbox_1.waitForCondition)(async () => !(await isPortBusy()), {
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 teen_process_1.SubProcess(xcodebuild, args, {
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} ${support_1.util.quote(args)}`);
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 driver_1.JWProxy {
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 driver_1.errors.InvalidContextError(`'${method} ${url}' cannot be proxied to Mac2 Driver server because ` +
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
- exports.WDAMacProxy = WDAMacProxy;
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 support_1.timing.Timer().start();
287
+ const timer = new timing.Timer().start();
295
288
  try {
296
- await (0, asyncbox_1.waitForCondition)(async () => await this.isProxyReady(), {
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
- (0, utils_1.removeAllOccurrences)(RUNNING_PROCESS_IDS, pid);
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 node_url_1.default.URL(caps.webDriverAgentMacUrl);
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
- exports.WDAMacServer = WDAMacServer;
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
- support_1.util.pluralize('process', RUNNING_PROCESS_IDS.length, false));
420
+ util.pluralize('process', RUNNING_PROCESS_IDS.length, false));
429
421
  tryKillPids(RUNNING_PROCESS_IDS.map(String), 'SIGKILL');
430
- (0, utils_1.clearArray)(RUNNING_PROCESS_IDS);
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
- (0, utils_1.clearArray)(RUNNING_PROCESS_IDS);
428
+ clearArray(RUNNING_PROCESS_IDS);
437
429
  }
438
430
  });
439
431
  //# sourceMappingURL=wda-mac.js.map
@@ -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,4 +1,4 @@
1
- import type {Mac2Driver} from '../driver';
1
+ import type {Mac2Driver} from '../driver.js';
2
2
  import type {StringRecord} from '@appium/types';
3
3
 
4
4
  /**
@@ -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 Preferences -> Privacy list.
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
@@ -1,4 +1,4 @@
1
- import type {Mac2Driver} from '../driver';
1
+ import type {Mac2Driver} from '../driver.js';
2
2
 
3
3
  export interface AccessibilityAuditItem {
4
4
  detailedDescription: string;
@@ -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.
@@ -1,4 +1,4 @@
1
- import type {Mac2Driver} from '../driver';
1
+ import type {Mac2Driver} from '../driver.js';
2
2
 
3
3
  /**
4
4
  * Sets the content of the clipboard.
@@ -1,4 +1,4 @@
1
- import type {Mac2Driver} from '../driver';
1
+ import type {Mac2Driver} from '../driver.js';
2
2
  import type {StringRecord} from '@appium/types';
3
3
 
4
4
  const EXECUTE_SCRIPT_PREFIX = 'macos:';
@@ -1,5 +1,5 @@
1
- import {util} from 'appium/support';
2
- import type {Mac2Driver} from '../driver';
1
+ import {util} from 'appium/support.js';
2
+ import type {Mac2Driver} from '../driver.js';
3
3
 
4
4
  /**
5
5
  * This is needed to make lookup by image working
@@ -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.
@@ -1,5 +1,5 @@
1
- import {util, fs, net} from 'appium/support';
2
- import type {Mac2Driver} from '../driver';
1
+ import {util, fs, net} from 'appium/support.js';
2
+ import type {Mac2Driver} from '../driver.js';
3
3
  import type {StringRecord} from '@appium/types';
4
4
 
5
5
  /**
@@ -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
- const result = paths.find((name) => name.endsWith(uuid));
135
- if (result) {
136
- fullPath = result;
137
- return true;
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
- return false;
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 attachments = await listAttachments();
261
- if (attachments.length === 0) {
274
+ const {hasAccess, paths} = await listAttachments();
275
+ if (!hasAccess || paths.length === 0) {
262
276
  return;
263
277
  }
264
- const tasks: Promise<any>[] = attachments
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 matchedVideoPath = (await listAttachments()).find((name) => name.endsWith(uuid));
420
- if (!matchedVideoPath) {
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 Preferences' -> 'Privacy & Security' tab. ` +
425
- `You may verify the presence of the recorded video manually by running the ` +
426
- `'find "$HOME/Library/Daemon Containers/" -type f -name "${uuid}"' command from Terminal ` +
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
- // The expected path looks like
452
- // $HOME/Library/Daemon Containers/EFDD24BF-F856-411F-8954-CD5F0D6E6F3E/Data/Attachments/CAE7E5E2-5AC9-4D33-A47B-C491D644DE06
453
- const deamonContainersRoot = path.resolve(
454
- process.env.HOME as string,
455
- 'Library',
456
- 'Daemon Containers',
457
- );
458
- return await fs.glob(`*/Data/Attachments/*`, {
459
- cwd: deamonContainersRoot,
460
- absolute: true,
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,4 +1,4 @@
1
- import type {Mac2Driver} from '../driver';
1
+ import type {Mac2Driver} from '../driver.js';
2
2
 
3
3
  /**
4
4
  * Opens the given URL with the default or the given application.
@@ -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 Preferences->Security & Privacy->Screen Recording.
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.
@@ -1,5 +1,5 @@
1
- import type {Mac2Driver} from '../driver';
2
- import type {ScreenshotsInfo} from '../types';
1
+ import type {Mac2Driver} from '../driver.js';
2
+ import type {ScreenshotsInfo} from '../types.js';
3
3
 
4
4
  /**
5
5
  * Retrieves screenshots of each display available to macOS
@@ -1,4 +1,4 @@
1
- import type {Mac2Driver} from '../driver';
1
+ import type {Mac2Driver} from '../driver.js';
2
2
 
3
3
  /**
4
4
  * Retrieves the string representation of the current application