appium-webdriveragent 12.1.1 → 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 CHANGED
@@ -1,3 +1,9 @@
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
+
1
7
  ## [12.1.1](https://github.com/appium/WebDriverAgent/compare/v12.1.0...v12.1.1) (2026-04-27)
2
8
 
3
9
  ### Miscellaneous Chores
@@ -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
- buildWebDriverAgent().catch((e) => {
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 = _.last(url.split('/'));
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 B.all(agentsDownloading);
64
+ return await Promise.all(agentsDownloading);
61
65
  }
62
66
 
63
67
  if (isMainModule) {
64
- fetchPrebuiltWebDriverAgentAssets().catch((e) => {
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.1.1</string>
18
+ <string>12.2.0</string>
19
19
  <key>CFBundleSignature</key>
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>12.1.1</string>
22
+ <string>12.2.0</string>
23
23
  <key>NSPrincipalClass</key>
24
24
  <string/>
25
25
  </dict>
@@ -1,3 +1,6 @@
1
1
  import type { XcodeBuild } from './xcodebuild';
2
+ /**
3
+ * Ensure simulator WDA is built and return the resulting app bundle path.
4
+ */
2
5
  export declare function bundleWDASim(xcodebuild: XcodeBuild): Promise<string>;
3
6
  //# sourceMappingURL=check-dependencies.d.ts.map
@@ -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;AAiB7C,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB1E"}
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":";;;;;AAsBA,oCAiBC;AAvCD,6CAAmC;AACnC,+CAAkC;AAClC,0DAA6B;AAC7B,2CAAsE;AACtE,mCAAuC;AAGvC,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;AAEM,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"}
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"}
@@ -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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,UAAU,EAAC,MAAM,cAAc,CAAC;AAU9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAmCxC,eAAO,MAAM,cAAc,QAAkB,CAAC;AAE9C,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;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;;;;;;;;;;;;;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,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,CA8BnB"}
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"}
@@ -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 = lodash_1.default.memoize(function 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 (lodash_1.default.isEmpty(matchedPids)) {
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 === lodash_1.default.last(signals)) {
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) => (0, teen_process_1.exec)('kill', ['-0', pid])
113
- // the process is still alive
114
- .then(() => false)
115
- // the process is dead
116
- .catch(() => true));
117
- return (await bluebird_1.default.all(pidCheckPromises)).every((x) => x === true);
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 lodash_1.default.toLower(platformName) === lodash_1.default.toLower(constants_1.PLATFORM_NAME_TVOS);
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 = lodash_1.default.merge(xctestRunContent, updateWDAPort);
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 bluebird_1.default.all(processPatterns.map(killAppUsingPattern));
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 (!lodash_1.default.isFunction(filteringFunc)) {
352
+ if (typeof filteringFunc !== 'function') {
321
353
  return result;
322
354
  }
323
- return await bluebird_1.default.filter(result, async (pid) => {
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 false;
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(lodash_1.default.isInteger)
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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
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
- * Gets the base path for the WebDriverAgent URL.
74
- * @returns The base path (empty string if root path)
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"webdriveragent.d.ts","sourceRoot":"","sources":["../../lib/webdriveragent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webdriveragent.d.ts","sourceRoot":"","sources":["../../lib/webdriveragent.ts"],"names":[],"mappings":"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"}