appium-webdriveragent 12.1.0 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/PrivateHeaders/XCTest/CDStructures.h +3 -0
- package/PrivateHeaders/XCTest/XCTestCase.h +3 -0
- package/Scripts/build-webdriveragent.mjs +9 -2
- package/Scripts/fetch-prebuilt-wda.mjs +12 -6
- package/WebDriverAgentLib/Info.plist +2 -2
- package/build/lib/check-dependencies.d.ts +3 -0
- package/build/lib/check-dependencies.d.ts.map +1 -1
- package/build/lib/check-dependencies.js +15 -12
- package/build/lib/check-dependencies.js.map +1 -1
- package/build/lib/utils.d.ts +22 -8
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +73 -21
- package/build/lib/utils.js.map +1 -1
- package/build/lib/webdriveragent.d.ts +42 -39
- package/build/lib/webdriveragent.d.ts.map +1 -1
- package/build/lib/webdriveragent.js +119 -106
- package/build/lib/webdriveragent.js.map +1 -1
- package/build/lib/xcodebuild.d.ts +5 -5
- package/build/lib/xcodebuild.d.ts.map +1 -1
- package/build/lib/xcodebuild.js +12 -13
- package/build/lib/xcodebuild.js.map +1 -1
- package/lib/check-dependencies.ts +18 -15
- package/lib/utils.ts +97 -40
- package/lib/webdriveragent.ts +132 -117
- package/lib/xcodebuild.ts +17 -15
- package/package.json +2 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [12.2.0](https://github.com/appium/WebDriverAgent/compare/v12.1.1...v12.2.0) (2026-04-29)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Ditch bluebird and lodash ([#1130](https://github.com/appium/WebDriverAgent/issues/1130)) ([8899895](https://github.com/appium/WebDriverAgent/commit/88998951f004daed1d22ce2c06eec89a08129e4f))
|
|
6
|
+
|
|
7
|
+
## [12.1.1](https://github.com/appium/WebDriverAgent/compare/v12.1.0...v12.1.1) (2026-04-27)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* **compile:** fix compilation ([#1129](https://github.com/appium/WebDriverAgent/issues/1129)) ([76d59e8](https://github.com/appium/WebDriverAgent/commit/76d59e85c75680c97abe9e67fdf4a70cacd46418))
|
|
12
|
+
|
|
1
13
|
## [12.1.0](https://github.com/appium/WebDriverAgent/compare/v12.0.0...v12.1.0) (2026-04-24)
|
|
2
14
|
|
|
3
15
|
### Features
|
|
@@ -24,5 +24,8 @@ typedef struct {
|
|
|
24
24
|
unsigned short _field3[1];
|
|
25
25
|
} CDStruct_27a325c0;
|
|
26
26
|
|
|
27
|
+
#pragma clang diagnostic push
|
|
28
|
+
#pragma clang diagnostic ignored "-Wreserved-identifier"
|
|
27
29
|
int _XCTSetApplicationStateTimeout(double timeout);
|
|
28
30
|
double _XCTApplicationStateTimeout(void);
|
|
31
|
+
#pragma clang diagnostic pop
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
#import <WebDriverAgentLib/CDStructures.h>
|
|
10
10
|
|
|
11
|
+
#pragma clang diagnostic push
|
|
12
|
+
#pragma clang diagnostic ignored "-Wreserved-identifier"
|
|
11
13
|
@class NSInvocation, XCTestCaseRun, XCTestContext, _XCTestCaseImplementation;
|
|
14
|
+
#pragma clang diagnostic pop
|
|
12
15
|
|
|
13
16
|
@interface XCTestCase()
|
|
14
17
|
{
|
|
@@ -20,6 +20,11 @@ const WDA_BUNDLE_TV_PATH = path.join(DERIVED_DATA_PATH, 'Build', 'Products', 'De
|
|
|
20
20
|
const TARGETS = ['runner', 'tv_runner'];
|
|
21
21
|
const SDKS = ['sim', 'tv_sim'];
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Build WebDriverAgent and pack the app bundle into a zip archive.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} [xcodeVersion] Xcode version to include in archive name.
|
|
27
|
+
*/
|
|
23
28
|
async function buildWebDriverAgent (xcodeVersion) {
|
|
24
29
|
const target = process.env.TARGET;
|
|
25
30
|
const sdk = process.env.SDK;
|
|
@@ -77,10 +82,12 @@ async function buildWebDriverAgent (xcodeVersion) {
|
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
if (isMainModule) {
|
|
80
|
-
|
|
85
|
+
try {
|
|
86
|
+
await buildWebDriverAgent();
|
|
87
|
+
} catch (e) {
|
|
81
88
|
LOG.error(e);
|
|
82
89
|
process.exit(1);
|
|
83
|
-
}
|
|
90
|
+
}
|
|
84
91
|
}
|
|
85
92
|
|
|
86
93
|
export default buildWebDriverAgent;
|
|
@@ -3,8 +3,6 @@ import { fileURLToPath } from 'node:url';
|
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
4
|
import axios from 'axios';
|
|
5
5
|
import { logger, fs, mkdirp, net } from '@appium/support';
|
|
6
|
-
import _ from 'lodash';
|
|
7
|
-
import B from 'bluebird';
|
|
8
6
|
|
|
9
7
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
8
|
const __dirname = path.dirname(__filename);
|
|
@@ -12,6 +10,9 @@ const isMainModule = process.argv[1] && path.resolve(process.argv[1]) === __file
|
|
|
12
10
|
|
|
13
11
|
const log = logger.getLogger('WDA');
|
|
14
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Download all prebuilt WebDriverAgent archives for the current package version.
|
|
15
|
+
*/
|
|
15
16
|
async function fetchPrebuiltWebDriverAgentAssets () {
|
|
16
17
|
const packageJson = JSON.parse(readFileSync(path.resolve(__dirname, '..', 'package.json'), 'utf8'));
|
|
17
18
|
const tag = packageJson.version;
|
|
@@ -51,20 +52,25 @@ async function fetchPrebuiltWebDriverAgentAssets () {
|
|
|
51
52
|
const url = asset.browser_download_url;
|
|
52
53
|
log.info(`Downloading: ${url}`);
|
|
53
54
|
try {
|
|
54
|
-
const nameOfAgent =
|
|
55
|
+
const nameOfAgent = url.split('/').at(-1);
|
|
56
|
+
if (!nameOfAgent) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
55
59
|
agentsDownloading.push(downloadAgent(url, path.join(webdriveragentsDir, nameOfAgent)));
|
|
56
60
|
} catch { }
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
// Wait for them all to finish
|
|
60
|
-
return await
|
|
64
|
+
return await Promise.all(agentsDownloading);
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
if (isMainModule) {
|
|
64
|
-
|
|
68
|
+
try {
|
|
69
|
+
await fetchPrebuiltWebDriverAgentAssets();
|
|
70
|
+
} catch (e) {
|
|
65
71
|
log.error(e);
|
|
66
72
|
process.exit(1);
|
|
67
|
-
}
|
|
73
|
+
}
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
export default fetchPrebuiltWebDriverAgentAssets;
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>12.
|
|
18
|
+
<string>12.2.0</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>12.
|
|
22
|
+
<string>12.2.0</string>
|
|
23
23
|
<key>NSPrincipalClass</key>
|
|
24
24
|
<string/>
|
|
25
25
|
</dict>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-dependencies.d.ts","sourceRoot":"","sources":["../../lib/check-dependencies.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"check-dependencies.d.ts","sourceRoot":"","sources":["../../lib/check-dependencies.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB1E"}
|
|
@@ -9,6 +9,21 @@ const teen_process_1 = require("teen_process");
|
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const constants_1 = require("./constants");
|
|
11
11
|
const utils_1 = require("./utils");
|
|
12
|
+
/**
|
|
13
|
+
* Ensure simulator WDA is built and return the resulting app bundle path.
|
|
14
|
+
*/
|
|
15
|
+
async function bundleWDASim(xcodebuild) {
|
|
16
|
+
const derivedDataPath = await xcodebuild.retrieveDerivedDataPath();
|
|
17
|
+
if (!derivedDataPath) {
|
|
18
|
+
throw new Error('Cannot retrieve the path to the Xcode derived data folder');
|
|
19
|
+
}
|
|
20
|
+
const wdaBundlePath = node_path_1.default.join(derivedDataPath, 'Build', 'Products', 'Debug-iphonesimulator', constants_1.WDA_RUNNER_APP);
|
|
21
|
+
if (await support_1.fs.exists(wdaBundlePath)) {
|
|
22
|
+
return wdaBundlePath;
|
|
23
|
+
}
|
|
24
|
+
await buildWDASim();
|
|
25
|
+
return wdaBundlePath;
|
|
26
|
+
}
|
|
12
27
|
async function buildWDASim() {
|
|
13
28
|
const args = [
|
|
14
29
|
'-project',
|
|
@@ -23,16 +38,4 @@ async function buildWDASim() {
|
|
|
23
38
|
];
|
|
24
39
|
await (0, teen_process_1.exec)('xcodebuild', args);
|
|
25
40
|
}
|
|
26
|
-
async function bundleWDASim(xcodebuild) {
|
|
27
|
-
const derivedDataPath = await xcodebuild.retrieveDerivedDataPath();
|
|
28
|
-
if (!derivedDataPath) {
|
|
29
|
-
throw new Error('Cannot retrieve the path to the Xcode derived data folder');
|
|
30
|
-
}
|
|
31
|
-
const wdaBundlePath = node_path_1.default.join(derivedDataPath, 'Build', 'Products', 'Debug-iphonesimulator', constants_1.WDA_RUNNER_APP);
|
|
32
|
-
if (await support_1.fs.exists(wdaBundlePath)) {
|
|
33
|
-
return wdaBundlePath;
|
|
34
|
-
}
|
|
35
|
-
await buildWDASim();
|
|
36
|
-
return wdaBundlePath;
|
|
37
|
-
}
|
|
38
41
|
//# sourceMappingURL=check-dependencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-dependencies.js","sourceRoot":"","sources":["../../lib/check-dependencies.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"check-dependencies.js","sourceRoot":"","sources":["../../lib/check-dependencies.ts"],"names":[],"mappings":";;;;;AAUA,oCAiBC;AA3BD,6CAAmC;AACnC,+CAAkC;AAClC,0DAA6B;AAC7B,2CAAsE;AACtE,mCAAuC;AAGvC;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,UAAsB;IACvD,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,uBAAuB,EAAE,CAAC;IACnE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAC7B,eAAe,EACf,OAAO,EACP,UAAU,EACV,uBAAuB,EACvB,0BAAc,CACf,CAAC;IACF,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,MAAM,WAAW,EAAE,CAAC;IACpB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,IAAI,GAAG;QACX,UAAU;QACV,mBAAI,CAAC,IAAI,CAAC,sBAAc,EAAE,0BAA0B,CAAC;QACrD,SAAS;QACT,sBAAU;QACV,MAAM;QACN,yBAAa;QACb,uBAAuB;QACvB,4BAA4B;QAC5B,gCAAgC;KACjC,CAAC;IACF,MAAM,IAAA,mBAAI,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
package/build/lib/utils.d.ts
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import { SubProcess } from 'teen_process';
|
|
2
2
|
import type { DeviceInfo } from './types';
|
|
3
3
|
export declare const BOOTSTRAP_PATH: string;
|
|
4
|
-
export declare function killAppUsingPattern(pgrepPattern: string): Promise<void>;
|
|
5
|
-
/**
|
|
6
|
-
* Return true if the platformName is tvOS
|
|
7
|
-
* @param platformName The name of the platorm
|
|
8
|
-
* @returns Return true if the platformName is tvOS
|
|
9
|
-
*/
|
|
10
|
-
export declare function isTvOS(platformName: string): boolean;
|
|
11
|
-
export declare function setRealDeviceSecurity(keychainPath: string, keychainPassword: string): Promise<void>;
|
|
12
4
|
/**
|
|
13
5
|
* Arguments for setting xctestrun file
|
|
14
6
|
*/
|
|
@@ -19,6 +11,20 @@ export interface XctestrunFileArgs {
|
|
|
19
11
|
wdaRemotePort: number | string;
|
|
20
12
|
wdaBindingIP?: string;
|
|
21
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Find and terminate all processes matching the given pgrep pattern.
|
|
16
|
+
*/
|
|
17
|
+
export declare function killAppUsingPattern(pgrepPattern: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Return true if the platformName is tvOS
|
|
20
|
+
* @param platformName The name of the platorm
|
|
21
|
+
* @returns Return true if the platformName is tvOS
|
|
22
|
+
*/
|
|
23
|
+
export declare function isTvOS(platformName: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Configure keychain access required for real-device code signing.
|
|
26
|
+
*/
|
|
27
|
+
export declare function setRealDeviceSecurity(keychainPath: string, keychainPassword: string): Promise<void>;
|
|
22
28
|
/**
|
|
23
29
|
* Creates xctestrun file per device & platform version.
|
|
24
30
|
* We expects to have WebDriverAgentRunner_iphoneos${sdkVersion|platformVersion}-arm64.xctestrun for real device
|
|
@@ -68,6 +74,14 @@ export declare function randomInt(low: number, high: number): number;
|
|
|
68
74
|
* Retrieves WDA upgrade timestamp. The manifest only gets modified on package upgrade.
|
|
69
75
|
*/
|
|
70
76
|
export declare function getWDAUpgradeTimestamp(): Promise<number | null>;
|
|
77
|
+
/**
|
|
78
|
+
* Escape regular expression metacharacters in a string.
|
|
79
|
+
*/
|
|
80
|
+
export declare function escapeRegExp(value: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* Truncate a string to the given length and append ellipsis if needed.
|
|
83
|
+
*/
|
|
84
|
+
export declare function truncateString(value: string, length: number): string;
|
|
71
85
|
/**
|
|
72
86
|
* Kills running XCTest processes for the particular device.
|
|
73
87
|
*/
|
package/build/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,UAAU,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,UAAU,EAAC,MAAM,cAAc,CAAC;AAQ9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAyCxC,eAAO,MAAM,cAAc,QAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C7E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa/E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GAAG,MAAM,EAC9B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAWrB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKpF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAClC,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,aAAa,GAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAW,GAC7E,OAAO,CAAC,MAAM,EAAE,CAAC,CAiCnB"}
|
package/build/lib/utils.js
CHANGED
|
@@ -47,6 +47,8 @@ exports.getXctestrunFileName = getXctestrunFileName;
|
|
|
47
47
|
exports.killProcess = killProcess;
|
|
48
48
|
exports.randomInt = randomInt;
|
|
49
49
|
exports.getWDAUpgradeTimestamp = getWDAUpgradeTimestamp;
|
|
50
|
+
exports.escapeRegExp = escapeRegExp;
|
|
51
|
+
exports.truncateString = truncateString;
|
|
50
52
|
exports.resetTestProcesses = resetTestProcesses;
|
|
51
53
|
exports.getPIDsListeningOnPort = getPIDsListeningOnPort;
|
|
52
54
|
const support_1 = require("@appium/support");
|
|
@@ -54,9 +56,7 @@ const teen_process_1 = require("teen_process");
|
|
|
54
56
|
const node_path_1 = __importStar(require("node:path"));
|
|
55
57
|
const node_url_1 = require("node:url");
|
|
56
58
|
const logger_1 = require("./logger");
|
|
57
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
58
59
|
const constants_1 = require("./constants");
|
|
59
|
-
const bluebird_1 = __importDefault(require("bluebird"));
|
|
60
60
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
61
61
|
const asyncbox_1 = require("asyncbox");
|
|
62
62
|
const node_os_1 = require("node:os");
|
|
@@ -65,13 +65,17 @@ const currentFilename = typeof __filename !== 'undefined'
|
|
|
65
65
|
? __filename
|
|
66
66
|
: (0, node_url_1.fileURLToPath)(new Function('return import.meta.url')());
|
|
67
67
|
const currentDirname = (0, node_path_1.dirname)(currentFilename);
|
|
68
|
+
let moduleRootCache;
|
|
68
69
|
/**
|
|
69
70
|
* Calculates the path to the current module's root folder
|
|
70
71
|
*
|
|
71
72
|
* @returns {string} The full path to module root
|
|
72
73
|
* @throws {Error} If the current module root folder cannot be determined
|
|
73
74
|
*/
|
|
74
|
-
const getModuleRoot =
|
|
75
|
+
const getModuleRoot = function getModuleRoot() {
|
|
76
|
+
if (moduleRootCache) {
|
|
77
|
+
return moduleRootCache;
|
|
78
|
+
}
|
|
75
79
|
let currentDir = currentDirname;
|
|
76
80
|
let isAtFsRoot = false;
|
|
77
81
|
while (!isAtFsRoot) {
|
|
@@ -79,6 +83,7 @@ const getModuleRoot = lodash_1.default.memoize(function getModuleRoot() {
|
|
|
79
83
|
try {
|
|
80
84
|
if (node_fs_1.default.existsSync(manifestPath) &&
|
|
81
85
|
JSON.parse(node_fs_1.default.readFileSync(manifestPath, 'utf8')).name === 'appium-webdriveragent') {
|
|
86
|
+
moduleRootCache = currentDir;
|
|
82
87
|
return currentDir;
|
|
83
88
|
}
|
|
84
89
|
}
|
|
@@ -87,13 +92,16 @@ const getModuleRoot = lodash_1.default.memoize(function getModuleRoot() {
|
|
|
87
92
|
isAtFsRoot = currentDir.length <= node_path_1.default.dirname(currentDir).length;
|
|
88
93
|
}
|
|
89
94
|
throw new Error('Cannot find the root folder of the appium-webdriveragent Node.js module');
|
|
90
|
-
}
|
|
95
|
+
};
|
|
91
96
|
exports.BOOTSTRAP_PATH = getModuleRoot();
|
|
97
|
+
/**
|
|
98
|
+
* Find and terminate all processes matching the given pgrep pattern.
|
|
99
|
+
*/
|
|
92
100
|
async function killAppUsingPattern(pgrepPattern) {
|
|
93
101
|
const signals = [2, 15, 9];
|
|
94
102
|
for (const signal of signals) {
|
|
95
103
|
const matchedPids = await getPIDsUsingPattern(pgrepPattern);
|
|
96
|
-
if (
|
|
104
|
+
if (matchedPids.length === 0) {
|
|
97
105
|
return;
|
|
98
106
|
}
|
|
99
107
|
const args = [`-${signal}`, ...matchedPids];
|
|
@@ -103,18 +111,24 @@ async function killAppUsingPattern(pgrepPattern) {
|
|
|
103
111
|
catch (err) {
|
|
104
112
|
logger_1.log.debug(`kill ${args.join(' ')} -> ${err.message}`);
|
|
105
113
|
}
|
|
106
|
-
if (signal ===
|
|
114
|
+
if (signal === signals[signals.length - 1]) {
|
|
107
115
|
// there is no need to wait after SIGKILL
|
|
108
116
|
return;
|
|
109
117
|
}
|
|
110
118
|
try {
|
|
111
119
|
await (0, asyncbox_1.waitForCondition)(async () => {
|
|
112
|
-
const pidCheckPromises = matchedPids.map((pid) =>
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
120
|
+
const pidCheckPromises = matchedPids.map(async (pid) => {
|
|
121
|
+
try {
|
|
122
|
+
await (0, teen_process_1.exec)('kill', ['-0', pid]);
|
|
123
|
+
// the process is still alive
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// the process is dead
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return (await Promise.all(pidCheckPromises)).every((x) => x === true);
|
|
118
132
|
}, {
|
|
119
133
|
waitMs: 1000,
|
|
120
134
|
intervalMs: 100,
|
|
@@ -132,8 +146,11 @@ async function killAppUsingPattern(pgrepPattern) {
|
|
|
132
146
|
* @returns Return true if the platformName is tvOS
|
|
133
147
|
*/
|
|
134
148
|
function isTvOS(platformName) {
|
|
135
|
-
return
|
|
149
|
+
return platformName?.toLowerCase() === constants_1.PLATFORM_NAME_TVOS.toLowerCase();
|
|
136
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Configure keychain access required for real-device code signing.
|
|
153
|
+
*/
|
|
137
154
|
async function setRealDeviceSecurity(keychainPath, keychainPassword) {
|
|
138
155
|
logger_1.log.debug('Setting security for iOS device');
|
|
139
156
|
await (0, teen_process_1.exec)('security', ['-v', 'list-keychains', '-s', keychainPath]);
|
|
@@ -159,7 +176,7 @@ async function setXctestrunFile(args) {
|
|
|
159
176
|
const xctestrunFilePath = await getXctestrunFilePath(deviceInfo, sdkVersion, bootstrapPath);
|
|
160
177
|
const xctestRunContent = await support_1.plist.parsePlistFile(xctestrunFilePath);
|
|
161
178
|
const updateWDAPort = getAdditionalRunContent(deviceInfo.platformName, wdaRemotePort, wdaBindingIP);
|
|
162
|
-
const newXctestRunContent =
|
|
179
|
+
const newXctestRunContent = mergeObjects(xctestRunContent, updateWDAPort);
|
|
163
180
|
await support_1.plist.updatePlistFile(xctestrunFilePath, newXctestRunContent, true);
|
|
164
181
|
return xctestrunFilePath;
|
|
165
182
|
}
|
|
@@ -277,6 +294,21 @@ async function getWDAUpgradeTimestamp() {
|
|
|
277
294
|
const { mtime } = await support_1.fs.stat(packageManifest);
|
|
278
295
|
return mtime.getTime();
|
|
279
296
|
}
|
|
297
|
+
/**
|
|
298
|
+
* Escape regular expression metacharacters in a string.
|
|
299
|
+
*/
|
|
300
|
+
function escapeRegExp(value) {
|
|
301
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Truncate a string to the given length and append ellipsis if needed.
|
|
305
|
+
*/
|
|
306
|
+
function truncateString(value, length) {
|
|
307
|
+
if (value.length <= length) {
|
|
308
|
+
return value;
|
|
309
|
+
}
|
|
310
|
+
return `${value.slice(0, Math.max(0, length - 1))}…`;
|
|
311
|
+
}
|
|
280
312
|
/**
|
|
281
313
|
* Kills running XCTest processes for the particular device.
|
|
282
314
|
*/
|
|
@@ -288,7 +320,7 @@ async function resetTestProcesses(udid, isSimulator) {
|
|
|
288
320
|
processPatterns.push(`xctest.*${udid}`);
|
|
289
321
|
}
|
|
290
322
|
logger_1.log.debug(`Killing running processes '${processPatterns.join(', ')}' for the device ${udid}...`);
|
|
291
|
-
await
|
|
323
|
+
await Promise.all(processPatterns.map(killAppUsingPattern));
|
|
292
324
|
}
|
|
293
325
|
/**
|
|
294
326
|
* Get the IDs of processes listening on the particular system port.
|
|
@@ -317,10 +349,10 @@ async function getPIDsListeningOnPort(port, filteringFunc = null) {
|
|
|
317
349
|
}
|
|
318
350
|
return result;
|
|
319
351
|
}
|
|
320
|
-
if (
|
|
352
|
+
if (typeof filteringFunc !== 'function') {
|
|
321
353
|
return result;
|
|
322
354
|
}
|
|
323
|
-
|
|
355
|
+
const filtered = await Promise.all(result.map(async (pid) => {
|
|
324
356
|
let stdout;
|
|
325
357
|
try {
|
|
326
358
|
({ stdout } = await (0, teen_process_1.exec)('ps', ['-p', pid, '-o', 'command']));
|
|
@@ -328,12 +360,13 @@ async function getPIDsListeningOnPort(port, filteringFunc = null) {
|
|
|
328
360
|
catch (e) {
|
|
329
361
|
if (e.code === 1) {
|
|
330
362
|
// The process does not exist anymore, there's nothing to filter
|
|
331
|
-
return
|
|
363
|
+
return null;
|
|
332
364
|
}
|
|
333
365
|
throw e;
|
|
334
366
|
}
|
|
335
|
-
return await filteringFunc(stdout);
|
|
336
|
-
});
|
|
367
|
+
return (await filteringFunc(stdout)) ? pid : null;
|
|
368
|
+
}));
|
|
369
|
+
return filtered.filter((pid) => Boolean(pid));
|
|
337
370
|
}
|
|
338
371
|
// Private functions
|
|
339
372
|
async function getPIDsUsingPattern(pattern) {
|
|
@@ -346,7 +379,7 @@ async function getPIDsUsingPattern(pattern) {
|
|
|
346
379
|
return stdout
|
|
347
380
|
.split(/\s+/)
|
|
348
381
|
.map((x) => parseInt(x, 10))
|
|
349
|
-
.filter(
|
|
382
|
+
.filter(Number.isInteger)
|
|
350
383
|
.map((x) => `${x}`);
|
|
351
384
|
}
|
|
352
385
|
catch (err) {
|
|
@@ -354,4 +387,23 @@ async function getPIDsUsingPattern(pattern) {
|
|
|
354
387
|
return [];
|
|
355
388
|
}
|
|
356
389
|
}
|
|
390
|
+
function mergeObjects(target, source) {
|
|
391
|
+
const output = { ...target };
|
|
392
|
+
for (const [key, sourceValue] of Object.entries(source)) {
|
|
393
|
+
const targetValue = output[key];
|
|
394
|
+
if (isPlainObject(targetValue) && isPlainObject(sourceValue)) {
|
|
395
|
+
output[key] = mergeObjects(targetValue, sourceValue);
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
output[key] = sourceValue;
|
|
399
|
+
}
|
|
400
|
+
return output;
|
|
401
|
+
}
|
|
402
|
+
function isPlainObject(value) {
|
|
403
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
const prototype = Object.getPrototypeOf(value);
|
|
407
|
+
return prototype === Object.prototype || prototype === null;
|
|
408
|
+
}
|
|
357
409
|
//# sourceMappingURL=utils.js.map
|
package/build/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,kDAuCC;AAOD,wBAEC;AAED,sDAQC;AA2BD,4CAaC;AASD,0DAeC;AAQD,oDAuCC;AAQD,oDAKC;AAKD,kCA+BC;AAKD,8BAEC;AAKD,wDAOC;AAKD,gDASC;AAeD,wDAiCC;AA3VD,6CAA0C;AAC1C,+CAA8C;AAC9C,uDAAwC;AACxC,uCAAuC;AACvC,qCAA6B;AAC7B,oDAAuB;AACvB,2CAA+C;AAC/C,wDAAyB;AACzB,sDAA0B;AAC1B,uCAA0C;AAC1C,qCAA6B;AAG7B,wDAAwD;AACxD,MAAM,eAAe,GACnB,OAAO,UAAU,KAAK,WAAW;IAC/B,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAI,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAE9D,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,eAAe,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,gBAAC,CAAC,OAAO,CAAC,SAAS,aAAa;IACpD,IAAI,UAAU,GAAG,cAAc,CAAC;IAChC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,IACE,iBAAG,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,iBAAG,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAuB,EACnF,CAAC;gBACD,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,UAAU,GAAG,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,MAAM,IAAI,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,aAAa,EAAE,CAAC;AAEvC,KAAK,UAAU,mBAAmB,CAAC,YAAoB;IAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,gBAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,IAAA,mBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,YAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,KAAK,gBAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,yCAAyC;YACzC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAA,2BAAgB,EACpB,KAAK,IAAI,EAAE;gBACT,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAA,mBAAI,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACvB,6BAA6B;qBAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;oBAClB,sBAAsB;qBACrB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACrB,CAAC;gBACF,OAAO,CAAC,MAAM,kBAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAClE,CAAC,EACD;gBACE,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG;aAChB,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,YAAoB;IACzC,OAAO,gBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAC,CAAC,OAAO,CAAC,8BAAkB,CAAC,CAAC;AACnE,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,YAAoB,EACpB,gBAAwB;IAExB,YAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC7C,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACrE,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IACxF,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AACtF,CAAC;AAaD;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,gBAAgB,CAAC,IAAuB;IAC5D,MAAM,EAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC;IAClF,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5F,MAAM,gBAAgB,GAAG,MAAM,eAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,uBAAuB,CAC3C,UAAU,CAAC,YAAY,EACvB,aAAa,EACb,YAAY,CACb,CAAC;IACF,MAAM,mBAAmB,GAAG,gBAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,eAAK,CAAC,eAAe,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAE1E,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,YAAoB,EACpB,aAA8B,EAC9B,YAAqB;IAErB,MAAM,MAAM,GAAG,uBAAuB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5E,OAAO;QACL,CAAC,MAAM,CAAC,EAAE;YACR,oBAAoB,EAAE;gBACpB,4BAA4B;gBAC5B,QAAQ,EAAE,GAAG,aAAa,EAAE;gBAC5B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CACxC,UAAsB,EACtB,UAAkB,EAClB,aAAqB;IAErB,kDAAkD;IAClD,MAAM,QAAQ,GAAqB;QACjC,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,YAAY,CAAC;QACzE,UAAU;KACX,CAAC;IACF,qDAAqD;IACrD,MAAM,aAAa,GAAqB;QACtC,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,eAAe,YAAY,CAAC;QACzF,UAAU,CAAC,eAAe;KAC3B,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;QAC5D,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,YAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,qBAAqB,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,qBAAqB,GAAG,mBAAI,CAAC,OAAO,CACxC,aAAa,EACb,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAC1C,CAAC;QACF,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC3C,6FAA6F;YAC7F,0GAA0G;YAC1G,MAAM,YAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACnD,YAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,kCAAkC,qBAAqB,GAAG,CAAC,CAAC;YACvF,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,0DAA0D;QACxD,2CAA2C;QAC3C,IAAI,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CACpF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,UAAsB,EAAE,OAAe;IAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY;QACxC,CAAC,CAAC,KAAK,OAAO,QAAQ;QACtB,CAAC,CAAC,YAAY,OAAO,IAAI,IAAA,cAAI,GAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,OAAO,wBAAwB,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,YAAY,CAAC;AACtH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,IAAmC;IAEnC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,YAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,mBAAmB,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAEtE,YAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACtD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,YAAG,CAAC,KAAK,CAAC,GAAG,IAAI,8CAA8C,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,YAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAClD,6DAA6D;YAC7D,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,GAAW,EAAE,IAAY;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,sBAAsB;IAC1C,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;IACtE,IAAI,CAAC,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,YAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,WAAoB;IACzE,MAAM,eAAe,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;QAC3C,0EAA0E;QAC1E,eAAe,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,YAAG,CAAC,KAAK,CAAC,8BAA8B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;IACjG,MAAM,kBAAC,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,sBAAsB,CAC1C,IAAqB,EACrB,gBAA0E,IAAI;IAE9E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,4CAA4C;QAC5C,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjB,yDAAyD;YACzD,YAAG,CAAC,KAAK,CAAC,8CAA8C,IAAI,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,kBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,CAAC,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACjB,gEAAgE;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oBAAoB;AAEpB,KAAK,UAAU,mBAAmB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,uCAAuC;QAC9C,OAAO;KACR,CAAC;IACF,IAAI,CAAC;QACH,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM;aACV,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC3B,MAAM,CAAC,gBAAC,CAAC,SAAS,CAAC;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,YAAG,CAAC,KAAK,CACP,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,wDAAwD,GAAG,CAAC,IAAI,EAAE,CAC3F,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import url from 'node:url';
|
|
2
1
|
import { JWProxy } from '@appium/base-driver';
|
|
3
2
|
import type { AppiumLogger, StringRecord } from '@appium/types';
|
|
4
3
|
import { NoSessionProxy } from './no-session-proxy';
|
|
@@ -8,35 +7,35 @@ export declare class WebDriverAgent {
|
|
|
8
7
|
bootstrapPath: string;
|
|
9
8
|
agentPath: string;
|
|
10
9
|
readonly args: WebDriverAgentArgs;
|
|
11
|
-
private readonly log;
|
|
12
10
|
readonly device: AppleDevice;
|
|
13
11
|
readonly platformVersion?: string;
|
|
14
12
|
readonly platformName?: string;
|
|
15
13
|
readonly iosSdkVersion?: string;
|
|
16
14
|
readonly host?: string;
|
|
17
15
|
readonly isRealDevice: boolean;
|
|
18
|
-
private readonly wdaBundlePath?;
|
|
19
|
-
private readonly wdaLocalPort?;
|
|
20
16
|
readonly wdaRemotePort: number;
|
|
21
17
|
readonly wdaBaseUrl: string;
|
|
22
18
|
readonly wdaBindingIP?: string;
|
|
23
|
-
private readonly prebuildWDA?;
|
|
24
19
|
webDriverAgentUrl?: string;
|
|
25
20
|
started: boolean;
|
|
21
|
+
updatedWDABundleId?: string;
|
|
22
|
+
noSessionProxy?: NoSessionProxy;
|
|
23
|
+
jwproxy?: JWProxy;
|
|
24
|
+
proxyReqRes?: any;
|
|
25
|
+
private readonly log;
|
|
26
|
+
private readonly wdaBundlePath?;
|
|
27
|
+
private readonly wdaLocalPort?;
|
|
28
|
+
private readonly prebuildWDA?;
|
|
26
29
|
private readonly wdaConnectionTimeout?;
|
|
27
30
|
private readonly useXctestrunFile?;
|
|
28
31
|
private readonly usePrebuiltWDA?;
|
|
29
32
|
private readonly derivedDataPath?;
|
|
30
33
|
private readonly mjpegServerPort?;
|
|
31
|
-
updatedWDABundleId?: string;
|
|
32
34
|
private readonly wdaLaunchTimeout;
|
|
33
35
|
private readonly usePreinstalledWDA?;
|
|
34
|
-
private xctestApiClient?;
|
|
35
36
|
private readonly updatedWDABundleIdSuffix;
|
|
37
|
+
private xctestApiClient?;
|
|
36
38
|
private _xcodebuild?;
|
|
37
|
-
noSessionProxy?: NoSessionProxy;
|
|
38
|
-
jwproxy?: JWProxy;
|
|
39
|
-
proxyReqRes?: any;
|
|
40
39
|
private _url?;
|
|
41
40
|
/**
|
|
42
41
|
* Creates a new WebDriverAgent instance.
|
|
@@ -64,16 +63,41 @@ export declare class WebDriverAgent {
|
|
|
64
63
|
* @returns Bundle ID for Xctest.
|
|
65
64
|
*/
|
|
66
65
|
get bundleIdForXctest(): string;
|
|
66
|
+
/**
|
|
67
|
+
* Gets the base path for the WebDriverAgent URL.
|
|
68
|
+
* @returns The base path (empty string if root path)
|
|
69
|
+
*/
|
|
70
|
+
get basePath(): string;
|
|
71
|
+
/**
|
|
72
|
+
* Gets the WebDriverAgent URL.
|
|
73
|
+
* Constructs the URL from webDriverAgentUrl if provided, otherwise
|
|
74
|
+
* builds it from wdaBaseUrl, wdaBindingIP, and wdaLocalPort.
|
|
75
|
+
* @returns The parsed URL object
|
|
76
|
+
*/
|
|
77
|
+
get url(): URL;
|
|
78
|
+
/**
|
|
79
|
+
* Gets whether WebDriverAgent has fully started.
|
|
80
|
+
* @returns `true` if WDA has started, `false` otherwise
|
|
81
|
+
*/
|
|
82
|
+
get fullyStarted(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Sets whether WebDriverAgent has fully started.
|
|
85
|
+
* @param started - `true` if WDA has started, `false` otherwise
|
|
86
|
+
*/
|
|
87
|
+
set fullyStarted(started: boolean);
|
|
88
|
+
/**
|
|
89
|
+
* Sets the WebDriverAgent URL.
|
|
90
|
+
* @param _url - The URL string to parse and set
|
|
91
|
+
*/
|
|
92
|
+
set url(_url: string);
|
|
67
93
|
/**
|
|
68
94
|
* Cleans up obsolete cached processes from previous WDA sessions
|
|
69
95
|
* that are listening on the same port but belong to different devices.
|
|
70
96
|
*/
|
|
71
97
|
cleanupObsoleteProcesses(): Promise<void>;
|
|
72
98
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
*/
|
|
76
|
-
get basePath(): string;
|
|
99
|
+
}
|
|
100
|
+
|
|
77
101
|
/**
|
|
78
102
|
* Return current running WDA's status like below after launching WDA
|
|
79
103
|
* {
|
|
@@ -102,36 +126,11 @@ export declare class WebDriverAgent {
|
|
|
102
126
|
* @returns `true` if source is fresh (all required files exist), `false` otherwise
|
|
103
127
|
*/
|
|
104
128
|
isSourceFresh(): Promise<boolean>;
|
|
105
|
-
private parseBundleId;
|
|
106
|
-
private fetchWDABundle;
|
|
107
|
-
private setupProxies;
|
|
108
129
|
/**
|
|
109
130
|
* Stops the WebDriverAgent session and cleans up resources.
|
|
110
131
|
* Handles both preinstalled WDA and xcodebuild-based sessions.
|
|
111
132
|
*/
|
|
112
133
|
quit(): Promise<void>;
|
|
113
|
-
/**
|
|
114
|
-
* Gets the WebDriverAgent URL.
|
|
115
|
-
* Constructs the URL from webDriverAgentUrl if provided, otherwise
|
|
116
|
-
* builds it from wdaBaseUrl, wdaBindingIP, and wdaLocalPort.
|
|
117
|
-
* @returns The parsed URL object
|
|
118
|
-
*/
|
|
119
|
-
get url(): url.UrlWithStringQuery;
|
|
120
|
-
/**
|
|
121
|
-
* Sets the WebDriverAgent URL.
|
|
122
|
-
* @param _url - The URL string to parse and set
|
|
123
|
-
*/
|
|
124
|
-
set url(_url: string);
|
|
125
|
-
/**
|
|
126
|
-
* Gets whether WebDriverAgent has fully started.
|
|
127
|
-
* @returns `true` if WDA has started, `false` otherwise
|
|
128
|
-
*/
|
|
129
|
-
get fullyStarted(): boolean;
|
|
130
|
-
/**
|
|
131
|
-
* Sets whether WebDriverAgent has fully started.
|
|
132
|
-
* @param started - `true` if WDA has started, `false` otherwise
|
|
133
|
-
*/
|
|
134
|
-
set fullyStarted(started: boolean);
|
|
135
134
|
/**
|
|
136
135
|
* Retrieves the Xcode derived data path for WebDriverAgent.
|
|
137
136
|
* @returns The derived data path, or `undefined` if xcodebuild is skipped
|
|
@@ -147,6 +146,10 @@ export declare class WebDriverAgent {
|
|
|
147
146
|
* Quit and uninstall running WDA.
|
|
148
147
|
*/
|
|
149
148
|
quitAndUninstall(): Promise<void>;
|
|
149
|
+
private parseBundleId;
|
|
150
|
+
private fetchWDABundle;
|
|
151
|
+
private setupProxies;
|
|
152
|
+
private toUrl;
|
|
150
153
|
private setWDAPaths;
|
|
151
154
|
private isRunning;
|
|
152
155
|
/**
|