appium-xcode 6.2.6 → 7.0.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,13 @@
1
+ ## [7.0.0](https://github.com/appium/appium-xcode/compare/v6.2.6...v7.0.0) (2026-07-24)
2
+
3
+ ### ⚠ BREAKING CHANGES
4
+
5
+ * Consumers using require('appium-xcode') must switch to import/dynamic import() — the package no longer ships a CommonJS entry point.
6
+
7
+ ### Features
8
+
9
+ * Migrate the package to ESM ([#188](https://github.com/appium/appium-xcode/issues/188)) ([ea51d54](https://github.com/appium/appium-xcode/commit/ea51d545a3d0f3074e5f2efcc7cab1aa4585419b))
10
+
1
11
  ## [6.2.6](https://github.com/appium/appium-xcode/compare/v6.2.5...v6.2.6) (2026-07-06)
2
12
 
3
13
  ### Miscellaneous Chores
@@ -1,16 +1,7 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.XCRUN_TIMEOUT = void 0;
7
- exports.runXcrunCommand = runXcrunCommand;
8
- exports.findAppPaths = findAppPaths;
9
- exports.readXcodePlist = readXcodePlist;
10
- const teen_process_1 = require("teen_process");
11
- const support_1 = require("@appium/support");
12
- const node_path_1 = __importDefault(require("node:path"));
13
- exports.XCRUN_TIMEOUT = 15000;
1
+ import { exec } from 'teen_process';
2
+ import { fs, plist } from '@appium/support';
3
+ import path from 'node:path';
4
+ export const XCRUN_TIMEOUT = 15000;
14
5
  /**
15
6
  * Executes 'xcrun' command line utility
16
7
  *
@@ -19,9 +10,9 @@ exports.XCRUN_TIMEOUT = 15000;
19
10
  * @returns The result of xcrun execution
20
11
  * @throws {Error} If xcrun returned non-zero exit code or timed out
21
12
  */
22
- async function runXcrunCommand(args, timeout = exports.XCRUN_TIMEOUT) {
13
+ export async function runXcrunCommand(args, timeout = XCRUN_TIMEOUT) {
23
14
  try {
24
- return await (0, teen_process_1.exec)('xcrun', args, { timeout });
15
+ return await exec('xcrun', args, { timeout });
25
16
  }
26
17
  catch (err) {
27
18
  if (err instanceof Error) {
@@ -43,10 +34,10 @@ async function runXcrunCommand(args, timeout = exports.XCRUN_TIMEOUT) {
43
34
  * @param bundleId Bundle identifier of the target app
44
35
  * @returns Full paths to where the app with the given bundle id is present.
45
36
  */
46
- async function findAppPaths(bundleId) {
37
+ export async function findAppPaths(bundleId) {
47
38
  let stdout;
48
39
  try {
49
- ({ stdout } = await (0, teen_process_1.exec)('/usr/bin/mdfind', [`kMDItemCFBundleIdentifier=${bundleId}`]));
40
+ ({ stdout } = await exec('/usr/bin/mdfind', [`kMDItemCFBundleIdentifier=${bundleId}`]));
50
41
  }
51
42
  catch {
52
43
  return [];
@@ -60,7 +51,7 @@ async function findAppPaths(bundleId) {
60
51
  return [];
61
52
  }
62
53
  const results = matchedPaths.map((p) => (async () => {
63
- if (await support_1.fs.exists(p)) {
54
+ if (await fs.exists(p)) {
64
55
  return p;
65
56
  }
66
57
  })());
@@ -72,8 +63,8 @@ async function findAppPaths(bundleId) {
72
63
  * @param developerRoot Full path to the Contents/Developer folder under Xcode.app root
73
64
  * @returns All plist entries as an object or an empty object if no plist was found
74
65
  */
75
- async function readXcodePlist(developerRoot) {
76
- const plistPath = node_path_1.default.resolve(developerRoot, '..', 'Info.plist');
77
- return (await support_1.fs.exists(plistPath)) ? await support_1.plist.parsePlistFile(plistPath) : {};
66
+ export async function readXcodePlist(developerRoot) {
67
+ const plistPath = path.resolve(developerRoot, '..', 'Info.plist');
68
+ return (await fs.exists(plistPath)) ? await plist.parsePlistFile(plistPath) : {};
78
69
  }
79
70
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":";;;;;;AAeA,0CAoBC;AAQD,oCAwBC;AAQD,wCAGC;AA9ED,+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,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,iDAAiD;YACjD,MAAM,MAAM,GACV,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG;gBAC/C,CAAC,CAAC,MAAM,CAAE,GAAyB,CAAC,MAAM,CAAC;gBAC3C,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;IAC7C,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,MAAM;SACxB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACzB,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,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;AAClE,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":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAC,EAAE,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAc,EACd,UAAkB,aAAa;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,iDAAiD;YACjD,MAAM,MAAM,GACV,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG;gBAC/C,CAAC,CAAC,MAAM,CAAE,GAAyB,CAAC,MAAM,CAAC;gBAC3C,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,CAAC,EAAC,MAAM,EAAC,GAAG,MAAM,IAAI,CAAC,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,MAAM;SACxB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACzB,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,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC,EAAE,CACL,CAAC;IACF,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,aAAqB;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAClE,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion } from './xcode';
1
+ import { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion } from './xcode.js';
2
2
  declare const xcode: {
3
3
  getPath: ((timeout?: number) => Promise<string>) & {
4
4
  cache: Map<unknown, Promise<string>>;
@@ -14,5 +14,5 @@ declare const xcode: {
14
14
  };
15
15
  export { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion };
16
16
  export default xcode;
17
- export type { XcodeVersion } from './types';
17
+ export type { XcodeVersion } from './types.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AAE1F,QAAA,MAAM,KAAK;;;;;;;;;;;;CAMV,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAC,CAAC;AAC3E,eAAe,KAAK,CAAC;AAErB,YAAY,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAE7F,QAAA,MAAM,KAAK;;;;;;;;;;;;CAMV,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAC,CAAC;AAC3E,eAAe,KAAK,CAAC;AAErB,YAAY,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC"}
@@ -1,19 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getClangVersion = exports.getMaxTVOSSDK = exports.getMaxIOSSDK = exports.getVersion = exports.getPath = void 0;
4
- // transpile:main
5
- const xcode_1 = require("./xcode");
6
- Object.defineProperty(exports, "getPath", { enumerable: true, get: function () { return xcode_1.getPath; } });
7
- Object.defineProperty(exports, "getVersion", { enumerable: true, get: function () { return xcode_1.getVersion; } });
8
- Object.defineProperty(exports, "getMaxIOSSDK", { enumerable: true, get: function () { return xcode_1.getMaxIOSSDK; } });
9
- Object.defineProperty(exports, "getMaxTVOSSDK", { enumerable: true, get: function () { return xcode_1.getMaxTVOSSDK; } });
10
- Object.defineProperty(exports, "getClangVersion", { enumerable: true, get: function () { return xcode_1.getClangVersion; } });
1
+ import { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion } from './xcode.js';
11
2
  const xcode = {
12
- getPath: xcode_1.getPath,
13
- getVersion: xcode_1.getVersion,
14
- getMaxIOSSDK: xcode_1.getMaxIOSSDK,
15
- getMaxTVOSSDK: xcode_1.getMaxTVOSSDK,
16
- getClangVersion: xcode_1.getClangVersion,
3
+ getPath,
4
+ getVersion,
5
+ getMaxIOSSDK,
6
+ getMaxTVOSSDK,
7
+ getClangVersion,
17
8
  };
18
- exports.default = xcode;
9
+ export { getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion };
10
+ export default xcode;
19
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,mCAA0F;AAUlF,wFAVA,eAAO,OAUA;AAAE,2FAVA,kBAAU,OAUA;AAAE,6FAVA,oBAAY,OAUA;AAAE,8FAVA,qBAAa,OAUA;AAAE,gGAVA,uBAAe,OAUA;AARzE,MAAM,KAAK,GAAG;IACZ,OAAO,EAAP,eAAO;IACP,UAAU,EAAV,kBAAU;IACV,YAAY,EAAZ,oBAAY;IACZ,aAAa,EAAb,qBAAa;IACb,eAAe,EAAf,uBAAe;CAChB,CAAC;AAGF,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAE7F,MAAM,KAAK,GAAG;IACZ,OAAO;IACP,UAAU;IACV,YAAY;IACZ,aAAa;IACb,eAAe;CAChB,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAC,CAAC;AAC3E,eAAe,KAAK,CAAC"}
@@ -1,9 +1,15 @@
1
1
  export interface XcodeVersion {
2
+ /** The Xcode version as a string, e.g. '10.0' or '10.0.1' */
2
3
  versionString: string;
4
+ /** The Xcode version as a float, e.g. 10.0 or 10.1 */
3
5
  versionFloat: number;
6
+ /** The major version number, e.g. 10 */
4
7
  major: number;
8
+ /** The minor version number, e.g. 1 */
5
9
  minor: number;
10
+ /** The patch version number, if present in the version string */
6
11
  patch?: number;
12
+ /** Returns {@link versionString} */
7
13
  toString(): string;
8
14
  }
9
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,IAAI,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,IAAI,MAAM,CAAC;CACpB"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import type { XcodeVersion } from './types';
1
+ import type { XcodeVersion } from './types.js';
2
2
  /**
3
3
  * Retrieves the full path to Xcode Developer subfolder via xcode-select
4
4
  *
@@ -1 +1 @@
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,CA0C7F;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAe/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,cAA0B,MAAM,KAAmB,OAAO,CAAC,MAAM,CAAC;;CAErF,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;;CAGf,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;;CAEhB,CAAC"}
1
+ {"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../lib/xcode.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAO7C;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C7F;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAe/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,cAA0B,MAAM,KAAmB,OAAO,CAAC,MAAM,CAAC;;CAErF,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;;CAGf,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;;CAEhB,CAAC"}
@@ -1,57 +1,12 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getMaxTVOSSDK = exports.getMaxIOSSDK = exports.getPath = void 0;
40
- exports.getPathFromXcodeSelect = getPathFromXcodeSelect;
41
- exports.getPathFromDeveloperDir = getPathFromDeveloperDir;
42
- exports.getVersion = getVersion;
43
- exports.getClangVersion = getClangVersion;
44
- exports.getMaxIOSSDKWithoutRetry = getMaxIOSSDKWithoutRetry;
45
- exports.getMaxTVOSSDKWithoutRetry = getMaxTVOSSDKWithoutRetry;
46
- const support_1 = require("@appium/support");
47
- const node_path_1 = __importDefault(require("node:path"));
48
- const asyncbox_1 = require("asyncbox");
49
- const teen_process_1 = require("teen_process");
50
- const semver = __importStar(require("semver"));
51
- const helpers_1 = require("./helpers");
1
+ import { fs, logger, util } from '@appium/support';
2
+ import path from 'node:path';
3
+ import { retry } from 'asyncbox';
4
+ import { exec } from 'teen_process';
5
+ import * as semver from 'semver';
6
+ import { runXcrunCommand, findAppPaths, XCRUN_TIMEOUT, readXcodePlist } from './helpers.js';
52
7
  const DEFAULT_NUMBER_OF_RETRIES = 2;
53
8
  const XCODE_BUNDLE_ID = 'com.apple.dt.Xcode';
54
- const log = support_1.logger.getLogger('Xcode');
9
+ const log = logger.getLogger('Xcode');
55
10
  /**
56
11
  * Retrieves the full path to Xcode Developer subfolder via xcode-select
57
12
  *
@@ -59,26 +14,26 @@ const log = support_1.logger.getLogger('Xcode');
59
14
  * @returns Full path to Xcode Developer subfolder
60
15
  * @throws {Error} If it is not possible to retrieve a proper path
61
16
  */
62
- async function getPathFromXcodeSelect(timeout = helpers_1.XCRUN_TIMEOUT) {
17
+ export async function getPathFromXcodeSelect(timeout = XCRUN_TIMEOUT) {
63
18
  const generateErrorMessage = async (prefix) => {
64
- const xcodePaths = await (0, helpers_1.findAppPaths)(XCODE_BUNDLE_ID);
19
+ const xcodePaths = await findAppPaths(XCODE_BUNDLE_ID);
65
20
  if (!xcodePaths.length) {
66
21
  return `${prefix}. Consider installing Xcode to address this issue.`;
67
22
  }
68
- const proposals = xcodePaths.map((p) => ` sudo xcode-select -s "${node_path_1.default.join(p, 'Contents', 'Developer')}"`);
23
+ const proposals = xcodePaths.map((p) => ` sudo xcode-select -s "${path.join(p, 'Contents', 'Developer')}"`);
69
24
  return (`${prefix}. ` +
70
25
  `Consider running${proposals.length > 1 ? ' any of' : ''}:\n${proposals.join('\n')}\nto address this issue.`);
71
26
  };
72
27
  let stdout;
73
28
  try {
74
- ({ stdout } = await (0, teen_process_1.exec)('xcode-select', ['--print-path'], { timeout }));
29
+ ({ stdout } = await exec('xcode-select', ['--print-path'], { timeout }));
75
30
  }
76
31
  catch (e) {
77
32
  const stderr = e && typeof e === 'object' && 'stderr' in e ? String(e.stderr) : '';
78
33
  const message = e instanceof Error ? e.message : String(e);
79
34
  const msg = `Cannot determine the path to Xcode by running 'xcode-select -p' command. ` +
80
35
  `Original error: ${stderr || message}`;
81
- throw new Error(msg);
36
+ throw new Error(msg, { cause: e });
82
37
  }
83
38
  // trim and remove trailing slash
84
39
  const developerRoot = String(stdout).replace(/\/$/, '').trim();
@@ -87,7 +42,7 @@ async function getPathFromXcodeSelect(timeout = helpers_1.XCRUN_TIMEOUT) {
87
42
  throw new Error(msg);
88
43
  }
89
44
  // xcode-select might also return a path to command line tools
90
- const { CFBundleIdentifier } = await (0, helpers_1.readXcodePlist)(developerRoot);
45
+ const { CFBundleIdentifier } = await readXcodePlist(developerRoot);
91
46
  if (CFBundleIdentifier === XCODE_BUNDLE_ID) {
92
47
  return developerRoot;
93
48
  }
@@ -101,12 +56,12 @@ async function getPathFromXcodeSelect(timeout = helpers_1.XCRUN_TIMEOUT) {
101
56
  * @throws {Error} If it is not possible to retrieve a proper path
102
57
  * @privateRemarks This method assumes `DEVELOPER_DIR` is defined.
103
58
  */
104
- async function getPathFromDeveloperDir() {
59
+ export async function getPathFromDeveloperDir() {
105
60
  const developerRoot = process.env.DEVELOPER_DIR;
106
61
  if (!developerRoot) {
107
62
  throw new Error('DEVELOPER_DIR environment variable is not set');
108
63
  }
109
- const { CFBundleIdentifier } = await (0, helpers_1.readXcodePlist)(developerRoot);
64
+ const { CFBundleIdentifier } = await readXcodePlist(developerRoot);
110
65
  if (CFBundleIdentifier === XCODE_BUNDLE_ID) {
111
66
  return developerRoot;
112
67
  }
@@ -121,8 +76,8 @@ async function getPathFromDeveloperDir() {
121
76
  * @returns Full path to Xcode Developer subfolder timeout
122
77
  * @throws {Error} If there was an error while retrieving the path.
123
78
  */
124
- exports.getPath = support_1.util.memoize((timeout = helpers_1.XCRUN_TIMEOUT) => process.env.DEVELOPER_DIR ? getPathFromDeveloperDir() : getPathFromXcodeSelect(timeout));
125
- async function getVersion(parse = false, retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
79
+ export const getPath = util.memoize((timeout = XCRUN_TIMEOUT) => process.env.DEVELOPER_DIR ? getPathFromDeveloperDir() : getPathFromXcodeSelect(timeout));
80
+ export async function getVersion(parse = false, retries = DEFAULT_NUMBER_OF_RETRIES, timeout = XCRUN_TIMEOUT) {
126
81
  const version = (await getVersionMemoized(retries, timeout));
127
82
  // xcode version strings are not exactly semver string: patch versions of 0
128
83
  // are removed (e.g., '10.0.0' => '10.0')
@@ -149,16 +104,16 @@ async function getVersion(parse = false, retries = DEFAULT_NUMBER_OF_RETRIES, ti
149
104
  * which is supplied with Command Line Tools. `null` is returned
150
105
  * if CLT are not installed.
151
106
  */
152
- async function getClangVersion() {
107
+ export async function getClangVersion() {
153
108
  try {
154
- await support_1.fs.which('clang');
109
+ await fs.which('clang');
155
110
  }
156
111
  catch {
157
112
  log.info('Cannot find clang executable on the local system. ' +
158
113
  'Are Xcode Command Line Tools installed?');
159
114
  return null;
160
115
  }
161
- const { stdout } = await (0, teen_process_1.exec)('clang', ['--version']);
116
+ const { stdout } = await exec('clang', ['--version']);
162
117
  const match = /clang-([0-9.]+)/.exec(stdout);
163
118
  if (!match) {
164
119
  log.info(`Cannot parse clang version from ${stdout}`);
@@ -173,9 +128,9 @@ async function getClangVersion() {
173
128
  * @returns The SDK version
174
129
  * @throws {Error} If the SDK version number cannot be determined
175
130
  */
176
- async function getMaxIOSSDKWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
131
+ export async function getMaxIOSSDKWithoutRetry(timeout = XCRUN_TIMEOUT) {
177
132
  const args = ['--sdk', 'iphonesimulator', '--show-sdk-version'];
178
- const { stdout } = await (0, helpers_1.runXcrunCommand)(args, timeout);
133
+ const { stdout } = await runXcrunCommand(args, timeout);
179
134
  const sdkVersion = stdout.trim();
180
135
  const match = /\d.\d/.exec(stdout);
181
136
  if (!match) {
@@ -191,8 +146,8 @@ async function getMaxIOSSDKWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
191
146
  * @returns The SDK version
192
147
  * @throws {Error} If the SDK version number cannot be determined
193
148
  */
194
- exports.getMaxIOSSDK = support_1.util.memoize(function getMaxIOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
195
- return (0, asyncbox_1.retry)(retries, getMaxIOSSDKWithoutRetry, timeout);
149
+ export const getMaxIOSSDK = util.memoize(function getMaxIOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = XCRUN_TIMEOUT) {
150
+ return retry(retries, getMaxIOSSDKWithoutRetry, timeout);
196
151
  });
197
152
  /**
198
153
  * Retrieves the maximum version of tvOS SDK supported by the installed Xcode
@@ -201,9 +156,9 @@ exports.getMaxIOSSDK = support_1.util.memoize(function getMaxIOSSDK(retries = DE
201
156
  * @returns The SDK version
202
157
  * @throws {Error} If the SDK version number cannot be determined
203
158
  */
204
- async function getMaxTVOSSDKWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
159
+ export async function getMaxTVOSSDKWithoutRetry(timeout = XCRUN_TIMEOUT) {
205
160
  const args = ['--sdk', 'appletvsimulator', '--show-sdk-version'];
206
- const { stdout } = await (0, helpers_1.runXcrunCommand)(args, timeout);
161
+ const { stdout } = await runXcrunCommand(args, timeout);
207
162
  const sdkVersion = stdout.trim();
208
163
  if (isNaN(parseFloat(sdkVersion))) {
209
164
  throw new Error(`xcrun returned a non-numeric tvOS SDK version: '${sdkVersion}'`);
@@ -218,8 +173,8 @@ async function getMaxTVOSSDKWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
218
173
  * @returns The SDK version
219
174
  * @throws {Error} If the SDK version number cannot be determined
220
175
  */
221
- exports.getMaxTVOSSDK = support_1.util.memoize(async function getMaxTVOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
222
- return (await (0, asyncbox_1.retry)(retries, getMaxTVOSSDKWithoutRetry, timeout));
176
+ export const getMaxTVOSSDK = util.memoize(async function getMaxTVOSSDK(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = XCRUN_TIMEOUT) {
177
+ return (await retry(retries, getMaxTVOSSDKWithoutRetry, timeout));
223
178
  });
224
179
  // Private helper functions
225
180
  /**
@@ -229,10 +184,10 @@ exports.getMaxTVOSSDK = support_1.util.memoize(async function getMaxTVOSSDK(retr
229
184
  * @returns Xcode version
230
185
  * @throws {Error} If there was a failure while retrieving the version
231
186
  */
232
- async function getVersionWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
233
- const developerPath = await (0, exports.getPath)(timeout);
187
+ async function getVersionWithoutRetry(timeout = XCRUN_TIMEOUT) {
188
+ const developerPath = await getPath(timeout);
234
189
  // we want to read the CFBundleShortVersionString from Xcode's plist.
235
- const { CFBundleShortVersionString } = await (0, helpers_1.readXcodePlist)(developerPath);
190
+ const { CFBundleShortVersionString } = await readXcodePlist(developerPath);
236
191
  return semver.coerce(CFBundleShortVersionString);
237
192
  }
238
193
  /**
@@ -243,7 +198,7 @@ async function getVersionWithoutRetry(timeout = helpers_1.XCRUN_TIMEOUT) {
243
198
  * @returns Xcode version
244
199
  * @throws {Error} If there was a failure while retrieving the version
245
200
  */
246
- const getVersionMemoized = support_1.util.memoize(function getVersionMemoized(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = helpers_1.XCRUN_TIMEOUT) {
247
- return (0, asyncbox_1.retry)(retries, getVersionWithoutRetry, timeout);
201
+ const getVersionMemoized = util.memoize(function getVersionMemoized(retries = DEFAULT_NUMBER_OF_RETRIES, timeout = XCRUN_TIMEOUT) {
202
+ return retry(retries, getVersionWithoutRetry, timeout);
248
203
  });
249
204
  //# 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/index.ts CHANGED
@@ -1,5 +1,4 @@
1
- // transpile:main
2
- import {getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion} from './xcode';
1
+ import {getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion} from './xcode.js';
3
2
 
4
3
  const xcode = {
5
4
  getPath,
@@ -12,4 +11,4 @@ const xcode = {
12
11
  export {getPath, getVersion, getMaxIOSSDK, getMaxTVOSSDK, getClangVersion};
13
12
  export default xcode;
14
13
 
15
- export type {XcodeVersion} from './types';
14
+ export type {XcodeVersion} from './types.js';
package/lib/types.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  export interface XcodeVersion {
2
+ /** The Xcode version as a string, e.g. '10.0' or '10.0.1' */
2
3
  versionString: string;
4
+ /** The Xcode version as a float, e.g. 10.0 or 10.1 */
3
5
  versionFloat: number;
6
+ /** The major version number, e.g. 10 */
4
7
  major: number;
8
+ /** The minor version number, e.g. 1 */
5
9
  minor: number;
10
+ /** The patch version number, if present in the version string */
6
11
  patch?: number;
12
+ /** Returns {@link versionString} */
7
13
  toString(): string;
8
14
  }
package/lib/xcode.ts CHANGED
@@ -3,8 +3,8 @@ import path from 'node:path';
3
3
  import {retry} from 'asyncbox';
4
4
  import {exec} from 'teen_process';
5
5
  import * as semver from 'semver';
6
- import {runXcrunCommand, findAppPaths, XCRUN_TIMEOUT, readXcodePlist} from './helpers';
7
- import type {XcodeVersion} from './types';
6
+ import {runXcrunCommand, findAppPaths, XCRUN_TIMEOUT, readXcodePlist} from './helpers.js';
7
+ import type {XcodeVersion} from './types.js';
8
8
 
9
9
  const DEFAULT_NUMBER_OF_RETRIES = 2;
10
10
  const XCODE_BUNDLE_ID = 'com.apple.dt.Xcode';
@@ -44,7 +44,7 @@ export async function getPathFromXcodeSelect(timeout: number = XCRUN_TIMEOUT): P
44
44
  const msg =
45
45
  `Cannot determine the path to Xcode by running 'xcode-select -p' command. ` +
46
46
  `Original error: ${stderr || message}`;
47
- throw new Error(msg);
47
+ throw new Error(msg, {cause: e});
48
48
  }
49
49
  // trim and remove trailing slash
50
50
  const developerRoot = String(stdout).replace(/\/$/, '').trim();
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "ios",
7
7
  "xcode"
8
8
  ],
9
- "version": "6.2.6",
9
+ "version": "7.0.0",
10
10
  "author": "Appium Contributors",
11
11
  "license": "Apache-2.0",
12
12
  "repository": {
@@ -43,8 +43,8 @@
43
43
  "format": "prettier -w ./lib ./test",
44
44
  "format:check": "prettier --check ./lib ./test",
45
45
  "prepare": "npm run build",
46
- "test": "node --test --test-timeout=60000 \"./build/test/unit/**/*.spec.js\"",
47
- "e2e-test": "node --test --test-force-exit --test-concurrency=1 --test-timeout=300000 \"./build/test/e2e/**/*.spec.js\""
46
+ "test": "node --enable-source-maps --test --test-timeout=60000 \"./build/test/unit/**/*.spec.js\"",
47
+ "e2e-test": "node --enable-source-maps --test --test-force-exit --test-concurrency=1 --test-timeout=300000 \"./build/test/e2e/**/*.spec.js\""
48
48
  },
49
49
  "prettier": {
50
50
  "bracketSpacing": false,
@@ -63,5 +63,13 @@
63
63
  "prettier": "^3.9.3",
64
64
  "semantic-release": "^25.0.2",
65
65
  "typescript": "^6.0.2"
66
+ },
67
+ "type": "module",
68
+ "exports": {
69
+ ".": {
70
+ "types": "./build/lib/index.d.ts",
71
+ "import": "./build/lib/index.js"
72
+ },
73
+ "./package.json": "./package.json"
66
74
  }
67
75
  }