appium-xcuitest-driver 12.0.0 → 12.1.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 +16 -0
- package/build/lib/commands/helpers/index.d.ts +2 -0
- package/build/lib/commands/helpers/index.d.ts.map +1 -1
- package/build/lib/commands/helpers/index.js +1 -0
- package/build/lib/commands/helpers/index.js.map +1 -1
- package/build/lib/commands/helpers/mjpeg.d.ts +39 -0
- package/build/lib/commands/helpers/mjpeg.d.ts.map +1 -0
- package/build/lib/commands/helpers/mjpeg.js +274 -0
- package/build/lib/commands/helpers/mjpeg.js.map +1 -0
- package/build/lib/commands/keyboard.d.ts +1 -1
- package/build/lib/commands/keyboard.d.ts.map +1 -1
- package/build/lib/commands/keyboard.js +1 -1
- package/build/lib/commands/keyboard.js.map +1 -1
- package/build/lib/commands/log.d.ts +1 -1
- package/build/lib/commands/log.js +1 -1
- package/build/lib/driver.d.ts +2 -4
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +3 -37
- package/build/lib/driver.js.map +1 -1
- package/lib/commands/helpers/index.ts +3 -0
- package/lib/commands/helpers/mjpeg.ts +310 -0
- package/lib/commands/keyboard.ts +1 -1
- package/lib/commands/log.ts +1 -1
- package/lib/driver.ts +5 -42
- package/npm-shrinkwrap.json +344 -397
- package/package.json +17 -21
- package/scripts/tunnel-creation.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## [12.1.1](https://github.com/appium/appium-xcuitest-driver/compare/v12.1.0...v12.1.1) (2026-07-29)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* Integrate oxc and release configs ([#2925](https://github.com/appium/appium-xcuitest-driver/issues/2925)) ([6711a34](https://github.com/appium/appium-xcuitest-driver/commit/6711a34419402894d25cae00811da25cef6cc4ae))
|
|
6
|
+
|
|
7
|
+
## [12.1.0](https://github.com/appium/appium-xcuitest-driver/compare/v12.0.0...v12.1.0) (2026-07-24)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Add codegraph support ([#2916](https://github.com/appium/appium-xcuitest-driver/issues/2916)) ([d23ae2c](https://github.com/appium/appium-xcuitest-driver/commit/d23ae2c451fa0d55da0489a2487d36dcb54ea570))
|
|
12
|
+
|
|
13
|
+
### Code Refactoring
|
|
14
|
+
|
|
15
|
+
* Isolate MJPEG helpers in the driver ([#2915](https://github.com/appium/appium-xcuitest-driver/issues/2915)) ([6fb7426](https://github.com/appium/appium-xcuitest-driver/commit/6fb7426c3948a91bec712bfff47bdb1b8ed35ab1))
|
|
16
|
+
|
|
1
17
|
## [12.0.0](https://github.com/appium/appium-xcuitest-driver/compare/v11.17.7...v12.0.0) (2026-07-23)
|
|
2
18
|
|
|
3
19
|
### ⚠ BREAKING CHANGES
|
|
@@ -4,6 +4,8 @@ export { requireRealDevice, requireSimulator } from './guards.js';
|
|
|
4
4
|
export type { DeviceGuardDriver } from './guards.js';
|
|
5
5
|
export { encodeBase64OrUpload, getPIDsListeningOnPort, isLocalHost } from './network.js';
|
|
6
6
|
export type { UploadOptions } from './network.js';
|
|
7
|
+
export { handleMjpegOptions } from './mjpeg.js';
|
|
8
|
+
export type { MJpegStream } from './mjpeg.js';
|
|
7
9
|
export { getDriverInfo, printUser } from './runtime.js';
|
|
8
10
|
export type { DriverInfo } from './runtime.js';
|
|
9
11
|
export { getAndCheckIosSdkVersion, getAndCheckXcodeVersion } from './xcode.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/commands/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAErD,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAChE,YAAY,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AACvF,YAAY,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACtD,YAAY,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAC,wBAAwB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAC1F,YAAY,EAAC,oBAAoB,EAAE,2BAA2B,EAAC,MAAM,cAAc,CAAC;AAEpF,OAAO,EAAC,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/commands/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAErD,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAChE,YAAY,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AACvF,YAAY,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACtD,YAAY,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAC,wBAAwB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAC1F,YAAY,EAAC,oBAAoB,EAAE,2BAA2B,EAAC,MAAM,cAAc,CAAC;AAEpF,OAAO,EAAC,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC"}
|
|
@@ -3,6 +3,7 @@ export { SAFARI_BUNDLE_ID, buildSafariPreferences, checkAutInstallationState, fi
|
|
|
3
3
|
export { TimeoutError, withTimeout } from './async.js';
|
|
4
4
|
export { requireRealDevice, requireSimulator } from './guards.js';
|
|
5
5
|
export { encodeBase64OrUpload, getPIDsListeningOnPort, isLocalHost } from './network.js';
|
|
6
|
+
export { handleMjpegOptions } from './mjpeg.js';
|
|
6
7
|
export { getDriverInfo, printUser } from './runtime.js';
|
|
7
8
|
export { getAndCheckIosSdkVersion, getAndCheckXcodeVersion } from './xcode.js';
|
|
8
9
|
export { removeAllSessionWebSocketHandlers, shouldSetInitialSafariUrl } from './session.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/commands/helpers/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAErD,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAGvF,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAC,wBAAwB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAC,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/commands/helpers/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAErD,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAGvF,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAC,wBAAwB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAC,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Writable, type WritableOptions } from 'node:stream';
|
|
2
|
+
import type { XCUITestDriver } from '../../driver.js';
|
|
3
|
+
/**
|
|
4
|
+
* Connects to an MJPEG-over-HTTP stream and keeps track of the last JPEG frame received,
|
|
5
|
+
* so that it can be used as a cheap, low-latency screenshot source.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MJpegStream extends Writable {
|
|
8
|
+
readonly errorHandler: (err: Error) => void;
|
|
9
|
+
readonly url: string;
|
|
10
|
+
private updateCount;
|
|
11
|
+
private lastChunk;
|
|
12
|
+
private registerStartSuccess;
|
|
13
|
+
private registerStartFailure;
|
|
14
|
+
private responseStream;
|
|
15
|
+
private consumer;
|
|
16
|
+
/**
|
|
17
|
+
* @param mJpegUrl - URL of the MJPEG-over-HTTP stream
|
|
18
|
+
* @param errorHandler - additional function that will be called in the case of any errors
|
|
19
|
+
* @param options - Options to pass to the Writable constructor
|
|
20
|
+
*/
|
|
21
|
+
constructor(mJpegUrl: string, errorHandler?: (err: Error) => void, options?: WritableOptions);
|
|
22
|
+
get lastChunkBase64(): string | null;
|
|
23
|
+
lastChunkPNG(): Promise<Buffer | null>;
|
|
24
|
+
lastChunkPNGBase64(): Promise<string | null>;
|
|
25
|
+
clear(): void;
|
|
26
|
+
start(serverTimeout?: number): Promise<void>;
|
|
27
|
+
stop(): void;
|
|
28
|
+
_write(chunk: Buffer | string, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Forwards the device's MJPEG broadcast port and starts reading the MJPEG stream
|
|
32
|
+
* if `mjpegScreenshotUrl` was requested.
|
|
33
|
+
*/
|
|
34
|
+
export declare function handleMjpegOptions(driver: XCUITestDriver): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Forwards the device's MJPEG broadcast port to the local port of the same number.
|
|
37
|
+
*/
|
|
38
|
+
export declare function allocateMjpegServerPort(driver: XCUITestDriver): Promise<void>;
|
|
39
|
+
//# sourceMappingURL=mjpeg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mjpeg.d.ts","sourceRoot":"","sources":["../../../../lib/commands/helpers/mjpeg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAyC,KAAK,eAAe,EAAC,MAAM,aAAa,CAAC;AAM7G,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAyGpD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAiC;IAEjD;;;;OAIG;gBACS,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAW,EAAE,OAAO,GAAE,eAAoB;IAOtG,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAGnC;IAEK,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IActC,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKlD,KAAK,IAAI,IAAI;IASP,KAAK,CAAC,aAAa,SAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsErE,IAAI,IAAI,IAAI;IAcH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;CAUnH;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9E;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BnF"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { Transform, Writable } from 'node:stream';
|
|
2
|
+
import { logger } from 'appium/support.js';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
const log = logger.getLogger('MJPEG');
|
|
5
|
+
const DEFAULT_SERVER_TIMEOUT_MS = 10000;
|
|
6
|
+
const DEFAULT_MJPEG_SERVER_PORT = 9100;
|
|
7
|
+
const JPEG_SOI = Buffer.from([0xff, 0xd8]);
|
|
8
|
+
const JPEG_EOI = Buffer.from([0xff, 0xd9]);
|
|
9
|
+
const CONTENT_LENGTH_RE = /Content-Length:\s*(\d+)/i;
|
|
10
|
+
/**
|
|
11
|
+
* Extracts individual JPEG frames out of a multipart MJPEG-over-HTTP byte stream by
|
|
12
|
+
* scanning for JPEG start/end-of-image markers and the multipart `Content-Length` header.
|
|
13
|
+
*/
|
|
14
|
+
class MjpegFrameParser extends Transform {
|
|
15
|
+
buffer = null;
|
|
16
|
+
expectedLength = 0;
|
|
17
|
+
bytesWritten = 0;
|
|
18
|
+
isReading = false;
|
|
19
|
+
/* eslint-disable promise/prefer-await-to-callbacks -- Transform._transform is callback-based */
|
|
20
|
+
_transform(chunk, _encoding, callback) {
|
|
21
|
+
const startIdx = chunk.indexOf(JPEG_SOI);
|
|
22
|
+
const endIdx = chunk.indexOf(JPEG_EOI);
|
|
23
|
+
const lengthMatch = CONTENT_LENGTH_RE.exec(chunk.toString('latin1'));
|
|
24
|
+
if (this.buffer && (this.isReading || startIdx > -1)) {
|
|
25
|
+
this.appendChunk(chunk, startIdx, endIdx);
|
|
26
|
+
}
|
|
27
|
+
if (lengthMatch) {
|
|
28
|
+
this.startFrame(Number(lengthMatch[1]), chunk, startIdx, endIdx);
|
|
29
|
+
}
|
|
30
|
+
callback();
|
|
31
|
+
}
|
|
32
|
+
/* eslint-enable promise/prefer-await-to-callbacks */
|
|
33
|
+
startFrame(length, chunk, start, end) {
|
|
34
|
+
this.expectedLength = length;
|
|
35
|
+
this.buffer = Buffer.alloc(length);
|
|
36
|
+
this.bytesWritten = 0;
|
|
37
|
+
this.isReading = false;
|
|
38
|
+
if (start < 0) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const hasEnd = end > start;
|
|
42
|
+
const copyEnd = hasEnd ? end + JPEG_EOI.length : chunk.length;
|
|
43
|
+
// Buffer.copy() silently truncates if the destination has less room than requested,
|
|
44
|
+
// so bytesWritten must track what was actually copied, not the requested range size.
|
|
45
|
+
this.bytesWritten = chunk.copy(this.buffer, 0, start, copyEnd);
|
|
46
|
+
if (hasEnd) {
|
|
47
|
+
this.emitFrame();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.isReading = true;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
appendChunk(chunk, start, end) {
|
|
54
|
+
if (!this.buffer) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const copyStart = start > -1 ? start : 0;
|
|
58
|
+
const copyEnd = end > -1 ? end + JPEG_EOI.length : chunk.length;
|
|
59
|
+
// Buffer.copy() silently truncates if the destination has less room than requested,
|
|
60
|
+
// so bytesWritten must track what was actually copied, not the requested range size.
|
|
61
|
+
this.bytesWritten += chunk.copy(this.buffer, this.bytesWritten, copyStart, copyEnd);
|
|
62
|
+
if (end > -1 || this.bytesWritten === this.expectedLength) {
|
|
63
|
+
this.emitFrame();
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.isReading = true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
emitFrame() {
|
|
70
|
+
this.isReading = false;
|
|
71
|
+
if (this.buffer) {
|
|
72
|
+
this.push(this.buffer);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
let sharpModule = null;
|
|
77
|
+
async function requireSharp() {
|
|
78
|
+
if (sharpModule) {
|
|
79
|
+
return sharpModule;
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
sharpModule = (await import('sharp')).default;
|
|
83
|
+
return sharpModule;
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
87
|
+
throw new Error(`Cannot load the 'sharp' module needed for MJPEG frame processing. ` +
|
|
88
|
+
`Consider visiting https://sharp.pixelplumbing.com/install for troubleshooting. ` +
|
|
89
|
+
`Original error: ${message}`, { cause: err });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const noop = () => { };
|
|
93
|
+
/**
|
|
94
|
+
* Connects to an MJPEG-over-HTTP stream and keeps track of the last JPEG frame received,
|
|
95
|
+
* so that it can be used as a cheap, low-latency screenshot source.
|
|
96
|
+
*/
|
|
97
|
+
export class MJpegStream extends Writable {
|
|
98
|
+
errorHandler;
|
|
99
|
+
url;
|
|
100
|
+
updateCount = 0;
|
|
101
|
+
lastChunk = null;
|
|
102
|
+
registerStartSuccess = null;
|
|
103
|
+
registerStartFailure = null;
|
|
104
|
+
responseStream = null;
|
|
105
|
+
consumer = null;
|
|
106
|
+
/**
|
|
107
|
+
* @param mJpegUrl - URL of the MJPEG-over-HTTP stream
|
|
108
|
+
* @param errorHandler - additional function that will be called in the case of any errors
|
|
109
|
+
* @param options - Options to pass to the Writable constructor
|
|
110
|
+
*/
|
|
111
|
+
constructor(mJpegUrl, errorHandler = noop, options = {}) {
|
|
112
|
+
super(options);
|
|
113
|
+
this.errorHandler = errorHandler;
|
|
114
|
+
this.url = mJpegUrl;
|
|
115
|
+
this.clear();
|
|
116
|
+
}
|
|
117
|
+
get lastChunkBase64() {
|
|
118
|
+
const lastChunk = this.lastChunk;
|
|
119
|
+
return lastChunk && lastChunk.length > 0 ? lastChunk.toString('base64') : null;
|
|
120
|
+
}
|
|
121
|
+
async lastChunkPNG() {
|
|
122
|
+
const chunk = this.lastChunk;
|
|
123
|
+
if (!chunk || chunk.length === 0) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
const sharp = await requireSharp();
|
|
128
|
+
return await sharp(chunk).png().toBuffer();
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
log.warn(`Cannot convert MJPEG chunk to PNG: ${err.message}`);
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async lastChunkPNGBase64() {
|
|
136
|
+
const png = await this.lastChunkPNG();
|
|
137
|
+
return png ? png.toString('base64') : null;
|
|
138
|
+
}
|
|
139
|
+
clear() {
|
|
140
|
+
this.registerStartSuccess = null;
|
|
141
|
+
this.registerStartFailure = null;
|
|
142
|
+
this.responseStream = null;
|
|
143
|
+
this.consumer = null;
|
|
144
|
+
this.lastChunk = null;
|
|
145
|
+
this.updateCount = 0;
|
|
146
|
+
}
|
|
147
|
+
async start(serverTimeout = DEFAULT_SERVER_TIMEOUT_MS) {
|
|
148
|
+
this.stop();
|
|
149
|
+
this.consumer = new MjpegFrameParser();
|
|
150
|
+
const url = this.url;
|
|
151
|
+
// Bound only the connect phase with an abort signal; axios's own `timeout` option would
|
|
152
|
+
// otherwise keep ticking for the whole request lifetime and race with the "first frame"
|
|
153
|
+
// watchdog below, since both would share the same deadline.
|
|
154
|
+
const connectController = new AbortController();
|
|
155
|
+
const connectTimeoutId = setTimeout(() => connectController.abort(), serverTimeout);
|
|
156
|
+
try {
|
|
157
|
+
try {
|
|
158
|
+
this.responseStream = (await axios({
|
|
159
|
+
url,
|
|
160
|
+
responseType: 'stream',
|
|
161
|
+
signal: connectController.signal,
|
|
162
|
+
})).data;
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
let message;
|
|
166
|
+
if (e && typeof e === 'object' && 'response' in e) {
|
|
167
|
+
message = JSON.stringify(e.response);
|
|
168
|
+
}
|
|
169
|
+
else if (e instanceof Error) {
|
|
170
|
+
message = e.message;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
message = String(e);
|
|
174
|
+
}
|
|
175
|
+
throw new Error(`Cannot connect to the MJPEG stream at ${url}. Original error: ${message}`, {
|
|
176
|
+
cause: e,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
finally {
|
|
181
|
+
clearTimeout(connectTimeoutId);
|
|
182
|
+
}
|
|
183
|
+
const onErr = (err) => {
|
|
184
|
+
this.lastChunk = null;
|
|
185
|
+
log.error(`Error getting MJPEG screenshot chunk: ${err.message}`);
|
|
186
|
+
this.errorHandler(err);
|
|
187
|
+
this.registerStartFailure?.(err);
|
|
188
|
+
};
|
|
189
|
+
const onClose = () => {
|
|
190
|
+
log.debug(`The connection to MJPEG server at ${url} has been closed`);
|
|
191
|
+
this.lastChunk = null;
|
|
192
|
+
};
|
|
193
|
+
let timeoutId;
|
|
194
|
+
const startPromise = new Promise((resolve, reject) => {
|
|
195
|
+
this.registerStartSuccess = resolve;
|
|
196
|
+
this.registerStartFailure = reject;
|
|
197
|
+
timeoutId = setTimeout(() => reject(new Error(`Waited ${serverTimeout}ms but the MJPEG server never sent any images`)), serverTimeout);
|
|
198
|
+
});
|
|
199
|
+
this.responseStream
|
|
200
|
+
.once('close', onClose)
|
|
201
|
+
.on('error', onErr)
|
|
202
|
+
.pipe(this.consumer)
|
|
203
|
+
.pipe(this);
|
|
204
|
+
try {
|
|
205
|
+
await startPromise;
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
clearTimeout(timeoutId);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
stop() {
|
|
212
|
+
if (this.consumer) {
|
|
213
|
+
this.consumer.unpipe(this);
|
|
214
|
+
}
|
|
215
|
+
if (this.responseStream) {
|
|
216
|
+
if (this.consumer) {
|
|
217
|
+
this.responseStream.unpipe(this.consumer);
|
|
218
|
+
}
|
|
219
|
+
this.responseStream.destroy();
|
|
220
|
+
}
|
|
221
|
+
this.clear();
|
|
222
|
+
}
|
|
223
|
+
/* eslint-disable promise/prefer-await-to-callbacks -- Writable._write is callback-based */
|
|
224
|
+
_write(chunk, _encoding, callback) {
|
|
225
|
+
this.lastChunk = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
226
|
+
this.updateCount++;
|
|
227
|
+
if (this.registerStartSuccess) {
|
|
228
|
+
this.registerStartSuccess();
|
|
229
|
+
this.registerStartSuccess = null;
|
|
230
|
+
}
|
|
231
|
+
callback();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Forwards the device's MJPEG broadcast port and starts reading the MJPEG stream
|
|
236
|
+
* if `mjpegScreenshotUrl` was requested.
|
|
237
|
+
*/
|
|
238
|
+
export async function handleMjpegOptions(driver) {
|
|
239
|
+
await allocateMjpegServerPort(driver);
|
|
240
|
+
// turn on mjpeg stream reading if requested
|
|
241
|
+
if (driver.opts.mjpegScreenshotUrl) {
|
|
242
|
+
driver.log.info(`Starting MJPEG stream reading URL: '${driver.opts.mjpegScreenshotUrl}'`);
|
|
243
|
+
driver.mjpegStream = new MJpegStream(driver.opts.mjpegScreenshotUrl);
|
|
244
|
+
await driver.mjpegStream.start();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Forwards the device's MJPEG broadcast port to the local port of the same number.
|
|
249
|
+
*/
|
|
250
|
+
export async function allocateMjpegServerPort(driver) {
|
|
251
|
+
const mjpegServerPort = Number(driver.opts.mjpegServerPort || DEFAULT_MJPEG_SERVER_PORT);
|
|
252
|
+
driver.log.debug(`Forwarding MJPEG server port ${mjpegServerPort} to local port ${mjpegServerPort}`);
|
|
253
|
+
try {
|
|
254
|
+
await driver.deviceConnectionsFactory.requestConnection(driver.opts.udid, mjpegServerPort, {
|
|
255
|
+
devicePort: mjpegServerPort,
|
|
256
|
+
usePortForwarding: driver.isRealDevice(),
|
|
257
|
+
remoteXPCFacade: driver.isRealDevice() ? driver.remoteXPCFacade : null,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
if (driver.opts.mjpegServerPort === undefined) {
|
|
262
|
+
driver.log.warn(`Cannot forward the device port ${DEFAULT_MJPEG_SERVER_PORT} to the local port ${DEFAULT_MJPEG_SERVER_PORT}. ` +
|
|
263
|
+
`Certain features, like MJPEG-based screen recording, will be unavailable during this session. ` +
|
|
264
|
+
`Try to customize the value of 'mjpegServerPort' capability as a possible solution`);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
driver.log.debug(error.stack);
|
|
268
|
+
throw new Error(`Cannot ensure MJPEG broadcast functionality by forwarding the local port ${mjpegServerPort} ` +
|
|
269
|
+
`requested by the 'mjpegServerPort' capability to the device port ${mjpegServerPort}. ` +
|
|
270
|
+
`Original error: ${error}`, { cause: error });
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=mjpeg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mjpeg.js","sourceRoot":"","sources":["../../../../lib/commands/helpers/mjpeg.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import type { KeyboardKey } from './types.js';
|
|
|
5
5
|
*
|
|
6
6
|
* @deprecated
|
|
7
7
|
*/
|
|
8
|
-
export declare function hideKeyboard(this: XCUITestDriver,
|
|
8
|
+
export declare function hideKeyboard(this: XCUITestDriver, _strategy?: string, ...possibleKeys: string[]): Promise<boolean>;
|
|
9
9
|
/**
|
|
10
10
|
* Hides the keyboard using the specified key names.
|
|
11
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../lib/commands/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../lib/commands/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,YAAY,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,EAC9B,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../../../lib/commands/keyboard.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAEhC,
|
|
1
|
+
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../../../lib/commands/keyboard.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAEhC,SAAkB,EAClB,GAAG,YAAsB;IAEzB,mCAAmC;IACnC,MAAM,QAAQ,GAAG,YAAY;SAC1B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAuB,OAAiB,EAAE;IAChF,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAE9B,IAA8B,EAC9B,YAA2B,IAAI;IAE/B,MAAM,GAAG,GAAG,gBAAgB,SAAS,IAAI,CAAC,gBAAgB,CAAC;IAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -44,7 +44,7 @@ export declare function startLogCapture(this: XCUITestDriver): Promise<boolean>;
|
|
|
44
44
|
* If the websocket is already running, this command does nothing.
|
|
45
45
|
*
|
|
46
46
|
* Each connected websocket listener will receive syslog lines as soon as they are visible to Appium.
|
|
47
|
-
* @see https://
|
|
47
|
+
* @see https://www.headspin.io/blog/using-mobile-execution-commands-to-continuously-stream-device-logs-with-appium
|
|
48
48
|
*/
|
|
49
49
|
export declare function mobileStartLogsBroadcast(this: XCUITestDriver): Promise<void>;
|
|
50
50
|
/**
|
|
@@ -166,7 +166,7 @@ export async function startLogCapture() {
|
|
|
166
166
|
* If the websocket is already running, this command does nothing.
|
|
167
167
|
*
|
|
168
168
|
* Each connected websocket listener will receive syslog lines as soon as they are visible to Appium.
|
|
169
|
-
* @see https://
|
|
169
|
+
* @see https://www.headspin.io/blog/using-mobile-execution-commands-to-continuously-stream-device-logs-with-appium
|
|
170
170
|
*/
|
|
171
171
|
export async function mobileStartLogsBroadcast() {
|
|
172
172
|
const pathname = WEBSOCKET_ENDPOINT(this.sessionId);
|
package/build/lib/driver.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import type { RemoteDebugger } from 'appium-remote-debugger';
|
|
|
4
4
|
import { WebDriverAgent } from 'appium-webdriveragent';
|
|
5
5
|
import type { XcodeVersion } from 'appium-xcode';
|
|
6
6
|
import { BaseDriver } from 'appium/driver.js';
|
|
7
|
-
import { mjpeg } from 'appium/support.js';
|
|
8
7
|
import { LRUCache } from 'lru-cache';
|
|
9
8
|
import { AppInfosCache } from './app-infos-cache.js';
|
|
10
9
|
import * as activeAppInfoCommands from './commands/active-app-info.js';
|
|
@@ -28,6 +27,7 @@ import * as findCommands from './commands/find.js';
|
|
|
28
27
|
import * as generalCommands from './commands/general.js';
|
|
29
28
|
import * as geolocationCommands from './commands/geolocation.js';
|
|
30
29
|
import * as gestureCommands from './commands/gesture.js';
|
|
30
|
+
import { type MJpegStream } from './commands/helpers/index.js';
|
|
31
31
|
import * as increaseContrastCommands from './commands/increase-contrast.js';
|
|
32
32
|
import * as iohidCommands from './commands/iohid.js';
|
|
33
33
|
import * as keyboardCommands from './commands/keyboard.js';
|
|
@@ -905,7 +905,7 @@ export declare class XCUITestDriver extends BaseDriver<XCUITestDriverConstraints
|
|
|
905
905
|
_currentUrl: string | null;
|
|
906
906
|
pageLoadMs: number;
|
|
907
907
|
landscapeWebCoordsOffset: number;
|
|
908
|
-
mjpegStream?:
|
|
908
|
+
mjpegStream?: MJpegStream;
|
|
909
909
|
readonly deviceConnectionsFactory: DeviceConnectionsFactory;
|
|
910
910
|
mobileGetActiveAppInfo: typeof activeAppInfoCommands.mobileGetActiveAppInfo;
|
|
911
911
|
getAlertText: typeof alertCommands.getAlertText;
|
|
@@ -1176,8 +1176,6 @@ export declare class XCUITestDriver extends BaseDriver<XCUITestDriverConstraints
|
|
|
1176
1176
|
private isXcodebuildNeeded;
|
|
1177
1177
|
private onSettingsUpdate;
|
|
1178
1178
|
private mergeCliArgsToOpts;
|
|
1179
|
-
private handleMjpegOptions;
|
|
1180
|
-
private allocateMjpegServerPort;
|
|
1181
1179
|
private getDefaultUrl;
|
|
1182
1180
|
private start;
|
|
1183
1181
|
private runReset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
|
package/build/lib/driver.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import EventEmitter from 'node:events';
|
|
2
2
|
import { WebDriverAgent } from 'appium-webdriveragent';
|
|
3
3
|
import { BaseDriver, DeviceSettings } from 'appium/driver.js';
|
|
4
|
-
import {
|
|
4
|
+
import { util } from 'appium/support.js';
|
|
5
5
|
import { LRUCache } from 'lru-cache';
|
|
6
6
|
import { AppInfosCache } from './app-infos-cache.js';
|
|
7
7
|
import * as activeAppInfoCommands from './commands/active-app-info.js';
|
|
@@ -27,7 +27,7 @@ import * as findCommands from './commands/find.js';
|
|
|
27
27
|
import * as generalCommands from './commands/general.js';
|
|
28
28
|
import * as geolocationCommands from './commands/geolocation.js';
|
|
29
29
|
import * as gestureCommands from './commands/gesture.js';
|
|
30
|
-
import { DEFAULT_TIMEOUT_KEY, SAFARI_BUNDLE_ID, checkAppPresent, getAndCheckXcodeVersion, getDriverInfo, installAUT, normalizeCommandTimeouts, onDownloadApp, onPostConfigureApp, printUser, removeAllSessionWebSocketHandlers, shouldSetInitialSafariUrl, } from './commands/helpers/index.js';
|
|
30
|
+
import { DEFAULT_TIMEOUT_KEY, SAFARI_BUNDLE_ID, checkAppPresent, getAndCheckXcodeVersion, getDriverInfo, handleMjpegOptions, installAUT, normalizeCommandTimeouts, onDownloadApp, onPostConfigureApp, printUser, removeAllSessionWebSocketHandlers, shouldSetInitialSafariUrl, } from './commands/helpers/index.js';
|
|
31
31
|
import * as increaseContrastCommands from './commands/increase-contrast.js';
|
|
32
32
|
import * as iohidCommands from './commands/iohid.js';
|
|
33
33
|
import * as keyboardCommands from './commands/keyboard.js';
|
|
@@ -100,7 +100,6 @@ const DEFAULT_SETTINGS = {
|
|
|
100
100
|
// affect shared resources of the other parallel sessions
|
|
101
101
|
const WEB_ELEMENTS_CACHE_SIZE = 500;
|
|
102
102
|
const SUPPORTED_ORIENATIONS = ['LANDSCAPE', 'PORTRAIT'];
|
|
103
|
-
const DEFAULT_MJPEG_SERVER_PORT = 9100;
|
|
104
103
|
/* eslint-disable no-useless-escape */
|
|
105
104
|
const NO_PROXY_NATIVE_LIST = [
|
|
106
105
|
['DELETE', /window/],
|
|
@@ -710,7 +709,7 @@ export class XCUITestDriver extends BaseDriver {
|
|
|
710
709
|
}
|
|
711
710
|
// ensure WDA gets our defaults instead of whatever its own might be
|
|
712
711
|
await this.updateSettings(wdaSettings);
|
|
713
|
-
await
|
|
712
|
+
await handleMjpegOptions(this);
|
|
714
713
|
return [sessionId, caps];
|
|
715
714
|
}
|
|
716
715
|
catch (e) {
|
|
@@ -970,39 +969,6 @@ export class XCUITestDriver extends BaseDriver {
|
|
|
970
969
|
}
|
|
971
970
|
return didMerge;
|
|
972
971
|
}
|
|
973
|
-
async handleMjpegOptions() {
|
|
974
|
-
await this.allocateMjpegServerPort();
|
|
975
|
-
// turn on mjpeg stream reading if requested
|
|
976
|
-
if (this.opts.mjpegScreenshotUrl) {
|
|
977
|
-
this.log.info(`Starting MJPEG stream reading URL: '${this.opts.mjpegScreenshotUrl}'`);
|
|
978
|
-
this.mjpegStream = new mjpeg.MJpegStream(this.opts.mjpegScreenshotUrl);
|
|
979
|
-
await this.mjpegStream.start();
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
async allocateMjpegServerPort() {
|
|
983
|
-
const mjpegServerPort = Number(this.opts.mjpegServerPort || DEFAULT_MJPEG_SERVER_PORT);
|
|
984
|
-
this.log.debug(`Forwarding MJPEG server port ${mjpegServerPort} to local port ${mjpegServerPort}`);
|
|
985
|
-
try {
|
|
986
|
-
await this.deviceConnectionsFactory.requestConnection(this.opts.udid, mjpegServerPort, {
|
|
987
|
-
devicePort: mjpegServerPort,
|
|
988
|
-
usePortForwarding: this.isRealDevice(),
|
|
989
|
-
remoteXPCFacade: this.isRealDevice() ? this.remoteXPCFacade : null,
|
|
990
|
-
});
|
|
991
|
-
}
|
|
992
|
-
catch (error) {
|
|
993
|
-
if (this.opts.mjpegServerPort === undefined) {
|
|
994
|
-
this.log.warn(`Cannot forward the device port ${DEFAULT_MJPEG_SERVER_PORT} to the local port ${DEFAULT_MJPEG_SERVER_PORT}. ` +
|
|
995
|
-
`Certain features, like MJPEG-based screen recording, will be unavailable during this session. ` +
|
|
996
|
-
`Try to customize the value of 'mjpegServerPort' capability as a possible solution`);
|
|
997
|
-
}
|
|
998
|
-
else {
|
|
999
|
-
this.log.debug(error.stack);
|
|
1000
|
-
throw new Error(`Cannot ensure MJPEG broadcast functionality by forwarding the local port ${mjpegServerPort} ` +
|
|
1001
|
-
`requested by the 'mjpegServerPort' capability to the device port ${mjpegServerPort}. ` +
|
|
1002
|
-
`Original error: ${error}`, { cause: error });
|
|
1003
|
-
}
|
|
1004
|
-
}
|
|
1005
|
-
}
|
|
1006
972
|
getDefaultUrl() {
|
|
1007
973
|
// Setting this to some external URL slows down the session init
|
|
1008
974
|
return `${this.getWdaLocalhostRoot()}/health`;
|