appium-xcode 6.1.10 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [6.2.1](https://github.com/appium/appium-xcode/compare/v6.2.0...v6.2.1) (2026-04-29)
2
+
3
+ ### Bug Fixes
4
+
5
+ * Memoize implementation ([#174](https://github.com/appium/appium-xcode/issues/174)) ([e5e09a5](https://github.com/appium/appium-xcode/commit/e5e09a5a6570f213c47a9318446a5ff7fcea2af9))
6
+
7
+ ## [6.2.0](https://github.com/appium/appium-xcode/compare/v6.1.10...v6.2.0) (2026-04-27)
8
+
9
+ ### Features
10
+
11
+ * Ditch bluebird, lodash and plist ([#173](https://github.com/appium/appium-xcode/issues/173)) ([a7c88ca](https://github.com/appium/appium-xcode/commit/a7c88cac6239694a192eb0525902a28370a5292d))
12
+
1
13
  ## [6.1.10](https://github.com/appium/appium-xcode/compare/v6.1.9...v6.1.10) (2026-04-17)
2
14
 
3
15
  ### Miscellaneous Chores
@@ -1,5 +1,13 @@
1
1
  import type { TeenProcessExecResult } from 'teen_process';
2
2
  export declare const XCRUN_TIMEOUT = 15000;
3
+ type AnyFunction = (this: any, ...args: any[]) => any;
4
+ /**
5
+ * Memoizes function calls by traversing a nested argument-keyed map.
6
+ *
7
+ * @param fn The function to memoize
8
+ * @returns A memoized wrapper around the input function
9
+ */
10
+ export declare function memoize<F extends AnyFunction>(fn: F): F;
3
11
  /**
4
12
  * Executes 'xcrun' command line utility
5
13
  *
@@ -23,4 +31,5 @@ export declare function findAppPaths(bundleId: string): Promise<string[]>;
23
31
  * @returns All plist entries as an object or an empty object if no plist was found
24
32
  */
25
33
  export declare function readXcodePlist(developerRoot: string): Promise<Record<string, any>>;
34
+ export {};
26
35
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAIxD,eAAO,MAAM,aAAa,QAAQ,CAAC;AAEnC;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,MAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAWxC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBtE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAGxF"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAIxD,eAAO,MAAM,aAAa,QAAQ,CAAC;AAEnC,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAyBvD;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,MAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAWxC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBtE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAGxF"}
@@ -4,15 +4,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XCRUN_TIMEOUT = void 0;
7
+ exports.memoize = memoize;
7
8
  exports.runXcrunCommand = runXcrunCommand;
8
9
  exports.findAppPaths = findAppPaths;
9
10
  exports.readXcodePlist = readXcodePlist;
10
- const lodash_1 = __importDefault(require("lodash"));
11
- const bluebird_1 = __importDefault(require("bluebird"));
12
11
  const teen_process_1 = require("teen_process");
13
12
  const support_1 = require("@appium/support");
14
13
  const node_path_1 = __importDefault(require("node:path"));
15
14
  exports.XCRUN_TIMEOUT = 15000;
15
+ /**
16
+ * Memoizes function calls by traversing a nested argument-keyed map.
17
+ *
18
+ * @param fn The function to memoize
19
+ * @returns A memoized wrapper around the input function
20
+ */
21
+ function memoize(fn) {
22
+ const rootCache = new Map();
23
+ const RESULT = Symbol('memoize.result');
24
+ function memoized(...args) {
25
+ let currentCache = rootCache;
26
+ for (const arg of args) {
27
+ if (!currentCache.has(arg)) {
28
+ currentCache.set(arg, new Map());
29
+ }
30
+ currentCache = currentCache.get(arg);
31
+ }
32
+ if (currentCache.has(RESULT)) {
33
+ return currentCache.get(RESULT);
34
+ }
35
+ const result = fn.apply(this, args);
36
+ currentCache.set(RESULT, result);
37
+ return result;
38
+ }
39
+ return memoized;
40
+ }
16
41
  /**
17
42
  * Executes 'xcrun' command line utility
18
43
  *
@@ -47,8 +72,12 @@ async function findAppPaths(bundleId) {
47
72
  catch {
48
73
  return [];
49
74
  }
50
- const matchedPaths = lodash_1.default.trim(stdout).split('\n').map(lodash_1.default.trim).filter(Boolean);
51
- if (lodash_1.default.isEmpty(matchedPaths)) {
75
+ const matchedPaths = stdout
76
+ .trim()
77
+ .split('\n')
78
+ .map((p) => p.trim())
79
+ .filter(Boolean);
80
+ if (!matchedPaths.length) {
52
81
  return [];
53
82
  }
54
83
  const results = matchedPaths.map((p) => (async () => {
@@ -56,7 +85,7 @@ async function findAppPaths(bundleId) {
56
85
  return p;
57
86
  }
58
87
  })());
59
- return (await bluebird_1.default.all(results)).filter(Boolean);
88
+ return (await Promise.all(results)).filter(Boolean);
60
89
  }
61
90
  /**
62
91
  * Finds and retrieves the content of the Xcode's Info.plist file
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":";;;;;;AAiBA,0CAcC;AAQD,oCAoBC;AAQD,wCAGC;AAtED,oDAAuB;AACvB,wDAAyB;AACzB,+CAAkC;AAElC,6CAA0C;AAC1C,0DAA6B;AAEhB,QAAA,aAAa,GAAG,KAAK,CAAC;AAEnC;;;;;;;GAOG;AACI,KAAK,UAAU,eAAe,CACnC,IAAc,EACd,UAAkB,qBAAa;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,mBAAI,EAAC,OAAO,EAAE,IAAI,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iDAAiD;QACjD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,CAAC,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,iBAAiB,EAAE,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,gBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,KAAK,IAAI,EAAE;QACV,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC,EAAE,CACL,CAAC;IACF,OAAO,CAAC,MAAM,kBAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,aAAqB;IACxD,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAClE,OAAO,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,eAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion } from './xcode';
2
2
  declare const xcode: {
3
- getPath: ((timeout?: number) => Promise<string>) & import("lodash").MemoizedFunction;
3
+ getPath: (timeout?: number) => Promise<string>;
4
4
  getVersion: typeof getVersion;
5
- getMaxIOSSDK: ((retries?: number, timeout?: number) => Promise<string | null>) & import("lodash").MemoizedFunction;
6
- getMaxTVOSSDK: ((retries?: number, timeout?: number) => Promise<string>) & import("lodash").MemoizedFunction;
5
+ getMaxIOSSDK: (retries?: number, timeout?: number) => Promise<string | null>;
6
+ getMaxTVOSSDK: (retries?: number, timeout?: number) => Promise<string>;
7
7
  getClangVersion: typeof getClangVersion;
8
8
  };
9
9
  export { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion };
@@ -1,4 +1,3 @@
1
- import _ from 'lodash';
2
1
  import type { XcodeVersion } from './types';
3
2
  /**
4
3
  * Retrieves the full path to Xcode Developer subfolder via xcode-select
@@ -23,7 +22,7 @@ export declare function getPathFromDeveloperDir(): Promise<string>;
23
22
  * @returns Full path to Xcode Developer subfolder timeout
24
23
  * @throws {Error} If there was an error while retrieving the path.
25
24
  */
26
- export declare const getPath: ((timeout?: number) => Promise<string>) & _.MemoizedFunction;
25
+ export declare const getPath: (timeout?: number) => Promise<string>;
27
26
  /**
28
27
  * Retrieves Xcode version
29
28
  *
@@ -60,7 +59,7 @@ export declare function getMaxIOSSDKWithoutRetry(timeout?: number): Promise<stri
60
59
  * @returns The SDK version
61
60
  * @throws {Error} If the SDK version number cannot be determined
62
61
  */
63
- export declare const getMaxIOSSDK: ((retries?: number, timeout?: number) => Promise<string | null>) & _.MemoizedFunction;
62
+ export declare const getMaxIOSSDK: (retries?: number, timeout?: number) => Promise<string | null>;
64
63
  /**
65
64
  * Retrieves the maximum version of tvOS SDK supported by the installed Xcode
66
65
  *
@@ -77,5 +76,5 @@ export declare function getMaxTVOSSDKWithoutRetry(timeout?: number): Promise<str
77
76
  * @returns The SDK version
78
77
  * @throws {Error} If the SDK version number cannot be determined
79
78
  */
80
- export declare const getMaxTVOSSDK: ((retries?: number, timeout?: number) => Promise<string>) & _.MemoizedFunction;
79
+ export declare const getMaxTVOSSDK: (retries?: number, timeout?: number) => Promise<string>;
81
80
  //# sourceMappingURL=xcode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../lib/xcode.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAIvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAO1C;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC7F;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAe/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,cACR,MAAM,KAAmB,OAAO,CAAC,MAAM,CAAC,sBAEnD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACpG,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CAAC;AA0BzB;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB9D;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/F;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,cACd,MAAM,YACN,MAAM,iDAGf,CAAC;AAEH;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhG;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,cACf,MAAM,YACN,MAAM,KACd,OAAO,CAAC,MAAM,CAAC,sBAEhB,CAAC"}
1
+ {"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../lib/xcode.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAO1C;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC7F;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAe/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,aACR,MAAM,KAAmB,OAAO,CAAC,MAAM,CAElD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACpG,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CAAC;AA0BzB;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB9D;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/F;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,aACd,MAAM,YACN,MAAM,2BAGf,CAAC;AAEH;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhG;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,aACf,MAAM,YACN,MAAM,KACd,OAAO,CAAC,MAAM,CAEf,CAAC"}
@@ -46,7 +46,6 @@ exports.getMaxTVOSSDKWithoutRetry = getMaxTVOSSDKWithoutRetry;
46
46
  const support_1 = require("@appium/support");
47
47
  const node_path_1 = __importDefault(require("node:path"));
48
48
  const asyncbox_1 = require("asyncbox");
49
- const lodash_1 = __importDefault(require("lodash"));
50
49
  const teen_process_1 = require("teen_process");
51
50
  const semver = __importStar(require("semver"));
52
51
  const helpers_1 = require("./helpers");
@@ -63,7 +62,7 @@ const log = support_1.logger.getLogger('Xcode');
63
62
  async function getPathFromXcodeSelect(timeout = helpers_1.XCRUN_TIMEOUT) {
64
63
  const generateErrorMessage = async (prefix) => {
65
64
  const xcodePaths = await (0, helpers_1.findAppPaths)(XCODE_BUNDLE_ID);
66
- if (lodash_1.default.isEmpty(xcodePaths)) {
65
+ if (!xcodePaths.length) {
67
66
  return `${prefix}. Consider installing Xcode to address this issue.`;
68
67
  }
69
68
  const proposals = xcodePaths.map((p) => ` sudo xcode-select -s "${node_path_1.default.join(p, 'Contents', 'Developer')}"`);
@@ -120,7 +119,7 @@ async function getPathFromDeveloperDir() {
120
119
  * @returns Full path to Xcode Developer subfolder timeout
121
120
  * @throws {Error} If there was an error while retrieving the path.
122
121
  */
123
- exports.getPath = lodash_1.default.memoize((timeout = helpers_1.XCRUN_TIMEOUT) => process.env.DEVELOPER_DIR ? getPathFromDeveloperDir() : getPathFromXcodeSelect(timeout));
122
+ exports.getPath = (0, helpers_1.memoize)((timeout = helpers_1.XCRUN_TIMEOUT) => process.env.DEVELOPER_DIR ? getPathFromDeveloperDir() : getPathFromXcodeSelect(timeout));
124
123
  async function getVersion(parse = false, retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
125
124
  const version = (await getVersionMemoized(retries, timeout));
126
125
  // xcode version strings are not exactly semver string: patch versions of 0
@@ -190,7 +189,7 @@ async function getMaxIOSSDKWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
190
189
  * @returns The SDK version
191
190
  * @throws {Error} If the SDK version number cannot be determined
192
191
  */
193
- exports.getMaxIOSSDK = lodash_1.default.memoize(function getMaxIOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
192
+ exports.getMaxIOSSDK = (0, helpers_1.memoize)(function getMaxIOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
194
193
  return (0, asyncbox_1.retry)(retries, getMaxIOSSDKWithoutRetry, timeout);
195
194
  });
196
195
  /**
@@ -217,7 +216,7 @@ async function getMaxTVOSSDKWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
217
216
  * @returns The SDK version
218
217
  * @throws {Error} If the SDK version number cannot be determined
219
218
  */
220
- exports.getMaxTVOSSDK = lodash_1.default.memoize(async function getMaxTVOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
219
+ exports.getMaxTVOSSDK = (0, helpers_1.memoize)(async function getMaxTVOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
221
220
  return (await (0, asyncbox_1.retry)(retries, getMaxTVOSSDKWithoutRetry, timeout));
222
221
  });
223
222
  // Private helper functions
@@ -242,7 +241,7 @@ async function getVersionWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
242
241
  * @returns Xcode version
243
242
  * @throws {Error} If there was a failure while retrieving the version
244
243
  */
245
- const getVersionMemoized = lodash_1.default.memoize(function getVersionMemoized(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
244
+ const getVersionMemoized = (0, helpers_1.memoize)(function getVersionMemoized(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
246
245
  return (0, asyncbox_1.retry)(retries, getVersionWithoutRetry, timeout);
247
246
  });
248
247
  //# sourceMappingURL=xcode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../lib/xcode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../lib/xcode.ts"],"names":[],"mappings":"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"}
package/lib/helpers.ts CHANGED
@@ -1,5 +1,3 @@
1
- import _ from 'lodash';
2
- import B from 'bluebird';
3
1
  import {exec} from 'teen_process';
4
2
  import type {TeenProcessExecResult} from 'teen_process';
5
3
  import {fs, plist} from '@appium/support';
@@ -7,6 +5,41 @@ import path from 'node:path';
7
5
 
8
6
  export const XCRUN_TIMEOUT = 15000;
9
7
 
8
+ type AnyFunction = (this: any, ...args: any[]) => any;
9
+
10
+ /**
11
+ * Memoizes function calls by traversing a nested argument-keyed map.
12
+ *
13
+ * @param fn The function to memoize
14
+ * @returns A memoized wrapper around the input function
15
+ */
16
+ export function memoize<F extends AnyFunction>(fn: F): F {
17
+ const rootCache = new Map<any, any>();
18
+ const RESULT = Symbol('memoize.result');
19
+
20
+ function memoized(this: ThisParameterType<F>, ...args: Parameters<F>): ReturnType<F> {
21
+ let currentCache = rootCache;
22
+
23
+ for (const arg of args) {
24
+ if (!currentCache.has(arg)) {
25
+ currentCache.set(arg, new Map());
26
+ }
27
+ currentCache = currentCache.get(arg);
28
+ }
29
+
30
+ if (currentCache.has(RESULT)) {
31
+ return currentCache.get(RESULT);
32
+ }
33
+
34
+ const result = fn.apply(this, args);
35
+ currentCache.set(RESULT, result);
36
+
37
+ return result;
38
+ }
39
+
40
+ return memoized as F;
41
+ }
42
+
10
43
  /**
11
44
  * Executes 'xcrun' command line utility
12
45
  *
@@ -45,8 +78,12 @@ export async function findAppPaths(bundleId: string): Promise<string[]> {
45
78
  return [];
46
79
  }
47
80
 
48
- const matchedPaths = _.trim(stdout).split('\n').map(_.trim).filter(Boolean);
49
- if (_.isEmpty(matchedPaths)) {
81
+ const matchedPaths = stdout
82
+ .trim()
83
+ .split('\n')
84
+ .map((p) => p.trim())
85
+ .filter(Boolean);
86
+ if (!matchedPaths.length) {
50
87
  return [];
51
88
  }
52
89
  const results = matchedPaths.map((p) =>
@@ -56,7 +93,7 @@ export async function findAppPaths(bundleId: string): Promise<string[]> {
56
93
  }
57
94
  })(),
58
95
  );
59
- return (await B.all(results)).filter(Boolean) as string[];
96
+ return (await Promise.all(results)).filter(Boolean) as string[];
60
97
  }
61
98
 
62
99
  /**
package/lib/xcode.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  import {fs, logger} from '@appium/support';
2
2
  import path from 'node:path';
3
3
  import {retry} from 'asyncbox';
4
- import _ from 'lodash';
5
4
  import {exec} from 'teen_process';
6
5
  import * as semver from 'semver';
7
- import {runXcrunCommand, findAppPaths, XCRUN_TIMEOUT, readXcodePlist} from './helpers';
6
+ import {runXcrunCommand, findAppPaths, XCRUN_TIMEOUT, readXcodePlist, memoize} from './helpers';
8
7
  import type {XcodeVersion} from './types';
9
8
 
10
9
  const DEFAULT_NUMBER_OF_RETRIES = 2;
@@ -22,7 +21,7 @@ const log = logger.getLogger('Xcode');
22
21
  export async function getPathFromXcodeSelect(timeout: number = XCRUN_TIMEOUT): Promise<string> {
23
22
  const generateErrorMessage = async (prefix: string): Promise<string> => {
24
23
  const xcodePaths = await findAppPaths(XCODE_BUNDLE_ID);
25
- if (_.isEmpty(xcodePaths)) {
24
+ if (!xcodePaths.length) {
26
25
  return `${prefix}. Consider installing Xcode to address this issue.`;
27
26
  }
28
27
 
@@ -91,7 +90,7 @@ export async function getPathFromDeveloperDir(): Promise<string> {
91
90
  * @returns Full path to Xcode Developer subfolder timeout
92
91
  * @throws {Error} If there was an error while retrieving the path.
93
92
  */
94
- export const getPath = _.memoize(
93
+ export const getPath = memoize(
95
94
  (timeout: number = XCRUN_TIMEOUT): Promise<string> =>
96
95
  process.env.DEVELOPER_DIR ? getPathFromDeveloperDir() : getPathFromXcodeSelect(timeout),
97
96
  );
@@ -189,7 +188,7 @@ export async function getMaxIOSSDKWithoutRetry(timeout: number = XCRUN_TIMEOUT):
189
188
  * @returns The SDK version
190
189
  * @throws {Error} If the SDK version number cannot be determined
191
190
  */
192
- export const getMaxIOSSDK = _.memoize(function getMaxIOSSDK(
191
+ export const getMaxIOSSDK = memoize(function getMaxIOSSDK(
193
192
  retries: number = DEFAULT_NUMBER_OF_RETRIES,
194
193
  timeout: number = XCRUN_TIMEOUT,
195
194
  ) {
@@ -221,7 +220,7 @@ export async function getMaxTVOSSDKWithoutRetry(timeout: number = XCRUN_TIMEOUT)
221
220
  * @returns The SDK version
222
221
  * @throws {Error} If the SDK version number cannot be determined
223
222
  */
224
- export const getMaxTVOSSDK = _.memoize(async function getMaxTVOSSDK(
223
+ export const getMaxTVOSSDK = memoize(async function getMaxTVOSSDK(
225
224
  retries: number = DEFAULT_NUMBER_OF_RETRIES,
226
225
  timeout: number = XCRUN_TIMEOUT,
227
226
  ): Promise<string> {
@@ -254,7 +253,7 @@ async function getVersionWithoutRetry(
254
253
  * @returns Xcode version
255
254
  * @throws {Error} If there was a failure while retrieving the version
256
255
  */
257
- const getVersionMemoized = _.memoize(function getVersionMemoized(
256
+ const getVersionMemoized = memoize(function getVersionMemoized(
258
257
  retries: number = DEFAULT_NUMBER_OF_RETRIES,
259
258
  timeout: number = XCRUN_TIMEOUT,
260
259
  ): Promise<semver.SemVer | null> {
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "ios",
7
7
  "xcode"
8
8
  ],
9
- "version": "6.1.10",
9
+ "version": "6.2.1",
10
10
  "author": "Appium Contributors",
11
11
  "license": "Apache-2.0",
12
12
  "repository": {
@@ -30,9 +30,6 @@
30
30
  "dependencies": {
31
31
  "@appium/support": "^7.0.0-rc.1",
32
32
  "asyncbox": "^6.0.1",
33
- "bluebird": "^3.7.2",
34
- "lodash": "^4.17.4",
35
- "plist": "^3.0.1",
36
33
  "semver": "^7.0.0",
37
34
  "teen_process": "^4.0.4"
38
35
  },
@@ -46,8 +43,8 @@
46
43
  "format": "prettier -w ./lib ./test",
47
44
  "format:check": "prettier --check ./lib ./test",
48
45
  "prepare": "npm run build",
49
- "test": "mocha --exit --timeout 1m \"./test/unit/**/*-specs.js\"",
50
- "e2e-test": "mocha --exit --timeout 5m \"./test/e2e/**/*-specs.js\""
46
+ "test": "mocha --exit --timeout 1m \"./test/unit/**/*-specs.ts\"",
47
+ "e2e-test": "mocha --exit --timeout 5m \"./test/e2e/**/*-specs.ts\""
51
48
  },
52
49
  "prettier": {
53
50
  "bracketSpacing": false,
@@ -60,8 +57,6 @@
60
57
  "@appium/types": "^1.0.0-rc.1",
61
58
  "@semantic-release/changelog": "^6.0.1",
62
59
  "@semantic-release/git": "^10.0.1",
63
- "@types/bluebird": "^3.5.38",
64
- "@types/lodash": "^4.14.196",
65
60
  "@types/mocha": "^10.0.1",
66
61
  "@types/node": "^25.0.0",
67
62
  "chai": "^6.0.0",