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 +12 -0
- package/build/lib/commands/recordscreen.d.ts.map +1 -1
- package/build/lib/commands/recordscreen.js +57 -10
- package/build/lib/commands/recordscreen.js.map +1 -1
- package/build/lib/commands/types.d.ts +20 -2
- package/build/lib/commands/types.d.ts.map +1 -1
- package/lib/commands/recordscreen.js +76 -15
- package/lib/commands/types.ts +21 -2
- package/npm-shrinkwrap.json +75 -43
- package/package.json +2 -2
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":"
|
|
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
|
|
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 ||
|
|
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',
|
|
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":";;;;;;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;
|
|
1
|
+
{"version":3,"file":"recordscreen.js","sourceRoot":"","sources":["../../../lib/commands/recordscreen.js"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAC/F,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAC,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,QAAQ,CAAC;AAE5E,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IACnD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,0BAA0B;IAC7E;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
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
|
|
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 ||
|
|
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',
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
/**
|
package/lib/commands/types.ts
CHANGED
|
@@ -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
|
|
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 {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-xcuitest-driver",
|
|
3
|
-
"version": "9.
|
|
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.
|
|
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": "^
|
|
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": "
|
|
423
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-
|
|
424
|
-
"integrity": "sha512-
|
|
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": "~
|
|
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.
|
|
508
|
-
"resolved": "https://registry.npmjs.org/appium-idb/-/appium-idb-1.8.
|
|
509
|
-
"integrity": "sha512-
|
|
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.
|
|
526
|
-
"resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.8.
|
|
527
|
-
"integrity": "sha512-
|
|
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.
|
|
548
|
-
"resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-6.2.
|
|
549
|
-
"integrity": "sha512-
|
|
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.
|
|
571
|
-
"resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-12.2.
|
|
572
|
-
"integrity": "sha512-
|
|
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.
|
|
592
|
-
"resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-9.14.
|
|
593
|
-
"integrity": "sha512-
|
|
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.
|
|
616
|
-
"resolved": "https://registry.npmjs.org/appium-xcode/-/appium-xcode-5.2.
|
|
617
|
-
"integrity": "sha512-
|
|
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.
|
|
874
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
875
|
-
"integrity": "sha512-
|
|
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.
|
|
1793
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.
|
|
1794
|
-
"integrity": "sha512-
|
|
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.
|
|
2609
|
-
"resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-7.7.
|
|
2610
|
-
"integrity": "sha512-
|
|
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.
|
|
3095
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.
|
|
3096
|
-
"integrity": "sha512-
|
|
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.
|
|
3797
|
-
"resolved": "https://registry.npmjs.org/teen_process/-/teen_process-2.3.
|
|
3798
|
-
"integrity": "sha512-
|
|
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": "
|
|
3890
|
-
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-
|
|
3891
|
-
"integrity": "sha512-
|
|
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.
|
|
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": "^
|
|
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",
|