appium-xcuitest-driver 11.7.6 → 11.7.7

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
+ ## [11.7.7](https://github.com/appium/appium-xcuitest-driver/compare/v11.7.6...v11.7.7) (2026-06-01)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * Tune AFC performance logging ([#2858](https://github.com/appium/appium-xcuitest-driver/issues/2858)) ([03a9145](https://github.com/appium/appium-xcuitest-driver/commit/03a91454a8db7571e401bd9dc6d42aae4552133a))
6
+
1
7
  ## [11.7.6](https://github.com/appium/appium-xcuitest-driver/compare/v11.7.5...v11.7.6) (2026-05-31)
2
8
 
3
9
  ### Miscellaneous Chores
@@ -3,10 +3,11 @@ import type { ContainerObject, ContainerRootSupplier } from './types';
3
3
  /**
4
4
  * Parses the actual path and the bundle identifier from the given path string.
5
5
  *
6
+ * @param driver - The driver instance
6
7
  * @param remotePath - Path string matching `CONTAINER_PATH_PATTERN`, e.g. `@bundle.id:container/relative/path`
7
8
  * @param containerRootSupplier - Container root path supplier or explicit root
8
9
  */
9
- export declare function parseContainerPath(this: XCUITestDriver, remotePath: string, containerRootSupplier?: ContainerRootSupplier | string): Promise<ContainerObject>;
10
+ export declare function parseContainerPath(driver: XCUITestDriver, remotePath: string, containerRootSupplier?: ContainerRootSupplier | string): Promise<ContainerObject>;
10
11
  /**
11
12
  * Pushes the given data to a file on the remote device.
12
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"file-movement.d.ts","sourceRoot":"","sources":["../../../lib/commands/file-movement.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAC,eAAe,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAC;AA+BpE;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,qBAAqB,GAAG,MAAM,GACrD,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GACrC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9F;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhG;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1F;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhG"}
1
+ {"version":3,"file":"file-movement.d.ts","sourceRoot":"","sources":["../../../lib/commands/file-movement.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAC,eAAe,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAC;AA+BpE;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,qBAAqB,GAAG,MAAM,GACrD,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GACrC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9F;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhG;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1F;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhG"}
@@ -31,10 +31,11 @@ const OBJECT_NOT_FOUND_ERROR_MESSAGE = 'OBJECT_NOT_FOUND';
31
31
  /**
32
32
  * Parses the actual path and the bundle identifier from the given path string.
33
33
  *
34
+ * @param driver - The driver instance
34
35
  * @param remotePath - Path string matching `CONTAINER_PATH_PATTERN`, e.g. `@bundle.id:container/relative/path`
35
36
  * @param containerRootSupplier - Container root path supplier or explicit root
36
37
  */
37
- async function parseContainerPath(remotePath, containerRootSupplier) {
38
+ async function parseContainerPath(driver, remotePath, containerRootSupplier) {
38
39
  const match = CONTAINER_PATH_PATTERN.exec(remotePath);
39
40
  if (!match) {
40
41
  throw new Error(`It is expected that package identifier ` +
@@ -50,7 +51,7 @@ async function parseContainerPath(remotePath, containerRootSupplier) {
50
51
  if (typeSeparatorPos > 0) {
51
52
  if (typeSeparatorPos < bundleId.length - 1) {
52
53
  containerType = bundleId.substring(typeSeparatorPos + 1);
53
- this.log.debug(`Parsed container type: ${containerType}`);
54
+ driver.log.debug(`Parsed container type: ${containerType}`);
54
55
  }
55
56
  // Always strip the colon and everything after it
56
57
  bundleId = bundleId.substring(0, typeSeparatorPos);
@@ -217,12 +218,12 @@ function verifyIsSubPath(originalPath, root) {
217
218
  /**
218
219
  * Create AFC client for file operations
219
220
  */
220
- async function createAfcClient(opts = {}) {
221
+ async function createAfcClient(driver, opts = {}) {
221
222
  const { bundleId, containerType } = opts;
222
- const udid = this.device.udid;
223
- const useIos18 = (0, helpers_1.isIos18OrNewer)(this.opts);
223
+ const udid = driver.device.udid;
224
+ const useIos18 = (0, helpers_1.isIos18OrNewer)(driver.opts);
224
225
  if (bundleId) {
225
- const skipDocumentsCheck = this.settings.getSettings().skipDocumentsContainerCheck ?? false;
226
+ const skipDocumentsCheck = driver.settings.getSettings().skipDocumentsContainerCheck ?? false;
226
227
  return await afc_client_1.AfcClient.createForApp(udid, bundleId, useIos18, {
227
228
  containerType: containerType ?? null,
228
229
  skipDocumentsCheck,
@@ -233,10 +234,10 @@ async function createAfcClient(opts = {}) {
233
234
  /**
234
235
  * Create service for file operations
235
236
  */
236
- async function createService(remotePath) {
237
+ async function createService(driver, remotePath) {
237
238
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
238
- const { bundleId, pathInContainer, containerType } = await parseContainerPath.bind(this)(remotePath);
239
- const client = await createAfcClient.bind(this)({ bundleId, containerType });
239
+ const { bundleId, pathInContainer, containerType } = await parseContainerPath(driver, remotePath);
240
+ const client = await createAfcClient(driver, { bundleId, containerType });
240
241
  let relativePath = isDocumentsContainer(containerType)
241
242
  ? node_path_1.default.join(CONTAINER_DOCUMENTS_PATH, pathInContainer)
242
243
  : pathInContainer;
@@ -246,7 +247,7 @@ async function createService(remotePath) {
246
247
  }
247
248
  return { client, relativePath };
248
249
  }
249
- const client = await createAfcClient.bind(this)({});
250
+ const client = await createAfcClient(driver, {});
250
251
  return { client, relativePath: remotePath };
251
252
  }
252
253
  /**
@@ -261,7 +262,7 @@ async function pushFileToSimulator(remotePath, base64Data) {
261
262
  const buffer = Buffer.from(base64Data, 'base64');
262
263
  const device = this.device;
263
264
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
264
- const { bundleId, pathInContainer: dstPath } = await parseContainerPath.bind(this)(remotePath, async (appBundle, containerType) => await device.simctl.getAppContainer(appBundle, containerType));
265
+ const { bundleId, pathInContainer: dstPath } = await parseContainerPath(this, remotePath, async (appBundle, containerType) => await device.simctl.getAppContainer(appBundle, containerType));
265
266
  this.log.info(`Parsed bundle identifier '${bundleId}' from '${remotePath}'. ` +
266
267
  `Will put the data into '${dstPath}'`);
267
268
  if (!(await support_1.fs.exists(node_path_1.default.dirname(dstPath)))) {
@@ -290,9 +291,11 @@ async function pushFileToSimulator(remotePath, base64Data) {
290
291
  * @param base64Data - Base-64 encoded content of the file to be uploaded.
291
292
  */
292
293
  async function pushFileToRealDevice(remotePath, base64Data) {
293
- const { client, relativePath } = await createService.bind(this)(remotePath);
294
+ const { client, relativePath } = await createService(this, remotePath);
294
295
  try {
295
- await (0, real_device_management_1.pushFile)(client, Buffer.from(base64Data, 'base64'), relativePath);
296
+ await (0, real_device_management_1.pushFile)(client, Buffer.from(base64Data, 'base64'), relativePath, {
297
+ log: this.log,
298
+ });
296
299
  }
297
300
  catch (e) {
298
301
  this.log.debug(e.stack);
@@ -319,7 +322,7 @@ async function pullFromSimulator(remotePath, isFile) {
319
322
  let pathOnServer;
320
323
  const device = this.device;
321
324
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
322
- const { bundleId, pathInContainer: dstPath } = await parseContainerPath.bind(this)(remotePath, async (appBundle, containerType) => await device.simctl.getAppContainer(appBundle, containerType));
325
+ const { bundleId, pathInContainer: dstPath } = await parseContainerPath(this, remotePath, async (appBundle, containerType) => await device.simctl.getAppContainer(appBundle, containerType));
323
326
  this.log.info(`Parsed bundle identifier '${bundleId}' from '${remotePath}'. ` +
324
327
  `Will get the data from '${dstPath}'`);
325
328
  pathOnServer = dstPath;
@@ -359,7 +362,7 @@ async function pullFromSimulator(remotePath, isFile) {
359
362
  * @returns Base-64 encoded content of the remote file
360
363
  */
361
364
  async function pullFromRealDevice(remotePath, isFile) {
362
- const { client, relativePath } = await createService.bind(this)(remotePath);
365
+ const { client, relativePath } = await createService(this, remotePath);
363
366
  try {
364
367
  // Check if path is a directory
365
368
  const isDirectory = await client.isDirectory(relativePath);
@@ -370,8 +373,8 @@ async function pullFromRealDevice(remotePath, isFile) {
370
373
  throw new Error(`The requested path is not a folder. Path: '${remotePath}'`);
371
374
  }
372
375
  return isDirectory
373
- ? (await (0, real_device_management_1.pullFolder)(client, relativePath)).toString()
374
- : (await (0, real_device_management_1.pullFile)(client, relativePath)).toString('base64');
376
+ ? (await (0, real_device_management_1.pullFolder)(client, relativePath, { log: this.log })).toString()
377
+ : (await (0, real_device_management_1.pullFile)(client, relativePath, { log: this.log })).toString('base64');
375
378
  }
376
379
  finally {
377
380
  await client.close();
@@ -392,7 +395,7 @@ async function deleteFromSimulator(remotePath) {
392
395
  let pathOnServer;
393
396
  const device = this.device;
394
397
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
395
- const { bundleId, pathInContainer: dstPath } = await parseContainerPath.bind(this)(remotePath, async (appBundle, containerType) => await device.simctl.getAppContainer(appBundle, containerType));
398
+ const { bundleId, pathInContainer: dstPath } = await parseContainerPath(this, remotePath, async (appBundle, containerType) => await device.simctl.getAppContainer(appBundle, containerType));
396
399
  this.log.info(`Parsed bundle identifier '${bundleId}' from '${remotePath}'. ` +
397
400
  `'${dstPath}' will be deleted`);
398
401
  pathOnServer = dstPath;
@@ -427,7 +430,7 @@ async function deleteFromSimulator(remotePath) {
427
430
  * @returns Nothing
428
431
  */
429
432
  async function deleteFromRealDevice(remotePath) {
430
- const { client, relativePath } = await createService.bind(this)(remotePath);
433
+ const { client, relativePath } = await createService(this, remotePath);
431
434
  try {
432
435
  await client.deleteDirectory(relativePath);
433
436
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-movement.js","sourceRoot":"","sources":["../../../lib/commands/file-movement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-movement.js","sourceRoot":"","sources":["../../../lib/commands/file-movement.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,23 @@ import type { XCUITestDriver, XCUITestDriverOpts } from '../driver';
4
4
  import { AfcClient } from './afc-client';
5
5
  export declare const IO_TIMEOUT_MS: number;
6
6
  export declare const MAX_IO_CHUNK_SIZE = 8;
7
- export interface PushFileOptions {
7
+ export interface AfcTransferOptions {
8
+ log?: AppiumLogger;
9
+ }
10
+ export interface PushFileOptions extends AfcTransferOptions {
8
11
  /** The maximum count of milliseconds to wait until file push is completed. Cannot be lower than 60000ms */
9
12
  timeoutMs?: number;
10
13
  }
11
- export interface PushFolderOptions {
14
+ export interface PushFolderOptions extends AfcTransferOptions {
12
15
  /** The maximum timeout to wait until a single file is copied */
13
16
  timeoutMs?: number;
14
17
  /** Whether to push files in parallel. This usually gives better performance, but might sometimes be less stable. */
15
18
  enableParallelPush?: boolean;
16
19
  }
20
+ export interface PullFileOptions extends AfcTransferOptions {
21
+ }
22
+ export interface PullFolderOptions extends AfcTransferOptions {
23
+ }
17
24
  export interface RealDeviceInstallOptions {
18
25
  /** Application installation timeout in milliseconds */
19
26
  timeoutMs?: number;
@@ -96,17 +103,19 @@ export declare class RealDevice {
96
103
  *
97
104
  * @param client AFC client instance
98
105
  * @param remotePath Relative path to the file on the device
106
+ * @param opts Pull file options
99
107
  * @returns The file content as a buffer
100
108
  */
101
- export declare function pullFile(client: AfcClient, remotePath: string): Promise<Buffer>;
109
+ export declare function pullFile(client: AfcClient, remotePath: string, opts?: PullFileOptions): Promise<Buffer>;
102
110
  /**
103
111
  * Retrieve a folder from a real device
104
112
  *
105
113
  * @param client AFC client instance
106
114
  * @param remoteRootPath Relative path to the folder on the device
115
+ * @param opts Pull folder options
107
116
  * @returns The folder content as a zipped base64-encoded buffer
108
117
  */
109
- export declare function pullFolder(client: AfcClient, remoteRootPath: string): Promise<Buffer>;
118
+ export declare function pullFolder(client: AfcClient, remoteRootPath: string, opts?: PullFolderOptions): Promise<Buffer>;
110
119
  /**
111
120
  * Pushes a file to a real device
112
121
  *
@@ -1 +1 @@
1
- {"version":3,"file":"real-device-management.d.ts","sourceRoot":"","sources":["../../../lib/device/real-device-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"real-device-management.d.ts","sourceRoot":"","sources":["../../../lib/device/real-device-management.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,7 @@ class RealDevice {
73
73
  bundlePathOnPhone = `/${node_path_1.default.basename(appPath)}`;
74
74
  await pushFile(afcClient, appPath, bundlePathOnPhone, {
75
75
  timeoutMs,
76
+ log: this.log,
76
77
  });
77
78
  }
78
79
  else {
@@ -80,6 +81,7 @@ class RealDevice {
80
81
  await pushFolder(afcClient, appPath, bundlePathOnPhone, {
81
82
  enableParallelPush: true,
82
83
  timeoutMs,
84
+ log: this.log,
83
85
  });
84
86
  }
85
87
  await this.installOrUpgradeApplication(bundlePathOnPhone, {
@@ -254,20 +256,29 @@ exports.RealDevice = RealDevice;
254
256
  *
255
257
  * @param client AFC client instance
256
258
  * @param remotePath Relative path to the file on the device
259
+ * @param opts Pull file options
257
260
  * @returns The file content as a buffer
258
261
  */
259
- async function pullFile(client, remotePath) {
260
- return await (0, helpers_1.withTimeout)(client.getFileContents(remotePath), exports.IO_TIMEOUT_MS, `Timed out after ${exports.IO_TIMEOUT_MS}ms while pulling file from '${remotePath}'`);
262
+ async function pullFile(client, remotePath, opts = {}) {
263
+ const log = opts.log ?? logger_1.log;
264
+ const timer = new support_1.timing.Timer().start();
265
+ const buffer = await (0, helpers_1.withTimeout)(client.getFileContents(remotePath), exports.IO_TIMEOUT_MS, `Timed out after ${exports.IO_TIMEOUT_MS}ms while pulling file from '${remotePath}'`);
266
+ logAfcTransferPerformance(log, 'download', buffer.length, remotePath, timer);
267
+ return buffer;
261
268
  }
262
269
  /**
263
270
  * Retrieve a folder from a real device
264
271
  *
265
272
  * @param client AFC client instance
266
273
  * @param remoteRootPath Relative path to the folder on the device
274
+ * @param opts Pull folder options
267
275
  * @returns The folder content as a zipped base64-encoded buffer
268
276
  */
269
- async function pullFolder(client, remoteRootPath) {
277
+ async function pullFolder(client, remoteRootPath, opts = {}) {
278
+ const log = opts.log ?? logger_1.log;
279
+ const timer = new support_1.timing.Timer().start();
270
280
  const tmpFolder = await support_1.tempDir.openDir();
281
+ let totalBytes = 0;
271
282
  try {
272
283
  let localTopItem = null;
273
284
  let countFilesSuccess = 0;
@@ -275,7 +286,7 @@ async function pullFolder(client, remoteRootPath) {
275
286
  await client.pull(remoteRootPath, tmpFolder, {
276
287
  recursive: true,
277
288
  overwrite: true,
278
- onEntry: async (remotePath, localPath, isDirectory) => {
289
+ onEntry: async (_remotePath, localPath, isDirectory) => {
279
290
  if (!localTopItem ||
280
291
  localPath.split(node_path_1.default.sep).length < localTopItem.split(node_path_1.default.sep).length) {
281
292
  localTopItem = localPath;
@@ -285,10 +296,14 @@ async function pullFolder(client, remoteRootPath) {
285
296
  }
286
297
  else {
287
298
  ++countFilesSuccess;
299
+ totalBytes += (await support_1.fs.stat(localPath)).size;
288
300
  }
289
301
  },
290
302
  });
291
- logger_1.log.info(`Pulled ${support_1.util.pluralize('file', countFilesSuccess, true)} and ${support_1.util.pluralize('folder', countFolders, true)} from '${remoteRootPath}'`);
303
+ logAfcTransferPerformance(log, 'download', totalBytes, remoteRootPath, timer, {
304
+ fileCount: countFilesSuccess,
305
+ folderCount: countFolders,
306
+ });
292
307
  return await support_1.zip.toInMemoryZip(localTopItem ? node_path_1.default.dirname(localTopItem) : tmpFolder, {
293
308
  encodeToBase64: true,
294
309
  });
@@ -308,21 +323,18 @@ async function pullFolder(client, remoteRootPath) {
308
323
  * @param opts Push file options
309
324
  */
310
325
  async function pushFile(client, localPathOrPayload, remotePath, opts = {}) {
311
- const { timeoutMs = exports.IO_TIMEOUT_MS } = opts;
326
+ const { timeoutMs = exports.IO_TIMEOUT_MS, log = logger_1.log } = opts;
312
327
  const timer = new support_1.timing.Timer().start();
313
328
  await remoteMkdirp(client, node_path_1.default.dirname(remotePath));
314
- // AfcClient handles the branching internally
315
329
  const pushPromise = Buffer.isBuffer(localPathOrPayload)
316
330
  ? client.setFileContents(remotePath, localPathOrPayload)
317
331
  : client.writeFromStream(remotePath, support_1.fs.createReadStream(localPathOrPayload, { autoClose: true }));
318
- // Wrap with timeout
319
332
  const actualTimeout = Math.max(timeoutMs, 60000);
320
333
  await (0, helpers_1.withTimeout)(pushPromise, actualTimeout, `Timed out after ${actualTimeout}ms while pushing file to '${remotePath}'`);
321
334
  const fileSize = Buffer.isBuffer(localPathOrPayload)
322
335
  ? localPathOrPayload.length
323
336
  : (await support_1.fs.stat(localPathOrPayload)).size;
324
- logger_1.log.debug(`Successfully pushed the file payload (${support_1.util.toReadableSizeString(fileSize)}) ` +
325
- `to the remote location '${remotePath}' in ${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
337
+ logAfcTransferPerformance(log, 'upload', fileSize, remotePath, timer);
326
338
  }
327
339
  /**
328
340
  * Pushes a folder to a real device
@@ -334,14 +346,14 @@ async function pushFile(client, localPathOrPayload, remotePath, opts = {}) {
334
346
  * @param opts Push folder options
335
347
  */
336
348
  async function pushFolder(client, srcRootPath, dstRootPath, opts = {}) {
337
- const { timeoutMs = exports.IO_TIMEOUT_MS, enableParallelPush = false } = opts;
349
+ const { timeoutMs = exports.IO_TIMEOUT_MS, enableParallelPush = false, log = logger_1.log } = opts;
338
350
  const timer = new support_1.timing.Timer().start();
339
351
  const allItems =
340
352
  /** @type {import('path-scurry').Path[]} */ /** @type {unknown} */ (await support_1.fs.glob('**', {
341
353
  cwd: srcRootPath,
342
354
  withFileTypes: true,
343
355
  }));
344
- logger_1.log.debug(`Successfully scanned the tree structure of '${srcRootPath}'`);
356
+ log.debug(`Successfully scanned the tree structure of '${srcRootPath}'`);
345
357
  // top-level folders go first
346
358
  const foldersToPush = allItems
347
359
  .filter((x) => x.isDirectory())
@@ -352,13 +364,17 @@ async function pushFolder(client, srcRootPath, dstRootPath, opts = {}) {
352
364
  .filter((x) => !x.isDirectory())
353
365
  .sort((a, b) => (b.size ?? 0) - (a.size ?? 0))
354
366
  .map((x) => x.relative());
355
- logger_1.log.debug(`Got ${support_1.util.pluralize('folder', foldersToPush.length, true)} and ` +
367
+ const totalBytes = allItems
368
+ .filter((x) => !x.isDirectory())
369
+ .reduce((sum, x) => sum + (x.size ?? 0), 0);
370
+ log.debug(`Got ${support_1.util.pluralize('folder', foldersToPush.length, true)} and ` +
356
371
  `${support_1.util.pluralize('file', filesToPush.length, true)} to push`);
357
372
  // Create the folder structure
358
373
  try {
359
374
  await client.deleteDirectory(dstRootPath);
360
375
  }
361
376
  catch { }
377
+ // do not forget about the root folder
362
378
  await client.createDirectory(dstRootPath);
363
379
  for (const relativeFolderPath of foldersToPush) {
364
380
  let absoluteFolderPath = node_path_1.default.join(dstRootPath, relativeFolderPath);
@@ -369,8 +385,7 @@ async function pushFolder(client, srcRootPath, dstRootPath, opts = {}) {
369
385
  await client.createDirectory(absoluteFolderPath);
370
386
  }
371
387
  }
372
- // do not forget about the root folder
373
- logger_1.log.debug(`Successfully created the remote folder structure ` +
388
+ log.debug(`Successfully created the remote folder structure ` +
374
389
  `(${support_1.util.pluralize('item', foldersToPush.length + 1, true)})`);
375
390
  const _pushFile = async (relativePath) => {
376
391
  const absoluteSourcePath = node_path_1.default.join(srcRootPath, relativePath);
@@ -381,7 +396,7 @@ async function pushFolder(client, srcRootPath, dstRootPath, opts = {}) {
381
396
  await (0, helpers_1.withTimeout)(pushPromise, actualTimeout, `Timed out after ${actualTimeout}ms while pushing '${relativePath}' to '${absoluteDestinationPath}'`);
382
397
  };
383
398
  if (enableParallelPush) {
384
- logger_1.log.debug(`Proceeding to parallel files push (max ${exports.MAX_IO_CHUNK_SIZE} writers)`);
399
+ log.debug(`Proceeding to parallel files push (max ${exports.MAX_IO_CHUNK_SIZE} writers)`);
385
400
  await (0, helpers_1.withTimeout)((0, asyncbox_1.asyncmap)(filesToPush, async (relativeFilePath) => {
386
401
  await _pushFile(relativeFilePath);
387
402
  const elapsedMs = timer.getDuration().asMilliSeconds;
@@ -391,7 +406,7 @@ async function pushFolder(client, srcRootPath, dstRootPath, opts = {}) {
391
406
  }, { concurrency: exports.MAX_IO_CHUNK_SIZE }), Math.max(timeoutMs - timer.getDuration().asMilliSeconds, 60000));
392
407
  }
393
408
  else {
394
- logger_1.log.debug(`Proceeding to serial files push`);
409
+ log.debug(`Proceeding to serial files push`);
395
410
  for (const relativeFilePath of filesToPush) {
396
411
  await _pushFile(relativeFilePath);
397
412
  const elapsedMs = timer.getDuration().asMilliSeconds;
@@ -400,9 +415,10 @@ async function pushFolder(client, srcRootPath, dstRootPath, opts = {}) {
400
415
  }
401
416
  }
402
417
  }
403
- logger_1.log.debug(`Successfully pushed ${support_1.util.pluralize('folder', foldersToPush.length, true)} ` +
404
- `and ${support_1.util.pluralize('file', filesToPush.length, true)} ` +
405
- `within ${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
418
+ logAfcTransferPerformance(log, 'upload', totalBytes, dstRootPath, timer, {
419
+ fileCount: filesToPush.length,
420
+ folderCount: foldersToPush.length,
421
+ });
406
422
  }
407
423
  /**
408
424
  * Get list of connected devices.
@@ -515,6 +531,22 @@ async function detectUdid() {
515
531
  return udid;
516
532
  }
517
533
  // #region Private Helper Functions
534
+ function logAfcTransferPerformance(log, direction, byteCount, remotePath, timer, stats = {}) {
535
+ const elapsedMs = timer.getDuration().asMilliSeconds;
536
+ const elapsedSec = elapsedMs / 1000;
537
+ const preposition = direction === 'upload' ? 'to' : 'from';
538
+ const { fileCount, folderCount } = stats;
539
+ const itemSummary = fileCount !== undefined || folderCount !== undefined
540
+ ? ` (${support_1.util.pluralize('file', fileCount ?? 0, true)}` +
541
+ `${folderCount !== undefined ? ` and ${support_1.util.pluralize('folder', folderCount, true)}` : ''})`
542
+ : '';
543
+ log.debug(`AFC ${direction} of ${support_1.util.toReadableSizeString(byteCount)} ${preposition} '${remotePath}'` +
544
+ `${itemSummary} completed in ${elapsedMs.toFixed(0)}ms`);
545
+ if (elapsedSec >= 1 && byteCount > 0) {
546
+ const bytesPerSec = Math.floor(byteCount / elapsedSec);
547
+ log.debug(`Approximate average AFC ${direction} speed: ${support_1.util.toReadableSizeString(bytesPerSec)}/s`);
548
+ }
549
+ }
518
550
  /**
519
551
  * If the environment variable enables APPIUM_XCUITEST_PREFER_DEVICECTL.
520
552
  * This is a workaround for wireless tvOS.
@@ -1 +1 @@
1
- {"version":3,"file":"real-device-management.js","sourceRoot":"","sources":["../../../lib/device/real-device-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"real-device-management.js","sourceRoot":"","sources":["../../../lib/device/real-device-management.ts"],"names":[],"mappings":"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"}
@@ -42,11 +42,12 @@ const OBJECT_NOT_FOUND_ERROR_MESSAGE = 'OBJECT_NOT_FOUND';
42
42
  /**
43
43
  * Parses the actual path and the bundle identifier from the given path string.
44
44
  *
45
+ * @param driver - The driver instance
45
46
  * @param remotePath - Path string matching `CONTAINER_PATH_PATTERN`, e.g. `@bundle.id:container/relative/path`
46
47
  * @param containerRootSupplier - Container root path supplier or explicit root
47
48
  */
48
49
  export async function parseContainerPath(
49
- this: XCUITestDriver,
50
+ driver: XCUITestDriver,
50
51
  remotePath: string,
51
52
  containerRootSupplier?: ContainerRootSupplier | string,
52
53
  ): Promise<ContainerObject> {
@@ -67,7 +68,7 @@ export async function parseContainerPath(
67
68
  if (typeSeparatorPos > 0) {
68
69
  if (typeSeparatorPos < bundleId.length - 1) {
69
70
  containerType = bundleId.substring(typeSeparatorPos + 1);
70
- this.log.debug(`Parsed container type: ${containerType}`);
71
+ driver.log.debug(`Parsed container type: ${containerType}`);
71
72
  }
72
73
  // Always strip the colon and everything after it
73
74
  bundleId = bundleId.substring(0, typeSeparatorPos);
@@ -262,15 +263,15 @@ function verifyIsSubPath(originalPath: string, root: string): void {
262
263
  * Create AFC client for file operations
263
264
  */
264
265
  async function createAfcClient(
265
- this: XCUITestDriver,
266
+ driver: XCUITestDriver,
266
267
  opts: CreateAfcClientOptions = {},
267
268
  ): Promise<AfcClient> {
268
269
  const {bundleId, containerType} = opts;
269
- const udid = this.device.udid as string;
270
- const useIos18 = isIos18OrNewer(this.opts);
270
+ const udid = driver.device.udid as string;
271
+ const useIos18 = isIos18OrNewer(driver.opts);
271
272
 
272
273
  if (bundleId) {
273
- const skipDocumentsCheck = this.settings.getSettings().skipDocumentsContainerCheck ?? false;
274
+ const skipDocumentsCheck = driver.settings.getSettings().skipDocumentsContainerCheck ?? false;
274
275
  return await AfcClient.createForApp(udid, bundleId, useIos18, {
275
276
  containerType: containerType ?? null,
276
277
  skipDocumentsCheck,
@@ -284,13 +285,15 @@ async function createAfcClient(
284
285
  * Create service for file operations
285
286
  */
286
287
  async function createService(
287
- this: XCUITestDriver,
288
+ driver: XCUITestDriver,
288
289
  remotePath: string,
289
290
  ): Promise<CreateServiceResult> {
290
291
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
291
- const {bundleId, pathInContainer, containerType}: ContainerObject =
292
- await parseContainerPath.bind(this)(remotePath);
293
- const client: AfcClient = await createAfcClient.bind(this)({bundleId, containerType});
292
+ const {bundleId, pathInContainer, containerType}: ContainerObject = await parseContainerPath(
293
+ driver,
294
+ remotePath,
295
+ );
296
+ const client = await createAfcClient(driver, {bundleId, containerType});
294
297
  let relativePath = isDocumentsContainer(containerType)
295
298
  ? path.join(CONTAINER_DOCUMENTS_PATH, pathInContainer)
296
299
  : pathInContainer;
@@ -300,7 +303,7 @@ async function createService(
300
303
  }
301
304
  return {client, relativePath};
302
305
  }
303
- const client: AfcClient = await createAfcClient.bind(this)({});
306
+ const client = await createAfcClient(driver, {});
304
307
  return {client, relativePath: remotePath};
305
308
  }
306
309
 
@@ -320,7 +323,8 @@ async function pushFileToSimulator(
320
323
  const buffer = Buffer.from(base64Data, 'base64');
321
324
  const device = this.device as Simulator;
322
325
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
323
- const {bundleId, pathInContainer: dstPath} = await parseContainerPath.bind(this)(
326
+ const {bundleId, pathInContainer: dstPath} = await parseContainerPath(
327
+ this,
324
328
  remotePath,
325
329
  async (appBundle, containerType) =>
326
330
  await device.simctl.getAppContainer(appBundle, containerType),
@@ -361,9 +365,11 @@ async function pushFileToRealDevice(
361
365
  remotePath: string,
362
366
  base64Data: string,
363
367
  ): Promise<void> {
364
- const {client, relativePath} = await createService.bind(this)(remotePath);
368
+ const {client, relativePath} = await createService(this, remotePath);
365
369
  try {
366
- await realDevicePushFile(client, Buffer.from(base64Data, 'base64'), relativePath);
370
+ await realDevicePushFile(client, Buffer.from(base64Data, 'base64'), relativePath, {
371
+ log: this.log,
372
+ });
367
373
  } catch (e) {
368
374
  this.log.debug((e as Error).stack);
369
375
  throw new Error(
@@ -393,10 +399,11 @@ async function pullFromSimulator(
393
399
  remotePath: string,
394
400
  isFile: boolean,
395
401
  ): Promise<string> {
396
- let pathOnServer;
402
+ let pathOnServer: string;
397
403
  const device = this.device as Simulator;
398
404
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
399
- const {bundleId, pathInContainer: dstPath} = await parseContainerPath.bind(this)(
405
+ const {bundleId, pathInContainer: dstPath} = await parseContainerPath(
406
+ this,
400
407
  remotePath,
401
408
  async (appBundle, containerType) =>
402
409
  await device.simctl.getAppContainer(appBundle, containerType),
@@ -448,7 +455,7 @@ async function pullFromRealDevice(
448
455
  remotePath: string,
449
456
  isFile: boolean,
450
457
  ): Promise<string> {
451
- const {client, relativePath} = await createService.bind(this)(remotePath);
458
+ const {client, relativePath} = await createService(this, remotePath);
452
459
  try {
453
460
  // Check if path is a directory
454
461
  const isDirectory = await client.isDirectory(relativePath);
@@ -461,8 +468,8 @@ async function pullFromRealDevice(
461
468
  }
462
469
 
463
470
  return isDirectory
464
- ? (await realDevicePullFolder(client, relativePath)).toString()
465
- : (await realDevicePullFile(client, relativePath)).toString('base64');
471
+ ? (await realDevicePullFolder(client, relativePath, {log: this.log})).toString()
472
+ : (await realDevicePullFile(client, relativePath, {log: this.log})).toString('base64');
466
473
  } finally {
467
474
  await client.close();
468
475
  }
@@ -483,7 +490,8 @@ async function deleteFromSimulator(this: XCUITestDriver, remotePath: string): Pr
483
490
  let pathOnServer: string;
484
491
  const device = this.device as Simulator;
485
492
  if (CONTAINER_PATH_PATTERN.test(remotePath)) {
486
- const {bundleId, pathInContainer: dstPath} = await parseContainerPath.bind(this)(
493
+ const {bundleId, pathInContainer: dstPath} = await parseContainerPath(
494
+ this,
487
495
  remotePath,
488
496
  async (appBundle, containerType) =>
489
497
  await device.simctl.getAppContainer(appBundle, containerType),
@@ -524,7 +532,7 @@ async function deleteFromSimulator(this: XCUITestDriver, remotePath: string): Pr
524
532
  * @returns Nothing
525
533
  */
526
534
  async function deleteFromRealDevice(this: XCUITestDriver, remotePath: string): Promise<void> {
527
- const {client, relativePath} = await createService.bind(this)(remotePath);
535
+ const {client, relativePath} = await createService(this, remotePath);
528
536
  try {
529
537
  await client.deleteDirectory(relativePath);
530
538
  } catch (e) {
@@ -29,18 +29,26 @@ const APPLICATION_INSTALLED_NOTIFICATION = 'com.apple.mobile.application_install
29
29
  const APPLICATION_NOTIFICATION_TIMEOUT_MS = 30 * 1000;
30
30
  const INSTALLATION_STAGING_DIR = 'PublicStaging';
31
31
 
32
- export interface PushFileOptions {
32
+ export interface AfcTransferOptions {
33
+ log?: AppiumLogger;
34
+ }
35
+
36
+ export interface PushFileOptions extends AfcTransferOptions {
33
37
  /** The maximum count of milliseconds to wait until file push is completed. Cannot be lower than 60000ms */
34
38
  timeoutMs?: number;
35
39
  }
36
40
 
37
- export interface PushFolderOptions {
41
+ export interface PushFolderOptions extends AfcTransferOptions {
38
42
  /** The maximum timeout to wait until a single file is copied */
39
43
  timeoutMs?: number;
40
44
  /** Whether to push files in parallel. This usually gives better performance, but might sometimes be less stable. */
41
45
  enableParallelPush?: boolean;
42
46
  }
43
47
 
48
+ export interface PullFileOptions extends AfcTransferOptions {}
49
+
50
+ export interface PullFolderOptions extends AfcTransferOptions {}
51
+
44
52
  export interface RealDeviceInstallOptions {
45
53
  /** Application installation timeout in milliseconds */
46
54
  timeoutMs?: number;
@@ -62,6 +70,11 @@ export interface ManagementInstallOptions {
62
70
  shouldEnforceUninstall?: boolean;
63
71
  }
64
72
 
73
+ interface AfcTransferStats {
74
+ fileCount?: number;
75
+ folderCount?: number;
76
+ }
77
+
65
78
  export class RealDevice {
66
79
  readonly udid: string;
67
80
  readonly devicectl: Devicectl;
@@ -109,12 +122,14 @@ export class RealDevice {
109
122
  bundlePathOnPhone = `/${path.basename(appPath)}`;
110
123
  await pushFile(afcClient, appPath, bundlePathOnPhone, {
111
124
  timeoutMs,
125
+ log: this.log,
112
126
  });
113
127
  } else {
114
128
  bundlePathOnPhone = `${INSTALLATION_STAGING_DIR}/${bundleId}`;
115
129
  await pushFolder(afcClient, appPath, bundlePathOnPhone, {
116
130
  enableParallelPush: true,
117
131
  timeoutMs,
132
+ log: this.log,
118
133
  });
119
134
  }
120
135
  await this.installOrUpgradeApplication(bundlePathOnPhone, {
@@ -325,14 +340,23 @@ export class RealDevice {
325
340
  *
326
341
  * @param client AFC client instance
327
342
  * @param remotePath Relative path to the file on the device
343
+ * @param opts Pull file options
328
344
  * @returns The file content as a buffer
329
345
  */
330
- export async function pullFile(client: AfcClient, remotePath: string): Promise<Buffer> {
331
- return await withTimeout(
346
+ export async function pullFile(
347
+ client: AfcClient,
348
+ remotePath: string,
349
+ opts: PullFileOptions = {},
350
+ ): Promise<Buffer> {
351
+ const log = opts.log ?? defaultLogger;
352
+ const timer = new timing.Timer().start();
353
+ const buffer = await withTimeout(
332
354
  client.getFileContents(remotePath),
333
355
  IO_TIMEOUT_MS,
334
356
  `Timed out after ${IO_TIMEOUT_MS}ms while pulling file from '${remotePath}'`,
335
357
  );
358
+ logAfcTransferPerformance(log, 'download', buffer.length, remotePath, timer);
359
+ return buffer;
336
360
  }
337
361
 
338
362
  /**
@@ -340,10 +364,18 @@ export async function pullFile(client: AfcClient, remotePath: string): Promise<B
340
364
  *
341
365
  * @param client AFC client instance
342
366
  * @param remoteRootPath Relative path to the folder on the device
367
+ * @param opts Pull folder options
343
368
  * @returns The folder content as a zipped base64-encoded buffer
344
369
  */
345
- export async function pullFolder(client: AfcClient, remoteRootPath: string): Promise<Buffer> {
370
+ export async function pullFolder(
371
+ client: AfcClient,
372
+ remoteRootPath: string,
373
+ opts: PullFolderOptions = {},
374
+ ): Promise<Buffer> {
375
+ const log = opts.log ?? defaultLogger;
376
+ const timer = new timing.Timer().start();
346
377
  const tmpFolder = await tempDir.openDir();
378
+ let totalBytes = 0;
347
379
  try {
348
380
  let localTopItem: string | null = null;
349
381
  let countFilesSuccess = 0;
@@ -352,7 +384,7 @@ export async function pullFolder(client: AfcClient, remoteRootPath: string): Pro
352
384
  await client.pull(remoteRootPath, tmpFolder, {
353
385
  recursive: true,
354
386
  overwrite: true,
355
- onEntry: async (remotePath: string, localPath: string, isDirectory: boolean) => {
387
+ onEntry: async (_remotePath: string, localPath: string, isDirectory: boolean) => {
356
388
  if (
357
389
  !localTopItem ||
358
390
  localPath.split(path.sep).length < localTopItem.split(path.sep).length
@@ -363,17 +395,15 @@ export async function pullFolder(client: AfcClient, remoteRootPath: string): Pro
363
395
  ++countFolders;
364
396
  } else {
365
397
  ++countFilesSuccess;
398
+ totalBytes += (await fs.stat(localPath)).size;
366
399
  }
367
400
  },
368
401
  });
369
402
 
370
- defaultLogger.info(
371
- `Pulled ${util.pluralize('file', countFilesSuccess, true)} and ${util.pluralize(
372
- 'folder',
373
- countFolders,
374
- true,
375
- )} from '${remoteRootPath}'`,
376
- );
403
+ logAfcTransferPerformance(log, 'download', totalBytes, remoteRootPath, timer, {
404
+ fileCount: countFilesSuccess,
405
+ folderCount: countFolders,
406
+ });
377
407
  return await zip.toInMemoryZip(localTopItem ? path.dirname(localTopItem) : tmpFolder, {
378
408
  encodeToBase64: true,
379
409
  });
@@ -398,11 +428,10 @@ export async function pushFile(
398
428
  remotePath: string,
399
429
  opts: PushFileOptions = {},
400
430
  ): Promise<void> {
401
- const {timeoutMs = IO_TIMEOUT_MS} = opts;
431
+ const {timeoutMs = IO_TIMEOUT_MS, log = defaultLogger} = opts;
402
432
  const timer = new timing.Timer().start();
403
433
  await remoteMkdirp(client, path.dirname(remotePath));
404
434
 
405
- // AfcClient handles the branching internally
406
435
  const pushPromise = Buffer.isBuffer(localPathOrPayload)
407
436
  ? client.setFileContents(remotePath, localPathOrPayload)
408
437
  : client.writeFromStream(
@@ -410,7 +439,6 @@ export async function pushFile(
410
439
  fs.createReadStream(localPathOrPayload, {autoClose: true}),
411
440
  );
412
441
 
413
- // Wrap with timeout
414
442
  const actualTimeout = Math.max(timeoutMs, 60000);
415
443
  await withTimeout(
416
444
  pushPromise,
@@ -421,10 +449,7 @@ export async function pushFile(
421
449
  const fileSize = Buffer.isBuffer(localPathOrPayload)
422
450
  ? localPathOrPayload.length
423
451
  : (await fs.stat(localPathOrPayload)).size;
424
- defaultLogger.debug(
425
- `Successfully pushed the file payload (${util.toReadableSizeString(fileSize)}) ` +
426
- `to the remote location '${remotePath}' in ${timer.getDuration().asMilliSeconds.toFixed(0)}ms`,
427
- );
452
+ logAfcTransferPerformance(log, 'upload', fileSize, remotePath, timer);
428
453
  }
429
454
 
430
455
  /**
@@ -442,7 +467,7 @@ export async function pushFolder(
442
467
  dstRootPath: string,
443
468
  opts: PushFolderOptions = {},
444
469
  ): Promise<void> {
445
- const {timeoutMs = IO_TIMEOUT_MS, enableParallelPush = false} = opts;
470
+ const {timeoutMs = IO_TIMEOUT_MS, enableParallelPush = false, log = defaultLogger} = opts;
446
471
 
447
472
  const timer = new timing.Timer().start();
448
473
  const allItems =
@@ -450,7 +475,7 @@ export async function pushFolder(
450
475
  cwd: srcRootPath,
451
476
  withFileTypes: true,
452
477
  })) as any[];
453
- defaultLogger.debug(`Successfully scanned the tree structure of '${srcRootPath}'`);
478
+ log.debug(`Successfully scanned the tree structure of '${srcRootPath}'`);
454
479
  // top-level folders go first
455
480
  const foldersToPush: string[] = allItems
456
481
  .filter((x) => x.isDirectory())
@@ -461,7 +486,10 @@ export async function pushFolder(
461
486
  .filter((x) => !x.isDirectory())
462
487
  .sort((a, b) => (b.size ?? 0) - (a.size ?? 0))
463
488
  .map((x) => x.relative());
464
- defaultLogger.debug(
489
+ const totalBytes = allItems
490
+ .filter((x) => !x.isDirectory())
491
+ .reduce((sum, x) => sum + (x.size ?? 0), 0);
492
+ log.debug(
465
493
  `Got ${util.pluralize('folder', foldersToPush.length, true)} and ` +
466
494
  `${util.pluralize('file', filesToPush.length, true)} to push`,
467
495
  );
@@ -470,6 +498,7 @@ export async function pushFolder(
470
498
  await client.deleteDirectory(dstRootPath);
471
499
  } catch {}
472
500
 
501
+ // do not forget about the root folder
473
502
  await client.createDirectory(dstRootPath);
474
503
  for (const relativeFolderPath of foldersToPush) {
475
504
  let absoluteFolderPath = path.join(dstRootPath, relativeFolderPath);
@@ -480,8 +509,7 @@ export async function pushFolder(
480
509
  await client.createDirectory(absoluteFolderPath);
481
510
  }
482
511
  }
483
- // do not forget about the root folder
484
- defaultLogger.debug(
512
+ log.debug(
485
513
  `Successfully created the remote folder structure ` +
486
514
  `(${util.pluralize('item', foldersToPush.length + 1, true)})`,
487
515
  );
@@ -501,7 +529,7 @@ export async function pushFolder(
501
529
  };
502
530
 
503
531
  if (enableParallelPush) {
504
- defaultLogger.debug(`Proceeding to parallel files push (max ${MAX_IO_CHUNK_SIZE} writers)`);
532
+ log.debug(`Proceeding to parallel files push (max ${MAX_IO_CHUNK_SIZE} writers)`);
505
533
  await withTimeout(
506
534
  asyncmap(
507
535
  filesToPush,
@@ -517,7 +545,7 @@ export async function pushFolder(
517
545
  Math.max(timeoutMs - timer.getDuration().asMilliSeconds, 60000),
518
546
  );
519
547
  } else {
520
- defaultLogger.debug(`Proceeding to serial files push`);
548
+ log.debug(`Proceeding to serial files push`);
521
549
  for (const relativeFilePath of filesToPush) {
522
550
  await _pushFile(relativeFilePath);
523
551
  const elapsedMs = timer.getDuration().asMilliSeconds;
@@ -527,11 +555,10 @@ export async function pushFolder(
527
555
  }
528
556
  }
529
557
 
530
- defaultLogger.debug(
531
- `Successfully pushed ${util.pluralize('folder', foldersToPush.length, true)} ` +
532
- `and ${util.pluralize('file', filesToPush.length, true)} ` +
533
- `within ${timer.getDuration().asMilliSeconds.toFixed(0)}ms`,
534
- );
558
+ logAfcTransferPerformance(log, 'upload', totalBytes, dstRootPath, timer, {
559
+ fileCount: filesToPush.length,
560
+ folderCount: foldersToPush.length,
561
+ });
535
562
  }
536
563
 
537
564
  /**
@@ -667,6 +694,36 @@ export async function detectUdid(this: XCUITestDriver): Promise<string> {
667
694
 
668
695
  // #region Private Helper Functions
669
696
 
697
+ function logAfcTransferPerformance(
698
+ log: AppiumLogger,
699
+ direction: 'upload' | 'download',
700
+ byteCount: number,
701
+ remotePath: string,
702
+ timer: timing.Timer,
703
+ stats: AfcTransferStats = {},
704
+ ): void {
705
+ const elapsedMs = timer.getDuration().asMilliSeconds;
706
+ const elapsedSec = elapsedMs / 1000;
707
+ const preposition = direction === 'upload' ? 'to' : 'from';
708
+ const {fileCount, folderCount} = stats;
709
+ const itemSummary =
710
+ fileCount !== undefined || folderCount !== undefined
711
+ ? ` (${util.pluralize('file', fileCount ?? 0, true)}` +
712
+ `${folderCount !== undefined ? ` and ${util.pluralize('folder', folderCount, true)}` : ''})`
713
+ : '';
714
+
715
+ log.debug(
716
+ `AFC ${direction} of ${util.toReadableSizeString(byteCount)} ${preposition} '${remotePath}'` +
717
+ `${itemSummary} completed in ${elapsedMs.toFixed(0)}ms`,
718
+ );
719
+ if (elapsedSec >= 1 && byteCount > 0) {
720
+ const bytesPerSec = Math.floor(byteCount / elapsedSec);
721
+ log.debug(
722
+ `Approximate average AFC ${direction} speed: ${util.toReadableSizeString(bytesPerSec)}/s`,
723
+ );
724
+ }
725
+ }
726
+
670
727
  /**
671
728
  * If the environment variable enables APPIUM_XCUITEST_PREFER_DEVICECTL.
672
729
  * This is a workaround for wireless tvOS.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appium-xcuitest-driver",
3
- "version": "11.7.6",
3
+ "version": "11.7.7",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-xcuitest-driver",
9
- "version": "11.7.6",
9
+ "version": "11.7.7",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@appium/strongbox": "^1.0.0-rc.1",
@@ -494,9 +494,9 @@
494
494
  }
495
495
  },
496
496
  "node_modules/appium-ios-remotexpc": {
497
- "version": "2.2.2",
498
- "resolved": "https://registry.npmjs.org/appium-ios-remotexpc/-/appium-ios-remotexpc-2.2.2.tgz",
499
- "integrity": "sha512-tfb2MxHpmjijHD1W/bO72mTw/oYkfyEF6229014JgLzPDzX2qpdS4N/UOGy+0rlA7XSw/e2LDSGKu9c1ZgI99Q==",
497
+ "version": "2.2.3",
498
+ "resolved": "https://registry.npmjs.org/appium-ios-remotexpc/-/appium-ios-remotexpc-2.2.3.tgz",
499
+ "integrity": "sha512-lhuh5YaV93KWbpjTkatL9lVDgRtGXhZE/FGaTEyYeI5mnCdCij2ienCWFzrSAaYsqaxmeTwu2/nBwhJm0wJQQQ==",
500
500
  "license": "Apache-2.0",
501
501
  "optional": true,
502
502
  "dependencies": {
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "xcuitest",
9
9
  "xctest"
10
10
  ],
11
- "version": "11.7.6",
11
+ "version": "11.7.7",
12
12
  "author": "Appium Contributors",
13
13
  "license": "Apache-2.0",
14
14
  "repository": {