appium-xcuitest-driver 9.5.0 → 9.6.1

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,15 @@
1
+ ## [9.6.1](https://github.com/appium/appium-xcuitest-driver/compare/v9.6.0...v9.6.1) (2025-06-12)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * **deps-dev:** bump @types/node from 22.15.31 to 24.0.1 ([#2578](https://github.com/appium/appium-xcuitest-driver/issues/2578)) ([c0cfd0e](https://github.com/appium/appium-xcuitest-driver/commit/c0cfd0e7c427bb8eb7e2f08cb97f9488ece98577))
6
+
7
+ ## [9.6.0](https://github.com/appium/appium-xcuitest-driver/compare/v9.5.0...v9.6.0) (2025-06-10)
8
+
9
+ ### Features
10
+
11
+ * Hardware Acceleration for Video Decode, Encode and Scaling ([#2559](https://github.com/appium/appium-xcuitest-driver/issues/2559)) ([d21345a](https://github.com/appium/appium-xcuitest-driver/commit/d21345a1b8e34d136033550937298c6f2e08111b))
12
+
1
13
  ## [9.5.0](https://github.com/appium/appium-xcuitest-driver/compare/v9.4.0...v9.5.0) (2025-06-10)
2
14
 
3
15
  ### Features
@@ -1 +1 @@
1
- {"version":3,"file":"recordscreen.d.ts","sourceRoot":"","sources":["../../../lib/commands/recordscreen.js"],"names":[],"mappings":"AA8BA;IACE,4DAOC;IANC,eAA0B;IAC1B,SAAc;IACd,SAAgB;IAChB,UAAgB;IAChB,+BAAuB;IACvB,sCAA0B;IAG5B,qCA0FC;IAED,6CAuBC;IAED,uBAGC;IAED,yBAIC;CACF;;+BAGY,cAAc,OAAC;IAE1B;;;;;;;;;;;;;;OAcG;IACH,kFANW,OAAO,SAAS,EAAE,2BAA2B,GAC3C,OAAO,CAAC,MAAM,CAAC,CA2G3B;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,iFATW,OAAO,SAAS,EAAE,0BAA0B,GAE1C,OAAO,CAAC,MAAM,OAAC,CAAC,CA2B5B;;;6BAIU,OAAO,WAAW,EAAE,cAAc;2BA1UtB,cAAc"}
1
+ {"version":3,"file":"recordscreen.d.ts","sourceRoot":"","sources":["../../../lib/commands/recordscreen.js"],"names":[],"mappings":"AAqEA;IACE,4DAOC;IANC,eAA0B;IAC1B,SAAc;IACd,SAAgB;IAChB,UAAgB;IAChB,+BAAuB;IACvB,sCAA0B;IAG5B,qCA8GC;IAED,6CAuBC;IAED,uBAGC;IAED,yBAIC;CACF;;+BAGY,cAAc,OAAC;IAE1B;;;;;;;;;;;;;;OAcG;IACH,kFANW,OAAO,SAAS,EAAE,2BAA2B,GAC3C,OAAO,CAAC,MAAM,CAAC,CA6G3B;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,iFATW,OAAO,SAAS,EAAE,0BAA0B,GAE1C,OAAO,CAAC,MAAM,OAAC,CAAC,CA2B5B;;;6BAIU,OAAO,WAAW,EAAE,cAAc;2BAvYtB,cAAc"}
@@ -13,7 +13,7 @@ const asyncbox_1 = require("asyncbox");
13
13
  const url_1 = __importDefault(require("url"));
14
14
  /**
15
15
  * Set max timeout for 'reconnect_delay_max' ffmpeg argument usage.
16
- * It could have [0 - 4294] range limitation thus this value should be less than that right now
16
+ * It could have [0-4294] range limitation, thus this value should be less than that right now
17
17
  * to return a better error message.
18
18
  */
19
19
  const MAX_RECORDING_TIME_SEC = 4200;
@@ -31,6 +31,43 @@ const QUALITY_MAPPING = {
31
31
  high: 75,
32
32
  photo: 100,
33
33
  };
34
+ const HARDWARE_ACCELERATION_PARAMETERS = {
35
+ /* https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox */
36
+ videoToolbox: {
37
+ hwaccel: 'videotoolbox',
38
+ hwaccelOutputFormat: 'videotoolbox_vld',
39
+ scaleFilterHWAccel: 'scale_vt',
40
+ videoTypeHWAccel: 'h264_videotoolbox',
41
+ },
42
+ /* https://trac.ffmpeg.org/wiki/HWAccelIntro#CUDANVENCNVDEC */
43
+ cuda: {
44
+ hwaccel: 'cuda',
45
+ hwaccelOutputFormat: 'cuda',
46
+ scaleFilterHWAccel: 'scale_cuda',
47
+ videoTypeHWAccel: 'h264_nvenc',
48
+ },
49
+ /* https://trac.ffmpeg.org/wiki/Hardware/AMF */
50
+ amf_dx11: {
51
+ hwaccel: 'd3d11va',
52
+ hwaccelOutputFormat: 'd3d11',
53
+ scaleFilterHWAccel: 'scale',
54
+ videoTypeHWAccel: 'av1_amf',
55
+ },
56
+ /* https://trac.ffmpeg.org/wiki/Hardware/QuickSync */
57
+ qsv: {
58
+ hwaccel: 'qsv',
59
+ hwaccelOutputFormat: '',
60
+ scaleFilterHWAccel: 'scale_qsv',
61
+ videoTypeHWAccel: 'h264_qsv'
62
+ },
63
+ /* https://trac.ffmpeg.org/wiki/Hardware/VAAPI */
64
+ vaapi: {
65
+ hwaccel: 'vaapi',
66
+ hwaccelOutputFormat: 'vaapi',
67
+ scaleFilterHWAccel: 'scale_vaapi',
68
+ videoTypeHWAccel: 'h264_vaapi'
69
+ }
70
+ };
34
71
  const CAPTURE_START_MARKER = /^\s*frame=/;
35
72
  class ScreenRecorder {
36
73
  constructor(udid, log, videoPath, opts = {}) {
@@ -49,7 +86,7 @@ class ScreenRecorder {
49
86
  throw new Error(`'${FFMPEG_BINARY}' binary is not found in PATH. Install it using 'brew install ffmpeg'. ` +
50
87
  `Check https://www.ffmpeg.org/download.html for more details.`);
51
88
  }
52
- const { remotePort, remoteUrl, videoFps, videoType, videoScale, videoFilters, pixelFormat, } = this.opts;
89
+ const { hardwareAcceleration, remotePort, remoteUrl, videoFps, videoType, videoScale, videoFilters, pixelFormat, } = this.opts;
53
90
  const args = [
54
91
  '-f',
55
92
  'mjpeg',
@@ -63,20 +100,29 @@ class ScreenRecorder {
63
100
  '-reconnect_delay_max',
64
101
  `${timeoutMs / 1000 + 1}`,
65
102
  ];
103
+ const { hwaccel, hwaccelOutputFormat, scaleFilterHWAccel, videoTypeHWAccel } = HARDWARE_ACCELERATION_PARAMETERS[hardwareAcceleration] ?? {};
104
+ if (hwaccel) {
105
+ args.push('-hwaccel', hwaccel);
106
+ }
107
+ if (hwaccelOutputFormat) {
108
+ args.push('-hwaccel_output_format', hwaccelOutputFormat);
109
+ }
66
110
  //Parameter `-r` is optional. See details: https://github.com/appium/appium/issues/12067
67
- if (videoFps && videoType === 'libx264') {
111
+ if (videoFps && videoType === 'libx264' || videoTypeHWAccel) {
68
112
  args.push('-r', videoFps);
69
113
  }
70
114
  const { protocol, hostname } = url_1.default.parse(remoteUrl);
71
115
  args.push('-i', `${protocol}//${hostname}:${remotePort}`);
72
116
  if (videoFilters || videoScale) {
73
- args.push('-vf', videoFilters || `scale=${videoScale}`);
117
+ args.push('-vf', videoFilters || `${scaleFilterHWAccel || 'scale'}=${videoScale}`);
74
118
  }
75
119
  // Quicktime compatibility via pixelFormat: 'yuv420p'
76
120
  if (pixelFormat) {
77
121
  args.push('-pix_fmt', pixelFormat);
78
122
  }
79
- args.push('-vcodec', videoType, '-y', this.videoPath);
123
+ args.push('-vcodec', videoTypeHWAccel || videoType);
124
+ args.push('-y');
125
+ args.push(this.videoPath);
80
126
  this.mainProcess = new teen_process_1.SubProcess(FFMPEG_BINARY, args);
81
127
  let isCaptureStarted = false;
82
128
  this.mainProcess.on('line-stderr', (line) => {
@@ -161,7 +207,7 @@ exports.default = {
161
207
  * @this {XCUITestDriver}
162
208
  */
163
209
  async startRecordingScreen(options = {}) {
164
- const { videoType = DEFAULT_VCODEC, timeLimit = DEFAULT_RECORDING_TIME_SEC, videoQuality = DEFAULT_QUALITY, videoFps = DEFAULT_FPS, videoFilters, videoScale, forceRestart, pixelFormat, } = options;
210
+ const { videoType = DEFAULT_VCODEC, timeLimit = DEFAULT_RECORDING_TIME_SEC, videoQuality = DEFAULT_QUALITY, videoFps = DEFAULT_FPS, videoFilters, videoScale, forceRestart, pixelFormat, hardwareAcceleration } = options;
165
211
  let result = '';
166
212
  if (!forceRestart) {
167
213
  this.log.info(`Checking if there is/was a previous screen recording. ` +
@@ -170,7 +216,7 @@ exports.default = {
170
216
  }
171
217
  const videoPath = await support_1.tempDir.path({
172
218
  prefix: `appium_${Math.random().toString(16).substring(2, 8)}`,
173
- suffix: MP4_EXT,
219
+ suffix: MP4_EXT
174
220
  });
175
221
  const wdaBaseUrl = this.opts.wdaBaseUrl || appium_webdriveragent_1.WDA_BASE_URL;
176
222
  const screenRecorder = new ScreenRecorder(this.device.udid, this.log, videoPath, {
@@ -181,6 +227,7 @@ exports.default = {
181
227
  videoScale,
182
228
  videoFps,
183
229
  pixelFormat,
230
+ hardwareAcceleration
184
231
  });
185
232
  if (!(await screenRecorder.interrupt(true))) {
186
233
  throw this.log.errorWithException('Unable to stop screen recording process');
@@ -223,8 +270,8 @@ exports.default = {
223
270
  await this.proxyCommand('/appium/settings', 'POST', {
224
271
  settings: {
225
272
  mjpegServerScreenshotQuality,
226
- mjpegServerFramerate,
227
- },
273
+ mjpegServerFramerate
274
+ }
228
275
  });
229
276
  }
230
277
  try {
@@ -273,7 +320,7 @@ exports.default = {
273
320
  await this._recentScreenRecorder.cleanup();
274
321
  this._recentScreenRecorder = null;
275
322
  }
276
- },
323
+ }
277
324
  };
278
325
  /**
279
326
  * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
@@ -1 +1 @@
1
- {"version":3,"file":"recordscreen.js","sourceRoot":"","sources":["../../../lib/commands/recordscreen.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordscreen.js","sourceRoot":"","sources":["../../../lib/commands/recordscreen.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,4CAAyD;AACzD,+CAAwC;AACxC,oCAA8C;AAC9C,iEAAmD;AACnD,uCAA0C;AAC1C,8CAAsB;AAEtB;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,0BAA0B,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG,gBAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AACrD,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,gCAAgC,GAAG;IACvC,4DAA4D;IAC5D,YAAY,EAAE;QACZ,OAAO,EAAE,cAAc;QACvB,mBAAmB,EAAE,kBAAkB;QACvC,kBAAkB,EAAE,UAAU;QAC9B,gBAAgB,EAAE,mBAAmB;KACtC;IACD,8DAA8D;IAC9D,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,mBAAmB,EAAE,MAAM;QAC3B,kBAAkB,EAAE,YAAY;QAChC,gBAAgB,EAAE,YAAY;KAC/B;IACD,+CAA+C;IAC/C,QAAQ,EAAE;QACR,OAAO,EAAE,SAAS;QAClB,mBAAmB,EAAE,OAAO;QAC5B,kBAAkB,EAAE,OAAO;QAC3B,gBAAgB,EAAE,SAAS;KAC5B;IACD,qDAAqD;IACrD,GAAG,EAAE;QACH,OAAO,EAAE,KAAK;QACd,mBAAmB,EAAE,EAAE;QACvB,kBAAkB,EAAE,WAAW;QAC/B,gBAAgB,EAAE,UAAU;KAC7B;IACD,iDAAiD;IACjD,KAAK,EAAE;QACL,OAAO,EAAE,OAAO;QAChB,mBAAmB,EAAE,OAAO;QAC5B,kBAAkB,EAAE,aAAa;QACjC,gBAAgB,EAAE,YAAY;KAC/B;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAE1C,MAAa,cAAc;IACzB,YAAY,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAS;QACnB,IAAI,CAAC;YACH,MAAM,YAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,IAAI,aAAa,yEAAyE;gBACxF,8DAA8D,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,EACJ,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,GAAG,IAAI,CAAC,IAAI,CAAC;QAEd,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,OAAO;YACP,gDAAgD;YAChD,YAAY;YACZ,GAAG;YACH,mBAAmB;YACnB,GAAG;YACH,qBAAqB;YACrB,GAAG;YACH,sBAAsB;YACtB,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,EAAE;SAC1B,CAAC;QACF,MAAM,EACJ,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EACjB,GAAG,gCAAgC,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC;QAC3D,CAAC;QAED,wFAAwF;QACxF,IAAI,QAAQ,IAAI,SAAS,KAAK,SAAS,IAAI,gBAAgB,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,aAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,KAAK,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC;QAE1D,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,GAAG,kBAAkB,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,qDAAqD;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,IAAI,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,gBAAgB,GAAG,IAAI,CAAC;gBAC1B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAA,2BAAgB,EAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE;gBAC7C,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,+CAA+C,cAAc,uBAAuB,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,+BAA+B,aAAa,uBAAuB;gBACjE,oCAAoC,CACvC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,0CACE,IAAI,CAAC,IACP,oBAAoB,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,mBAAmB,SAAS,IAAI,CAC5F,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,4DAA4D,IAAI,CAAC,IAAI,WAAW,SAAS,YAAY,CACtG,CAAC;YACJ,CAAC;QACH,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;YAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC;YACzB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,UAAU,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAAI,aAAa,IAAI;oBAC9D,mBAAmB,CAAC,CAAC,OAAO,EAAE,CACjC,CAAC;gBACF,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF;AA7JD,wCA6JC;AAED,kBAAe;IACb,8BAA8B;IAC9B,qBAAqB,EAAE,IAAI;IAC3B;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAO,GAAG,EAAE;QACrC,MAAM,EACJ,SAAS,GAAG,cAAc,EAC1B,SAAS,GAAG,0BAA0B,EACtC,YAAY,GAAG,eAAe,EAC9B,QAAQ,GAAG,WAAW,EACtB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,oBAAoB,EACrB,GAAG,OAAO,CAAC;QAEZ,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,wDAAwD;gBACxD,sEAAsE,CACvE,CAAC;YACF,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC;QAC/D,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,iBAAO,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC9D,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,oCAAY,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;YAC/E,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,yBAAyB;YAClE,SAAS,EAAE,UAAU;YACrB,SAAS;YACT,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,WAAW;YACX,oBAAoB;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACpC,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,sBAAsB,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAC/B,4CAA4C,sBAAsB,aAAa;gBAC7E,iBAAiB,SAAS,4BAA4B,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,EAAC,4BAA4B,EAAE,oBAAoB,EAAC;QACtD,0DAA0D,CAAC,CAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CACnD,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,gBAAC,CAAC,SAAS,CAAC,YAAY,CAAC;gBACvC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,eAAe,CAAC,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,SAAS,CACnD,gBAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CACxB,gCAAgC,GAAG,IAAI,YAAY,oBAAoB,CACzE,CAAC;YACJ,CAAC;YACD,4BAA4B,GAAG,4BAA4B,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,4BAA4B,GAAG,SAAS,CAAC;QAC3C,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,0DAA0D;oBAC1D,IAAI,QAAQ,oBAAoB,CACjC,CAAC;YACJ,CAAC;YACD,oBAAoB,GAAG,oBAAoB,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,oBAAoB,GAAG,SAAS,CAAC;QACnC,CAAC;QACD,IAAI,cAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,cAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE;gBAClD,QAAQ,EAAE;oBACR,4BAA4B;oBAC5B,oBAAoB;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;QAE5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAO,GAAG,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC5E,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;YAC5D,IAAI,CAAC,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAC/B,yCAAyC;oBACzC,4CAA4C,SAAS,GAAG,CACzD,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,IAAA,4BAAoB,EAAC,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG"}
@@ -104,7 +104,7 @@ export interface StartRecordingScreenOptions extends StopRecordingScreenOptions
104
104
  *
105
105
  * See [the FFMPEG wiki](https://trac.ffmpeg.org/wiki/Scaling) for possible values.
106
106
  *
107
- * No scale is applied by default. If both `videoFilters` and `videoScale` are set then only `videoFilters` value will be respected.
107
+ * No scale is applied by default. If both `videoFilters` and `videoScale` are set, then only `videoFilters` value will be respected.
108
108
  * @see https://trac.ffmpeg.org/wiki/Scaling
109
109
  */
110
110
  videoScale?: string;
@@ -122,10 +122,28 @@ export interface StartRecordingScreenOptions extends StopRecordingScreenOptions
122
122
  forceRestart?: boolean;
123
123
  /**
124
124
  * The maximum recording time, in seconds.
125
- * The the maximum value is 600 (10 minutes).
125
+ * The maximum value is 600 (10 minutes).
126
126
  * @defaultValue 180
127
127
  */
128
128
  timeLimit?: string | number;
129
+ /**
130
+ * Hardware acceleration to be used by FFMPEG for decoding, encoding and scaling.
131
+ *
132
+ *
133
+ * * `videoToolbox` Apple Silicon
134
+ * * `cuda` NVIDIA GPU
135
+ * * `amf_dx11` AMD and DirectX 11
136
+ * * `qsv` Intel Quick Sync Video
137
+ * * `vaapi` Video Acceleration API (VAAPI)
138
+ *
139
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#PlatformAPIAvailability| Platform API Availability }
140
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox| VideoToolbox}
141
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#CUDANVENCNVDEC|Cuda}
142
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/AMF|AMF}
143
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/QuickSync|QSV}
144
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/VAAPI|VAAPI}
145
+ */
146
+ hardwareAcceleration?: 'cuda' | 'videoToolbox' | 'amf_dx11' | 'qsv' | 'vaapi';
129
147
  }
130
148
  export interface PageChangeNotification {
131
149
  pageArray: Page[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/types.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import url from 'url';
8
8
 
9
9
  /**
10
10
  * Set max timeout for 'reconnect_delay_max' ffmpeg argument usage.
11
- * It could have [0 - 4294] range limitation thus this value should be less than that right now
11
+ * It could have [0-4294] range limitation, thus this value should be less than that right now
12
12
  * to return a better error message.
13
13
  */
14
14
  const MAX_RECORDING_TIME_SEC = 4200;
@@ -26,6 +26,45 @@ const QUALITY_MAPPING = {
26
26
  high: 75,
27
27
  photo: 100,
28
28
  };
29
+
30
+ const HARDWARE_ACCELERATION_PARAMETERS = {
31
+ /* https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox */
32
+ videoToolbox: {
33
+ hwaccel: 'videotoolbox',
34
+ hwaccelOutputFormat: 'videotoolbox_vld',
35
+ scaleFilterHWAccel: 'scale_vt',
36
+ videoTypeHWAccel: 'h264_videotoolbox',
37
+ },
38
+ /* https://trac.ffmpeg.org/wiki/HWAccelIntro#CUDANVENCNVDEC */
39
+ cuda: {
40
+ hwaccel: 'cuda',
41
+ hwaccelOutputFormat: 'cuda',
42
+ scaleFilterHWAccel: 'scale_cuda',
43
+ videoTypeHWAccel: 'h264_nvenc',
44
+ },
45
+ /* https://trac.ffmpeg.org/wiki/Hardware/AMF */
46
+ amf_dx11: {
47
+ hwaccel: 'd3d11va',
48
+ hwaccelOutputFormat: 'd3d11',
49
+ scaleFilterHWAccel: 'scale',
50
+ videoTypeHWAccel: 'av1_amf',
51
+ },
52
+ /* https://trac.ffmpeg.org/wiki/Hardware/QuickSync */
53
+ qsv: {
54
+ hwaccel: 'qsv',
55
+ hwaccelOutputFormat: '',
56
+ scaleFilterHWAccel: 'scale_qsv',
57
+ videoTypeHWAccel: 'h264_qsv'
58
+ },
59
+ /* https://trac.ffmpeg.org/wiki/Hardware/VAAPI */
60
+ vaapi: {
61
+ hwaccel: 'vaapi',
62
+ hwaccelOutputFormat: 'vaapi',
63
+ scaleFilterHWAccel: 'scale_vaapi',
64
+ videoTypeHWAccel: 'h264_vaapi'
65
+ }
66
+ };
67
+
29
68
  const CAPTURE_START_MARKER = /^\s*frame=/;
30
69
 
31
70
  export class ScreenRecorder {
@@ -49,6 +88,7 @@ export class ScreenRecorder {
49
88
  }
50
89
 
51
90
  const {
91
+ hardwareAcceleration,
52
92
  remotePort,
53
93
  remoteUrl,
54
94
  videoFps,
@@ -71,20 +111,39 @@ export class ScreenRecorder {
71
111
  '-reconnect_delay_max',
72
112
  `${timeoutMs / 1000 + 1}`,
73
113
  ];
114
+ const {
115
+ hwaccel,
116
+ hwaccelOutputFormat,
117
+ scaleFilterHWAccel,
118
+ videoTypeHWAccel
119
+ } = HARDWARE_ACCELERATION_PARAMETERS[hardwareAcceleration] ?? {};
120
+
121
+ if (hwaccel) {
122
+ args.push('-hwaccel', hwaccel);
123
+ }
124
+
125
+ if (hwaccelOutputFormat) {
126
+ args.push('-hwaccel_output_format', hwaccelOutputFormat);
127
+ }
128
+
74
129
  //Parameter `-r` is optional. See details: https://github.com/appium/appium/issues/12067
75
- if (videoFps && videoType === 'libx264') {
130
+ if (videoFps && videoType === 'libx264' || videoTypeHWAccel) {
76
131
  args.push('-r', videoFps);
77
132
  }
78
133
  const {protocol, hostname} = url.parse(remoteUrl);
79
134
  args.push('-i', `${protocol}//${hostname}:${remotePort}`);
135
+
80
136
  if (videoFilters || videoScale) {
81
- args.push('-vf', videoFilters || `scale=${videoScale}`);
137
+ args.push('-vf', videoFilters || `${scaleFilterHWAccel || 'scale'}=${videoScale}`);
82
138
  }
139
+
83
140
  // Quicktime compatibility via pixelFormat: 'yuv420p'
84
141
  if (pixelFormat) {
85
142
  args.push('-pix_fmt', pixelFormat);
86
143
  }
87
- args.push('-vcodec', videoType, '-y', this.videoPath);
144
+ args.push('-vcodec', videoTypeHWAccel || videoType);
145
+ args.push('-y');
146
+ args.push(this.videoPath);
88
147
 
89
148
  this.mainProcess = new SubProcess(FFMPEG_BINARY, args);
90
149
  let isCaptureStarted = false;
@@ -195,20 +254,21 @@ export default {
195
254
  videoScale,
196
255
  forceRestart,
197
256
  pixelFormat,
257
+ hardwareAcceleration
198
258
  } = options;
199
259
 
200
260
  let result = '';
201
261
  if (!forceRestart) {
202
262
  this.log.info(
203
263
  `Checking if there is/was a previous screen recording. ` +
204
- `Set 'forceRestart' option to 'true' if you'd like to skip this step.`,
264
+ `Set 'forceRestart' option to 'true' if you'd like to skip this step.`
205
265
  );
206
266
  result = (await this.stopRecordingScreen(options)) ?? result;
207
267
  }
208
268
 
209
269
  const videoPath = await tempDir.path({
210
270
  prefix: `appium_${Math.random().toString(16).substring(2, 8)}`,
211
- suffix: MP4_EXT,
271
+ suffix: MP4_EXT
212
272
  });
213
273
 
214
274
  const wdaBaseUrl = this.opts.wdaBaseUrl || WDA_BASE_URL;
@@ -220,6 +280,7 @@ export default {
220
280
  videoScale,
221
281
  videoFps,
222
282
  pixelFormat,
283
+ hardwareAcceleration
223
284
  });
224
285
  if (!(await screenRecorder.interrupt(true))) {
225
286
  throw this.log.errorWithException('Unable to stop screen recording process');
@@ -239,8 +300,8 @@ export default {
239
300
 
240
301
  let {mjpegServerScreenshotQuality, mjpegServerFramerate} =
241
302
  /** @type {import('appium-webdriveragent').WDASettings} */ (
242
- await this.proxyCommand('/appium/settings', 'GET')
243
- );
303
+ await this.proxyCommand('/appium/settings', 'GET')
304
+ );
244
305
  if (videoQuality) {
245
306
  const quality = _.isInteger(videoQuality)
246
307
  ? videoQuality
@@ -248,8 +309,8 @@ export default {
248
309
  if (!quality) {
249
310
  throw new Error(
250
311
  `videoQuality value should be one of ${JSON.stringify(
251
- _.keys(QUALITY_MAPPING),
252
- )} or a number in range 1..100. ` + `'${videoQuality}' is given instead`,
312
+ _.keys(QUALITY_MAPPING)
313
+ )} or a number in range 1..100. ` + `'${videoQuality}' is given instead`
253
314
  );
254
315
  }
255
316
  mjpegServerScreenshotQuality = mjpegServerScreenshotQuality !== quality ? quality : undefined;
@@ -261,7 +322,7 @@ export default {
261
322
  if (isNaN(fps)) {
262
323
  throw new Error(
263
324
  `videoFps value should be a valid number in range 1..60. ` +
264
- `'${videoFps}' is given instead`,
325
+ `'${videoFps}' is given instead`
265
326
  );
266
327
  }
267
328
  mjpegServerFramerate = mjpegServerFramerate !== fps ? fps : undefined;
@@ -272,8 +333,8 @@ export default {
272
333
  await this.proxyCommand('/appium/settings', 'POST', {
273
334
  settings: {
274
335
  mjpegServerScreenshotQuality,
275
- mjpegServerFramerate,
276
- },
336
+ mjpegServerFramerate
337
+ }
277
338
  });
278
339
  }
279
340
 
@@ -317,7 +378,7 @@ export default {
317
378
  if (!(await fs.exists(videoPath))) {
318
379
  throw this.log.errorWithException(
319
380
  `The screen recorder utility has failed ` +
320
- `to store the actual screen recording at '${videoPath}'`,
381
+ `to store the actual screen recording at '${videoPath}'`
321
382
  );
322
383
  }
323
384
  return await encodeBase64OrUpload(videoPath, options.remotePath, options);
@@ -326,7 +387,7 @@ export default {
326
387
  await this._recentScreenRecorder.cleanup();
327
388
  this._recentScreenRecorder = null;
328
389
  }
329
- },
390
+ }
330
391
  };
331
392
 
332
393
  /**
@@ -110,7 +110,7 @@ export interface StartRecordingScreenOptions extends StopRecordingScreenOptions
110
110
  *
111
111
  * See [the FFMPEG wiki](https://trac.ffmpeg.org/wiki/Scaling) for possible values.
112
112
  *
113
- * No scale is applied by default. If both `videoFilters` and `videoScale` are set then only `videoFilters` value will be respected.
113
+ * No scale is applied by default. If both `videoFilters` and `videoScale` are set, then only `videoFilters` value will be respected.
114
114
  * @see https://trac.ffmpeg.org/wiki/Scaling
115
115
  */
116
116
  videoScale?: string;
@@ -128,10 +128,29 @@ export interface StartRecordingScreenOptions extends StopRecordingScreenOptions
128
128
  forceRestart?: boolean;
129
129
  /**
130
130
  * The maximum recording time, in seconds.
131
- * The the maximum value is 600 (10 minutes).
131
+ * The maximum value is 600 (10 minutes).
132
132
  * @defaultValue 180
133
133
  */
134
134
  timeLimit?: string | number;
135
+
136
+ /**
137
+ * Hardware acceleration to be used by FFMPEG for decoding, encoding and scaling.
138
+ *
139
+ *
140
+ * * `videoToolbox` Apple Silicon
141
+ * * `cuda` NVIDIA GPU
142
+ * * `amf_dx11` AMD and DirectX 11
143
+ * * `qsv` Intel Quick Sync Video
144
+ * * `vaapi` Video Acceleration API (VAAPI)
145
+ *
146
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#PlatformAPIAvailability| Platform API Availability }
147
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox| VideoToolbox}
148
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#CUDANVENCNVDEC|Cuda}
149
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/AMF|AMF}
150
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/QuickSync|QSV}
151
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/VAAPI|VAAPI}
152
+ */
153
+ hardwareAcceleration?: 'cuda' | 'videoToolbox' | 'amf_dx11' | 'qsv' | 'vaapi';
135
154
  }
136
155
 
137
156
  export interface PageChangeNotification {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appium-xcuitest-driver",
3
- "version": "9.5.0",
3
+ "version": "9.6.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-xcuitest-driver",
9
- "version": "9.5.0",
9
+ "version": "9.6.1",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@colors/colors": "^1.6.0",
@@ -43,7 +43,7 @@
43
43
  "@types/bluebird": "^3.5.38",
44
44
  "@types/lodash": "^4.14.196",
45
45
  "@types/mocha": "^10.0.1",
46
- "@types/node": "^22.0.0",
46
+ "@types/node": "^24.0.1",
47
47
  "@types/portscanner": "^2.1.1",
48
48
  "@types/teen_process": "^2.0.1",
49
49
  "axios": "^1.4.0",
@@ -141,6 +141,22 @@
141
141
  "npm": ">=8"
142
142
  }
143
143
  },
144
+ "node_modules/@appium/docutils/node_modules/teen_process": {
145
+ "version": "2.3.2",
146
+ "resolved": "https://registry.npmjs.org/teen_process/-/teen_process-2.3.2.tgz",
147
+ "integrity": "sha512-eiYtJbYrMz5WbZL68u05qCgLMShPZhYKVewZFoyT6C2xvNdMfikCP7Nh0K3Phiy+H4bMZ8q5GtJROFcoYwQJmQ==",
148
+ "license": "Apache-2.0",
149
+ "dependencies": {
150
+ "bluebird": "^3.7.2",
151
+ "lodash": "^4.17.21",
152
+ "shell-quote": "^1.8.1",
153
+ "source-map-support": "^0.x"
154
+ },
155
+ "engines": {
156
+ "node": "^16.13.0 || >=18.0.0",
157
+ "npm": ">=8"
158
+ }
159
+ },
144
160
  "node_modules/@appium/logger": {
145
161
  "version": "1.7.1",
146
162
  "resolved": "https://registry.npmjs.org/@appium/logger/-/logger-1.7.1.tgz",
@@ -236,6 +252,22 @@
236
252
  "sharp": "0.34.2"
237
253
  }
238
254
  },
255
+ "node_modules/@appium/support/node_modules/teen_process": {
256
+ "version": "2.3.2",
257
+ "resolved": "https://registry.npmjs.org/teen_process/-/teen_process-2.3.2.tgz",
258
+ "integrity": "sha512-eiYtJbYrMz5WbZL68u05qCgLMShPZhYKVewZFoyT6C2xvNdMfikCP7Nh0K3Phiy+H4bMZ8q5GtJROFcoYwQJmQ==",
259
+ "license": "Apache-2.0",
260
+ "dependencies": {
261
+ "bluebird": "^3.7.2",
262
+ "lodash": "^4.17.21",
263
+ "shell-quote": "^1.8.1",
264
+ "source-map-support": "^0.x"
265
+ },
266
+ "engines": {
267
+ "node": "^16.13.0 || >=18.0.0",
268
+ "npm": ">=8"
269
+ }
270
+ },
239
271
  "node_modules/@appium/tsconfig": {
240
272
  "version": "0.3.5",
241
273
  "resolved": "https://registry.npmjs.org/@appium/tsconfig/-/tsconfig-0.3.5.tgz",
@@ -419,12 +451,12 @@
419
451
  "license": "MIT"
420
452
  },
421
453
  "node_modules/@types/node": {
422
- "version": "22.15.31",
423
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.31.tgz",
424
- "integrity": "sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==",
454
+ "version": "24.0.1",
455
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.1.tgz",
456
+ "integrity": "sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==",
425
457
  "license": "MIT",
426
458
  "dependencies": {
427
- "undici-types": "~6.21.0"
459
+ "undici-types": "~7.8.0"
428
460
  }
429
461
  },
430
462
  "node_modules/@types/normalize-package-data": {
@@ -504,9 +536,9 @@
504
536
  }
505
537
  },
506
538
  "node_modules/appium-idb": {
507
- "version": "1.8.23",
508
- "resolved": "https://registry.npmjs.org/appium-idb/-/appium-idb-1.8.23.tgz",
509
- "integrity": "sha512-SQJFzuhJkgvEGWf3Aj/WK8POEV9QvpEEouywcXIZXWZowNgyUnsS9r29LoalarYRexUK2Gl1eSJHdXZUL7dCYA==",
539
+ "version": "1.8.24",
540
+ "resolved": "https://registry.npmjs.org/appium-idb/-/appium-idb-1.8.24.tgz",
541
+ "integrity": "sha512-zamWeD8D8MrLnPmBvAl/dre+6jQm8VUHRxGQMuDTbz3Uf3Gl02yaKfocOQEgBgl11k0d7ixa2/xSubO5iZHxfA==",
510
542
  "license": "Apache-2.0",
511
543
  "dependencies": {
512
544
  "@appium/support": "^6.0.0",
@@ -522,9 +554,9 @@
522
554
  }
523
555
  },
524
556
  "node_modules/appium-ios-device": {
525
- "version": "2.8.3",
526
- "resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.8.3.tgz",
527
- "integrity": "sha512-Klxct/L9qj+jrY6s6PmysFaPTPw1Tfc1yHf0SPu3SaNGWTZYcuHELL1AkzNUM4/6NK7X6DAhsfL9Dxf5SrqmVA==",
557
+ "version": "2.8.4",
558
+ "resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.8.4.tgz",
559
+ "integrity": "sha512-ePQP0uaTbDKiN8SVVrVdE9ZkOpd+iPl/97MDpN9EToIb0c0UaaaDFAFdqwEDOwFv2aX91dkU3HyeSYvhqE6+5A==",
528
560
  "license": "Apache-2.0",
529
561
  "dependencies": {
530
562
  "@appium/support": "^6.0.0",
@@ -544,9 +576,9 @@
544
576
  }
545
577
  },
546
578
  "node_modules/appium-ios-simulator": {
547
- "version": "6.2.3",
548
- "resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-6.2.3.tgz",
549
- "integrity": "sha512-FNaxrcWihKfO7ejEAw6pHVY4vy8wKCYBjuH6vt2dNCU+OyjjgUovnEOA0j22qEUBIorsBiYx1b67xbc59qSPCg==",
579
+ "version": "6.2.5",
580
+ "resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-6.2.5.tgz",
581
+ "integrity": "sha512-GXQ0k+xgkSYFARHWqyct9EXuo7YAk7O3BFPue7DDb4dd9LCILAbxR8Zl98rdYlq9KpQeaNEb8agD5rRNxXUhNQ==",
550
582
  "license": "Apache-2.0",
551
583
  "dependencies": {
552
584
  "@appium/support": "^6.0.0",
@@ -567,9 +599,9 @@
567
599
  }
568
600
  },
569
601
  "node_modules/appium-remote-debugger": {
570
- "version": "12.2.3",
571
- "resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-12.2.3.tgz",
572
- "integrity": "sha512-lpA5ly0Hk9s2YHpu3QNyHHCtT9sQAdoedoDAKkrshZqzrhkV4uLhdf/AJbqFvNeper9v6saiW1gEtTEV4MeUoQ==",
602
+ "version": "12.2.4",
603
+ "resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-12.2.4.tgz",
604
+ "integrity": "sha512-JQk8vRprzc1rfl1WTJ7/tKEsYNKfL/vfZKqUjM092jAa/Qcw8XFzpOyKrjMLmJkd0+5KmAqkf6XzikLJJHRZbA==",
573
605
  "license": "Apache-2.0",
574
606
  "dependencies": {
575
607
  "@appium/base-driver": "^9.0.0",
@@ -588,9 +620,9 @@
588
620
  }
589
621
  },
590
622
  "node_modules/appium-webdriveragent": {
591
- "version": "9.14.1",
592
- "resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-9.14.1.tgz",
593
- "integrity": "sha512-u1g04eO6vfFgdyWtU4w2LrBVu49WOrhSkMavJJ0hG++GJTBY9ciZvbIPapxIRTQe7S+6E3T0l6bx7+fZ7RtBzw==",
623
+ "version": "9.14.2",
624
+ "resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-9.14.2.tgz",
625
+ "integrity": "sha512-7Kj9bCs3AEqckhcUhxH7EdX+5bNZHnly9KBinF7GdSjK0qXAVM1yIh+VjiPLkjTIEM27J3VYmmuCVRFhqmjtcg==",
594
626
  "license": "Apache-2.0",
595
627
  "dependencies": {
596
628
  "@appium/base-driver": "^9.0.0",
@@ -612,9 +644,9 @@
612
644
  }
613
645
  },
614
646
  "node_modules/appium-xcode": {
615
- "version": "5.2.22",
616
- "resolved": "https://registry.npmjs.org/appium-xcode/-/appium-xcode-5.2.22.tgz",
617
- "integrity": "sha512-34LxxTnkhjl7KYelWt/NBNsnwn4ZBt4xIT7RQOTYS5+KM3iAmSuq49GYIB/w1FqqriLOjX9e5gJ94m8UpSnJyQ==",
647
+ "version": "5.2.23",
648
+ "resolved": "https://registry.npmjs.org/appium-xcode/-/appium-xcode-5.2.23.tgz",
649
+ "integrity": "sha512-i0F6wii0CWWkj2+tpEx9WVPO5p8Pr+0hSIXGZN4ZXe+mq92GG6L7AGvnxyNe/pNjvsg+zw65rePsuT9afm+QaQ==",
618
650
  "license": "Apache-2.0",
619
651
  "dependencies": {
620
652
  "@appium/support": "^6.0.0",
@@ -870,9 +902,9 @@
870
902
  }
871
903
  },
872
904
  "node_modules/brace-expansion": {
873
- "version": "1.1.11",
874
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
875
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
905
+ "version": "1.1.12",
906
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
907
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
876
908
  "license": "MIT",
877
909
  "dependencies": {
878
910
  "balanced-match": "^1.0.0",
@@ -1789,9 +1821,9 @@
1789
1821
  }
1790
1822
  },
1791
1823
  "node_modules/glob/node_modules/brace-expansion": {
1792
- "version": "2.0.1",
1793
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1794
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1824
+ "version": "2.0.2",
1825
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
1826
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
1795
1827
  "license": "MIT",
1796
1828
  "dependencies": {
1797
1829
  "balanced-match": "^1.0.0"
@@ -2605,9 +2637,9 @@
2605
2637
  }
2606
2638
  },
2607
2639
  "node_modules/node-simctl": {
2608
- "version": "7.7.3",
2609
- "resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-7.7.3.tgz",
2610
- "integrity": "sha512-2KuVhn3MqQWFHtazYuAm+perIW1iXYSHFDoojEYVMspbMppb+JKILR4k+KfugLvuTNJCljL2D1GZ5utT9Sp4cQ==",
2640
+ "version": "7.7.4",
2641
+ "resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-7.7.4.tgz",
2642
+ "integrity": "sha512-Jv3WfBwHrx3/6wuXLGeybE5XVvmJFS+sDgy7K4OZq9TAkFPthaUMPeHOw47iaIo3jNCyWDpSEi7pDhZiK1hjMQ==",
2611
2643
  "license": "Apache-2.0",
2612
2644
  "dependencies": {
2613
2645
  "@appium/logger": "^1.3.0",
@@ -3091,9 +3123,9 @@
3091
3123
  }
3092
3124
  },
3093
3125
  "node_modules/readdir-glob/node_modules/brace-expansion": {
3094
- "version": "2.0.1",
3095
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
3096
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
3126
+ "version": "2.0.2",
3127
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
3128
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
3097
3129
  "license": "MIT",
3098
3130
  "dependencies": {
3099
3131
  "balanced-match": "^1.0.0"
@@ -3793,9 +3825,9 @@
3793
3825
  }
3794
3826
  },
3795
3827
  "node_modules/teen_process": {
3796
- "version": "2.3.2",
3797
- "resolved": "https://registry.npmjs.org/teen_process/-/teen_process-2.3.2.tgz",
3798
- "integrity": "sha512-eiYtJbYrMz5WbZL68u05qCgLMShPZhYKVewZFoyT6C2xvNdMfikCP7Nh0K3Phiy+H4bMZ8q5GtJROFcoYwQJmQ==",
3828
+ "version": "2.3.3",
3829
+ "resolved": "https://registry.npmjs.org/teen_process/-/teen_process-2.3.3.tgz",
3830
+ "integrity": "sha512-NIdeetf/6gyEqLjnzvfgQe7PfipSceq2xDQM2Py2BkBnIIeWh3HRD3vNhulyO5WppfCv9z4mtsEHyq8kdiULTA==",
3799
3831
  "license": "Apache-2.0",
3800
3832
  "dependencies": {
3801
3833
  "bluebird": "^3.7.2",
@@ -3886,9 +3918,9 @@
3886
3918
  }
3887
3919
  },
3888
3920
  "node_modules/undici-types": {
3889
- "version": "6.21.0",
3890
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
3891
- "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
3921
+ "version": "7.8.0",
3922
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
3923
+ "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
3892
3924
  "license": "MIT"
3893
3925
  },
3894
3926
  "node_modules/unorm": {
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "xcuitest",
9
9
  "xctest"
10
10
  ],
11
- "version": "9.5.0",
11
+ "version": "9.6.1",
12
12
  "author": "Appium Contributors",
13
13
  "license": "Apache-2.0",
14
14
  "repository": {
@@ -143,7 +143,7 @@
143
143
  "@types/bluebird": "^3.5.38",
144
144
  "@types/lodash": "^4.14.196",
145
145
  "@types/mocha": "^10.0.1",
146
- "@types/node": "^22.0.0",
146
+ "@types/node": "^24.0.1",
147
147
  "@types/portscanner": "^2.1.1",
148
148
  "@types/teen_process": "^2.0.1",
149
149
  "axios": "^1.4.0",